基于双线以太网的Modbus TCP-MQTT 协议转换网关设计*

2023-12-25 09:00于会群彭道刚孙浩益
电子技术应用 2023年12期
关键词:双线网关以太网

马 涛,于会群,彭道刚,孙浩益

(上海电力大学 自动化工程学院,上海 200090)

0 引言

工业4.0 的提出和工业互联网的发展,加速推进了智能制造行业和传统工业等主流行业的发展[1],工业以太网自IEEE802.3 以太网电缆规范发布以来,市场上存在多种工业以太网协议,如Modbus/TCP、Ethernet/IP、PROFINET 等[2-3]。双线以太网相比于标准以太网不仅可以满足在数据传输速率的要求,而且在布线成本和空间容量上有着巨大优势。在某种意义上可以将双线以太网当作标准以太网的补充和完善,可以根据不同的场景使用或结合不同以太网技术,两者相辅相成[4]。

双线以太网目前主要应用在汽车工业领域[5],从2022 年开始双线以太网将逐渐应用在流程工业,2025 年将应用在铁道行业、智能机器人、工业自动化领域,并于2028 年应用在楼宇自动化中。由此来看,双线以太网的发展能在特定的方面替代传统的以太网技术,还有更多的价值能够被挖掘。随着工业技术发展,工业现场中需要使用长距离数据传输的通信协议规范,因此行业内推出一种专门为工业通信的通信协议规范,遵循IEEE802.3cg 10BASE-T1L 通信标准,极限通信距离为1 000 m,且通信带宽为10 Mb/s[5]。

从双线以太网发展速度来看,未来配备双线以太网的远程I/O 设备将会在工业领域大规模使用[6]。但是双线以太网接入远程I/O 设备在性能上能否完全满足工业领域的需求还有待测试和验证。交换机、路由器和网关等设备在短时间内不会被设计满足双线以太网接口接入,仍然维持标准以太网接口设计接入。为了满足远程I/O 设备在工业领域使用和用户侧的需求,需要一款支持双线以太网的边缘终端设备接入的网关进行转换。协议转换网关的出现解决了在工业物联网万物互联背景下设备互联互通的问题,还能将数据上传到云平台供大数据分析使用[7]。

本文从设计双线以太网网关目的出发,首先介绍双线以太网网关的整体框架,再从使用硬件和设计软件层面搭建Modbus TCP 协议转换为MQTT 协议的网关框架,最后搭建测试环境测试双线以太网网关的可行性。在测试过程中,首先使用iPerf[8]软件测试双线以太网网关的接口性能,保证其可以使用Modbus TCP 协议正常传输数据,并对双线以太网网口在不同带宽和长度的条件下进行性能评估,其次在双线以太网网关上部署EdgeX Foundry 平台实现边缘侧的管理功能,最后对双线以太网网关基础功能和协议转换功能进行软件测试。

1 系统框架概述

本文设计的双线以太网协议转换网关,主要是将Modbus TCP 协议转换为MQTT 协议,把边缘终端采集到的数据上传至阿里云物联网平台,同时在网关上部署EdgeX Foundry 框架。双线以太网网关作为Modbus TCP 协议的客户端,远程I/O 设备作为Modbus TCP 的服务端,并且实时传输来自传感器采集的数据,双线以太网网关的用户端与服务端建立连接,才能读取远程I/O设备服务端的数据。双线以太网网关接收到数据后,对数据进行保存和发送。系统框架如图1 所示。

图1 整体系统框架

双线以太网网关的核心控制器内核芯片为Cortext-A7。Modbus TCP 的端口物理层通信使用双线以太网技术,Modbus TCP 协议帧的传输介质使用单对双绞线,可以实现标准以太网的接口PHY 和双线以太网的接口PHY 之间的连续无缝切换,MQTT 协议接口和Modbus TCP 协议接口的连接采用双线以太网PHY 芯片设计。PHY 芯片采用简化媒体独立接口(Reduced Media Independent Interface,RMII)方式与主控制器之间进行连接,当PHY 芯片切换时其所对应的内核驱动也会根据PHY芯片使用类型自动切换,并且可以接收支持双线以太网接口或者标准以太网接口的边缘终端设备传感器数据。RMII 主要用于传输以太网包,在使用以太网传输的PHY 芯片中需要做编码和解码、串并转换等相关步骤才能够在双绞线和光纤上进行数据传输,其帧格式遵循IEEE802.3、IEEE802.3u、IEEE802.1q[9]。

