Apache PLC4X ist Top-Level-Projekt der Apache Software Foundation
Julian Feinauer
Die IT-Branche revolutioniert sich gerade selbst. Es geht um die Schlagworte Digitalisierung, Industrie 4.0, "Smart factories, machine-learning, deep-learning und künstliche Intelligenz (KI).
Die Qualität der Produktion soll gesteigert und die Produktion selbst beschleunigt werden, man arbeitet an der Reduzierung und Vermeidung von Ausschuss und Ausfallzeiten.
Man integriert Produktionsmaschinene, sammelt Daten und analysiert sie.
Das ist, was wir tun; das ist, woran wir arbeiten.
Aber es ist häufig noch kompliziert die Technologien und Softwares bei den Firmen zu integrieren.
Warum? Weil Die Software oft Probleme bei der Kommunikation mit der Hardware hat.
Warum? Weil die Hersteller der Hardware meistens auf ihre herstellerspezifischen Protokolle für die Kommunikation setzen, die zum Teil nicht miteinander kompatibel sind.
Was also tun? Ende 2017 initiierte codecentric ein Open Source Projekt um das Problem anzugehen (https://hubs.ly/H09CvLK0 ). Heute wird es unter anderem auch von der pragmaticindustries vorangetrieben.
Das Projekt ging im Dezember 2017 in den Apache Incubator über und heißt seitdem Apache PLC4X (incubating).
Seit Mai 2018 begannen immer mehr Personen, Interesse an dem Projekt zu zeigen und daran mitwirken zu wollen. So wie wir! Auch die ersten Unternehmen traten bei, Testprojekte wurden durchgeführt.
Was wollen mir mit dem Projekt? Das Projekt hat sich zum Ziel gesetzt, Bibliotheken für die Kommunikation mit speicherprogrammierbaren Steuerungen (SPS) für Anlagen oder Maschinen (sogenannte Programmable Logic Controllers (PLC)) anzubieten. Wir glauben, dass die Schwierigkeit nicht im Schreiben von Treibern liegt, sondern im Verständnis der Protokolle.
Was haben wir bisher erreicht? Uns war klar, dass die manuelle Implementierung von Treibern in mehreren Sprachen und deren Synchronisation und Unterstützung eine fast unmögliche Aufgabe ist. Mit viel Mühe konnten wir eine Kombination aus DFDL (Data Format Definition Language - Format) und SCXML (State-Chart XML - State machine) entwickeln. Erste Tests mit Treibern, die diese Spezifikation auf Basis des Apache Daffodil und der Apache Commons SCXML-Implementierungen interpretieren, haben gezeigt, dass dies möglich ist.
Wir haben es geschafft, die Java-API zu implementieren und diese in unseren letzten vier Releases zu stabilisieren. Die Funktionen, die die API definiert, sind:
- Lesen von Daten
- Schreiben von Daten
- Abonnieren von Ereignissen und Datenänderunge
Derzeit unterstützt Apache PLC4X die folgenden Protokolle:
- Siemens S7-Step7
- Beckhoff ADS
- Modbus
- EtherNet/IP
Wie gehts weiter? Derzeit wenden wir uns auch an andere Open-Source-Initiativen wie die Eclipse Foundations IoT-Projekte sowie die Linux Foundations LF-Edge-Initiative, da diese alle eine Kommunikationsschicht wie PLC4X benötigen.
Wichtig ist aber nun: nach 16 Monaten Incubation ist das Apache PLC4X-Projekt nun ein offizielles Top-Level-Projekt (TLP) der Apache Software Foundation.
Wir sind stolz, ein Teil dieses Erfolgs und des Teams zu sein und arbeiten weiter hart und federführend daran, das großartige Projekt PLC4X voran zu bringen und immer weiter zu verbessern.