0

我用 C# 做了一个应用程序,在这个应用程序中,我必须每 20 秒通过 Modbus TCP 读取 PLC 的 840 个寄存器。我使用这个库http://www.codeproject.com/Tips/16260/Modbus-TCP-class。当我使用该方法时

Master.ReadHoldingRegister(ushort id, byte unit, ushort startAddress, ushort numInputs)

它返回一个长度为 144 而不是 1680 的字节数组,你知道吗?

4

2 回答 2

3

正如建议的那样,在通话之间增加一点延迟。

于 2015-04-22T08:28:54.587 回答
2

Modbus 允许在单个读取保持寄存器函数调用中读取多达 125 个保持寄存器。如果库在调用 840 寄存器时没有抛出错误,那么它可能通过将您的调用拆分为多个读取保持寄存器请求来考虑此限制。我会研究源代码以确保您可以可靠地做到这一点。

于 2015-04-23T12:53:57.170 回答