Apache PLC4X is top-level project of the Apache Software Foundation
Julian Feinauer
The IT industry is currently revolutionizing itself. It is all about the buzzwords digitalization, industry 4.0, "smart factories, machine-learning, deep-learning and artificial intelligence (AI).
The quality of production is to be increased and the production itself is to be accelerated, one works on the reduction and avoidance of rejects and downtimes.
One integrates production machines, collects data and analyzes them.
That's what we do; that's what we work on.
But it is often still complicated to integrate the technologies and software at the companies.
Why? Because the software often has problems communicating with the hardware.
Why? Because the hardware manufacturers mostly rely on their manufacturer-specific protocols for communication, some of which are not compatible with each other.
So what to do? At the end of 2017, codecentric initiated an open source project to address the problem (https://hubs.ly/H09CvLK0). Today, it is also being driven by pragmatic industries, among others.
The project transitioned to the Apache Incubator in December 2017 and has since been called Apache PLC4X (incubating).
Since May 2018, more and more people started to show interest and want to participate in the project. Just like us! The first companies also joined, and test projects were carried out.
What do I want with the project? The project aims to provide libraries for communication with programmable logic controllers (PLCs) for plants or machines. We believe that the difficulty is not in writing drivers, but in understanding the protocols.
What have we achieved so far? We realized that manually implementing drivers in multiple languages and synchronizing and supporting them was an almost impossible task. With a lot of effort we were able to develop a combination of DFDL (Data Format Definition Language - format) and SCXML (State-Chart XML - state machine). Initial tests with drivers interpreting this specification based on the Apache Daffodil and Apache Commons SCXML implementations have shown that this is possible.
We have managed to implement the Java API and stabilize it in our last four releases. The functions that the API defines are:
- Reading data
- Writing data
- Subscribe to events and data changes
Currently Apache PLC4X supports the following protocols:
- Siemens S7-Step7
- Beckhoff ADS
- Modbus
- EtherNet/IP
What's next? Currently, we are also reaching out to other open source initiatives such as the Eclipse Foundations IoT projects as well as the Linux Foundations LF Edge initiative, as they all require a communication layer like PLC4X.
But what is important now is that after 16 months of incubation, the Apache PLC4X project is now an official Apache Software Foundation Top Level Project (TLP).
We are proud to be a part of this success and the team and continue to work hard and lead the way to move the great PLC4X project forward and keep improving.