
什么是同步外源数据映射
除了使用“@”表示的同步计算映射,MixIOT 体系还使用“&”表示同步外源数据映射。顾名思义,同步外源数据映射,就是把某个“外部数据源”的数据,也同步变成这个物联网对象的FV 变量。
我们还是拿刚才的那个机电设备对象为例。假设,除了想知道这个对象的两个数据采集终端采集到的数据和这台机电设备的阻抗,我们还想知道这台设备最近一个小时里面的用电量。而用电量已经通过其他方法进行了数据采集,并且进行了统计和计算,其结果放在了统计数据库Statos 里面。假设这个用电量统计的标识为“ElecUsed”,那么,我们如果想同步知道这个设备最近一个小时的用电量,只需要对这个设备增加一个FV 变量(X12),并在映射表矩阵中增加一行:
[ X12, “设备耗电量”,“Electricity Consumption”,STA,&Statos(“ElecUsed”) ]
其含义是,把统计计算结果当作一个数据源Statos(外源),将以ElecUsed 这个为数据标识的数据,同步纳入物联网对象数据中。
这样,这个对象的12个FV 变量,有6个直接来自第一个数据采集终端,4个直接来自第二个数据采集终端,1个来自计算,1个来自外部数据源(统计结果)。这12个FV 变量,都会作为这个物联网对象的数据,进行数据处理和应用,如图7-5所示。

图7-5 增加了同步外源映射后的马赛克数据
MixIOT 体系的外源同步映射的外源很灵活,内容也很广泛,除了统计数据,还可以是离线数据,或者是已经在MixIOT 体系中被处理好的其他数据,甚至是MixIOT 体系之外的数据。
“&Collectos( )”也是经常被使用到的,就是对离线数据的合并。离线数据可以是无法直接进行在线采集的数据,比如,通过科学仪器的化验结果、仪表读数、观察数据等。关于离线数据,我们会在本书后续章节中专门介绍。
MixIOT 还支持其他外源数据的特殊定义,比如,我们可以用“&Erp( )”来定义来自ERP 系统的数据;用“&MES( )”来定义通过MES 系统获取的其他数据,等等。
那现在你思考一下,如果再增加一个FV: X13,映射表按如下方式写:
[ X13, “设备值班人”,“Person On Duty”,STA,&Erp(“PersonOnDuty”) ]
你能看得出来,这个设备(对象)又多了一个什么含义吗?我想你一定知道答案,这就是从ERP 系统中,把值班人员的排班表数据也拿过来了。这个X13 的值就是这台设备值班人的姓名。这个X13 跟这台设备的电流、电压一样,被记录到了这台设备(对象)的数据中。
你可以想象,过了一年半载,如果领导想要知道某台设备在某个时候的值班人是谁,把这个对象的数据翻出来就行了,虽然那个时候的排班表早就没有了。如果你再往深里想想,如果我们把值班的人跟设备的运行故障报警信息做一个关联,那又会怎么样?