远程I/O 设备读取8 路传感器模拟量信号并存储在寄存器中,在初始状态下,双线以太网网关不主动对外发送数据。数据通信采用Modbus TCP 协议,将双线以太网网关作为客户端。双线以太网网关的数据来源是远程I/O 设备通过Modbus TCP 协议所读取的边缘终端传感器设备采集的数据,将远程I/O 设备设计成Modbus TCP 协议服务端。双线以太网网关要根据服务端所存储数据的寄存器种类和数据帧格式读取相应的寄存器数据。

2 双线以太网网关系统

2.1 双线以太网网关使用硬件

双线以太网网关网络通信接口配有双线以太网PHY 接口和标准以太网PHY 接口。双线以太网的PHY接口原理图如图2 所示,在传输数据时使用一对双绞线进行数据传输,主要用于接收双线以太网接口的远程I/O 设备数据。双线以太网网关也能够兼容标准以太网PHY 接口的远程I/O 设备。标准以太网的PHY 接口原理图如图3 所示。

图2 双线以太网的PHY 接口原理图

图3 标准以太网的PHY 接口原理图

双线以太网网关中,双线以太网PHY 接口和标准以太网PHY 接口通过RMII 接口连接到内核主控制器芯片Cortex-A7 的媒体介入控制层(Media Access Control,MAC)。要实现网络通信需要PHY 和MAC 两个部分,PHY 芯片的功能主要是将外部的模拟电气信号进行解码,再通过RMII 接口发送至内核主控制器芯片的MAC外设[6]。

PHY 芯片需要在对内部寄存器进行配置之后才能进行数据传输,也需要管理数据输入输出(Management Data Input/Output,MDIO)控制接口[10]。双线以太网网关与远程I/O 设备之间数据交互需要通过RMII 接口和MIDO 接口之间的相互配合才能够完成。

2.2 双线以太网网关系统的软件设计

双线以太网网关的软件主要实现的功能包括接收远程I/O 设备的传感器数据和数据上传功能、通过MQTT 协议转发数据至阿里云平台、部署EdgeX Foundry 实现边缘侧管理。

首先远程I/O 设备和双线以太网网关建立连接。双线以太网网关通过Modbus TCP 协议接收远程I/O 设备上的数据,数据也会持久化保存在在EdgeX Foundry 平台的数据库,通过Modbus TCP 协议接口到MQTT 协议云物联网接口进行转发。双线以太网网关软件工作流程图如图4 所示。

图4 双线以太网网关软件功能流程图

双线以太网网关软件利用Linux 操作系统的多线程运行优势实现Modbus TCP 通信和MQTT 通信,以及部署和运行EdgeX Foundry 框架。双线以太网网关作为Modbus TCP 客户端,远程I/O 设备作为Modbus TCP 服务端[11],由双线以太网网关首先发起对远程I/O 设备的连接请求,连接Modbus TCP 服务端则需要配置对应的IP 地址和端口号。在双线以太网网关程序启动后,只有服务端和客户端连接成功之后才可以顺利进行数据传输等操作。

EdgeX Foundry 是开源中立的边缘计算微服务框架,用于统一工业物联网边缘计算解决方案的生态系统[12]。EdgeX Foundry 有4 个设备服务负责采集数据及控制设备功能,如图5 所示。核心服务负责数据的本地存储分析和转发,以及控制命令下发。导出服务负责上传数据到云端或第三方信息系统,以及接收控制命令转发给核心服务。支持服务负责日志记录、任务调度、数据清理、规则引擎和告警通知。设备服务负责连接边缘端的传感器并获取数据。

图5 EdgeX Foundry 功能框架

MQTT 是针对移动终端设备TCP/IP 的发布/订阅机制的轻量级跨平台消息传输协议,可以连接大量的远程传感器和控制设备,屏蔽消息传输的负载内容,可用于传输任意类型的数据。MQTT 是二进制的协议,传输开销小,降低了网络流量,而且提供3 种消息传递服务质量,保证了消息传输的可靠性。MQTT 协议能够解决通信安全性、带宽利用率低、适应移动互联网的问题[13]。

