物联网应用案例:镇海智慧水务项目管理(IT、互联网方向)

/ / 2018-07-16

90a70478ac0ff06331a0be82eb6e27b0.jpg

作者:张思鹏

福清师大创新学院 整理发布

转载请注明来源和出处

------   【导读】   ------

宁波市镇海区智慧水务项目建设应用案例详解。

u=4013248072,2845802324&fm=173&app=49&f=JPEG.jpg

1

项目简介

宁波市镇海区智慧水务项目建设内容包括水环境治理设施监测、水务信息资源中心、水务综合监管平台(监测监控、治水监督、应急指挥、综合服务、决策支撑及集成开发)、水务专题应用(包括防汛、环保、排水)等,监管体系如图1所示。

60807bac966e04807ea82989ccd961d4.jpg

图1 智慧水务监管体系

2

技术架构

图2展示了基于物联网体系结构而设计的镇海水务分层架构模型。按照物联网体系结构,我们将镇海智慧水务架构抽象为4个层:感知层、网络层、平台层、应用层。

77434b76396b2772976c28a0de75aeaf.jpg

图2 镇海水务分层架构模型

3

关键设计决策

任何架构和设计决策,最终都是解决业务问题的重大关键。镇海智慧水务开发和实施过程中面临着如下的技术挑战:

  1. “物”的多样性和差异性。镇海水务的监测对象包括:闸门、泵站、排海管网、水质检测站等。监测指标涉及PH值、COD、流量等。监测数据来自于不同的工业传感器、自动控制系统、智能终端设备、电子标签,它们运行于不同类型的操作系统或者微控制器上,使用不同的数据协议,如Modbus、DNP3、DL101、OPC等。

  2. “物”所处的网络环境多样性。物联网设备通过不同的方式接入到骨干传输网络中,比如RFID、WIFI、蓝牙等。

  3. 物联网应用层协议的多样性。在镇海水务项目中,我们采用的协议有MQTT、HTTP(REST)、WebSocket。

  4. 数据采集、传输和处理的实时性。在应急响应、实时监控方面,对数据以及系统响应的实时性有较高的要求。

  5. 海量数据的实时处理和存储、分析。

除此之外,各单位都存在一些已建或在建的系统,数据孤岛现象严重,难以互连互通。

d69add60ff69efb686a95a9a243e77cf.jpg

图3 智慧水务SCADA系统的逻辑架构

那么,我们是如何解决和应对这诸多挑战的呢?接下来将重点介绍4项关键技术。它们是:

  1. 物联网网关——解决众多传感设备的数据采集和处理问题;

  2. 海量数据存储——解决物联网传感器产生的海量数据存储问题;

  3. 实时通信——解决数据通信的实时性问题,从“感知层”到“展示层”的上行通信,以及从“展示层”到“感知层”的下行通信;

  4. 数据交换与共享——解决不同单位和系统间数据交换与共享的问题。

物联网网关

镇海智慧水务项目的各类监测设备主要是工业自动化系统的传感器,如水质PH值、COD等的检测、流量计、水位计等。Modbus协议是水务水利工业传感协议的事实标准,此外,OPC协议应用也较为广泛。虽然是标准协议,但由于各单位已经存在一些原有的自动化监控系统,设备来自不同的厂家,系统也不是一个开发商提供的,所以对Modbus协议的实现方式不完全一致,增加了系统开发和集成的难度和工作量。

针对此类共性需求,项目中我们自主研发了物联网网关产品。物联网网关通俗的讲就是一个通用的数据采集和通信网关。它内置了对主流数据协议的支持,并且提供自定义插件来实现动态扩展,即对于非内置支持的协议,可支持协议的二次定制开发。开发人员只需要继承DataSource基类,实现特定的override方法,即可迅速完成一个新“数据源”程序的开发。然后将动态链接库(DLL)通过管理工具发布到物联网网关服务器,即可实现与特定类型设备和传感器的通信,如图4。

5de04f11c56aa2f39c96700abe59a1cd.jpg

图4 物联网网关工作原理示意图

海量数据存储

镇海智慧水务项目一期接入了诸多的监测厂、站、节点等,不同类型监测指标的采集频率也不完全相同。根据统计,所有节点一天上报的监测数据约为4.32亿条,1年下来就是1500亿条记录,约7.2TB。

