范煜
作为一种基础设施投资,企业期望从工业互联网中可以获取多方面的收益,通过对历史数据的分析,找到数据挖掘的方向。
在工业大数据应用中,数据采集和存储只是基础,重点是数据分析和数据挖掘。基于特定目标的数据挖掘虽然可能产生立竿见影的效果,但也可能一无所获。工业互联网作为一种基础设施投资,企业期望从中可以获取多方面的收益,可以在支持日常生产经营活动的同时,通过对历史数据的分析,找到数据挖掘的方向。
如果把数据挖掘当做钻井,数据分析就是勘探,可以为数据挖掘找到合适的井位(目标)。
工业大数据在日常生产经营活动的作用可以分为快速反馈和深入分析两个方面。快速反馈是指能及时看到日常生产数据,对生产经营的管理措施能迅速看到效果。
主要针对拥有多套生产控制系统,或者有多个下属企业,目前数据分布在多种工业过程自动化系统中的情况。
深入分析是从多个维度入手,每个维度按层次结构逐级分析历史数据,按照一定路径深入了解不同下属企业、不同控制系统、不同测点的具体数据变化,特别是结合报警、故障数据的分析,建立多种故障预测模型。
一、项目背景和实现目标
本项目的客户是一个集团,有五个下属企业。
集团公司目前的日常生产数据的反馈是由下屬公司每天上报Excel格式数据报表,经过人工汇总后生成日报表。下属公司是值班人员从SCADA系统上在每天固定时间查询数据,放到预置公式的Excel表,再计算上报。
本项目先建立一套绩效指标体系,按照可以分析的数据项由少到多,分别实现管理驾驶舱、综合数据报表和专题数据分析,并支持后续的数据挖掘。
数据是将多个下属公司的SCADA系统联网,实现数据的自动采集、上报。管理驾驶舱只显示少量的顶层指标,并配上直观的统计图形,便于管理高层能迅速掌握公司整体运营状况。
专题数据分析基于多维数据分析技术,可以对所有绩效指标及构成绩效指标的指标变量进行多维度的分析,而且可以按照一定的层次结构逐级钻取到最小粒度。
综合数据报表可以代替日报及月报,看到当月及当年的累计数据,并和去年同期进行对比,时间粒度为日,显示的数据项可以从专题数据分析中选择,数据项是专题数据分析中指标加维度组合的一个子集。
从SCADA系统直接读取数据,有以下优点:
1.及时:可以实时获取相关数据。
2.准确:防止人工抄录时的错误,或人为修改。
3.精细:有些以前没有上报的数据也可以看到。
二、数据基础和来源
工业大数据的工作基础是积累大量的数据,这些数据不但已经采集上来,而且保存在历史数据库(或称归档数据库)中。这就要求企业已经部署了PLC、DCS、FCS系统,而且运行一段时间,有一定的数据积累。
PLC等数据不仅在现场可以采集,而且已经联网中央控制室,进行集中管理,通过SCADA或/和实时数据库实现历史数据的保存。
本项目的五个下属企业,运行了六个不同厂家开发的SCADA系统,其中两个系统是同一厂家提供,但一个已经升级到MongoDB,一个还是原来的SQL Server,还有两个下属企业都是使用西门子的WinCC,但由不同厂家提供。有的下属企业原来有多个独立的SCADA系统,现在已经整合为一套了。
从数据源的访问技术来划分,MongoDB一个,SQL Server两个、Oracle一个、WinCC两个,虽然WinCC也采用SQL Server数据库,但数据经过加密,需要通过专门的OLEDB接口和命令格式访问,所以和一般可直接访问的SQL Server取数技术不同。
三、专题数据分析
专题数据分析是管理驾驶舱和综合数据报表的基础。专题数据分析为了实现对大规模历史数据进行统计分析,同时又不降低实际监控信息系统对实时数据库的访问性能,需要建立独立的数据仓库系统。
采集数据首先从控制系统历史库中提取数据,按原来的粒度,保存到mongoDB数据库中,然后,从mongoDB中读出数据,按小时保存到数据仓库中。
变量表和报警等数据,直接保存到数据仓库中。
1.报警和采集数据分析
对来自多个SCADA系统的报警数据和变量的采集数据进行集中分析,是所有系统公用的功能,与每个SCADA系统的具体功能以及变量采集数据的类型无关。
报警数据的分析指标有报警次数、平均报警时间、报警的最长时间,可以了解极端清况下传感器的情况。观察分析报警时数据的时间走势,也有助于了解数据的变化。
变量按不同下属公司进行分析,每个公司按分区、站点组织成一个树形结构,可以逐级钻取,可以比较不同下属公司,或者同个下属公司的不同分区之间的报警情况。
钻取或选择到具体变量后,可以查询该变量在一天内的所有数据,以实际采集时间间隔显示,比如分钟。同时显示上下限值,可以观察一个报警比较频繁,或时间比较长的一天内,数据相对上下限值的变化。如果是上下限值分时间段变化的,比如白天和晚上不同,也分别显示出来。报警数据的显示最小粒度是天,而采样数据是实际采集时间间隔,比如分钟。对于没有报警的变量,可以直接输入变量号,查询详细的采样数据。
虽然在SCADA系统或实时数据库系统,都可以显示采集数据的变化曲线,这里的优势是综合了不同的公司或不同类型系统的数据统一显示。
2、总量数据分析
用变量数据可以计算流量、用电量等产量或成本数据,这些数据是累加的,所以是总量数据类型。
生产数据虽然取自SCADA,但许多情况下是人工读取,手工计算,逐级上报。现代管理的要求是能够从生产检测和控制系统中直接获取数据。而且,需要了解并生成总量数据的各组成部分的数据。
本项目首先要读取变量数据,再进行计算。为便于快速分析,没有按采集时间间隔保存数据,而是转换为小时。一个总量数据会是多个变量数据的汇总,所以要建立多个变量中数据的加减关系,才能根据每个变量的数据自动汇总为总数。
建立变量之间的树形关系,除用于计算外,还可用于数据的钻取。比如一个企业的用电量是由多个车间的用电量累计而成,通过钻取该下属企业,可以看到每个车间的用电量。一般分析维度由日期、时间、变量组成,时间粒度为小时,也可以设为分钟、秒。
3.控制数据的分析
控制数据指的是电压、水压等,一般是在一个范围内波动,如果超过预先设定的上下限值,就要报警。上下限值可能是固定的,也可以一天分为多个时间段,设为不同限值。限值甚至可以是动态的。
控制数据需要分析一段时间的变化情况,主要是分析平均值、最大值、最小值、合格率。分析维度有日期、时间和变量。数据可以按照年、月、日,或变量钻取。
四、采集数据的处理
变量的数据类型分为模拟项和离散项,模拟项又可以分为总量型和控制型,记录总量数据的变量值又分为累计值和瞬时值:
1)累计值:数据为累计增加,两次之间的差,即为这期间的数量,比如水流量、电量,采样时间为1分钟,则差额为1分钟的水量或电量。
2)瞬时值:数据为采样时间的瞬时数值,一般计量单位为小时,如果采样间隔时间为1分钟,则这1分钟的用量为瞬时值除以60。
3)监测值:数据为在一个上限和下限值之间浮动的数值,比如电压值、水压值、PH值等
1.總量数据处理
为便于分析,总量值需要转换为单位时间的数量。考虑到如果数据量太大,会影响处理和显示速度,所以以小时为单位保存,当然也可以考虑分钟。累计值变量的小时数据只需要将相隔一个小时的两个时间点的数据相减即可。一般采样时间为分钟,两个时间点之间的数据忽略,不会影响精度。但是,有的时间点不正好是整点,如果原始时间与达到时间并不是已小时为单位,而是相差几分钟,则需要微调一下数据。用瞬时值计算小时用量,需要用每个采集数据乘以时间间隔,主要是考虑到数据波动的影响。总量数据可以累加进行分析,累加包括时间的累加,也包括多个变量之间数据的累计。有时变量之间关系复杂,因此需要建立一张对应表,将多个变量之间的加减关系注明,才能准确计算累计总量数据。有时一个变量的数据可以用于计算多个总量数据。
2.控制数据的处理
控制变量分为设备数据和计算数据:
1)计算数据:并无对应的传感器,数据由子测点聚合而成
2)设备数据:对应有传感器,数据由传感器直接采集,即使定义有子测点,也不使用子测点的数据
比如在一个处理车间有四个处理池,每个池有个测点,同时在车间出口也有一个测点,则车间的数据采用出口测点的数据,但可以将四个处理池的测点作为车间的子测点,也可以钻取看到每个处理池的数据,并对四个池的数据进行比较分析。
五、数据的处理
1.离群值的去除
检测值会掺杂一个离群点,这些值远远大于平均值。在处理数据时,需要识别这些离群点,并忽略。
但有的时间会一段时候数值都很大,这样判断离群点就比较困难,可能是设备或传感器故障。即使能判断,如果忽略全部数据的话,也不利于日后了解情况,所以只有保留。
2.缺失值的增加
在计算总量数据时,经常会遇到缺失值,就是同个传感器相邻两个时间点超过1小时,甚至多个小时,所以需要人工插入中间缺失的每个小时的记录和值,不然做合计时,比如计算1天的累计流量,就会出错。填充缺失值的方法是按缺失的每个小时增加一条记录,计算两头数据差,按小时平均后作为其中每个小时的值。