VC天下 » 程序人生

如何构建物联网数据处理平台(一)

在日新月异的技术发展下,越来越多的技术涌现在人们的眼前:云计算、物联网、大数据、虚拟现实、增强现实……每一种技术都有它的适用场景,充分理解了技术在业务上体现的辅助手段和方法,才能尽可能的发挥出技术的应用价值。业界对物联网技术没有统一的定义,但各派系/机构对物联网的应用价值有着惊人的一致性,物联网实现万物互联互通,拥有广泛的应用前景。
中国石油集团在十二五期间规划了两个物联网项目,初期建设已完毕,实现了井场各类仪器设备的数据采集、后方存储和综合应用,达到了一定的预期效果。在长达五年的建设周期中,作为工程技术物联网建设的承担者,我们积累了不少经验和教训。今天对如何构建物联网实时数据处理平台做一点分享。
物联网平台的搭建需要数据和应用,它的基础工作是采集仪器设备的数据,说起来很简单,”采集个数据”,实则不然。物联网平台要实现各类各型号的仪器设备的数据采集,平台的架构就需要有极强的拓展性。这种拓展性要求不仅支持常见的、标准协议格式的仪器设备,还要支持个性化的、自定义协议格式的仪器设备;不仅支持一个仪器设备的采集,还要支持多个设备并发采集;不仅支持石油行业的仪器设备,还要支持其它各类行业的仪器设备。一个具有良好架构的负责采集数据的系统,是一个有机的整体,而非多个应用程序拼凑而成,我们可以称之为”采集子系统”。构建一物联网平台的第一步就需要构建出一个能够采集各类仪器设备数据的”采集子系统”。
采集子系统采集仪器设备的流程可以简单概括为:连接、获取、解析3个步骤。
(1)连接:即连接仪器设备(硬件)或仪器设备的软件。如果针对硬件,则需要在电脑和硬件中间加入模拟信号和数字信号转化的设备,例如RTU等。最终的硬件采集,也都可转化为面向软件,可采取的方式归纳起来为4大类:网口、串口、数据库、文件。
网口:即采集子系统通过网络(有线或无线)和设备的软件进行数据交互。
串口:即采集子系统通过串口和设备的软件进行数据交互。
数据库:即设备将产生的数据存放在数据库中,采集子系统需要读取数据库进行数据交互。
文件:即设备将产生的数据存放在文件中,采集子系统通过访问文件进行数据交互。
(2)获取:即获取设备数据内容。与设备建立连接以后,采集子系统通过其指定的方式来获取设备产生的数据,从而进行数据的采集工作。
(3)解析:即对获取的设备数据进行解析,根据数据的协议格式,分解出各个参数项和值,完成设备数据项与采集子系统内部数据项的对应,以及单位的转换等工作。

那么,基于这三个步骤,如何构建出支持各种设备、拓展性好的采集子系统呢?
首先,不必区分设备的种类和型号,采用面向连接的思想,所有设备一视同仁,根据连接类型,进行数据的获取。
其次,针对多个设备,采用“通道”的概念,一个通道对应一个设备,每个通道独立运行,从而实现多个设备的并发采集,互不干扰。
最后,针对繁多的设备参数项和单位,采集子系统内置各个参数项的字段,以及标准的单位量纲。在根据特定格式解析出设备的参数项和数值之后,进行设备参数项与采集子系统内置数据项的一一对应,并进行设备单位与标准单位的转换。各个设备的参数项和单位是不同的,在于采集子系统进行对应之后,便形成了统一的参数和单位,从而支持不同设备的统一采集。

大致的处理思路有了,还有一个重要的问题需要解决:不同的设备,其数据的协议格式是不相同的,采集子系统在解析数据的时候,如何应对众多的协议格式?采集子系统采取的方式是标准协议+自定义协议区别对待,使用统一的框架来支持标准协议,使用拓展的采集驱动程序dll来支持非标准的协议。例如:很多设备支持石油井场的WITS标准协议,采集子系统框架实现了WITS协议的解析,就能轻松的解决所有标准WITS协议的设备的数据采集;还有很多种设备的数据协议格式是自定义的,最常见的就是把数据写入文件的设备了。文件里的内容格式千奇百怪,采集框架是无法内置的,这时就需要开发独立的针对该设备的采集驱动程序,以动态链接库dll的形式,加载进入采集子系统中,从而完成自定义类型的设备的数据采集。采用这种方式,采集子系统就具备了很强的拓展性,即使遇到新设备,也能在不改动采集子系统框架的基础上,完成该设备的采集。

通过上述思想,便可以初步构建出一个物联网平台的采集子系统。物联网平台的基础工作完成,还需要将采集的数据传输到后方,后方进行存储和深化应用,方能体现出物联网的价值。我们将进一步阐述如何构建物联网平台的另一个重要的“幕后”子系统—传输子系统,敬请关注。

发表评论