1. 离线数据

1.1. 什么是离线数据

“离线数据” 是相对 “在线数据”⽽⾔的。所谓在线数据,就是可以通过数据采集终端直接采集到的数据,⽐如,适配器对接设备控制器后直接采集到的数据。那么,“离线数据”就是不能通过数据 采集终端(适配器)直接采集到的数据。

⼀个⼯业物联⽹项⽬是否能做成,关键就是数据采集。这就是我们⼀直在说的“⼯业物联⽹的五 个包⼦”中的第⼀个包⼦。⽽数据采集并不是⼀件不容易的事情,事实上,并不是所有我们想要的数据,都可以⽤我们的数据采集终端(适配器)采集到,这是其⼀;其⼆是,在诸多实际情况中,也并⾮需要我们⽤什么数据采集终端去实时采集。

下⾯这张图,基本上描述清楚了离线数据采集的场景都有哪些。

离线数据的采集,我们称为 “离线测量”采集。⽐如,⼀个数控机床加⼯出来的⼯件,我们需要知道它的⼏何尺⼨,就需要通过测量;⽐如,⼀个化⼯产品被⽣产出来,我们要进⾏化验,看看它的化学成分,含⽔量什么的,就需要⽤到化验仪器,⽽仪器化验出来的结果,可能显示在屏幕上,也可能是打印出来的;再⽐如,我们需要知道某个仪表上的读数,⽽这个仪表是⼀个模拟表,没法对接什么适配器,那我们就只好⽤眼睛去看这仪表的读数。把上述这些数据进⾏采集,就是所谓的离线数据采集。

1.2. Collectos(离线数据库)

MixIOT体系是⽀持离线数据的,但是,对离线数据是有两个基本条件的:⼀是要有获得数据的途径,⽽是要有把这些数据收集到的⽅法。

⾸先,我们介绍两个重要的概念:

⼀个是 Collectos,它是 MixIOT 系统中的⼀个“离线数据的数据库”,就是⽤来保存离线数据。同时,MixIOT 也提供了⼀个API-Q,这是⼀个收集离线数据收集的接⼝。

了解了这两个概念,我们就可以来说明,离线数据采集的流程是什么。

我们举个例⼦,这是⼀个⽯膏的⽣产⼯⼚。我们除了⽤适配器采集⽣产设备,⽣产过程的数据外,同时,我们还想把产品(⽯膏)的化学成分和pH值⼀并纳⼊这个对象的数据。

把产品的数据纳⼊到同⼀个对象的⽬的,是为了弄清产品的质量跟⽣产设备运⾏,原材料,以及⽣产过程的各种数据之间的关系。⽽产品(⽯膏)的化学成分和 pH值,是通过化验得到的。化验的过程我们都了解,溶液溶剂瓶瓶罐罐,什么滴定⽅法等等。这些很显然是没办法⽤适配器去采集数据的。

这个时候,我们可以提供⼀个⼿机 App,这个 App ⽤到了 API-Q Collectos这个接⼝。假设我们需要⼀个⼩时做⼀次对产品的化验,我们只需要把这个化验结果输⼊到这个 App 就⾏了。

下⾯这个示意图,就是这个意思。

在这个示意图中,我们看到,⽤了多个适配器直接对接这个装置中的不同设备,分别采集这些设备运⾏的数据,这个就是在线数据的采集。

除了这样以外,我们还需要弄个 App,⼿⼯去输⼊采集到的这些数据。⽽这个 App采集到⼿⼯输⼊的数据后,就需要⽤到 MixIOT API-Q 这个接⼝,把采集到的数据发送到 MixIOT系统。MixIOT 系 统在收集到这个数据之后,就会保存到 Collectos数据库⾥⾯,等待后续的应⽤。

为什么我们要把产品(⽯膏)的成分也作为这个对象的数据呢?其实很好理解,产品质量取决于什么?除了进来的原材料,当然就是跟这个设备的运⾏有密切关系,⽐如,氧化的程度多⼀点少⼀点,⽔分的多⼀点少⼀点,某个设备转的快⼀点或者慢⼀点,都会对最后出来的⽯膏的成分有影响,对⽯膏的 pH值有影响。

那么,如果我们把这些测量得到的离线数据也纳⼊这个对象,那么,我们能做的事情,就不仅仅是对这套⽯膏⽣产装置的运⾏监控,⽽且还可以找出产品的质量与设备运⾏之间的关系。这就是为什么 MixIOT 要⽀持离线数据采集的意义所在。

