ModbusTCP子站处理请求报文方法

对modbustcp而言,判断报文长度是否大于12,若大于12可能有两种情况。
a.报文错误
b.含多个请求
c.15 16功能码报文

遥测 or 遥信
| MBAP(7字节) | 功能码(1字节) | 起始地址H(1字节) | 起始地址L(1字节) | 线圈数量(1字节)H | 线圈数量(1字节)L |
遥控 or 遥调
05功能码
| MBAP(7字节) | 功能码(1字节) | 地址H(1字节) | 地址L(1字节) | 设值(1字节)H | 设值(1字节)L |
06功能码
| MBAP(7字节) | 功能码(1字节) | 地址H(1字节) | 地址L(1字节) | 设值(1字节)H | 设值(1字节)L |
15功能码
| MBAP(7字节) | 功能码(1字节) | 地址H(1字节) | 地址L(1字节) | 线圈数量(1字节)H | 线圈数量(1字节)L |线圈输出字节长度(x字节) | 线圈输出值(y字节)|
线圈输出字节长度=1+(线圈数-1)/8
16功能码
| MBAP(7字节) | 功能码(1字节) | 地址H(1字节) | 地址L(1字节) | 寄存器数量(1字节)H | 寄存器数量(1字节)L |寄存器输出字节长度(x字节) | 寄存器数据(y字节)|
寄存器数据字节长度=寄存器数量×2
最大253字节 最小10字节
要考虑modbus地址范围

posted @ 2025-04-03 17:38  wzzh111  阅读(23)  评论(0)    收藏  举报