Ursprünglich entstand die Open Source Bewegung aus Forschern und Idealisten, die durch die Offenlegung des Quellcodes eine Verbreitung und weitere Nutzung ihrer Programme erleichtern wollten. Seit einigen Jahren gibt es aber auch eine weitere Ausprägung, nämlich Open Source als Kooperationsmodell. Hier können (teilweise konkurrierende) Unternehmen gemeinsam an einer Problemstellung arbeiten, ohne dass komplexe rechtliche Rahmenbedingungen geprüft oder Verträge erstellt werden müssen. Dafür werden die Projekte oftmals von einer gemeinnützigen Organisation oder Stiftung verwaltet. Die bekanntesten Beispiele hierfür sind die Linux Foundation, die Apache Software Foundation oder die Eclipse Foundation. Diese Organisationen stellen üblicherweise die Infrastruktur und definieren die Spielregeln. Insbesondere haben diese Organisationen auch Prozesse und Erfahrung, um den Quellcode lizenzrechtlich zu prüfen und sicher zu stellen, dass eine Verwendung des bereitgestellten Codes keine rechtlichen Gefahren birgt.
Open Source in der Automatisierungstechnik
Auch wenn dieses Vorgehen für viele mittelständische Unternehmen in der Automatisierungstechnik ungewohnt klingt, gibt es hier seit Jahren ähnliche Strukturen. Einige Unternehmen arbeiten bereits in Arbeitsgruppen bei entsprechenden Branchenverbänden wie dem VDMA oder den IHKs. Sie bieten Plattformen, um Spezifikationen und Standards zu erarbeiten oder unternehmensübergreifende Entwicklungsprojekte zu koordinieren. Ähnliche Kollaborationsmodelle gibt es also in der Automatisierungstechnik seit geraumer Zeit.
Was ist Apache PLC4X?
Apache PLC4X ist ein Open-Source-Projekt mit dem Ziel Treiber für die gängigen Steuerungs- und Feldbusprotokolle zu implementieren, wo dies technisch möglich und sinnvoll ist. Die wichtigsten Neuerungen hierdurch sind:
- Alle Treiber werden kostenlos unter der sehr offenen Apache-2.0-Lizenz zur Verfügung gestellt, sind also insbesondere problemlos kommerziell nutzbar ohne einen Quellcode offen legen zu müssen. Dies ist bei anderen populären Implementierungen oftmals nicht der Fall.
- Die verfügbaren Treiber sind über eine einheitliche Programmierschnittstelle (API) ansprechbar. Das bedeutet insbesondere, dass man ein Programm schreiben kann, das ohne Änderungen mit mehreren Steuerungen kommunizieren kann.
- Üblicherweise sind die Treiber plattformunabhängig, d.h. sie können sowohl auf Windows wie auch auf Linux Systemen eingesetzt werden.
Einfache Entwicklung
Alle drei Punkte sind aus Sicht des Zusammenwachsens von IT und Operation Technology (OT) sehr interessant. Zudem ist zu beobachten, dass die alleinige Dominanz von Windows im Produktionsumfeld an einigen Stellen zu schwinden scheint und somit der Bedarf an plattformunabhängigen Lösungen steigt. Weiterhin hilft die einheitliche Schnittstelle der Treiber dabei, Software einmal zu entwickeln und sehr einfach auf alle unterstützen Steuerungstypen zu portieren. Ein wichtiger Aspekt hierbei:
PLC4X oder OPC UA – Vor- und Nachteile
Auf den ersten Blick wirkt PLC4X genau wie OPC UA. Und in der Tat sind die Ziele der beiden Projekte nahezu identisch, allerdings unterscheiden sich die Lösungsansätze grundsätzlich. OPC UA vereinheitlicht die Kommunikation durch die Spezifikation eines neuen Kommunikationsformates, dass sich inzwischen etabliert hat und in fast allen neuen Steuerungen verfügbar ist. Bei PLC4X auf der anderen Seite liegt das Augenmerk darauf die existierenden oder nativen Protokolle zu implementieren und diese für die Kommunikation mit den Anlagen zu verwenden. Zur Verdeutlichung ist der Ablauf der Kommunikation mit mehreren Geräten für beide Ansätze im nachfolgenden Bild (oben rechts) dargestellt. Beide Ansätze haben Vor- und Nachteile, die im Folgenden kurz vorgestellt werden. Der Hauptvorteil von OPC UA ist neben der Vereinheitlichung der Kommunikation das Datenmodell, das Zugriff auf die verfügbaren Daten in einem Gerät und auf weitere Metadaten wie Typ-, Qualitäts- und Aktualitätsinformationen erlaubt. Zudem werden über sogenannte Companion Specifications herstellerübergreifend standardisierte Datenrepräsentationen erarbeitet. Nachteil ist jedoch eine gewisse Schwerfälligkeit des Protokolls, die es ungeeignet für Abfragen in kurzen Zeitintervallen macht. Der wichtigste Punkt ist aber, dass es schlicht auf dem Großteil der Bestandsanlagen im Feld nicht verfügbar ist, sondern erst seit zwei bis drei Jahren wesentlich in den Markt kommt. Damit ist OPC UA insbesondere für viele Brownfield-Projekte nicht geeignet, wenn die Steuerungen nicht ersetzt werden sollen. Apache PLC4X hat hier einen klaren Vorteil, da die Kommunikation mit den Steuerungen immer in den nativen Protokollen der Steuerungen stattfindet. Damit sind sowohl kurze Zykluszeiten für Abfragen möglich, als auch die Kommunikation mit älteren Geräten, sofern die Protokolle unterstützt werden. Der größte Nachteil von PLC4X ist, dass die Konfiguration für jedes Protokoll etwas anders aussieht. Die Portabilität ist daher nicht so komfortabel wie bei OPC UA. Weiterhin steht kein so reiches Datenmodell zur Verfügung wie bei OPC UA, sondern im Wesentlichen nur das, was die Steuerungen auch heute schon anbieten. Daher gibt es gute Gründe für beide Ansätze. Es gibt sogar einen Treiber für OPC-UA-Kommunikation über PLC4X, so dass sich auch neue und alte Anlagen gleichzeitig mit demselben Programm auslesen lassen.
Wichtige Fragen
- Wer darf PLC4X nutzen und ist es wirklich kostenlos? Jeder darf PLC4X nutzen und es ist komplett kostenlos auch für den kommerziellen Einsatz. Das Lizensierungsmodell der Apache-2.0-Lizenz erlaubt es sogar den bestehenden Quellcode für individuelle Anpassungen zu verändern. Was allerdings geschützt ist, ist der Name „Apache PLC4X“ bzw. „PLC4X“ und das Logo. Sie dürfen nicht für beliebige Zwecke verwendet werden.
- Wer entwickelt PLC4X und wieso? PLC4X wird von einer Community entwickelt, die sich über die Apache Software Foundation organisiert. Hierbei läuft die Entwicklung demokratisch ab und jeder Interessent ist gerne gesehen. Neben einzelnen Personen sind auch mehrere Firmen an der Entwicklung beteiligt, d.h. Entwickler arbeiten in ihrer Arbeitszeit an dem Projekt. Das geschieht in den meisten Fällen aus strategischen Gedanken, um keine ähnliche Software inhouse pflegen zu müssen.
- Wo bekommt man Support? Vorerst nur über die Community. Hier gibt es ein Ticket-System sowie eine Mailing-Liste, auf der Fragen gestellt werden können. Einen direkten (kommerziellen) Support gibt es, wie bei vielen Open-Source-Projekten, erst einmal nicht. Allerdings gibt es Unternehmen die aktiv am Projekt entwickeln und solche Dienstleistungen anbieten, wie zum Beispiel die Firma Pragmatic Industries.
- Wie kann man PLC4X nutzen? Das PLC4X-Projekt stellt den Quellcode auf der Entwicklerplattform GitHub, sowie bei allen Veröffentlichungen entsprechende Bibliotheken zum Download bereit. Beides kann direkt bezogen und genutzt werden.
- Wie kann man mitmachen? PLC4X wird über eine Entwickler-Mailing-Liste (dev@plc4x.apache.org) verwaltet. Hier kann sich jeder der interessiert ist einfach anmelden und mitdiskutieren. Die Projektsprache ist Englisch. Grundsätzlich hat jeder erst einmal ein Leserecht auf den Quellcode. Aber nur einige ausgewählte Entwickler, die sogenannten Committer, dürfen den Code verändern und in das Repository schreiben. Jedoch kann sich jeder registrierte GitHub-Nutzer das Repository als individuelle Kopie forken, auf die dann Schreibrechte bestehen. Wer also eigenen Code zum Projekt beisteuern möchte, kann das einfach per GitHub mit einem sogenannten Pull Request tun. Diese Beiträge werden dann von den Committern geprüft und eingefügt.
Fazit
Mit dem Projekt Apache PLC4X gibt es ein Open-Source-Projekt, das für Unternehmen in der Automatisierungstechnik interessante Möglichkeiten eröffnet. Insbesondere für das Auslesen von Maschinendaten aus Bestandsanlagen. Das Projekt hat zwar sehr ähnliche Ziele wie OPC UA, aber einen ganz anderen Ansatz, so dass es für beide eine Daseinsberechtigung gibt. Auch wenn es direkt aus dem Open-Source-Projekt heraus keinen kommerziellen Support oder Schulungen gibt, so gibt es doch Unternehmen wie Pragmatic Industries, die bei Bedarf entsprechende Dienstleistungen anbieten.