SPS-Programmierung
Die Weiterentwicklung der IEC 61131
Die Programmierung industrieller Steuerungen erfolgt heute vielfach entsprechend des internationalen Standards IEC 61131-3. Welche aktuellen Entwicklungen gibt es hier? Und wie sehen zukünftige Festlegungen im Hinblick auf die Realisierung von Industrie-4.0-Architekturen aus?
Die klassischen zentralen Strukturen der Industrieautomation werden infolge der Durchsetzung digitaler industrieller Kommunikationssysteme in zunehmendem Maße durch dezentrale Sensorik und Aktorik abgelöst. Zusätzlich gibt es eine Reihe von Realisierungen, die auch die Steuerungs- und Regelungsfunktionen auf verschiedene Geräte verteilen, um damit eine Modularisierung des Gesamtsystems zu erreichen oder das Gesamtsystem aus vorhandenen Modulen zusammenzusetzen.
Das Engineering von dezentralen/verteilten Automatisierungssystemen erfordert insbesondere in einem zukünftigen Industrie-4.0-Umfeld einen effektiven, standardisierten Austausch von Engineeringdaten zwischen Software-Werkzeugen verschiedener Hersteller, um die durch Doppel- und Mehrfach-Eingaben beziehungsweise Neuprogrammierung verursachten Fehler sowie die daraus resultierenden Kosten zu senken. Dies betrifft Werkzeuge in einer identischen Phase des Engineering, zum Beispiel zur Programmierung von Steuerungen sowie zur Konfiguration beziehungsweise Parametrierung von Antrieben, aber auch zwischen verschiedenen Engineeringphasen – etwa bei der Übernahme von Daten aus der Produktions- oder der Elektroplanung in die Steuerungsprogrammierung.
Der Standard IEC 61131-3 „Programmable controllers – Part 3: Programming languages“ harmonisiert die Sichtweise auf die und den Umgang mit den industriellen Steuerungen. Im Jahr 2013 wurde nach mehrjähriger Arbeit die 3rd Edition veröffentlicht. Hier wurden wichtige Weiterentwicklungen der Sprachen aufgenommen, wie beispielsweise Regeln für implizite Datentyp-Konvertierungen, Funktionen für explizite Datentyp-Konvertierungen, Funktionen für Byte-Reihenfolgen (Endian), Referenzen (aber keine Zeigerarithmetik), Namensräume und abstrakte Schnittstellen.

