早期在RS485串行通信中规定ADU的最大长度为256个字节,其中:通信地址占用1个字节,校验段占用2个字节,所以协议数据单元(PDU)的最大长度为256-1-2=253 字节。而我三弟(Modbus TCP)因为要增加一个7个字节的MBAP(MODBUS Application Protocol)的报文头,所以他的ADU的长度=253+7=260 字节。
modbus rtu
------------------------------ADU-------------------------------------------- 256字节
从站地址(1字节) 功能码(1字节) 数据(0-252字节) CRC(2字节)
PDU=功能码(1字节) 数据(0-252字节)
modbus tcp
=ADU===== 260字节
00 00 00 00 00 06 从站地址(1字节) **功能码(1字节) 数据(0-252字节)
MBAP=00 00 00 00 00 06
PDU=功能码(1字节) 数据(0-252字节)