I don't see how anyone can talk **** about custom solutions as if they're much less maintainable. Can anyone here tell me with a straight face that all of your PLC software works on modern Windows (8, 8.1, 10)? Everyone here is using VMs because of how entirely ****ty PLC software is.
You are being disingenuous here... With the track record of Microsoft's **** operating Systems would you sink millions into porting your platform to a new OS only to find that MS dropped the ball and you now have a ton of support to give your new customers?
Some of the VM's most guys keep are running Windows XP... partly because the actual software itself stopped being supported on new OS's. Again, Microsoft moved stuff around and since the software is outdated the solution if moving to an upgrade... except this is at the will of the customers.
It is also worth reminding that VM's are used because PC's that spend time in the field have the habit of being dropped... no one likes to go through a day of reinstalling software.
Some of this software will slow down the PC for administrative purposes, running it on a VM separates it from the standalone PC making it faster.
I write software everyday that can be run on anything from Linux to XP to OS X to Win10. Top that, any PLC manufacturer.
Sorry, but I call ******** on this for a few reasons:
Not even Java which is supposed to be platform agnostic allows you to move code willy nilly between platforms. Python may be a bit better...
None of the languages that you can port easily (not copy paste, mind you), are actually any good in terms of real time behaviour. Sure, you can program smart functionality for data analysis on it and other stuff, but you won't get the same response out of it as a PLC would.
The PLC manufacturers don't need to top your knowledge of Operating Systems... because that is not their business. However, your PC manufacturers sure do need to top the longevity of PLC systems. Can they do that?