Can I have a PLC on my network which acts as both a client and a server?

Our manufacturing floor has several machines with PLCs which are not connected to our network. Instead, the ethernet port of the PLC is connected to an ethernet switch, and all of the sensors/actuators (referring to these as "devices" henceforth) controlled by the PLC are also connected to the ethernet switch. So in this configuration, the PLC is the client and the devices are servers, and the PLC is sending and receiving information to and from the devices via Modbus TCP/IP.

However, we want to connect these PLCs to our network so that we can remotely start/stop machines, modify variables, read data & cycle counts, etc.
Currently we have an Ignition Edge license running on a Groov EPIC (link), and the end goal is that we would have a dashboard on Ignition Edge Panel that allows you to view the status of machines, start-up, shut-down, etc.

Ignition Edge allows you to create an OPC-UA server through which you can communicate with devices on the network via Modbus TCP/IP. Is it possible to simultaneously communicate as follows?

PLC <------> Devices
Groov EPIC (Ignition) <-------> PLC

Zooming out a little bit, is there a better way to approach this problem?

I'm pretty sure that I could (1) connect the PLC, the devices, and the Groov EPIC all to our network independent of each other, (2) initiate MODBUS TCP/IP communication between
PLC<-->Device(s) and Groov EPIC<-->PLC simultaneously, but my manager seems doubtful.

I know this is more of a netowrking question than an Ignition question, but I figured this application is quite common. Also, FWIW the PLCs we use are usually WAGO PLCs programmed in Codesys.

It really depends on the PLC and whether it's capable of acting as both a Modbus client (to talk to the devices) and a Modbus server (to serve data to Ignition's Modbus driver, acting as a client).

I'd suspect yes, but you need to consult some documentation to be sure.

Codesys stuff is also usually capable of acting as an OPC UA server, in which case you could just connect Ignition to the PLC via OPC UA connection to the Codesys OPC UA server. Again... documentation.

3 Likes

Keep your PLCs and Field devices plugged into their respective switches. This allows contained failure if a switch fails (failure is contained to that PLC/Machine/set of devices)

Then, connect those machine ethernet switches to your network and connect your edge server to that same network. I would recommend having your IT create a VLAN for this floor network and limit its exposure/access.

@Kevin.Herron beat me to it but yes, check your PLC's manual for a definitive answer on communication capabilities.

In general I would say most PLCs can handle this type of communication setup. We use Automation Direct BRX PLCs that are polling modbus devices as a client and also behaving as a modbus server to talk to Ignition.

2 Likes

And if your machine's subnet isn't the same as your Engineering network subnet then add a multi-NAT router so that you can map external addresses to internal. This has the added advantage of a firewall with only certain ports open to traffic from certain address ranges, etc.
It also means that if you have identical machines they can have identical addresses on their individual LANs but will have unique IP addresses on the Engineering WAN.

Tip: to get a response from any device behind a router the devices' gateway settings must be configured to point to the router's LAN address. Pay attention to this or you will loose a couple of days trying to figure out what's wrong.

3 Likes