modbus 01,02功能码都是位操作指令,读bit的数据,那么在modbus内部操作是怎么操作法的?
01 读线圈
例如 slaveID=01,要读34个线圈
01 01 00 13 00 22 从起始地址16进制的13开始读34个线圈
那么实际是不是只读了 16进制的13,14,15这3个寄存器地址,
还是读了16进制的13,14,……,34这个34个寄存器
02 读离散量
例如 slaveID=01,要读22个离散量
01 02 00 C4 00 16 从起始地址16进制的C4开始读22个离散量
那么实际是不是只读了 16进制的C4,C5 这2个寄存器地址,
还是读了16进制的C4,C5,……,DA 这个22个寄存器地址
一个线圈对应一个bit位,34个线圈需要5个字节。而一个寄存器对应两个字节,所以读34个线圈需要读3个寄存器。
离散量就是具体的整数了,22个离散量就是22个寄存器,由于每个寄存器两个字节,所以每个离散量的值的范围是0~65535