工业互联网核心引擎原理与实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

什么是同步计算映射

在MixIOT 体系映射表中,使用“@”进行对变量的计算,这个映射称为同步计算映射。

我们先来看一个同步计算映射的例子。在下面的映射表中,假设这个设备是一个机电设备。

img

X3X4 分别是这个机电设备的电流和电压。这两个数据为什么会变化呢?因为这个设备的阻抗随时变化,而我们非常希望能同步知道这个设备的阻抗是多少,因为这个阻抗的值对设备的监控很重要。如果我们把这些数据采集回去后再进行计算,那么,就使得以后的数据处理会非常复杂和麻烦,至少让时间的同步会很麻烦。

在这种情况下,我们就可以利用映射表中的“@”同步计算功能,直接计算出采集数据的某一时刻的设备阻抗。怎么做呢?只需要把这个阻抗定义为一个新的FV 变量(如X11),在映射表矩阵中增加一行:

X11, “设备阻抗”,“Resistance”,STA,@Func(div, X4X3) ]

这样一来,这个对象的FV 变量的个数,就从10个变成了11个。这个X11(设备阻抗)就像我们实际采集的数据一样,被记录在对象的马赛克数据中,如图7-4所示。

img

图7-4 增加了同步计算映射后的马赛克数据

映射表中的“@Func( )”实际上是一个计算公式,我们称为“映射函数”。@Func(div, X4X3)中的div,就是“除以”的意思,所以,@Func(div, X4X3)就是X4(电压)÷X3(电流),根据欧姆定律,这个计算结果就是X11(电阻),也就是设备的实际阻抗。

所以,“div”是一个“除以”的函数名字。如果是相乘就是“mult”,相加就是“add”。除了这些基本的加减乘除四则运算,MixIOT 体系的同步计算映射函数非常多,包括各种科学函数,甚至包括微分(diff)、积分(integ)、均值(ave)、最大(max)、最小(min)、正弦(sin)、余弦(cos)、正切(tan)、余切(cotan)、对数(log)、幂(pow)、正态函数(nor)等。只要我们熟练掌握,就可以定义非常复杂的计算公式。

有了这个同步计算映射关系,我们就可以把一些马上需要知道结果的数据,通过同步计算映射去实现。这样一来,MixIOT 体系在后面的数据处理中,只需要把它当作一个普通的FV 去进行数据处理就行了,而无须关心这个FV 到底是采集来的,还是算出来的。

在我们实际的项目中,比如一些热工设备,需要同步掌握设备的“热焓值”,我们一样可以用这个同步计算映射去实现,只不过计算公式比较复杂而已。