Offene Steuerungsplattform vereint gemischten Programmcode Die Zukunft der Automatisierung

Phoenix Contact Deutschland GmbH

Bild: Phoenix Contact
01.03.2018

Ist die Zeit der klassischen SPS-Programmierung vorbei? Nein, aber die Möglichkeiten ändern sich. Mit einer neuen Steuerungsplattform lassen sich eine Vielzahl von Programmiersprachen, Open-Source-Funktionen und Tools gleichzeitig verwenden und einfach vereinen. Das erhöht die Flexibilität bei der Entwicklung enorm und ermöglicht einen neuen Level der Teamarbeit bei SPS-Projekten.

Sponsored Content

Da immer mehr typische IT-Anwendungen – wie die Kommunikation mit Datenbanken, Cloud-Computing oder eine direkte Ankopplung an ERP-Systeme – Einzug in die klassische Steuerungstechnik halten, offenbart sich die Schwäche vieler SPS-Systeme: Die Einbindung von Funktionen, die oftmals als Open Source zur Verfügung stehen, gestaltet sich schwierig. Sie müssen häufig mit hohem Zeitaufwand in das entsprechende Engineering übertragen werden, wo die Abarbeitung in einer Echtzeitumgebung stattfindet. Aufgrund der nicht-deterministischen Ethernet-Kommunikation erweist sich das meist als problematisch.

Vor diesem Hintergrund hat sich Phoenix Contact die Frage gestellt, wie eine zukunftsfähige Steuerungsplattform aussehen muss, deren Anwender von der Open-Source-Community profitieren, ihre Applikation schneller automatisieren und dabei nicht zur Verwendung des Engineering-Werkzeugs des jeweiligen Herstellers gezwungen sind. In jedem Fall sollten die Anwender mit dem System wie mit einer klassischen SPS arbeiten können. Im Ergebnis ist die komplett neu entwickelte Technologieplattform PLCnext-Technology entstanden.

Um in einer Steuerung eingesetzt werden zu können, muss das Betriebssystem echtzeitfähig sein. Bei dessen Auswahl spielt zudem die Verfügbarkeit von Code, Bibliotheken oder ganzen Applikationen eine entscheidende Rolle. Aufgrund dieser Rahmenbedingungen hat sich Phoenix Contact bei der PLCnext-Technology für Linux mit Echtzeiterweiterung entschieden. Auf diese Weise ist die Ausführung von Code im und außerhalb des Echtzeitkontexts möglich. Mit Linux können Programme zur Maschinensteuerung somit deterministisch abgearbeitet werden, während beispielsweise die Kommunikation mit Datenbanken außerhalb der Echtzeit läuft.

Gemischten Programmcode verarbeiten

In der Regel schreibt der Anwender das Programm zur Maschinensteuerung in IEC 61131-3. Nun möchte er einen mit Matlab Simulink oder C++ erstellten Regler in die Applikation einbinden, ohne ihn in IEC 61131-3 umschreiben zu müssen. Das Umschreiben ist oftmals notwendig, da die meisten Systeme den direkten Zugriff aus dem Hochsprachenprogramm auf Betriebssystemfunktionen nicht erlauben.

In modernen Applikationen wird es somit vermehrt einen Mischbetrieb aus IEC-61131-Programmen und Hochsprachenkomponenten geben, die sowohl in als auch außerhalb von Echtzeit abgearbeitet werden müssen. Darüber hinaus hat der Programmierer sicherzustellen, dass die Daten konsistent von einem zum nächsten Prozess übertragen werden. Die Umsetzung dieser beiden Anforderungen stellt sogar für Experten eine Fehlerquelle dar. So ist der zeitliche Zusammenhang der verschiedenen Prozesse im System häufig nicht genau bekannt, sodass falsche Prioritäten gesetzt werden. Oder es kommt vor, dass Ressourcen nicht geblockt sind und in der Applikation deshalb Fehlfunktionen auftreten.

Hier eröffnet die PLCnext-Technology einen Vorteil, denn sie umfasst unter anderem einen Execution and Synchronization Manager (ESM) und den Global Dataspace (GDS). Mit dem ESM kann der Anwender Programme, die in IEC 61131, C++ oder Matlab Simulink geschrieben sind, durch eine Konfiguration per XML-Datei in einen festen Abarbeitungszyklus bringen und die Reihenfolge festlegen. Auf diese Weise wird die Funktion einer typischen SPS mit Hochsprachen- und/oder IEC-61131-3-Programmen im Mischbetrieb auf einfache Art realisiert. Der GDS ist für den konsistenten Datenaustausch zwischen den Programmen sowie mit den unterschiedlichen Feldbussystemen verantwortlich. Bei ihm handelt es sich um mehr als ein Shared Memory, denn der GDS bietet Funktionen wie Publishing und Subscribing, intelligente Buffer-Mechanismen sowie eine einfache Konfiguration über eine für den Menschen lesbare XML-Datei. Das reduziert den Zeitbedarf des Programmierers erheblich, da er lediglich angeben muss, welche Ausgangsdaten eines Programms mit den Eingangsdaten eines anderen Programms oder Feldbussystems verbunden werden sollen. Um den Buffer-Mechanismus und somit das Blockieren von Ressourcen kümmert sich der GDS.