基于以上的容量规划,经过技术调研和可行性验证,我们最终选择采用MongoDB数据库作为实时数据的持久化存储。

MongoDB实时监测数据集合的Schema如下:

Point_data_real {

Code string,        // 测点代码

Value double,   // 监测值

Time date,  // 采集时间

Owner {     // 数据来源对象

Category string,

Site string

},

Attributes {    // 扩展属性

Quality bool,

Valid bool,

Event_num int

}

}

经过测试分析,我们总结了MongoDB数据库性能最佳实践,当然,这是基于我们自己的测试数据得出的,如表1所示仅供参考。

8d4d560dad1ca30ed1a18febaabea6e2.jpg

表1 MongoDB数据库性能最佳实践

这里值得注意的是,我们的性能测试和评估是在单台服务器的情况下完成的,因此,在实际生产部署环境下,建议采用复制集加分片集群的模式。

图5说明如何在最佳性能和最大数据可靠性之间取得平衡。

5893cbfe3c052e6a839012c66c093533.jpg

图5 最佳性能和最大数据可靠性的平衡

实时通信

物联网应用从传感设备的数据采集、处理到存储、传输、分析、展示,中间要经过很多的环节,除了程序运行处理的时间开销,还应考虑网络传输的延时,即用户对系统实时性的要求。除此之外,人机交互的模式对系统可伸缩性的影响也不容忽视——当新的监测数据上报到服务器时,是主动推送至监控系统的用户界面,还是让用户发送新的数据请求然后将结果返回给用户?推送动作的触发是采用数据库轮询模式,还是基于事件通知?这些都会影响到最终的技术选型。

表2是对相关技术的简单对比。

4da34c304ea2fc568a52998fa5ef08d2.jpg

表2 通信技术对比

最终,我们选择了HTML5 WebSocket作为从物联网网关到监控系统用户界面的实时数据通信机制。主要评估指标包括:实时性、系统可伸缩性、技术复杂度、浏览器兼容性、标准性与开放性、用户体验。

数据交换与共享

如前文所述,由于政府部门和单位间的“数据孤岛”现象严重而导致难以实现系统间互连互通,因此,迫切需要一种数据交换与共享的解决方案。经过市场调研之后,我们最终自己开发了一个轻量级的数据交换与共享服务器程序,来满足镇海智慧水务的数据交换需求,如图6。

4c2a8755333f8c793d87bdde53c09dd7.jpg

图6 数据交换与共享服务工作原理

数据提供者程序和数据接受者程序可以分别部署在不同的网段,不同的服务器上,只要两台服务器之间存在可以连通的网络即可。数据发送方进程和数据接收方进程分别具有本方数据库的访问权限,而无需知道对方数据库。

数据交换配置信息,用来描述源数据库和目标数据库的的标识、表及字段映射关系。

一个数据提供者可以向多个接收者发送数据,一个数据接收者也可以从多个提供者接收数据。

说到这里,有人可能会问:为什么不直接采用数据库层面的DTS来实现数据复制呢?简单的说,DTS也能在一定场景下适用,但只能视具体项目情况而定,而且必须2个数据库间能直接互连,而这在镇海智慧水务项目中基本是不可行的。

4

后记

最后跟大家分享几点心得:

多了解项目相关的知识。像实施镇海智慧水务项目,需要了解工业传感器、PLC编程、嵌入式系统和编程、网络通信、服务器端开发、大数据相关技术、GIS、数据可视化分析和展示等知识。

架构设计需谨慎。在技术落地和项目实施的过程中,要不断优化和演进架构设计,并且防止设计的退化。

对物联网应用项目的实施来说,很大一部分工作量在于系统集成和设备联调。使用实时数据模拟程序、可视化数据分析等工具能够将整个项目进行合理划分和分解,也有利于并行开发,加快进度,便于系统集成。

作者:张思鹏,担任福建师大创新学院数字城市产品顾问,泉舟时代科技创始人,5G平台升级架构师,优秀创业大学生,拥有3年编程经验,在校期间兼任多所高校外聘讲师。2017参与了福建智慧水利项目从解决方案设计到最终实施完成的全过程。目前致力于物联网云平台的规划与设计



公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