Modbus协议有两种不同的类型:基于串行链路的Modbus和基于TCP/IP的Modbus。
TCP/IP Modbus使用以太网来承载Modbus消息体,Modbus消息体可以作为应用层数据被封装在TCP/IP协议中来传输。
Modbus消息体结构可以分为两个部分。
MBAP | PDU | ||||
事务标识(2B) | 协议标识(2B) | 长度(2B) | 单元标识(1B) | 功能码(1B) | 数(nB)据 |
Modbus消息体格式
第一部分是Modbus应用协议头(MBAP),包括以下字段:
1.事务标志(两字节)。用于服务器和客户端消息的同步。
2.协议标志(两字节)。0表示使用的是Modbus协议,留作今后使用。
3.长度(一字节)。用来说明消息体类剩余字节数。
4.单元标志(一字节)。消息体被送往的从设备的地址。对于Modbus来说,从设备地址就是IP地址,因此单元标志被设置为0xFF。
Modbus消息体的第二部分是Modbus协议数据单元(PDU),它包括如下部分:
1.功能码(一字节)。表示当前Modbus数据包的功能。
2.功能数据(n字节)。功能码所需的数据,比如响应或者命令。