另外需要说明的就是,因为离线数据的采集是 “离线测量”⽅式,所以,这个采集的频度是可以很低的,⽐如,每⼀个批次的产品,进⾏两次化验,或者每⼩时进⾏⼀次化验。

1.3. 离线数据标识(Collectos ID)

上⾯的例⼦中,我们介绍了,⽤⼀个 App 去做 “⽯膏产品成分化验结果”的离线数据采集。我们 接下来要介绍,怎么让 MixIOT 把这些数据保存到离线数据库Collectos ⾥⾯,怎么样把这些数据 整合到对象⾥⾯。

我们⾸先说⼀下,离线数据采集之前,我们需要做什么。

如果我们要使⽤离线数据,⾸先需要在 MixIOT Admin的离线数据管理版块中,创建离线数据 “项

⽬”(说 “项⽬”有点⼤,但到后⾯你也许就理解了,为什么这样说),每⼀个离线数据项都是⼀个项⽬,创建时配置好每个离线数据项⽬的信息。

如下图所示:

其中,“模板” 这个地⽅,是⽤来告诉 MixIOT离线数据处理系统,这个数据的格式是什么。Float 代表浮点数,#.##是代表⼀位整数两位⼩数的格式。这个的作⽤就是⾃动把收集到的离线数据按这个来进⾏格式化。

其他的信息当然最好也要填写明⽩,省的过了⼀年半载我们不知道这是啥。

创建离线数据项⽬,实际上就相当于在 MixIOT系统⾥中声明了,有这些离线数据的存在。最前⾯ 的离线数据项⽬标识(1001、1002等等)是由系统⾃动分配的。总之,离线数据项⽬的标识是唯⼀的,⼀个标识代表⼀个离线数据。

那么,在刚才⽯膏产线这个例⼦中,我们就需要创建 6个离线数据项⽬,分别是:“⼆⽔硫化钙含量百分⽐”、 “半⽔硫化钙含量百分⽐”、“含⽔量百分⽐”、 “⼆氧化钙含量百分⽐”、“五氧化⼆磷 含量百分⽐”、和 “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 这六个 FV变量了。⼀旦我们在⼿机APP上输⼊了化验结果,这些变量就有数值了,⽽且这些数值都变成了对象变量的数据。

⼀旦对象有了这些数据,我们就可以进⾏各种数据处理,画出含量百分⽐的变化曲线,这样我们就可以看到设备运⾏和⽣产过程的数据,对⽯膏产品结果都有哪些影响。

还有⼀个很重要的地⽅,如果我们对产品的数据进⾏了采集,那么,我们是可以计算产品的偏态估计值。所谓产品的偏态估计值,就是⽣产出来的产品,与标准⾼质量产品的要求有多少偏差。有关偏态估计值的详细介绍,可以参考活学活⽤系列的《活学活⽤估计值》⽂稿,这⾥就不详细说了。

离线数据是 MixIOT中⾮常重要的⼀个内容。除了对产品的化验结果这类的应⽤场景之外,还可以⽤于仪表读数的采集,各种测量数据的采集,各种抽样数据的采集,等等。总之,⽆法⽤适配器进⾏⾃动采集的数据,如果需要的话,都可以⽤离线数据的⽅法。

另外,说到离线数据这个话题,我们⼀定要提⼀下数控机床(或者叫加⼯中⼼,CNC)。如果你是⼀个机械加⼯⼯⼚的⽼板,你⼚⼦⾥⾯有100台数控机床,都按同⼀个加⼯程序来加⼯⼀批零件,但是,加⼯出来的零件却不会完全⼀样,不仅会存在误差,⽽且误差还不⼀样,误差的特征不⼀样,⽽且误差的变化趋势也不⼀样。

如果你做⼀个物联⽹项⽬,只去实时监控这100台机床的运⾏状态,请问这种物联⽹对你有⽤吗?答案是没有!机床运⾏的再好,可是⽣产出来的都是废品,那⼜有啥⽤呢?数控机床加⼯出来的⼯件的误差,是⼀个⾮常复杂的事情,不仅跟机床运⾏的状态有关,跟⼑具磨损有关,跟⻋间环境温度湿度有关,等等。

如果你把加⼯件的误差作为离线数据,纳⼊到数控机床这个对象,那情况可能就不⼀样了。你可 以⽤ MixIOT 来帮你找到如何控制误差的最佳办法。

© Mixlinker all right reserved,powered by Gitbook文件修订时间: 2020-05-07 19:53:23

results matching ""

    No results matching ""