我用C#编写了一个应用程序,在这个应用程序中,我必须通过Modbus TCP读取每20秒840个PLC的寄存器。我使用这个库http://www.codeproject.com/Tips/16260/Modbus-TCP-class。当我使用方法时
Master.ReadHoldingRegister(ushort id, byte unit, ushort startAddress, ushort numInputs)
它返回长度为144而不是1680的字节数组,你有什么想法吗?
答案 0 :(得分:2)
Modbus允许在单个读取保持寄存器功能调用中读取最多125个保持寄存器。如果库在调用840寄存器时没有抛出错误,那么它可能会通过在几个读取保持寄存器请求中分割您的调用来考虑此限制。我会研究源代码,以确保您可以可靠地完成这项工作。