0

我有一个特定的条件,我想从 MODBUS 协议读取数据。

但它只允许我一次读取 120 个寄存器。如果我增加这个计数,它会给我ERROR CODE=3 我正在为此使用 JAMOD。

有没有一种方法可以从所有寄存器中读取数据?

我已经浏览了这些链接,但它们没有帮助:

  1. 如何解决 ModbusSlaveException:错误代码 = 3?

  2. http://control.com/thread/1026161502#1026161502

我制作了一个自定义 Spark 接收器来读取数据,我需要将这些数据推送到 Kafka 中。

请为此提供一个解决方案或解决方法,我可以在其中读取所有65536 个寄存器。

4

1 回答 1

1

Modicon Modbus 协议参考指南 PI–MBUS–300 Rev. J的 Modbus 消息中的字段内容中,响应消息中的字节计数字段确定返回的 8 位字节内容的数量。由于寄存器是 16 位长,而字段是 8 位长,所以最多可能返回 128 个。这通过在字节计数长度中包含消息中的一些其他字段来进一步限制。

不要期望在每个请求中收到超过 125 个寄存器。需要多个请求来检索整个地址空间。

请注意,当向某些设备发送读取未定义寄存器的请求时,它们可能会返回错误。除非有完整的内存映射可用,否则只能读取专门记录的寄存器。

于 2017-01-23T20:50:51.470 回答