阿里云物联网平台是一个集成设备管理、数据安全通信和消息订阅等能力的一体化平台。它能连接大量设备,还提供相应的云端应用程序编程接口(Application Programming Interface,API),服务端可以通过调用云端API 将指令下发至设备端,实现远程控制。阿里云物联网平台工作原理如图6 所示。在双线以太网网关与云物联网平台建立连接的过程中,要初始化连接线程中的各种设备信息,其中包括MQTT 客户端、登录软件开发工具包(Software Development Kit,SDK)、三元组、服务器地址和端口[14]。云物联网平台初始化的三元组包括产品密钥、设备名称和设备证书,三元组的主要作用是充当双线以太网网关连接云物联网平台的相关凭证。在双线以太网网关连接云物联网平台之前需要配置正确的三元组才能够正常连接到云物联网平台产品所对应的设备,再进入数据的循环转发流程,其中转发的数据来源于Modbus TCP 客户端接收到服务端的本地缓存数据。

图6 阿里云物联网平台工作原理

3 系统测试验证

为了将新技术有效地应用于实际,对双线以太网网关的数据接收与发送能力进行测试。双线以太网网关使用控制器Cortex-A7 的内核,运行Linux 系统设计双线以太网的示范性应用平台,部署并运行EdgeX Foundry边缘计算框架。

3.1 系统软件测试

首先使用iPerf 软件对双线以太网网关的数据接收与发送能力进行测试,iPerf 是一款开源、基于TCP/IP 协议和UDP/IP 协议的网络性能测试工具,运行于ARMLinux 系统、Linux 系统和Windows 系统等多个系统。它能够根据需要调整参数特征从而精准地实现对平均传输带宽、分时传输信息、网络抖动延迟、数据包丢失率的统计报告,依照统计报告的数据分析判断网络性能,监测网络带宽利用率[8]。然后测试双线以太网网口带宽从1 Mb/s 递增至10 Mb/s 的数据接收和发送能力,最后再测试不同长度下双线以太网网口的带宽。

模拟边缘终端向双线以太网网关发送数据的测试软件采用Modbus Slave 软件,它是一个模拟Modbus 协议从机的上位机软件,主要用于模拟测试跟其他主机设备通信的过程。而双线以太网网关向云服务器的发布和订阅则选择Mosquitto 作为双线以太网网关MQTT 的消息服务器,它是一款开源的消息代理软件,完整地实现了MQTT 协议中的各项功能,并且可以在Linux 系统中编译运行。

3.2 系统测试结果分析

3.2.1 双线以太网网关整体测试框架

双线以太网网关理论上采用10 Mb/s 传输速率对数据进行接收和转发,但是在实际应用运行中,传输速率不一定能够达到10 Mb/s。因此在TCP/IP 协议下对双线以太网网关的网口进行带宽测试,并对数据的实际接收和转发能力进行评估。整个测试框架的模型图如图7 所示,其中TI 双线以太网模块负责把双线以太网转换成标准以太网再用RJ-45 连接到PC。

3.2.2 双线以太网网口测试和评估

为了测试验证双线以太网网关接口的数据转发能力和转发速率,使用iPerf 对双线以太网网口进行数据转发测试。在UDP/IP 协议下,记录双线以太网网口发送数据的能力,实验结果如图8 所示。实验结果表明双线以太网网口的数据转发能力和转发速率达到理论上的要求。

图8 双线以太网发送带宽

为了测试双线以太网网口在不同带宽下的数据发送和接受能力,通过配置实验中的格式命令进行试验并且记录带宽从1 Mb/s 递增至10 Mb/s 的双线以太网网口数据接收和发送能力,结果如表1 所示。双线以太网网关的网口的带宽在理论值10 Mb/s 时,双线以太网传输速率基本在9.5 Mb/s,实验结果表明双线以太网网关能够通过双线以太网向外发送数据,并且能够达到理论数据传输速率。

表1 双线以太网传输带宽

