since we're talking about the S7 simulator, is it very useful?
I have recently found that the RSLogix5000 simulator simulates the CPU but not the entire chassis and remote IO. Only a special DI/DO module can be added to a project that uses the simulator CPU. So the RSlogix 5000 simulator is handy for testing logic.
With unity I can save-as the program and then switch to simulator mode to download to the simulator instead of PLC. All of the addresses for the IO exist as it is the same project.
For more complex systems I write logic which simulates the physical systems forces discretes inputs and is injected in to the scaling blocks for analog inputs. When I am in the simulator I enable this logic and can test the program from I to O.
The Unity simulator responds to modbus requests on TCP port 502 so external systems like HMI can be fired up too, although input tags which are forced may not show the forced value in the HMI if the input address is referenced directly form the HMI.
The S7 PLCSIM is very good, you can download most 300/400 (if not all) projects to it directly. It will simulate MPI, DP, Ethernet. If you are using WinCCflex, its runtime will talk to the simulated CPU.