我有一个特定的条件,我想从MODBUS协议读取数据。
但它只允许我一次读取 120 个寄存器。如果我增加这个计数,它会给我错误代码 = 3 我正在为此使用 JAMOD。
有没有办法从所有寄存器中读取数据?
我已经浏览了这些链接,但它们没有帮助:
-
如何解决ModbusSlaveException:错误代码= 3?
-
http://control.com/thread/1026161502#1026161502
我已经制作了一个用于读取数据的自定义Spark接收器,我需要将这些数据推送到Kafka中。
请为我提供一个解决方案或解决方法,我可以在其中读取所有 65536 寄存器。
在 Modicon Modbus 协议参考指南 PI–MBUS–300 Rev. J 中的 Modbus 消息中的字段内容中,响应消息中的字节计数字段确定返回的 8 位字节内容的数量。由于寄存器的长度为 16 位,而字段长度为 8 位,因此返回的可能不超过 128 位。通过在字节计数长度中包含消息中的其他一些字段,可以进一步限制这一点。
不要期望在每个请求中收到超过 125 个寄存器。检索整个地址空间需要多个请求。
请注意,当向某些设备发送读取未定义寄存器的请求时,它们可能会返回错误。除非有完整的内存映射可用,否则只应读取专门记录的寄存器。