TCP和RTU协议非常类似,
MBAP Header长度共7个字节,分别为Transaction identifier(事务标识符),Protocol identifier(协议标识符),Length(长度),
Unitidentifier(单元标识符)组成,具体如下表所示:
+------------+---------+-----------------------------+----------------------+----------------------------+
| 字 段 | 长 度 | 描 述 | 客 户 端 | 服 务 端 |
+------------+---------+-----------------------------+----------------------+----------------------------+
| 事务标识符 | 2 Bytes | 标示一个MODBUS请求/响应事务 | 由客户端初始化 | 从接收到的请求数据帧中复制 |
+------------+---------+-----------------------------+----------------------+----------------------------+
| 协议标识符 | 2 Bytes | 0 = MDOBUS协议 | 由客户端初始化 | 从接收到的请求数据帧中复制 |
+------------+---------+-----------------------------+----------------------+----------------------------+
| 长 度 | 2 Bytes | 下列各项的字节数 | 由客户端初始化(请求) | 由服务端初始化(响应) |
+------------+---------+-----------------------------+----------------------+----------------------------+
| 单元标识符 | 1 Bytes | 标示一个已连接在串行线或 | 由客户端初始化 | 从接收到的请求数据帧中复制 |
| | | 其他总线的远程从站连接 | | |
+------------+---------+-----------------------------+----------------------+----------------------------+
图片出自:(Modbus_MODBUS_TCP_协议解析) http://wenku.baidu.com/link?url=dp3g5nnxecbcSoaPMS07zvk5aaWdSNZwVEnDD8AmSTXeUJww41mZBukTD69dCaiPw80V2WhhdNdgWt14ot7kxo6sgU3mt7FLogh_W5_z2ZC
MODBUS TCP和MODBUS RTU的差别不是很大。
二者相同的地方是应用数据单元是一致的。
差别是MODBUS TCP是传输在TCP/IP网络上的,多了一个报文头,少了CRC校验,采用TCP的502端口
RTU多了设备地址和CRC校验