首页 文章

具有消息转发的Modbus客户端和服务器

提问于
浏览
0

我正在研究用于工业SCADA系统的传统modbus程序 .

目前,c程序既充当modbus TCP服务器又充当客户端 .

enter image description here

Client behaviour: 它从现场的许多供应商PLC(服务器)读取,执行计算并根据站点接收的数据将控制命令发送回PLC .

Server behaviour: 响应来自Web界面和笔记本电脑的各种TCP读写请求 .

到目前为止,这已经运行良好,但我们最近在网络上安装了一个日志记录客户端,它非常频繁地轮询我们的程序(亚秒级),这揭示了时间问题:程序在其客户端循环中可能需要很长时间在充当服务器并响应传入请求之前执行计算和读取PLC值 .

简单的解决方案是将程序拆分为modbus服务器和客户端实例,并使它们在同一台嵌入式PC上运行 .

我的问题是远程Web界面(HMI)必须能够控制供应商PLC 2的行为,供应商PLC 2将只允许来自嵌入式PC的一个TCP连接 . 在过去,程序通过打开的插座将它们转发到PLC 2,处理来自HMI的写入请求 .

我很想在这里收集有关最佳实践的想法 .

enter image description here

我的想法:modbus服务器程序需要响应HMI请求并以某种方式存储供应商PLC 2所需的信息,并且还需要设置状态寄存器以通知modbus客户端有供应商PLC 2的数据 . modbus客户端程序需要从服务器读取状态寄存器(和数据)并将其传递给供应商PLC 2 .

我正朝着正确的方向前进吗?

1 回答

相关问题