I wonder if AustralIan is asking about "Simulation", or "I/O Simulation".
I err on the side of simplicity, just using an I/O simulator, such as PICS.
All I want a simulator to do is automatically provide Valve and Pump feedbacks, for example, and let me drive the analog signals etc. as required during testing.
We had one guy who put a PICS project together that attempted (and it did very well) to simulate as much as possible, including such esoteric functions as heat loss over time from vessels and pipework.
It sounded like a good idea at the time, but it got in the way of testing the process sequences, for example it was not easy to "go back to step 147" to retest something after a software change.
When testing, you don't want to have to wait for vessels to heat up (built into the simulation), you just want to punch in the numbers and observe the PLC code responses.
I guess it depends on what you want your "simulator" for.....