基于Modbus与MQTT融合工业能耗网关系统设计
方案上,HTTP协议开发消息推送非常繁琐,无论是iOS(苹果)还是Android(安卓),如果采用“拉取”推送方式,则程序中信息的更新通知需要持续检查,获取消息时需给服务器发送拉取请求[10],信息无法直接通过服务器主动发送给用户,交互多次增加了移动资源开销[11]。MQTT还支持三个级别的QoS,无需自己写确认重传机制。此外,为保障通信安全,MQTT也会采用SSL/TLS,以提高数据的安全性。
5 系统硬件设计
系统硬件结构如图4所示。
图4 系统硬件结构图
该系统主要的核心处理器为TQ2416 ARM芯片,2416主频400 MHz,单位功耗比2440小,且CPU支持4个串口。
RS 485是一种通信接口,用以接收Modbus协议传输的数据。RS 485采用平衡发送和差分接收接口标准。发送端将电平信号转换成差分信号,经A,B两端通过双绞线传输,到接收端再将差分信号转换成电平信号。
4G模块采用SIM7100C模块,通过TCP/IP把数据上传到服务器或用来接收服务器数据。
5.1 系统软件设计
物联网关系统主流程:当物联网关MQTT与服务器建立连接后,网关订阅Web端或APP端发布的消息,通过JSON模块解析判断Modbus协议方式。协议地址的10万位为相应的功能码类型标志,判断采集或控制读取相对应寄存器地址或将数值写入相对应的寄存器地址。将采回数值与协议点封装JSON格式数据包通过MQTT发布函数将消息发送到客户端。系统软件流程如图5所示。
5.2 系统测试与分析
通过MQTT.fx模拟Web端或APP端发送和接收数据。通过Modbus Slave模拟一台工业能耗设备,设备参数用不同的协议点标识,如中央空调主电机用电量、冷疑器出水温度、蒸发器进水温度对应协议点为400001,400001,400003。协议地址以10万位为相应的功能码类型,标志为“4”表示数据采集功能,标志为“5”则表示控制功能。
5.2.1 MQTT.fx基本功能介绍
(1)按工具条的设置按钮进行本地测试,连接到本地服务器192.168.16.212。MQTT.fx链接配置如图7所示。
(2)点击下级菜单项 Subscribe,在下拉框中选择或输入自己希望的主题,比如系统使用/EOSLink004,通过按其右侧按钮Subscribe来订阅消息,点击下级菜单项 Publish,在下拉框中选择或者输入自己发布的主题,如/EOSLink004/5D52964D8081,再点击其右侧的按钮Publish发布主题消息。MQTT.fx功能板如图8所示。
5.2.2 Modbus Slave功能
Slave ID代表从设备ID,Address代表协议点起始地址为400000,Quantity代表协议点数量。Modbus Slave连接配置如图9所示。
5.2.3 数据采集具体测试流程
用MQTT.fx的Publish功能来仿真服务器向网关系统发送的消息,/EOSLink004/5D52964D8081是MQTT服务器订阅的主题,5D52964D8081是网关设备ID,400000~400031是协议点,需采集32个协议点的数据。MQTT.fx模拟服务器发送数据界面如图10所示。
用MQTT.fx的Subscribe功能来仿真服务器接收智能网关系统发送的消息:采集到400000~400031协议地址對应的数值,采用十六进制采集方式,协议地址40000对应的数值30以十六进制方式采集,把30转化成十进制,数值为48,与Modbus Slave协议地址400000中的数值对应。Modbus Slave模拟设备数据界面如图11所示。
5.2.4 反向控制具体测试流程
用MQTT.fx的Publish功能来仿真服务器向智能网关系统发送的消息:/EOSLink004/5D52964D8081为消息主题,控制网关型号为5D52964D8081的设备,把协议点0地址的数值设置为56,之后将56转化成十六进制数值,为38。MQTT.fx发送数据界面如图12所示。采用功能10,组合协议点为500000。
5.2.5 关键技术和重要指标
(1)硬件层采集:具有RS 485接口和以太网接口,既适用于旧设备的485接口也适用于现代工业的以太网接口,使用SIM7100C 4G无线模块进行TCP/IP数据传输,提高传输距离以及系统的可移动性。
(2)传输格式:系统采用JSON格式进行数据交换,在数据格式、占用空间、解析速度方面都具备较好的优势,提高了传输速度和质量。
(3)软件设计:采用Modbus与MQTT融合的方式,数据采集和数据传输使用不同线程,以提高采集和传输效率。采用线程池技术,支持多台设备同时采集。MQTT替换传统HTTP协议,具有低功耗、低流量、简单高效等特点。
(4)智能化程度:系统具备远距离反向控制功能,通过Web端或APP端发送控制指令,可以开启、关闭工业设备或设定数值,从而实现智能化控制。
6 结 语
本文设计了一款新型Modbus与MQTT融合的工业能耗网关系统,可解决传统数据采集设备数量少、距离短、实时性差、效率低、通用性差等问题。在设备接口方面,不仅适用于传统工业的RS 485接口,也可以用网口采集数据。本系统不仅适用于工业能耗设备远程监控,还可以应用于农业、商业、校园设备数据远程监控。同时还能通过终端设备实现远程智能控制。经过测试系统与服务器链接验证,系统运行正常、稳定。
参 考 文 献
[1]董朝阳,赵俊华,文福拴,等.从智能电网到能源互联网:基本概念与研究框架[J].电力系统自动化,2014,38(15):1-11.
[2] CHANG M,ZHANG T.Fog and IoT:an overview of research opportunities[J].IEEE Internet of things journal,2016,3(6):854-864.
[3]范学佳,赵斌,衣淑娟,等.基于 Modbus 的寒地水稻育秧环境智能监控系统[J].农机化研究,2016(2):201-204.
[4]张涛,黄强,毛磊雅,等.一个基于JSON的对象序列化算法[J].计算机工程与应用,2007,43(15):98-100.
[5]张沪寅,屈乾松,胡瑞芸.基于 JSON 的数据交换模型[J].计算机工程与设计,2015,36(12):3380-3384.
[6]姚丹,谢雪松,杨建军.基于 MQTT 协议的物联网通信系统的研究与实现[J].信息通信,2016(3):33-35.
[7] MALONE T,GRANT K,TURBAK F,et al.Intelligent information sharing systems comm.[J].ACM,1987,30(5):390-402.
[8]任亨.基于MQTT协议的消息推送服务器[J].计算机系统应用,2014,23(3):77-82.
[9]马跃,孙翱,贾军营,等.MQTT协议在移动互联网即时通信中的应用[J].计算机系统应用,2016,25(3):124-135
[10]刘军霞,熊选东,付建丹.基于发布/订阅的推模式服务调用[J].计算机系统应用,2012(12):196-199.
[11]钟良骥,桂学勤,廖海斌,等.基于 MQTT 的物联网平台设计与分析[J].郧阳师范高等专科学校学报,2014,34(6):52-55.