我们正在编写一个 Windows 服务,通过 c# 中的套接字编程,使用Modbus TCP协议以 1 秒的轮询间隔从 PLC 读取数据。Windows 服务将接收 PLC 的随机寄存器以读取寄存器值。期望寄存器随机,例如 40150,40250,40270,40320。
从上述案例中如何创建Modbus TCP 请求标头?我们可以找到两种可能的方法:
- 使用功能码 3,我们可以读取特定范围内的寄存器的值,例如从 40150 到 40320,这样我们就可以读取这 40150,40250,40270,40320 的寄存器值。
- 另一种方法是逐个请求这些 40150,40250,40270,40320 寄存器(这会导致性能问题)。
我在这里错过任何一点吗?有没有更好的方法来随机读取一个或多个寄存器?