我目前正在开发用于控制设备的Modbus服务器。
设备手册说明了如何保存寄存器:
Adress 6000: ValueA, 2 Byte
Adress 6001: ValueB, 1 Byte; ValueC, 4 Byte; ValueD, 4 Byte
Adress 6005: ValueE, 2 Byte
唯一受支持的读取功能是 FC 03 /读取多个保持寄存器
据我所知,可以将寄存器看作是编号为16Bit值的存储块,并且可以通过读取6个寄存器/ 12字节(从6000开始)一次读取它。
我认为1Byte值不是问题,寄存器仅包含不超过255的值。
但是扩展上面的表格可以得到:
Adress 6000: ValueA, 2 Byte
Adress 6001: ValueB, 1 Byte
Adress 6002-6003: ValueC, 4 Byte
Adress 6004-6005: ValueD, 4 Byte
Adress 6005: ValueE, 2 Byte
因此,最后一行重叠在6005。
我的设备手册中充斥着此类事件,与此同时,我认为modbus寄存器并不是我想象的那样简单,线性的存储器。
有人知道modbus寄存器是否是线性的吗?