在我编写Modbus驱动程序进行单元测试时,我经历了以下事情:
illegal data address
错误代码。我希望支持Modbus的设备以下列两种方式之一运行:
你们中任何更有经验的人知道吗?
illegal data address
以外,还有其他原因吗?答案 0 :(得分:3)
两个假设都是错误的。完全由设备决定要支持哪些寄存器。某些设备不错,即使不使用它们也支持广泛的寄存器。不过,我用过的大多数都没有。他们将使用寄存器组,例如您的设备。
此外,并非所有Modbus设备都支持所有Modbus功能代码。仅仅因为它是由Modbus协议标准定义的,并不一定意味着该设备将支持它。
关键是要坚持使用设备手册中定义的地址。该手册通常是必读的,否则您将只能猜测范围,单位和比例。