Open-Source-Software nutzen

Die PLCnext-Technology verfügt darüber hinaus über einen intelligenten Datenlogger, der ebenfalls mittels einer XML-Datei konfiguriert wird und direkt in SQL-Datenbanken speichern kann. So lassen sich Prozessdaten getriggert zyklussynchron mitschreiben und beispielsweise bei Überschreitung von Grenzwerten alle wichtigen Daten aufzeichnen. Zudem umfasst die PLCnext-Technology einen OPC-UA-Server und -Client sowie die Profinet-Controller- und -Device-Funktionalität. Ferner werden sämtliche Debugging-Mechanismen unterstützt, die der Programmierer gewohnt ist. So kann der Eclipse-Programmierer sein Tracing nutzen, um sich die Systemauslastung anzeigen zu lassen und eventuelle Probleme bei den Task-Prioritäten und den daraus resultierenden Unterbrechungen zu erkennen.

Mit der PLCnext-Technology kann sich der Anwender aus der Open-Source-Community bedienen. Er hat also Zugriff auf einen großen Software-Pool. Beispielsweise lassen sich ein OpenVPN-Client oder -Server installieren sowie eine Datenbank auf dem Gerät oder beliebige Laufzeitumgebungen – zum Beispiel zur Visualisierung – einrichten. Damit eröffnet die PLCnext-Technology einen deutlichen Mehrwert gegenüber starr in die IEC-61131-Laufzeitumgebung integrierten Lösungen und gibt dem Anwender die Freiheit, die er für die Umsetzung seiner Applikation benötigt. Dabei kann er sich auch nur in der IEC-61131-Umgebung bewegen, die für alle PLCnext-Technology-Geräte PC Worx Engineer heißt.

Durchgängiges Security-Konzept

Verwendet der Anwender PC Worx Engineer als eines der Werkzeuge zur Erstellung einer Applikation, lässt sich das System dort grafisch konfigurieren, statt die beschriebene XML-Datei zu nutzen. Tasks, Programme und Prozessdaten können grafisch verknüpft werden. Das gilt ebenso für Hochsprachenprogramme, die als Instanz ebenfalls eine grafische Darstellung haben. Beispielsweise kann der Programmierer der Maschinenapplikation einen in Hochsprache geschriebenen Regelkreis als Programminstanz in PC Worx Engineer einfügen, der dort dann als Baustein abgebildet wird. Die Verknüpfung der Prozessdaten findet anschließend sehr einfach grafisch statt.

Die PLCnext-Technology überzeugt außerdem durch ein durchgängiges Security-Konzept. Dies beginnt bei einem auf den Geräten aufgebrachten Vertrauensanker in Form eines Trusted-Platform-Moduls (TPM). Ein Benutzer- und Gruppenmanagement erlaubt die individuelle Anpassung der Zugriffsrechte bis auf das Prozessdatum. Die Datenübertragung zum Engineering erfolgt verschlüsselt und authentifiziert. Darüber hinaus stehen regelmäßige Sicherheits-Updates zur Verfügung, die entweder über ein Device-Management oder manuell installiert werden können.

Bildergalerie

  • Mehrere Entwickler können unabhängig voneinander mit unterschiedlichen Entwicklungswerkzeugen an einem Projekt arbeiten.

    Mehrere Entwickler können unabhängig voneinander mit unterschiedlichen Entwicklungswerkzeugen an einem Projekt arbeiten.

  • ESM und GDS sind unabhängig zu konfigurieren und arbeiten Hand in Hand, um dem Anwender die größtmögliche Freiheit der Systemkonfiguration zu ermöglichen.

    ESM und GDS sind unabhängig zu konfigurieren und arbeiten Hand in Hand, um dem Anwender die größtmögliche Freiheit der Systemkonfiguration zu ermöglichen.

  • Der ESM dient zur Konfiguration der zeitlichen Abarbeitungsreihenfolge von Programmen unterschiedlicher Quellen direkt auf Betriebssystemebene.

    Der ESM dient zur Konfiguration der zeitlichen Abarbeitungsreihenfolge von Programmen unterschiedlicher Quellen direkt auf Betriebssystemebene.

Verwandte Artikel