为了满足实际工业现场环境的需求,测试双线以太网长距离的数据传输下带宽变化。结果如表2 所示。测试结果表明,100 m 的双线以太网网口带宽基本保持在9.5 Mb/s 左右,且无丢包,达到标准以太网传输速率的要求和工业现场的使用需求。

表2 不同长度双线以太网网口带宽测试

3.2.3 双线以太网网关EdgeX Foundry 测试

在PC 上使用Modbus slave 软件模拟边缘终端传感器向双线以太网网关传输数据。EdgeX Foundry 需要通过Docker 虚拟化容器技术在双线以太网网关上部署相关的功能和微服务[15]。本次测试所部署的设备微服务为device-modbus、device-mqtt、device-random、devicerest。设备微服务框架如图9 所示。

图9 设备微服务框架图

其中device-modbus 微服务负责接收远程I/O 的数据和下达指令,通过Modbus TCP 协议连接远程I/O 设备,而device-modbus 微服务将远程I/O 设备传递的数据转换成EdgeX 数据结构,通过REST-Event 将数据发送到核心服务层中并持久化存储。规则引擎接收到数据之后进行边缘计算,核心指令微服务将命令通过设备微服务实现远程I/O 设备的控制。

测试EdgeX Foundry 平台通过device-modbus 微服务连接远程I/O 后数据发送的丢包率和延迟性。设置测试次数为30 次,结果如图10 所示,实验表明,所部署的EdgeX Foundry 平台能够满足数据的传输,平均时延为3.73 ms,并且没有出现丢包的情况,满足工业上丢包率和延迟性的使用需求。

图10 device-modbus 延迟时间测试

3.2.4 双线以太网网关发布与订阅测试

为了验证双线以太网网关系统将Modbus TCP 协议转换为MQTT 协议并且能够将数据转发至阿里云物联网平台的能力,在阿里云物联网平台进行产品和设备创建,搭建数据接收环境,实现阿里云平台订阅和发布功能。实验结果表明,本文设计的双线以太网网关能够成功与阿里云平台实现双向通信。

边缘终端远程IO 设备通过Modbus TCP 协议将数据发送给双线以太网网关,然后将数据打包成JSON 格式,如图11 所示,再通过MQTT 协议采用二进制格式发送至阿里云物联网平台。如图12 所示,云平台订阅到双线以太网网关发布的消息之后,会在界面上显示出当前数据量。

图11 双线以太网网关发布消息到阿里云

为了测试双线以太网网关的订阅阿里云能力,在阿里云物联网平台的在线调试功能中设置对应topic,并将开关量设置为1,这会使得双线以太网网关上的开关控制器处于打开状态。如图13 所示,双线以太网网关成功订阅了阿里云物联网平台发布的topic,其中开关状态的消息被设置为“打开开关”。实验结果表明,双线以太网网关系统具备良好的订阅阿里云能力,并可以正确地响应阿里云物联网平台发布的消息,实现了双向通信功能。

图13 双线以太网网关订阅阿里云topic

4 结论

本文首先设计了双线以太网网关系统的整体框架,然后从硬件、软件两个方面设计了能够将Modbus TCP协议转换为MQTT 协议的双线以太网网关。最后通过搭建测试平台并部署EdgeX Foundry 平台验证了双线以太网网关传输数据和协议转换能力。结果表明,与标准以太网相比,双线以太网网口在不同带宽和长度的情况下能保证理论的传输速率,所设计的双线以太网网关能达到工业现场环境的使用需求,并且能够正常接收Modbus TCP 数据并实现MQTT 通信。

本文的研究局限在实际的硬件和软件开发,缺乏对功能多样性和安全性的考量,并且在理论性上的研究不够深入。在后续的研发过程中,应该考虑引入密钥机制以加强安全性,并完善双线以太网网关的功能和理论基础,进一步完善双线以太网网关。

猜你喜欢
双线网关以太网
中老铁路双线区段送电成功
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
双线自动闭塞轨道电路故障时发车进路准备的探讨
谈实时以太网EtherCAT技术在变电站自动化中的应用
双线模式下概念教学的探讨
LTE Small Cell网关及虚拟网关技术研究
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用
应对气候变化需要打通“网关”
高职动漫专业双线教学模式的构建与实践