ryangriggs
Lifetime Supporting Member
Hello, does anyone know of some Linux-based software that provides a Modbus/TCP proxy?
Here's the backstory:
I am attempting to set up failover for a telemetry system. All remote units are connecting to a central PLC where they 1) read updated settings and 2) write process values. All Modbus/TCP requests originate from the remote units (the central PLC never attempts to read from or write to the remotes).
The central PLC is connected to two internet providers via two Ethernet cards. While the primary connection has a static IP address, the secondary internet connection does not, and this feature is not available from that service provider.
The remote PLCs are programmed to first try the primary connection's IP address, and if an error is generated, they retry with the secondary IP address.
The problem is that every time the public IP address of the failover connection changes, we have to modify the code on all the remote PLCs, since they don't support the use of hostnames. (They are AutomationDirect CLICK units.)
I can easily and cheaply spin up a Linux-based cloud server with a static IP address, so all I really need is a Modbus/TCP proxy software that will accept Modbus connections and pass them on to an IP address we specify. Then I can run a dynamic update utility on the local network and keep the public IP address updated on the proxy server, ensuring the failover connection is always available.
I may be able to accomplish this with Squid, but haven't had time to read the full docs yet.
Thanks for any ideas!
Here's the backstory:
I am attempting to set up failover for a telemetry system. All remote units are connecting to a central PLC where they 1) read updated settings and 2) write process values. All Modbus/TCP requests originate from the remote units (the central PLC never attempts to read from or write to the remotes).
The central PLC is connected to two internet providers via two Ethernet cards. While the primary connection has a static IP address, the secondary internet connection does not, and this feature is not available from that service provider.
The remote PLCs are programmed to first try the primary connection's IP address, and if an error is generated, they retry with the secondary IP address.
The problem is that every time the public IP address of the failover connection changes, we have to modify the code on all the remote PLCs, since they don't support the use of hostnames. (They are AutomationDirect CLICK units.)
I can easily and cheaply spin up a Linux-based cloud server with a static IP address, so all I really need is a Modbus/TCP proxy software that will accept Modbus connections and pass them on to an IP address we specify. Then I can run a dynamic update utility on the local network and keep the public IP address updated on the proxy server, ensuring the failover connection is always available.
I may be able to accomplish this with Squid, but haven't had time to read the full docs yet.
Thanks for any ideas!
Last edited: