Roughly a year ago, GE Intelligent Platforms (now a part of Emerson Machine Automation Solutions) released the IC695CPL410 Controller.
This controller is unique in that it utilizes a powerful quad-core processor and a virtualization technique known as hypervising. Simply, this allowed a software separation of the quad core system into two dual-cores capable of running completely separate operating systems. So, one dual-core system can run the PAC Systems engine just like the one that runs on the RX3i PACSsystems hardware. The other dual-core system could be treated like any computer.
Noting the trend in the development world that shifts development to open-platforms, the design team at Emerson chose to put Ubuntu Server Linux on the hardware opening a world of opportunities for software developers and customers to merge the plant floor (Operational Technology or OT) with the tools that Information Technology (IT) take for granted.
But, before we dig into the Linux side of the CPL410 let’s look at some of the basic functionality of the CPL410. The datasheet is located here for a more detailed reference, but we will cover some of the highlights here:
- -40 to +70C Operating Temperature Range
- DIN Rail mount – No backplane, which cuts down on costs and required cabinet space
- 18 – 30 VDC (24VDC nominal) – There is no special power supply necessary
- Supported protocols – Include Modbus TCP/IP, Profinet, SRTP, EGD, OPC-UA (Server), DNP3.0, and HART Passthrough
- FIVE Ethernet connections on the front – breaking down the five ports:
- LAN 1 – A standard Ethernet connection for programming the RX3i side of the controller with Proficy Machine Edition and/or a HMI
- LAN2 (two ports) – Can be configured as standard Ethernet or Profinet. These ports are switched and would be used to connect I/O and/or other PLCs
- LAN3 (two ports) – Again, switched ports that are reserved for Redundancy. We will cover redundancy in a future entry but for now realize that for only the cost of a second controller, you can easily create a redundant system with 100ms cutover time to the secondary PLC.
- Front Panel Indicators and Buttons – We won’t cover these in detail here, but at a high level:
- LED readout – Shows the status of the PLC (e.g. running or in stop mode), shows the IP address settings for all of the ports, and gives some information about the Linux side of the system
- DISP/SEL Buttons – Used for navigating the LED readout
- RUN/STOP Buttons – Used to put the controller in “Run” or “Stop” modes with outputs either “Enabled” or “Disabled”
- LED lights – Used to show system status such as certain faults, SSD activity, power, and status of the Linux side of the controller
- Two USB3.0 Ports – These ports are for connecting various devices and can be access from the Linux side of the CPL410
Over the course of the next several weeks, this blog will highlight some example uses of the CPL410. While these solutions are trivial to the IT world, they can be game-changing to the OT world. Imagine being able to easily run queries for your data without having to involve IT. Imagine being able to visualize tag data on your phone right from your controller. Imagine publishing data to the cloud via MQTT. We haven’t even begun to scratch the surface of what is possible.
Hasn’t all of this been done before?
Well, quite simply, a lot of it has. Many solutions today have a PC connected to your PLC to pull data, run custom software, etc. In a lot of cases, that software uses expensive Historian packages, expensive drivers to connect to industrial devices, or SCADA systems that are overkill for what is truly needed. Since the CPL410 gives us the functionality of a PLC (ModBUS and Profinet connectivity, controller redundancy, reliable scan times and execution on a process, etc.) and a PC, customers can take advantage of the benefits of expensive software packages using open source and/or free software that is widely available and well documented. Basically, customer applications that could not justify the cost of available tools can now take advantage of the functions of those tools using open source packages.
The PLC has a split personality… Does it talk to itself too?
The two halves of the CPL410 connect via an internal NIC that can pass OPC-UA data back and forth. For any tag on the PLC side, you can choose to publish the tag or not. Ultimately, the control of this is on the PLC programmer. Setting the publish tag to False means that the tag won’t be exposed to the Linux side of the CPL410. Another option for this setting is ‘External Read Only’ meaning the tag can be seen by the Linux side, but not changed. The final option is ‘External Read/Write’ meaning that the tag can be seen and changed by the Linux side.
This distinction is really important. The PLC programmer can pick and choose which variables remain hidden and which can be changed by the Linux side.
How does this work?
In the next entry, we will write a simple Python script that will read the value from a tag that is Published as External Read Only. We will perform some math on that tag and write that new value into a tag that is Published as External Read/Write. This will be the beginnings of how to work with the Linux side of the CPL410 to show how we can augment the already powerful PLC in the CPL410.