Simulation counts too!
----------------------
I am in the "I've done it, and liked it, but don't do it unless I have a good reason" camp. Oakley has a good point there, but I'm surprised that nobody has pointed out another really valid feature.
Lets say that you map your inputs and outputs in sub-programs.
You could also have a different subprogram to map simulated inputs and outputs, and/or, simply turn off the sub-programs, and simulate your program right in your shop, without having to mess around with forces, etc.
But (and especially) for SLC500, you would not even need your full-blown I/O to be active...just a processor in a 4-slot with a power supply.
At the developement end, this is a big deal.
-=-=- FlameBait -=-=-=-
The HMI commonality feature is a big deal as well, since, for whatever reason, here we are, 30+ years into this business, and STILL nobody can make the PLC and HMI world really well attached, dynamically. I actually have a theory on this. As the cost of hardware has either stabilized or come down, and the power and functionality has gone up, the developement software has pretty much stabilized, for 90% of applications.
Worse yet, as connectivity has increased with competition, more and more projects are "Vendor A PLC connected to Vendor B fieldbus slave device and displayed on Vendor C PC-based HMI with a Vendor D local touchscreen."
So, now, the software engineering process is more about file management than process developement, and, of course, hoping that nothing changes, and, if it DOES, remembering all the databases, spreadsheets, and PostIt notes to update.
So, if you are one of these Vendors, whom do you spend your R&D time creating a connection to?
Or, do you just look at the marketplace, with hardly any creativity, and simply hook your wagon to whomever seems to be in First Place?
Or, do you create an Import/Export feature in your product, and just let the control engineers kludge their way to make a system out of the thing?
I've seen all of these approaches, and so have you.