modbus协议寄存器读取值与指令感觉矛盾??采用的官方例程
本帖最后由 380091044 于 2023-10-12 09:00 编辑一、控制指令都写在modbus_reg的高8位,不同的指令实现不同的功能;寄存器位置不变;经过测试是可以的,没有问题的;1、拐弯控制指令10 10 10 00 00 01 02 01 00 76 51 2、直行控制指令:10 10 10 00 00 01 02 02 00 76 A1 if( (u8)(modbus_reg >> 8)==0x01 )//拐弯 { key_sec=1; } if( (u8)(modbus_reg >> 8)==0x02 )//直行 { key_sec=2; } 二、状态指令:modbus寄存器的0位低8位的值代表状态:0x00代表直行;0x01代表拐弯;状态指令:(u8)modbus_reg=0x00;//MB0的低8位是0x00,直行;通过读取指令读取结果如下:读取指令:10 03 10 00 00 01 83 8B直行返回指令:10 03 02 00 A8 F9 45拐弯返回指令:10 03 02 01 A8 69 44 疑惑点:我认为控制指令高8位,都没问题,但是状态值应该是modbus寄存器0的低8位,应该在A8的位置,怎么会在A8前面这个字节,与前面的控制指令位置相同,应该不同位置,这是什么情况?请各位高手指点
页:
[1]