为什么我从32-Bit Modbus的偶数地址中(比如F300002)得到了奇怪的读数?



主要软件:
主要软件版本: N/A
主要软件修正版本: N/A
次要软件: N/A

问题: 我需要对32-bit的Modbus寄存器做存取,当我将共享变量绑定到32-bit寄存器(地址为:F300001和F300002),我观察到存在F300001中的数据是符合预期的,但是在F300002中的数据不正确。请问这是为什么?该如何正确的对32-bit寄存器进行寻址?

解答: 当你寻址一个32-bit Modbus寄存器时,实际是选中了两个毗邻的16bit寄存器。所以当你使用寄存器F300001时,实际是从F300001和F300002中获取数据。当你寻址F300002时,得到的便是不完整不正确的数据了。

为了寻址相邻的32-bit寄存器,必须保证总是挑选了奇数地址。比如,寻址前两个32-bit寄存器,应该是F300001和F300003。在这种情况下,F300001是由F300001和F300002组成,而F300003是由F300003和F300004组成。

相关链接:

附件:





报告日期: 07/16/2010
最近更新: 10/12/2010
文档编号: 5BFG6IMO