Redundant Ethernet Status Monitoring and Display

We have a system with one PAC-S2, several RAC-R1 racks and 2 or more dual ethernet port computers running PAC display. We are using the PAC Project Pro redundant Ethernet option on all devices and have them set up as two separate network segments. The PAC S2 and PAC R1 communicate with each other using ‘scratch pad’ data transfer, while the PAC display computers communicate mainly with the PAC-S2.

We would like to have a way to create a network status map of all segments of this local redundant network (including the two redundant Ethernet connections to each computer) and then be able to display this status on PAC Display. If any one of these redundant ethernet network connections are broken, we want to be able to display this condition.

Has anyone found an good way to do this in a redundant ethernet system?

The way I would approach something like this is to have the strategy help out PAC Display.
Thus I would write some code in a looping chart that reads scratchpad locations for time stamps or some other ‘status’ variable that if it goes stale, a flag variable (or bit) is set to indicate the state of that Ethernet connection.
You may need to have this code in more than one location, it would be a case of ‘who’s watching the watcher’… You might need to cross a few paths in order to set a series of flags that fully covers your configuration but I think you see where I am headed.

Then in PAC Display, you have your network diagram that is live with each flag connected to a graphic that sets either color or visibility.
You could also use the alarming feature of PAC Display to send an email if a link or segment goes down.

The key is to write some PAC Control code to do the heavy lifting since it is the only thing that really knows about all the redudant network pathways.

I work with Bard. We are already using the scratchpad to share data between the PLCs. This does provide indication on complete loss of the network connection. The additional information we are trying to determine is if Primary or Secondary network has failed. Using “GetTargetAddressState” indicates which network address is active and if a network address is enabled. But we have not found a Command or a Memory Map address to read that indicates if the Primary “Ethernet 1” or Secondary “Ethernet 2” network connection is good or lost. The goal is to be able to indicate on the HMI the failure so corrective action can be taken.

Are you using the PAC ROK kit?

Not using “PAC ROK kit:” for redundant controllers (controllers are not redundant). We are using redundant networks for communication (SNAP PAC-S2, SNAP PAC-R1 and computers for PAC Display).

I thought so, but just wanted to be clear…

Since you can not have the two ports on the same subnet, I am unclear why tweaking the scratchpad with 1 location can not show you which network is working?

For the scratch pad communication, have been using the “GetIoUnitScratchPad_____Table” commands. The command argument_0 “I/O Unit” are set to I/O Units with redundant address. So as long as one of the networks is good the command works fine, the data is passed and does not return a none 0 status code. If both networks are down then the failure is detected. The PLC just routes the message through the good network.

Now wondering if defining extra “I/O units” (one for primary & secondary addresses, one for only the primary address and one for only the secondary address) that use only one of the address so the PLC cannot reroute the message is what you are suggesting.

Was hoping for an simpler solution by being able to read the status information off of a Memory Map address. Or maybe a generic ping option so could also verify connection to each PAC Display computers.

Have you seen this?
https://www.opto22.com/support/resources-tools/downloads/pingbasicexample-cxf

Looks promising. Will try tomorrow an reply with result.

1 Like

Great the “pingbasicexample-cxf” is working and the “Memory Map Ping Client” can be used to test the primary and secondary network address separately.

Since the “Memory Map Ping Client” is not official yet and I have modified some parameters for the sample code to speed up the process, I’m look for feedback on the changes.

Changed 0xF032100C from 2 to 1 sec between ping requests.
Changed the while loop DelaySec (0.5) from 1 to 0.5 secs.
Changed the max time in the while loop from 5 to 2 secs.
Changed the required good pings to exit the while loop from 2 to 1.

The in shop testing so far looks good with these changes.

All these changes are to quicken the network scanning time. The larger the number of address to test and the more that are fail increases the time to test the whole network.

PS I would be great if “Memory Map Ping Client” became official so we know it can be counted on in the future.

1 Like