Communication Between PLCs

Full Disclosure: I am a software engineer and not native to controls infrastructure. So bear with me…

I am using an Ignition to bridge the communication gap between several AB Rockwell PLCs and a Siemens S7300 PLC. The Siemens needs to be ‘aware’ of several tag values on the ABs in order to execute certain logic. What’s the best way to share tag information via Ignition? Would I have to set up a set of blank tags in the Siemens, pull those into Ignition, and then perhaps write a script that will take my AB value and write them to those blank tags from the Siemens? Is there a way to just expose those AB tags to the Siemens PLC in Ignition?

The “right” way to do this would be a protocol bridge. In this case, a bridge that appears to be an I/O device to each party, passing the output data from one side to the inputs on the other side, in both directions. I’ve always had great results with AnyBus products, but there are other players.

If that isn’t an option for whatever reason, or the algorithm in question isn’t process-critical, I would set up tags for all of the source data involved. I would attach them all to a gateway tag change event script that calls a suitable function in a project script module. That project script module would have a static dictionary containing the target OPC item(s) for each source tag, and would use system.opc.writeValue() to pass all changes to the listening PLC(s).

If there are a great many such tags, I would work out a format to place the destination OPC items into each tag’s documentation entry, so that the lookup dictionary could be populated on the first call for each.

2 Likes

The correct way to do it is with this:

http://www.prosoft-technology.com/Landing-Pages/Launch/EtherNet-IP-to-PROFINET-R-IO-Device-Gateway

Rule of thumb for good process design practice, NEVER have a MORE reliable device ( PLC ) depend on a LESS reliable device ( PC )

1 Like

Ooo! Hadn’t seen that Prosoft module before. Very nice indeed, especially the multiple connections at different RPIs.

pturmel and curlandshemp,

Thank you both for the recommendations and information. Unfortunately, the SCADA system was chosen as the passthrough for the data between these PLCs. I do not like it but it also isn’t my money.

pturmel, I had a similar idea to what you mentioned. I think that will have to be the route that I take. That is until I can get them to shell out some more money for some appropriate hardware.

Thanks again.

1 Like

If the device running ignition was to reboot or shut down how would that effect your process. Could things get stuck on?

If it’s critical you could have a pulse tag from say the AB plc, pass through ignition to Siemens . Then pass it back through ignition to AB. Say pulse every second, then have maybe a 3 second timer reset by every pulse.

When either device doesn’t see that pulse and the timer expires you can rerun any logic to a safe state.