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