智物联,引领工业物联

我们始终以技术创新创造价值,并夜以继日的将互联和工业智能的力量融入到各行各业
以前所未见的高度、速度、精度和深度,让关键所在 逐一实现。

咨询服务

技术干货丨工业互联网核心引擎原理与实现——离线数据


【摘要】: “离线数据”是相对“在线数据”而言的。所谓在线数据,就是可以通过数据采集终端直接采集到的数据,比如适配器对接设备控制器后直接采集到的数据,反之,“离线数据”就是不能通过数据采集终端直接采集的数据。
什么是离线数据:
 
“离线数据”是相对“在线数据”而言的。所谓在线数据,就是可以通过数据采集终端直接采集到的数据,比如适配器对接设备控制器后直接采集到的数据,反之,“离线数据”就是不能通过数据采集终端直接采集的数据。
 
一个工业物联网项目是否能成功,关键就是数据采集,而数据采集并非我们想象得那么难。事实上,不是我们想要的所有数据都可以用数据采集终端采集到, 这是其一;其二,在诸多实际情况中,也并非都需要用数据采集终端去实时采集。
 
▲离线数据采集的场景说明
 
离线数据的采集,我们称为“离线测量”采集。比如,一个数控机床加工出来的工件,我们需要知道它的几何尺寸,就需要通过测量;比如,一个化工产品被生产出来,我们要进行化验,看看它的化学成分,就需要用到化验仪器,而化验结果, 可能显示在屏幕上,也可能是打印出来的;再比如,我们需要知道某个仪表上的读数,而这个仪表是一个模拟表,没法对接什么适配器,那我们就只好用眼睛去看这仪表的读数。把上述这些数据进行采集,就是所谓的离线数据采集。
 
Collectos(离线数据库):
 
MixIOT体系是支持离线数据的,但是对离线数据有两个基本要求:一是要有获得数据的途径,二是要有把这些数据收集到的方法。
 
首先,我们介绍两个重要的概念。
 
一个是Collectos,它是MixIOT体系中的一个“离线数据的数据库”,就是用来保存离线数据的。另一个是 API-Q,这是MixIOT提供的一个收集离线数据收集的接口。了解了这两个概念,我们就可以来说明离线数据采集的流程是什么。
 
我们举个例子,这是一个石膏的生产工厂,除了用适配器采集生产设备在生产过程中的数据,我们还想把产品(石膏)的化学成分和pH值一并纳入这个对象的数据库。
 
▲石膏中的化学成分和PH值
 
把产品的数据纳入同一个对象的目的,是为了弄清产品的质量跟生产设备运行、原材料及生产过程的各种数据之间的关系。而产品(石膏)的化学成分和 pH值,是通过化验得到的。化验的过程我们都了解,溶液、溶剂之类瓶瓶罐罐和什么滴定方法等,这些很显然是没办法用适配器去采集数据的。这个时候,我们可以提供一个手机 APP,这个APP用到了 API-Q Collectos这个接口。假设我们需要一个小时做一次对产品的化验,只需要把这个化验结果输入这个APP就行了。
 
▲ 石膏生产工厂在线数据与离线数据的采集
 
在这个示意图中,我们看到,用了多个适配器直接对接这个装置中的不同设备, 分别采集这些设备运行的数据,这就是在线数据的采集。除此之外,我们还需要一个 APP,手工输入化验结果数据,而这个APP得到手工输入的数据后,再通过MixIOT API-Q接口,把手工输入的数据发送到MixIOT系统,MixIOT 系统在收集到这些数据之后,就会保存到Collectos数据库里面,等待后续的应用。
 
为什么我们要把产品(石膏)的成分也作为这个对象的数据呢?其实很好理解, 产品质量取决于什么?除了进来的原材料,当然就是跟这个设备的运行密切关系, 比如氧化的程度多一点少一点、水分多一点少一点、某个设备转得快一点或者慢一点,都会对最后生产出来的石膏成分有影响,对石膏的pH值有影响。如果我们把这些通过化验得到的离线数据也纳入这个对象,那么我们能做的事情,就不仅仅是对这套石膏生产装置的运行进行监控,而且还可以找出产品的质量与设备运行之间的关系。这就是为什么MixIOT要支持离线数据采集的意义所在。
 
