CSDN物联网合作开发
译者:余章琪
物联网智囊团 重新整理正式发布
—— 【编者按】——
嘉兴市鄞州区睿智城建工程项目工程建设应用领域事例简述。
嘉兴市鄞州区睿智城建工程项目工程建设文本主要包括水环境环境治理公共设施监视、城建重要信息天然资源服务中心、城建综合性市场监管网络平台(监视监视、筑堤监督管理、应急指挥、综合性服务项目、重大决策支撑力及软件系统合作开发)、城建专题讲座应用领域(主要包括抗旱、节能环保、排洪)等,市场监管管理体系如图1所示。
图1 睿智城建市场监管管理体系
2技术架构图2展示了基于物联网管理体系结构而设计的宁波城建分层架构模型。按照物联网管理体系结构,我们将宁波睿智城建架构抽象为4个层:感知层、网络层、网络平台层、应用领域层。
图2 宁波城建分层架构模型
3关键设计重大决策任何架构和设计重大决策,最终都是解决业务问题的重大关键。宁波睿智城建合作开发和实施过程中面临着如下的技术挑战:
“物”的多样性和差异性。宁波城建的监视对象主要包括:闸门、泵站、排海管网、水质检测站等。监视指标涉及PH值、COD、流量等。监视数据来自于不同的工业传感器、自动控制系统、智能终端设备、电子标签,它们运行于不同类型的操作系统或者微控制器上,使用不同的数据协议,如Modbus、DNP3、DL101、OPC等。
“物”所处的网络环境多样性。物联网设备通过不同的方式接入到骨干传输网络中,比如RFID、WIFI、蓝牙等。
物联网应用领域层协议的多样性。在宁波城建工程项目中,我们采用的协议有MQTT、HTTP(REST)、WebSocket。
数据采集、传输和处理的实时性。在应急响应、实时监视方面,对数据以及系统响应的实时性有较高的要求。
海量数据的实时处理和存储、分析。
除此之外,各单位都存在一些已建或在建的系统,数据孤岛现象严重,难以互连互通。
图3 睿智城建SCADA系统的逻辑架构
那么,我们是如何解决和应对这诸多挑战的呢?接下来将重点介绍4项关键技术。它们是:
物联网网关——解决众多传感设备的数据采集和处理问题;
海量数据存储——解决物联网传感器产生的海量数据存储问题;
实时通信——解决数据通信的实时性问题,从“感知层”到“展示层”的上行通信,以及从“展示层”到“感知层”的下行通信;
数据交换与共享——解决不同单位和系统间数据交换与共享的问题。
物联网网关
宁波睿智城建工程项目的各类监视设备主要是工业自动化系统的传感器,如水质PH值、COD等的检测、流量计、水位计等。Modbus协议是城建水利工业传感协议的事实标准,此外,OPC协议应用领域也较为广泛。虽然是标准协议,但由于各单位已经存在一些原有的自动化监视系统,设备来自不同的厂家,系统也不是一个合作开发商提供的,所以对Modbus协议的实现方式不完全一致,增加了系统合作开发和软件系统的难度和工作量。
针对此类共性需求,工程项目中我们自主研发了物联网网关产品。物联网网关通俗的讲就是一个通用的数据采集和通信网关。它内置了对主流数据协议的支持,并且提供自定义插件来实现动态扩展,即对于非内置支持的协议,可支持协议的二次定制合作开发。合作开发人员只需要继承DataSource基类,实现特定的override方法,即可迅速完成一个新“数据源”程序的合作开发。然后将动态链接库(DLL)通过管理工具正式发布到物联网网关服务器,即可实现与特定类型设备和传感器的通信,如图4。
图4 物联网网关工作原理示意图
海量数据存储
宁波睿智城建工程项目一期接入了诸多的监视厂、站、节点等,不同类型监视指标的采集频率也不完全相同。根据统计,所有节点一天上报的监视数据约为4.32亿条,1年下来就是1500亿条记录,约7.2TB。
基于以上的容量规划,经过技术调研和可行性验证,我们最终选择采用MongoDB数据库作为实时数据的持久化存储。
MongoDB实时监视数据集合的Schema如下:
Point_data_real {
Code string, // 测点代码
Value double, // 监视值
Time date, // 采集时间
Category string,
Site string
},
Attributes { // 扩展属性
Quality bool,
Valid bool,
Event_num int
}
}
经过测试分析,我们总结了MongoDB数据库性能最佳实践,当然,这是基于我们自己的测试数据得出的,如表1所示仅供参考。
表1 MongoDB数据库性能最佳实践
这里值得注意的是,我们的性能测试和评估是在单台服务项目器的情况下完成的,因此,在实际生产部署环境下,建议采用复制集加分片集群的模式。
图5说明如何在最佳性能和最大数据可靠性之间取得平衡。
图5 最佳性能和最大数据可靠性的平衡
实时通信
物联网应用领域从传感设备的数据采集、处理到存储、传输、分析、展示,中间要经过很多的环节,除了程序运行处理的时间开销,还应考虑网络传输的延时,即用户对系统实时性的要求。除此之外,人机交互的模式对系统可伸缩性的影响也不容忽视——当新的监视数据上报到服务项目器时,是主动推送至监视系统的用户界面,还是让用户发送新的数据请求然后将结果返回给用户?推送动作的触发是采用数据库轮询模式,还是基于事件通知?这些都会影响到最终的技术选型。
表2是对相关技术的简单对比。
表2 通信技术对比
最终,我们选择了HTML5 WebSocket作为从物联网网关到监视系统用户界面的实时数据通信机制。主要评估指标主要包括:实时性、系统可伸缩性、技术复杂度、浏览器兼容性、标准性与开放性、用户体验。
数据交换与共享
如前文所述,由于政府部门和单位间的“数据孤岛”现象严重而导致难以实现系统间互连互通,因此,迫切需要一种数据交换与共享的解决方案。经过市场调研之后,我们最终自己合作开发了一个轻量级的数据交换与共享服务项目器程序,来满足宁波睿智城建的数据交换需求,如图6。
图6 数据交换与共享服务项目工作原理
数据提供者程序和数据接受者程序可以分别部署在不同的网段,不同的服务项目器上,只要两台服务项目器之间存在可以连通的网络即可。数据发送方进程和数据接收方进程分别具有本方数据库的访问权限,而无需知道对方数据库。
数据交换配置重要信息,用来描述源数据库和目标数据库的的标识、表及字段映射关系。
一个数据提供者可以向多个接收者发送数据,一个数据接收者也可以从多个提供者接收数据。
说到这里,有人可能会问:为什么不直接采用数据库层面的DTS来实现数据复制呢?简单的说,DTS也能在一定场景下适用,但只能视具体工程项目情况而定,而且必须2个数据库间能直接互连,而这在宁波睿智城建工程项目中基本是不可行的。
4后记最后跟大家分享几点心得:
多了解工程项目相关的知识。像实施宁波睿智城建工程项目,需要了解工业传感器、PLC编程、嵌入式系统和编程、网络通信、服务项目器端合作开发、大数据相关技术、GIS、数据可视化分析和展示等知识。
架构设计需谨慎。在技术落地和工程项目实施的过程中,要不断优化和演进架构设计,并且防止设计的退化。
对物联网应用领域工程项目的实施来说,很大一部分工作量在于系统软件系统和设备联调。使用实时数据模拟程序、可视化数据分析等工具能够将整个工程项目进行合理划分和分解,也有利于并行合作开发,加快进度,便于系统软件系统。
![物联网应用案例:镇海智慧水务10 物联网应用案例:镇海智慧水务](https://mmbiz.qpic.cn/mmbiz_png/fgnkxfGnnkQHrbiaR05ibWjdTib5rVzbZRE7f8VcgckIV4tiaVMvquMYiaQkJj2VfdGuO34ZTGqIqqjzMkDfEsbx9TA/640.png?wxfrom=5&wx_lazy=1&wx_co=1)
译者:余章琪,就职于飞利信科技股份有限公司,担任物联网网络平台架构师,拥有18年编程经验。2014年至2016年参与了宁波睿智城建工程项目从解决方案设计到最终实施完成的全过程。目前致力于物联网云网络平台的规划与设计。
往期热文(点击文章标题即可直接阅读):
《库卡、ABB、发那科、安川,4大工业机器人巨擘早已在物联网领域屯兵养马》
《【重磅】物联网产业全景图谱报告,首开国内IoT产业二维视角全景图之先河》
《一幅漫画告诉你:除了WiFi,蓝牙,最近火爆的NB-IoT能干嘛?》
《一幅漫画告诉你:NB-IoT背后,还有一个大家都在说的LoRa是什么?》