rtu_tcp模式的网络modbus
Tcp ModBus相对串口ModBus 相比,网络modbus规约无校验码 ,但是增加了MBAP报文头 。
MBAP:(Modbus Application Protocol) Modbus应用协议
事务处理标识 | 协议标识 | 长度 | 单元标识符 |
2字节 | 2字节 | 2字节 | 1字节 |
事务处理标识 :可以理解为报文的序列号,一般每次通信之后就要加1以区别不同的通信数据报文。
协议标识符 :00 00表示ModbusTCP协议。
长度 :表示接下来的数据长度,单位为字节。
单元标识符 :可以理解为设备地址。
所以rtu_tcp的客户端报文发送格式为
事务处理标识 | 协议标识 | 长度 | 单元标识符 | 功能码 | 寄存器起始位置 | 寄存器个数 |
2字节 | 2字节 | 2字节 | 1字节 | 1字节 | 2字节 | 2字节 |
00 00 | 00 00 | 00 06 | 设备地址 |
MBAP在服务端时,事务处理标识,协议标识符,单元标识符,会复制该值应答,长度会由服务端自动生成。
tcp客户端与modbus客户端
modbus客户端可以是tcp的服务端,modbus客户端,等待对侧的发起三次握手,默认端口是502,链路建立之后modbus客户端会发出要数据报文。
遥信的解析方式
遥信常见的两种解析方式
- 按位解析,一个寄存器2个字节,包含了16个遥信,此时注意字节内部的顺序,低到高,或者高到低
- 按寄存器解析(2个字节),一个寄存器包含了一个遥信
也有其他不常见的解析方式
- 按单字节解析,即一个字节作为一个遥信,与双点遥信类似;
- 按单字节枚举解析,即此字节不同的值对应不同的遥信状态;
- 按双字节枚举解析,也是字节不同的值对应不同的遥信状态;
遥测的解析方式
- 按2个字节解析,有符号整型
- 按2个字节解析,无符号整型
- 按4个字节解析,有符号整型
- 按4个字节解析,无符号整型
- 按4个字节解析,浮点数
遥控命令
功能码05固定:ff00 和0000
功能码06一般默认ffff和0000
plc地址与寄存器地址
寄存器PLC地址 | 寄存器协议地址 | 适用功能 (功能码) | 寄存器种类 | 读写状态 |
00001-09999 | 0000H-FFFFH | 01H 05H 0FH | 线圈状态 | 可读可写 |
10001-19999 | 0000H-FFFFH | 02H | 离散输入状态 | 可读 |
30001-39999 | 0000H-FFFFH | 04H | 输入寄存器 | 可读 |
40001-49999 | 0000H-FFFFH | 03H 06H 0FH | 保持寄存器 | 可读可写 |