另外需要说明的是,因为离线数据的采集是采用“离线测量”方式,所以,采集的频度是可以很低的,比如,每一个批次的产品进行两次化验,或者1小时进行1次化验。
 
离线数据标识(Collctos ID):
 
上面的例子中,我们介绍了用一个 APP 去做“石膏产品成分化验结果”的离线数据采集。接下来要介绍,怎么让MixIOT 把这些数据保存到离线数据库Collectos 里面,怎么样把这些数据整合到对象里面。
 
首先说一下,离线数据采集之前,我们需要做什么。
 
如果我们要使用离线数据,需要先在 MixIOT Admin的离线数据管理版块中, 创建离线数据“项目”,每一个离线数据项都是一个项目,创建时配置好每个离线数据项目的信息。
 
以pH值项目的创建为例:
 
其中,“模板”是用来告诉MixIOT离线数据处理系统,这个数据的格式是什么。Float 代表浮点数,#.##是代表一位整数、两位小数的格式,其作用就是自动把收集到的离线数据按这个标准来进行格式化。其他的信息当然也要填写明白。
 
创建离线数据项目,实际上就相当于在 MixIOT系统里中声明了有这些离线数据的存在。最前面的离线数据项目标识(1001、1002等)是由系统自动分配的。总之,离线数据项目的标识是唯一的,一个标识代表一个离线数据。
 
在刚才石膏产线这个例子中,我们需要创建6个离线数据项目,分别是“二水硫化钙含量百分比”“半水硫化钙含量百分比”“含水量百分比”“二氧化钙含量百分比”“五氧化二磷含量百分比”和“pH值”。
 
▲ 离线数据pH值的创建
 
在 MixIOT Admin中创建好了这些离线数据项目后,就可以在对象的映射表中,建立离线数据与对象之间的关系了,写出来是这样的:
 
[ X901, “Percent of CaSO4.2H2O”, “二水硫化钙含量百分比”, STA, &Collectos(“1001”) ]
[ X902, “Percent of CaSO4.1/2H2O”,  “半水硫化钙含量百分比”, STA, &Collectos(“1002”)    ]
[ X903, “Percent of H2O”“含水量百分比”,STA, &Collectos(“1003”) ]
[ X904, “Percent of CaO2”,“二氧化钙含量百分比”,STA,&Collectos(“1004”) ] 
[ X905, “Percent of P2O5”,“五氧化二磷含量百分比”,STA,&Collectos(“1005”) ]
[ X906, “Percent of pH”,“pH 值”,STA,&Collectos(“1006”) ]
 
当我们的映射表中有了这些映射项之后,对象就多了X901-X906这6个FV变量。当我们在手机APP上输入化验结果,这些变量就有了数值,而且这些数值都变成了对象变量的数据,我们就可以进行各种数据处理,画出含量百分比的变化曲线,通过变化曲线,我们就可以看到设备运行和生产过程的数据对石膏产品结果都有哪些影响。
 
还有一个很重要的地方,如果我们对产品的离线数据进行了采集,那么我们是可以计算产品的偏态估计值。所谓产品的偏态估计值,就是生产出来的产品,与标准高质量产品的要求有多少偏差。有关偏态估计值的详细介绍,可以在公众号留言获取,这里就不详细说了。
 
离线数据是MixIOT中非常重要的一个内容。除了对产品的化验结果这类应用场景,还可以用于仪表读数的采集、各种测量数据的采集、各种抽样数据的采集等。总之,无法用适配器进行自动采集的数据,如果需要的话,都可以用离线数据的方法。
 
另外,说到离线数据这个话题,我们一定要提一下数控机床(或者叫加工中心, CNC)。假设你是一个机械加工厂的老板,你厂子里面有100台数控机床,都按同一个加工程序来加工一批零件,但是加工出来的零件存在误差,而且误差的特征和变化趋势都不一样。
 
如果做一个物联网项目,只是去实时监控这 100台机床的运行状态,请问这种物联网有用吗?答案是“没有”!机床运行得再好,可是生产出来的都是废品,那又有什么用呢?数控机床加工产生的误差是一个非常复杂的事情,不仅跟机床运行的状态有关,还跟刀具磨损、车间温度湿度等因素有关。
 
如果把加工件的误差作为离线数据,纳入数控机床这个对象中,那情况可能就不一样了,你可以用MixIOT来找到如何控制误差的最佳办法。
图片名称
图片名称