APP下载

工业互联网通信协议Modbus与PowerLink比较与应用

2022-04-25钟朝勇

物联网技术 2022年4期
关键词:通信协议实时性主站

钟朝勇,胡 波

(宁波中国科学院信息技术应用研究院,浙江 宁波 315100)

0 引 言

随着智能终端的不断涌现,以及相关龙头企业在工业互联网领域不断发声,使得工业互联网的热度持续攀升,逐渐走入大众视野。工业互联网将工业制造、工业经济与互联网等新兴技术融合,形成智能化产业生态链,通过数字技术与工业相连接,为工业制造转型、数字化升级、信息化建设提供强有力的基础,为新型产业的孵化奠定基础。随着数据量的增长,信息复杂程度越来越高,为提高运营效率,选择合适的通信协议至关重要。本文首先对Modbus与PowerLink通信协议进行介绍,再针对其消息格式、数据传输特点及安全性进行对比,并分析它们各自所适用的工业互联网场景。

1 通信协议介绍

Modbus与PowerLink是目前应用比较广泛的开源实时通信协议,常用于工业电子设备之间的通信。

1.1 Modbus协议

Modbus协议是由Modicon于1979年发明的首款服务于工业生产的标准总线通信协议。该通信协议可扩展、开源,优点包括但不限于强大的适应性、友好的开源性、协议格式易懂等,在工业生产总线中具有举足轻重的作用。

Modbus协议采用主从通信模式(Master-Slaver),主机将消息帧发送给从机,从机收到消息后作出应答,返回应答帧,并通过串行协议进行封装。在通过Modbus网络传输数据时,Modbus PDU由主机构建。当前操作类型由PDU中的功能代码表示,数据字段指代执行该功能所需的参数。ADU通过主机在PDU上添加其他所需数据特征字段而形成,包含一个地址字段,表示从机地址,这使得从主机到从机的寻址更加容易。队列包含一个验证代码,用于验证消息内容的冗余性,用来保证数据传输的准确性。最后,在收到主机请求后,从机处理数据的同时反馈响应帧。响应帧中,ADU与PDU的信息格式与发送帧一致,数据字段涵盖了从机操作后的结果。若从机在Response或Request的过程中发生错误,会反馈异常报文。该异常报文包括异常功能码和其他异常码,为完成后续的处理,需要提供这部分异常码,便于主机识别异常。Modbus事务处理图如图1所示。

图1 Modbus事务处理图

1.2 PowerLink协议

PowerLink是在标准以太网协议IEEE802.3之上制定的Master-Slave运作方式的工业网络通信协议,其具有传输速率快、免费开源等特征,在CNC、机器人、城市交通等领域应用广泛。主站负责时间段的分配和从站的网络管理,还被称为管理节点(Management Node, MN)。从站将全过程的PowerLink通信周期称为同步通信阶段、异步通信阶段和空闲阶段。在同步通信阶段,主站使每个从站的高精度时钟同步,再基于网络配置polling从站。只有当从站接收到polling请求后,数据才能传输。PowerLink通信周期如图2所示。

图2 PowerLink通信周期

2 通信协议的实现

2.1 PowerLink协议的实现

PowerLink协议的实现方法有许多种,通过查阅相关文献得到以下几种实现方式。

(1)通过ZYNQ平台实现。将ZYNQ作为硬件平台基础,在平台上建立2个MicroBlaze软核,用以承载互相独立的2个PowerLink协议。通过双网络平台复用,达到PowerLink站点随意组合的效果,以完善网络结构、减少费用开支。可通过Wireshark软件接入网络进行测试,查看具体的网络运行情况。

(2)通过FPGA平台实现。采用C语言编程,在FPGA硬件平台上嵌入NIOS II软核CPU,并启用C代码所在区域;在PowerLink网络接口通过以太网控制芯片用作配置结点和受控结点的通信,以实现高性能网络化自动控制,保证PowerLink受控结点的实时性与确定性。

