构建工业物联网设备端所面临的核心问题是如何解决数据的异构性。
一般来说,设备端的数据异构性问题比服务端较为突出,且经常不能单纯依靠软件技术来解决。
传感层和传输层合并在一起讲述,主要是这两个层次之间的界限其实是具有一定的模糊性的。现在越来越多的设备将传输层功能作为一个技术模块内置在其中从而成为所谓的智能设备。
数据异构性
正所谓“万事开头难”,数据的获取是整个物联网系统业务流程的根本驱动力,在现实中也常常是实施代价最大的部分,常见的原因主要有:
电气信号的异构性
对于需要向非智能设备、传感器、执行器等采集数据的工业网关而言,第一个面临的问题就是与采集对象对接的电气信号是不同的。
这些“哑终端”的往往采用的是用于过程控制系统的近场通信技术,比如:各类串口技术、工业总进线技术,甚至更加原始的模拟量或数字量信号点。
当然,也不排除有些带有网络功能的智能设备也通过工业网关将数据合并上传。
所以,作为传输层的工业网关,首先就要面临对各种电气信号的对接能力。
通信协议的异构性
不同的电气信号接口,其采用的数据通信协议一般是不同的。
甚至同样的电气信号接口下,比如各类串口,其表征数据的应用层协议也可能是不同的。
作为工业网关为了减轻服务端处理数据的负担,一般来说都要在传输前完成从异构到系统内容易数据协议的转换。
数据数量的异构性
设备端和服务端之间最常见的关于数据数量的失配就是原始数据的缺失。
物联网系统的业务往往需要更多角度的数据,但是传统设备的数据信号的设置往往仅仅为了满足过程控制的需要就可以了。
比如一台水泵的控制系统,仅仅为了满足水泵的启停和运行工况的变化,而可能不会关注其震动、材料疲劳等问题,因此也就不会部署相应的传感器,也就没有相应的数据。
这个时候的解决方式有两种:一种是加装传感器,另一种是根据现有的数据利用某个合理的公式来推测,也就是通过数据整合来在一定的精度下提供所需要的数据。
当然并不能否定数量失配是数据过多,即:物联网服务端可能只需要设备的一个相对宏观的状态,比如是否正常运行还是处于某种故障中,但是现场并没有某个设备可以直接给出表征这种状态的数据,而是需要网关自己根据采集到的多个数据综合判断。
数量的异构性问题,又可成为数据完整性问题
数据质量的异构性
原始数据还可能有其他的质量上的失配情况,比如时序数据的噪音、采样频率、单位等的不同。
噪音可能来源于最原始的数据源,也可能来源于传感网络中的传输过程,甚至在工业网关内部的电路或不恰当的数据处理引入。
比如原始的数据A/D转换过程的电气噪音,时序数据在设备或网关中某个进程间通信的管道的阻塞等等。
对于采样频率的不同,常见的情况是服务端需要的采样频率相对原始数据的频率较低。
一般采取再采样的方式来处理。
简单的处理方式可以是在网关中利用一个缓存来存放该数据,一个任务不断以来自设备的频率写入该数据的值,而另一个任务以需要发送的频率来读取该设备的值即可。
如果对原始数据的确切采集时间有较为严格的要求,可以在读取的任务中根据时间戳来进行适当的插值计算。
当然还有的做法是网关上不做任何关于采样频率的处理,而交由服务端来进行,但是这种处理方式,会增加服务端和网络层的压力。
数据单位的不同,一般也称为倍率问题。处理方式相对简单,也就是在工业网关中增加倍率的设置,并自动将每个采集到的数据乘以该倍率后再发送。