恭喜,你发布的帖子
发布于 2021-01-21 14:47:11
6楼
仪表厂家提供的部分协议内容:
用MODSCN32软件测试,读取协议中起始地址为:0Xa006的指令时,可以读出实际数值:
根据上面的测试结果,读指令应该是是不是从“440961"开始?
另外,我知道单独取字节中的位值,但用什么指令可以将低位的七个位取出,再转换成另外一个数?
衷心感谢您的指点,比其他高手模棱两可的说教实用多了!!!
Modbus中规定3开头的是输入寄存器,只能读取不能写的,否则Modbus指令会报错吧?
既然你测试出来读取是440961,写也是440961,只有0和4开头的寄存器可以读、写操作。
取一个VB单元的低7位内容,可以用WAND_B指令与16#80得到的值就是了。或者也可以直接把字节的最高位清零。比如取 VB0的低七位内容到VB2,用指令与运算或者最高位清零都可以。
请填写推广理由:
分享
只看
楼主