(3)通过VxWorks平台实现。VxWorks RTOS的价值在工业控制领域被愈发重视。在VxWorks网络协议栈的Data Link Layer与网络协议层中嵌入MUX层,实现4个功能函数。将PowerLink嵌入其中,并初始化创建网络内存池,利用muxbind命令与协议栈进行整合,调用相关函数对数据帧进行处理。

2.2 Modbus协议的实现

(1)Modbus/ASCII

当Modbus总线进行通信时,协议数据负载中每8 Byte转化为2个ASCII字符,字符传输时间在小于1 s的情况下不会产生误差。数据错误校验为纵向冗余校验(LRC)。

(2)Modbus/RTU

RTU模式下,信息帧每8 Byte拆成2个4 Byte十六进制的字符进行通信。Modbus/RTU通信采用循环冗余校验(Cyclic Redundancy Check, CRC)方式,主机向从机发送信息帧时,携带CRC码传输。当从机收到请求时,先消除传输信息中携带的CRC校验码,接着重新核算CRC校验码后与主机发送的CRC码比对,两者相同则代表信息传输正确。

(3)Modbus/TCP

Modbus/TCP协议通信通过连接建立,连接过程包括建立连接、进行通信及释放连接。Modbus/TCP协议以位于数据链路层的Modbus RTU串行链路协议为基础,物理层采用以太网接口,网络层采用IP协议,传输层采用TCP协议,无会话层和表示层。在应用层将特定的报文头添加到标准的Modbus RTU协议报文,然后插入TCP协议报文中,Modbus/TCP协议报文即可借助TCP/IP协议在以太网中传输。

3 协议对比

3.1 网络模型对比

现代网络采用分层结构体系,按照不同功能进行层次划分。国际化标准组织(ISO)在开放系统互联(OSI)参考模型中将网络系统体系划分为7层,见表1所列。

表1 ISO/OSI模型分层

Modbus串行链路协议位于OSI模型的第二层,即数据链路层,通过异步方式传输信息。在物理层中,Modbus串行链路协议可采用TIA/EIA-485或TIA/EIA-232等物理接口,如RS 485。串行链路的Modbus协议模型如图3所示。

图3 Modbus协议模型

PowerLink协议在3个分层上作了相应改动,包括物理层、数据链路层和应用层。PowerLink物理层基于标准以太网,遵循IEEE 802. 3快速以太网标准。PowerLink主要作用于数据链路层,以有效改善通信质量,提高通信速度。应用层依照CANopen标准制定。CANopen是应用层协议,提供统一的对外接口供其他应用使用,其他终端的应用能够通过该接口与应用程序通信。PowerLink协议模型如图4所示。

图4 PowerLink协议模型

3.2 协议帧格式对比

PowerLink数据帧嵌合在标准以太网数据信息中,与标准以太网一致,数据帧长度最长为1 518 Byte,最短为64 Byte。PowerLink数据帧结构如图5所示,其中0~13 Byte是标准Ethernet的帧头,+1~+4为CRC校验序列,14~Byte是PowerLink数据帧信息。

图5 PowerLink数据帧

相较于PowerLink,Modbus/TCP模式下的协议帧更为紧凑、简洁。为使报文能够在TCP/IP协议上传输,Modbus/TCP需要在Modbus/RTU串行链路上添加MBAP报文头。该报文头携带了长度信息,即使数据被分割传输也能够识别相应请求,且由于TCP/IP自身的优势,使得Modbus/TCP进行CRC校验便可保证其传输准确性。图6所示为Modbus/TCP的数据帧格式。

图6 Modbus/TCP数据帧格式

3.3 协议特性对比

PowerLink与Modbus均采用Master-Slave模式通信,不同的是,Modbus主站不仅可单独与从站进行信息传输,也能以广播方式和从站通信。在单独传输时,将返回一个Message作为回应。采用广播方式通信时,从设备无应答。PowerLink需要主站在同步阶段与其他各从站进行高精度时钟同步,依据主站配置进行轮询,在接收到请求后,做出应答,进行数据传输。PowerLink支持异步通信,可进行非实时性数据传输。

