我将在我的Linux服务器和一个蜂窝调制解调器之间创建一个连接,该调制解调器将充当TCP上的串行服务器。
调制解调器本身通过RS232连接连接到modbus设备(工业协议)。
我想使用pymodbus来促进与终端modbus设备的对话。但是,我不能在PyModbus中使用TCP modbus选项,因为终端设备使用串行modbus (Modbus RTU)。而且我不能使用Pymodbus中的串行modbus选项,因为它期望在linux服务器上打开一个实际的本地串行端口(tty设备)。
如何桥接串行连接,使pymodbus库将该连接视为本地串行设备?
发布于 2013-03-19 15:53:08
没有直接的解决方案可以欺骗linux服务器,使其认为MODBUS RTU实际上是MODBUS TCP连接。
在所有情况下,调制解调器都必须将数据从TCP传输到串行(反之亦然)。所以我假设: 1)你可以编程你的调制解调器,并指示它做你想做的任何事情。2)调制解调器的制造商已经提供了一个内置的机制来做到这一点。
如果1):您应该对调制解调器进行编程,以便在将数据从TCP连接复制到RS链路时,它可以用RTU ADU替换TCP ADU(反之亦然)。
如果2):只需将您的RTU框架提供给制造商设计的任何API。
发布于 2013-05-25 04:10:26
我实际上是在做类似的事情,并决定做我自己的串行/TCP桥。使用虚拟串行端口来处理与每个调制解调器的通信。
我使用了minimalmodbus库,不过为了处理虚拟串行端口,我不得不对它进行了一些修改。
我希望你解决了你的问题,如果你没有,我可以试着帮你解决。
https://stackoverflow.com/questions/15489371
复制相似问题