当前位置: 代码迷 >> 单片机 >> modbus协议中响应的bytecount如何得来的
  详细解决方案

modbus协议中响应的bytecount如何得来的

热度:31   发布时间:2016-04-28 15:16:03.0
modbus协议中响应的bytecount怎么得来的
modbus

------解决方案--------------------
BYTE COUNT 就是数据的自己数,图中 No. of Registers 为 3,所以 3*2 = 6
------解决方案--------------------
以7楼的图为例
":" ADDRESS 01 ADDRH ADDRL NUMH NUML LRC 0X0D 0X0A
ADDRH:所读寄存器的起始地址高
ADDRL:所读寄存器的起始地址低
NUMH: 需要读的个数高,看后面解释应该是要读线圈状态,一个线圈状态对应一位
NUML:需要读的线圈个数低

比如说你要读12个线圈的状态,NUMH应为0,NUML为0x12
但因为一个线圈状态只有一位,所以下位机返回时需要发"2个字节"才能把状态全部发完,于是才有了后面的BYTECOUNT=NUM/8+1.如果只读8个线圈,只需要一个字节所以会是BYTECOUNT=NUM/8