Ignition as plant simulation with connected PLC


I was wondering if Ignition could be used as a plant simulator to test a PLC program.

I’ve been searching and found programs like ‘Simulation Aids’ (pramanj.com/products/), but those products seem to be for tests where you dont have the hardware yet - correct me if I’m wrong.

As it is we have a PLC (Siemens S7-1500) with at new finished program connected to Ignition via Ignitions OPC-UA server. What we want to do is a simulated test to find bugs in the PLC program before inserting it into real life service.

As far as I can see the part where you write commands (Start/Stop/Auto/…and so forth) to the PLC from Ignition isn’t a problem - that’s just the regular vision window HMI in Ignition writing to the PLC via OPC-tags. But how to we simualte feedback? As in, when I press start on a motor, how do I simulatethe RPM’s going up and send that to the PLCs input?

I’m thinking like when I press ‘Start’ for a motor in the vision window then the PLC’s start bit command will be set and if conditions are ok the PLC wil try to start the motor by setting the motors ‘Start’ bit output. I would then have to register that in Ignition and start a ramp for a memory tag to simulate RPMs. I would then somehow have to send those simulated RPM’s to the motors RPM tag in the PLC?

Have anyone tried this?

Recomendations for alternative approaches / software / etc. are welcome too :slight_smile:


It’s a shame you’re using a Siemens PLC. If it was Allen-Bradley (or anything else with an Ethernet/IP scanner), you could use my newest module to simulate the I/O for your system.

My Siemens is a bit rusty but we pretty commonly write simulation routines into the PLC for doing exactly what you described in Allen Bradley. The simulation routines are pretty simple usually a simple motor starter will have an XIC looking at the output address to the starter and when true will energize an OTE pointing at the input from the starter. Solenoids, VFD, etc. are all along the same lines when the output to the modules are viewed as input and the inputs from the modules are written to simulating expected feed back from the field. The advantage to directly using the IO addresses is it gives a double check on your IO programming since you’d have to get the address wrong the same way in two places (both the production routines and simulation routines). It’s not advanced enough to let you tune loops from but you can get the basics down.

Not sure if this method works for Siemens PLC but it’s pretty easy to try if you’ve already got the PLC and program set up.