Next Gen PLC's

Table of Contents

NOTE:When I wrote this post I worked for an Emerson distributor, while this makes me more familiar with the Emerson offering this is my personal blog and thus these are my own thoughts and not my employers. But I am limited in what I can talk about with regards to Emerson due to restrictions imposed on me.

One thing that has gotten me really excited about the Industrial Automation space in the last couple of years is the new generation of PLC’s that are expanding what we can do with PLC’s. So comparing to previous generations a PLC was a standalone deterministic controller that looked after it’s own process, then technology progressed and more complex systems meant we now have PLC’s that are capable of using multiple communication protocols to interface with SCADA and work with other controllers. Now PLCs (some vendors like to call these PAC (Programmable Automation Controllers) but they are still PLCs) are bringing in more complex communication protocols and extending their scope to do more, the purpose of this is to collect more data and move this data to where it can be analysed, processed and used to improve decision making and to eventually automate those decisions to increase productivity and effectiveness.

As to the next generation, they will still have the deterministic run time (Of course it is still a PLC) but along side this is a General Operating System such as Windows or Linux through the magic of a hypervisor, this means that both run-times are Virtual Machines. These are separate to the Soft PLCs that a few vendors offer as these run on top of Windows/Linux which means you cannot have a truly deterministic run time run on top of a non-deterministic operating system. Where as a Next Gen PLC will have a hypervisor that is specifically built for deterministic guest operating systems which ensures the deterministic PLC run time is able to service its routines in a regular predictable manner that is the corner stone of every PLC.

PLC’s

Here is the list of Next Gen PLC’s that I will be discussing in this post, there are others that I will have missed so please let me know and I will update the post.

Vendor Part number Hypervisor Guest OS
Emerson IC695CPL410/CPE400 Real Time Systems Hypervisor Ubuntu (PACEdge Stack)
Rockwell CompactLogix 5480 Virtualisation Profile for VxWorks Windows 10 IoT
Siemens ET 200SP Open Controller Jailhouse Windows Enterprise LTSC
Beckhoff A large part of their range bhyve Windows IoT/LTSC, Linux, FreeBSD

Emerson

Again I cannot say too much here the part numbers for those interested are in the Rx3i series specifically the IC695CPL410 and IC695CPE400. What we can see that Real Time Systems Gmbh lists Emerson as a customer so putting two and two together that would be what someone could expect this to be the hypervisor that is being used as this is exactly the use case for Real Time Systems Gmbh. The Guest OS is an Emerson prepared software stack of Ubuntu and a bunch of other software useful in the IoT space running in Docker containers so theoretically should help start you off. This is referred to as PACEdge if you want to learn more.

Rockwell

Rockwell’s offering is the CompactLogix 5480 series, the interesting part here is that the Hypervisor is part of the deterministic real-time OS being the virtualisation profile for VxWorks so VxWorks retains complete control of the underlying hardware so that is one less layer to misbehave in a critical system. And with VxWorks being one of the most trusted real-time OS’s around it is hard not to have a high level of confidence in the hypervisor. The Guest OS in this instance is Windows 10 IoT which is not my preferred option but considering a video output for the guest OS is included a brilliant idea might be in the works. What if you could sell a PLC with the programming software included and not just a license but the programming environment already installed and licensed on the PLC, the CompactLogix 5480 seems to be a step just short of this obviously with the guest OS running on top of the real-time OS things could easily go wrong with an update to VxWorks affecting the guest OS so depending on the specific configuration of the VxWorks virtualisation profile careful QA would needed to ensure you would not get into a sticky situation by updating from the guest OS One thing that does give me pause with this unit is that it has a fan which is just disappointing to see in an industrial piece of equipment, I understand it does allow a lot more power in the CPU which should hopefully make that guest OS run smoother and more consistent that the competitors but the longevity is a concern as I have seen how poorly industrial equipment can be treated. Otherwise information is scant which is not to be surprising given I don’t have a Rockwell support contract to access their wide knowledge base.

Siemens

Siemens offering here is really promising but falls just short in a couple of aspects, the thing that is really exciting is Siemens appear to have their own hypervisor that they are using here which they call Jailhouse (purely informed speculation by me). Jailhouse is an intentionally limited feature set with the focus on simplicity each OS is separated in a cell which has the relevant hardware partitioned to it this mean that each OS will not compete for resources and can only use what it is given, this is describing what we want in a real-time environment, you can find it on Siemens Github. A lean hypervisor that focuses on a simple feature set is a good approach to limit bugs from being introduced with new feature set and allows greater optimisation. The other unique thing about Jailhouse is that it actually starts from a Linux environment, so Linux boots and then gives control of the hardware completely to Jailhouse. I think this is an exciting approach to virtualisation

Ok so I am clearly positive on the hypervisor but what about the rest, well at the moment there appear to be offering in the ET 200SP and S7-1500 series in something like the CPU1515SP PC2 F although these are focused on Windows IoT but there are Linux options they are just hidden. Reading some documentation it appear that only Debian 9 is officially supported (yikes we are currently well into Debian 11) but rpm’s and Fedora are mentioned as being supplied with the image and a later Linux kernel would still support everything but speaks to there stance on the Linux support. So as I said exciting and promising but clearer Linux support would be great to crank this up to 11.

Beckhoff

Now I have saved the most exciting for last! Beckhoff focuses on software based PLC’s which does give me some amount of pause but you could argue that modern PLC’s are running on top of advanced software environments so this is really the next logical step as long as reliability can be maintained. But what Beckhoff has done is lean right into open source software, they offer the TwinCAT/BSD hypervisor which does much of the same hardware partitioning that I have previously mentioned but is using the FreeBSD hypervisor bhyve. Now Linux is becoming well known in the industrial controls space but FreeBSD is likely to get a few be-fumbled looks, FreeBSD comes from Unix roots as well but has a much more permissive license and tends to have a more direct focus on productivity but features a lot of the applications that are available on Linux. One great feature built into FreeBSD and exposed in TwinCAT/BSD is the file-system ZFS, which thanks to features such as Copy on Write, snapshots and data integrity checking is one of the most reliable file-systems available and exactly what you want on a machine designed for continuous operation. Beckhoff seems to no only give you the ability to run virtual machines but exposes the native containerisation feature in FreeBSD called jails.

Beckhoff seem to offer this on most of it’s IPC range and even packages up extensions for TwinCAT in the FreeBSD environment, bhyve is technically a type 2 hypervisor but I still think this is a very exciting and a worth while alternative to a more traditional PLC.

Note Worthy Mentions

So the above are what I believe the true next generation PLC’s will be but not every application has hard real-time requirements so for soft real-time or non real-time applications there are a number of other options that in software of another Operating system, this can allow you to run a deterministic environment and still host other applications on the same device which I believe is one of things that will actually come out of the IIoT movement.

Here is a non exhaustive list (again fell free to let me know if other platforms or vendors that fit this platform):

- Siemens SoftPLC
- Many Codesys solutions
	- Weidmuller
	- WAGO
	- Opto21
- OpenPLC project
- FreeRTOS
- PLCNext

I would love to get my hands on any of these units and share my experience as that is not something I see shared much (I know that is partially because usage of these next generation PLC’s is still picking up) but the disposable funds for Industrial equipment I will exclusively playing around with is not something I am likely to have anytime soon. But I might cobble together something for a future post!