From what I've heard, the AB emulator has a lot of gotchas. It only supports certain SW/FW versions (often a couple versions behind the latest major release), and what I recall is that you have to actually replace the CPU in your project with an emulate CPU. To me that defeats the purpose of simulating the CPU.
While RSEmulate doesn't execute 100% like the real thing, neither does anyone else's (if it's running on your computer, it's using your computer's CPU!). There are only a hand full of "gotchas" all which rarely impact the goal of simulation, which is to provide a mechanism to verify your
program logic without having to use a physical PLC. For the record, Emulate supports the latest FW versions.
I've never heard of anybody doing it in AB land, which means that Simulation in general is frowned on in the US, regardless of what other brands can do.
I simulate my logic all the time, much like Phrog30 mentioned. My goal is to simulate my code so I have reasonable confidence that it will perform as intended when I arrive at the jobsite.
I have used RSEmulate and Softlogix to do this. But I try to use an actual PLC if I can, mainly because it's easier to connect my SCADA project to the real thing. It's a shame that Rockwell is dropping Softlogix, it was a great platform for integrators to use for testing.
However, for FAT type scenarios, the CPU simulator is only part of the scenario. You usually need separate software to simulate the process. This can sometimes be done in the PLC, but that adds complexity, and is often done easier/quicker/cheaper with an external tool.
Disagree, I have yet to require the actual process to be simulated during testing and/or an FAT. Unless you are performing extensive modeling of the process (Peter Natchtwey can chime in), you simply aren't going to have the time or budget to setup additional software. Adding some basic simulation logic in device-level AOIs is easy.
For my testing, I "simulate" feedback of control devices, including valves, motors, analog inputs and PID loops. Granted, the PID loops are not modeled for tuning purposes, but rather to simulate how the program activates the PID loop, and verify how it will attempt to control to setpoint. Read this
whitepaper for some ideas on how to accomplish this.
Having code to aid in simulation/test efforts should be normal practice IMHO.