随着Modbus TCP和Modbus RTU两种协议在工业现场设备的普及,要实现这两种协议互转的需求日益增加,GZCOM-NET可以实现该转换功能,本文将详细介绍转换原理及使用。
原理概述
1. Modbus RTU/TCP协议简介
Modbus通信协议具有多个变种,其中最著名的是Modbus RTU、Modbus ASCII和Modbus TCP三种。在工业现场一般都是采用Modbus RTU协议。与ModbusRTU协议相比较,ModbusTCP协议则是在RTU协议上加一个MBAP报文头,并且由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,两者帧格式差异如图1所示。
图1
1.1 ModbusRTU
1.2Modbus TCP
- Modbus TCP数据帧(ADU)由MBAP+PDU组成,物理层为以太网接口;
- MBAP:报文头,长度7个字节。
1.3Modbus RTU/TCP共同点
- Modbus TCP和Modbus RTU数据帧中的PDU部分是相同的;
- PDU: 协议数据单元(Protocol Data Unit),由功能码+数据组成。功能码是一个字节,数据长度不定,由具体功能码的具体功能决定。
2. Modbus RTU转Modbus TCP
Modbus RTU数据帧转为Modbus TCP数据帧过程为取出协议数据单元(PDU),并且加入报文头部(MBAP),将附加地址对应到报文头部的单元标识符,如图2所示。
图2
- 增加了报文头部,并且去掉了附加地址和差错校验;
- 事务处理标识:可以理解为报文的序列号,一般每次通信后就要加1以区别不同的通信数据报文,由客户端生成,应答时复制该值;
- 协议标识符:表示Modbus TCP协议,由客户端生成,应答时复制该值;
- 长度:表示该字节后面的数据长度,单位为字节;
- 单元标识符:设备地址,由客户端生成,应答时复制该值。
3. Modbus TCP转Modbus RTU
Modbus TCP数据帧转为Modbus RTU数据帧过程为取出协议数据单元(PDU),并且加入附加地址和差错校验,将报文头部的单元标识符对应到附加地址,如图3所示。
图3
- 单元标识符作为附加地址;
- 增加差错校验。
网关实现转换
1. Modbus RTU Master(RS485/RS232) 转 Modbus TCP Slave
该转换可实现用户终端作为Modbus TCP从机,数据采集中心作为Modbus RTU主机。网关实现Modbus RTU和Modbus TCP两种数据的转换,使用RS485/RS232接口与Modbus RTU主站通信,使用TCP Client与Modbus TCP从站通信,如图4所示。
图4
1.1 网关协议转换配置
以RS485为例,打开网关网页左边栏,选择【协议转换】,在转换选择页面里选择【Modbus RTU Master(RS485) 转 Modbus TCP Slave】,然后点击【保存】,如图5所示。
图5
1.2 网关TCP Client配置
打开网关网页左边栏,选择【网络配置】,在网络配置面里选择【TCP/UDP Client】,配置客户端参数,然后点击【保存】,如图6所示。
图6
1.3 RS232/RS485配置
打开网关网页左边栏,选择【RS232/RS485配置】,在网络配置面里选择【RS485】,配置串口参数,然后点击【保存】,如图7所示。
图7
1.4 模拟主/从机配置
用PC打开Modbus模拟软件,创建Modbus RTU主机和Modbus TCP从机,如图8所示。
图8
1.5 结果展示
Modbus RTU主机写入Modbus TCP从机的寄存器成功,并且读取Modbus TCP从机寄存器值成功,如图9所示。
图9
2. Modbus TCP Master 转 Modbus RTU Slave
该转换可实现传感器作为Modbus RTU从机,数据采集中心作为Modbus TCP主机。GZCOM-NET作为Modbus TCP和Modbus RTU两种数据的转换网关,使用TCP Server与Modbus TCP主站通信,使用RS485或RS232接口与 Modbus RTU从站通信,如图10所示。
图10
2.1 网关协议转换配置
打开网关的网页配置页面左边栏,选择【协议转换】,在转换选择页面里选择【Modbus TCP Master转Modbus RTU Slave】,然后点击【保存】,如图11所示。
图11
2.2 网关TCP Server配置
打开网关网页左边栏,选择【网络配置】,在网络配置面里选择【TCP Server】,配置服务器参数,然后点击【保存】,如图12所示。
图12
2.3 RS232/RS485配置
RS232/RS485配置方法Modbus RTU Master(RS485/RS232) 转 Modbus TCP Slave一样。
2.4 模拟主/从机配置
用PC打开Modbus模拟软件,创建Modbus TCP主机和Modbus RTU从机,如图 13所示。
图13
2.5 结果展示
Modbus TCP主机写入Modbus RTU从机的寄存器成功,并且读取Modbus RTU从机寄存器值成功,如图14所示。
图14