Schnittstelle zur SPS
Das Industrie-Konsortium AutomationML will die Lücken zwischen ECAD- und SPS-Programmiersystemen schließen – und spricht mit der Veröffentlichung eines Papers Empfehlungen für diesen Schritt aus.
Die IEC 61131-3, 3rd Edition
Bild 1: Überblick über die Nutzung des XML Austauschformates: Verschiedene Werkzeuge erzeugen und nutzen XML-basierte IEC-61131-3-Informationen.
© René Simon / PLCopenNeu in der 3rd Edition sind objektorientierte Sprachelemente, welche für ausgewählte Aufgaben eine essentielle Weiterentwicklung bei der Programmierung von industriellen Steuerungen erwarten lassen. Zu diesen Sprachelementen gehören eine Erweiterung der klassischen Funktionsbausteine sowie die Einführung des Klassenkonzeptes. Letzteres umfasst Methoden, Interfaces, Vererbung und Polymorphie.
Die objektorientierten Sprachelemente sind insbesondere für die Entwicklung von Bibliotheken (Nutzung der Vererbung) und auch die Modellierung/Spezifikation von (externen) Komponenten (Nutzung von Methoden, Interfaces) geeignet. Aktuell sind in ersten Entwicklungsumgebungen für industrielle Steuerungen objektorientierte Sprachelemente implementiert und stehen für den Programmierer zur Verfügung.
Weiterhin wurde festgelegt, die Programmiersprache ‚Anweisungsliste‘ (Instruction List) mit der zukünftigen 4th Edition, die voraussichtlich 2022 veröffentlicht werden soll, aus dem Standard zu entfernen. Daraus folgt, dass ab diesem Zeitpunkt Steuerungsprogramme, die in Anweisungsliste geschrieben sind, sowie die Maschinen und Anlagen, in denen sie ablaufen, nicht mehr dem anerkannten Stand der Technik entsprechen. Die Anweisungsliste ist eine assembler-ähnliche Programmiersprache, für die auch schon mit der 3rd Edition nicht mehr alle Sprachkonstrukte zur Verfügung stehen. Die Unternehmen haben jetzt etwa fünf Jahre Zeit für die Umstellung und sollten diese auch nutzen!
Mit den Inhalten der 2nd Edition der IEC 61131-3 im Jahr 2001 wurde bereits durch eine gemeinsame Arbeitsgruppe der OPC Foundation und PLCopen ein OPC-UA-Informationsmodell entwickelt und durch eine Spezifikation von OPC-UA-Client-Funktionsbausteinen für IEC 61131-3 ergänzt. Diese Spezifikation ermöglicht eine Controller-to-Controller-Kommunikation mit Kommunikationsfunktionsbausteinen, die eine Weiterentwicklung der IEC 61131-5 darstellen. Dazu gehören zum Beispiel UA_Connect/UA_Disconnect, UA_Read/UA_Rreadlist, UA_Write/UA_Writelist, UA_Methodcall und UA_Browse. Diese Kommunikationsfunktionsbausteine auf Basis der OPC Unified Architecture ermöglichen nicht nur eine Kommunikation zwischen industriellen Steuerungen verschiedener Hersteller, sondern auch eine von den Steuerungen initiierte Kommunikation zu überlagerten Systemen (zum Beispiel MES). Damit wird eine für Industrie 4.0 wichtige Schnittstelle geschaffen. Es ist für die Zukunft anzustreben, beide Spezifikationen in einen Standard IEC 61131-x zu integrieren oder zu überführen.
Ein neuer Industriestandard – IEC 61131-10
Die PLCopen-XML-Spezifikation wurde ursprünglich vom PLCopen Technical Committee 6 entwickelt. Die Rechte wurden über die DKE an die IEC übertragen, das Dokument durch das Ifak Magdeburg in ein durch die IEC vorgegebenes Format überarbeitet und auf dieser Grundlage im Januar 2014 ein New Work Item Proposal (NWIP) gestartet. Nach erfolgreicher Abstimmung wurde die Task Force 10 (TF10) innerhalb der IEC TC65/SC65B/WG7 gegründet. In ihr sind Vertreter aus Österreich, Frankreich, Japan, Deutschland, Niederlande und China vertreten. Deutsche Firmen sind überproportional repräsentiert: Phoenix Contact Software, 3S-Smart Software Solutions und Siemens. Das Kick-off-Meeting fand im Oktober 2014 bei der DKE in Frankfurt statt. Neben der detaillierten Diskussion der Kommentare der nationalen Komitees wurde entschieden, in einem ersten Schritt das PLCopen-XML-Schema vollständig an die 2nd Edition der IEC 61131-3 anzupassen und darauf aufbauend die 3rd Edition umzusetzen. Der International Standard IEC 61131-10 „PLCopen XML Exchange Format according to IEC 61131-3“ wird voraussichtlich im Jahr 2018 veröffentlicht.
Worum geht es dabei im Detail? Die IEC 61131-3 definiert die vom Anwender benötigten standardisierten Programmiersprachen. Zusätzlich wollen die Anwender in der Lage sein, ein komplettes Programm oder Teile davon zwischen verschiedenen Entwicklungsumgebungen auszutauschen. Der Standard definiert zunächst Programm-Organisations-Einheiten; ein vollständiges Programm besteht daneben auch aus Anwender-definierten Datentypen, globalen und externen Deklarationen sowie weiteren Elementen. Dafür wird in IEC 61131-10 der Begriff IEC 61131-3 Projekt verwendet. Ein solches ‚Projekt‘ enthält alle erwähnten Sprachelemente, welche für einen Austausch benötigt werden, um eine konsistente und ablauffähige Einheit auf dem Zielsystem zu erhalten.
Der Austausch von Programm-Organisations-Einheiten in einer der textuellen Sprachen (Anweisungsliste, Strukturierter Text, Ablaufsprache) ist eingeschränkt bereits jetzt möglich, weil eine Syntaxbeschreibung dieser Sprachen Teil von IEC 61131-3 ist. Das Ziel von IEC 61131-10 ist die Wiederverwendung programmierter Lösungen sowohl für textuelle als auch für grafische Sprachen (Kontaktplan, Funktionsbausteinsprache, Ablaufsprache). Der mögliche Austausch-Umfang zwischen den verschiedenen Systemen hängt von den unterstützten Eigenschaften ab, die in der von IEC 61131-3 geforderten Compliance-Listen aufgeführt sind.
IEC 61131-10 definiert für diesen Zweck ein anwendungsunabhängiges, auf der eXtensible Markup Language (XML) basierendes Austauschformat, welches von den Schnittstellen verschiedener Software-Werkzeuge unterstützt wird. Neben textuellen und logischen Informationen kann die Transfer-Fähigkeit von Informationen bezüglich der grafischen Repräsentation – wie etwa die Position und die Größe von Funktionsbausteinen und deren Verbindungen – zur Verfügung gestellt werden. Das Design der transferierten Teile muss die identische Programmlogik repräsentieren und kann im Aussehen in geeigneter Weise geändert werden. Das Austausch-Format ist als XML-Schema (unabhängige Datei mit der Endung .xsd) spezifiziert.
Das IEC-61131-3-XML-Austausch-Format erleichtert das Lebenszyklus-Management von Automatisierungssystemen insbesondere bei Re-Designs, Wartung oder Geräte-Austausch. Wenn ein IEC-61131-3-Projekt als IEC-61131-3-XML-Austausch-Datei gespeichert ist, lässt
es sich unabhängig von einer speziellen Entwicklungsumgebung wiederverwenden und damit in einer beliebigen anderen Entwicklungsumgebung weiterverarbeiten, die das IEC-61131-3-XML-Austausch-Format unterstützt.
Ziel ist, nicht nur korrekte, das heißt ohne Fehler compilierbare Programm-Organisations-Einheiten zu beschreiben, sondern auch einen Arbeitsstand des IEC-61131-3-Projektes zu repräsentieren, einschließlich der Erweiterungen für Layout und Formatierung. Ebenso können syntaktisch inkorrekte IEC-61131-3-Projekte exportiert werden, zum Beispiel Zwischenversionen mit verschiedenen, nicht verbundenen Blöcken in Funktionsbaustein-Sprache (unfertige Programm-Organisations-Einheiten).
Das XML-Austauschformat sollte mehr als den einfachen Export/Import von einer Entwicklungsumgebung zur anderen unterstützen. Dagegen sollten alle relevanten Informationen exportiert werden, also zum Beispiel auch Koordinaten-Informationen für grafische Werkzeuge. Das importierende Werkzeug sollte in der Lage sein zu filtern, welche Teile dieser Informationen in seine Zielumgebung zu importieren sind. Herstellerspezifische Informationen und Attribute dürfen in der Exportdatei enthalten sein und, wenn sinnvoll, selektiv importiert werden. Die herstellerspezifischen Informationen dürfen keinen Einfluss auf irgendeinen logischen Teil des Programmes haben. Weiterhin sollte das Filtern beim Import erfolgen. Daher müssen Hersteller darauf achten, dass ihre Erweiterungen des XML-Schemas so gestaltet sind, dass die Nichtbeachtung dieser Informationen während des Imports keinen Effekt auf die Funktionalität des IEC-61131-3-Projektes ausübt. Herstellerspezifische Attribute und Informationen können durch herstellerspezifische XML-Schemas bekannt gemacht werden.
In Bild 2 ist eine Übersicht des IEC-61131-10-Schemas dargestellt. Das Basiselement ist ‚project‘, welches ein IEC-61131-3-Projekt repräsentiert. Das Element ‚fileHeader‘ umfasst Informationen bezüglich des exportierenden Werkzeuges der XML-Datei, ‚contentHeader‘ beschreibt den Inhalt der XML-Datei. Alle Typ-bezogenen Informationen, wie zum Beispiel Deklarationen von Datentypen, Programm-Organisations-Einheiten und Namensräumen, finden sich in den ‚types‘. Das Element ‚instances‘ enthält alle Instanz-bezogenen Informationen wie etwa Konfigurationen, Ressourcen, Tasks und Variablen. Last but not least ermöglicht ‚addData‘ herstellerspezifische Erweiterungen und ‚documentation‘ eine Dokumentation des Projektes.
Bild 3 zeigt als Beispiel die externe Schnittstelle des Funktionsbausteins - open-Motion-Control-Spezifikation. Diese Schnittstelle umfasst eine Reihe von applikationsspezifischen Eingangs- und Ausgangsvariablen. Die Umsetzung der Schnittstelle des Funktionsbausteins MC_MoveAbsolute in eine XML-Datei entsprechend des IEC-61131-10-Schemas ist schließlich in Bild 4 zu sehen. Dabei sind einige Details aus Aufwandgründen ausgeblendet. Neben einigen administrativen Daten ist die Typdeklaration (types/pouDecl) eines Funktionsbausteins mit dem Namen MC_MoveAbsolute zu sehen. Dieser Funktionsbaustein umfasst unter anderem eine Reihe von Eingangsvariablen (parameters/input-Vars) wie etwa Execute, Position oder Velocity. Die Variable Axis wird als Beispiel vollständig mit ihrem komplexen Datentyp AXIS_REF angezeigt. Diese XML-Datei kann im Unterschied zur rein grafischen und nur für Menschen interpretierbaren Darstellung in Bild 3 von Computer-basierten Werkzeugen automatisch und fehlerfrei weiterverarbeitet werden.
Zusammenfassend lässt sich festhalten: Ziel der Weiterentwicklungen der IEC 61131 ist es, Informationen automatisiert aus frühen Engineering-Phasen (zum Beispiel System-Engineering) in die Steuerungsprogrammierung zu übernehmen und an spätere Engineering-Phasen (zum Beispiel Dokumentation) zu übergeben. Aber auch ein Informationsaustausch etwa mit Werkzeugen zur Erstellung von Visualisierungen oder zur Konfiguration von industriellen Netzwerken oder zur Funktionsvalidierung ist sinnvoll. Die aktuelle PLCopen-Spezifikation ist bereits heute in einer Reihe von Werkzeugen, insbesondere in solchen von Herstellern aus Japan und Deutschland, implementiert. Im Umfeld von AutomationML wurde das Austausch-Format ebenfalls in die Engineering-Workflows integriert und dient dort vorrangig zum Austausch von Logik-Informationen. Eine zeitnahe Weiterentwicklung bezüglich IEC 61131-10 ist zu erwarten.
Autor:
Prof. Dr. René Simon leitet das Fachgebiet Industrielle Steuerungstechnik an der Hochschule Harz und ist Vorstandsvorsitzender PLCopen.