PowerLink协议具有以下特性:

(1)开放性:具有开源的协议代码,可在多种硬件平台上实现;

(2)实时性:在FPGA硬件平台上,最快通信循环周期小于 100 μs;

(3)抖动范围:网络抖动范围为50~70 ns;

(4)支持多种网络拓扑结构;

(5)支持PowerLink网络中各节点之间的交叉通信。

Modbus协议的特性包括如下几方面:

(1)标准、开放:使用者无需缴纳许可费,不会涉及知识产权问题,具有国家标准;

(2)协议产品成本低:Modbus协议携带有报文信息,支持多种电气API,信息传输能够使用的媒介多,购买方便;

(3)Modbus协议帧简单、紧凑、高效,易于用户理解使用,开发便捷。

4 协议的应用场景

工业通信协议活跃在工业、建筑、基础设施等领域,由于其开放性,使用范围还在不断扩张。

将Modbus协议作为通信协议,为Gateway添加监听功能,不仅能够对主站发送的数据信息进行监听,同时也能够接收由从站发出的响应数据。

Gateway监听过程:主站使用Modbus总线对收到的数据报文进行解析,获取主站Request信息,从站在响应由主站发送的数据报文后将其与主站信息进行关联,同时对所要监控的Modbus从站设备进行数据读写以及分析处理。

以PowerLink协议作为通信协议,网关到LAN接口的缓冲数据长度为lenP,通过后台程序LanReader()函数监听lenP数值的变化,一旦发现非零就通过函数将数据发送给远程主机;当远程主机将信息发送给PowerLink网络中某从站时,就将数据写入对应变量(对象字典中的某个对象),主站按照对象字典将数据发送到指定从站。

从上述举例可以看出,在网关实现的过程中,Modbus实现相比更简单,可以同时从主站发出请求与接收从站响应,这使得通信过程中的兼容性大大提高。PowerLink更注重实效性,通过缓冲数据的变化对请求作出响应。如果工业互联网需要灵活、实时性好的通信协议,那么Modbus是较好的选择。如果需要完成非实时性数据传输或异步传输,则选用PowerLink协议作为通信协议比较可靠。

5 协议性能测试案例

从王林浩等人智能断路器中Modbus/TCP协议的实时性测试研究中可以得出,当寄存器个数不同时,Modbus/TCP信息传输的时延比较小且变化不大,以此证明实时性这一特征为Modbus所拥有。图7为该研究中不同个数寄存器下测得的通信时延信息。

图7 不同个数寄存器下测得的通信时延信息

对于PowerLink的通信性能测试可从李骏杰等人对于PowerLink多客户端通信系统的设计中得出。将数据差为2的连续数据从主站发送给从站,在从站收到数据后再以数据差为1的连续数据返回主站。最后通过Wireshark进行数据验证,其中验证指标包括测试时间、传输时间、丢包率以及误码率。表2为测试结果。

表2 性能测试结果

由该测试结果可知,通过PowerLink协议进行多端通信非常稳定,丢包率为0,随着测试时间增长,误码率变高,但仍在可允许范围内,这对于数据精度要求较高的工业互联网通信具有较大帮助。

6 结 语

本文从目前应用比较广泛的工业互联网通信协议Modbus与PowerLink入手,首先,对其进行了简要介绍,再对其实现方式进行描述。接着,对两者的网络模型、协议帧结构、协议特性进行对比分析,通过特点差异来介绍他们适合的应用场景。最后,通过其他协议性能研究案例体现在不同环境和测试压力下2种通信协议性能的优劣。

猜你喜欢

通信协议实时性主站
基于规则实时性的端云动态分配方法研究
基于Z-Stack通信协议栈的红外地温采集电路设计
基于虚拟局域网的智能变电站通信网络实时性仿真
航空电子AFDX与AVB传输实时性抗干扰对比
基于OS2主站系统的海量数据共享技术研究
多表远程集抄主站系统
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
基于改进经济压差算法的主站AVC的研究
关口电能计量故障监测报警装置及主站研究