In der Automatisierung gibt es diverse Teilaufgaben, für die unterschiedliche Softwarekomponenten entwickelt werden müssen. Für jede Komponente steht das passende Entwicklungswerkzeug zur Verfügung. Am Ende müssen jedoch alle Komponenten eine funktionale Einheit bilden. PLCnext Engineer, die konfigurierbare Engineering-Umgebung des offenen Ecosystems PLCnext Technology von Phoenix Contact, führt sämtliche Komponenten zusammen. So kann sich der Anwender eine auf seine Applikationsanforderungen angepasste Entwicklungsumgebung zusammenstellen. Darüber hinaus kann das Tool individuell um die jeweils notwendigen Bibliotheken, Apps oder Schnittstellen erweitert werden.
Das offene, Linux-basierte Ecosystem PLCnext Technology erlaubt mit unterschiedlichen Schnittstellen und Services den Datenaustausch zwischen Anwendungen, die außerhalb des Echtzeitkontextes ausgeführt werden, mit der PLCnext Runtime. Sie kontrolliert die zeitkritischen Bestandteile der Applikation. Python- und Node-Red-Programme kommunizieren zum Beispiel über OPC UA oder MQTT. Werden externe HMI-Visualisierungen erstellt, kann der Anwender das REST-Interface zur Datenweiterleitung einsetzen. Beim Applikationsteil mit Echtzeitanforderungen ist er nicht auf die Programmiersprachen der IEC 61131-3 beschränkt. PLCnext Technology ermöglicht es den Anwendungsentwicklern, das für ihre Aufgabenstellung am besten geeignete Werkzeug zu verwenden (Bild 2).
Ist der Nutzer bei der reinen Logik einer Anlagensteuerung mit IEC-Code gut aufgestellt, lassen sich komplexere Algorithmen oftmals einfacher in Hochsprache – etwa C++ oder C# - generieren. Für schwierige regelungstechnische Aufgaben bietet es sich häufig an, den Code mittels einer modellbasierten Entwicklung in Matlab Simulink zu erzeugen. Für jede Thematik gibt es also ein passendes Tool. Meist spielen auch persönliche Vorlieben oder Qualifikationen eine entscheidende Rolle, wenn es um die Auswahl der Entwicklungsumgebung geht. PLCnext Technology bietet hier ein hohes Maß an Freiheit. Für die oben genannten Programmiersprachen liegen Toolchains vor, die ausführbaren Code für die PLCnext-Steuerungen erstellen. Handelt es sich um beliebte Werkzeuge wie Eclipse oder Visual Studio, werden entsprechende Add-ins oder Extensions installiert, die Projektvorlagen bereitstellen. Über ein Command Line Interface können die Nutzer ebenfalls in jeder anderen Entwicklungsumgebung arbeiten.
Externe Komponenten über Bibliotheken integrieren
Für jede Teilaufgabe eines Projekts eröffnet das Ecosystem PLCnext Technology somit einen effizienten Weg zur Anwendungsentwicklung. Doch wie werden die verschiedenen Gewerke zu einer funktionalen Einheit verbunden? Die zentrale Komponente zur Projektgenerierung stellt PLCnext Engineer dar (Bild 3). Dort werden die eingesetzten Hardwarekomponenten konfiguriert und parametriert, das IEC-Programm erzeugt, die Taskkonfiguration durchgeführt sowie die erzeugten Programme instanziiert. Bibliotheken, die von den bereits erwähnten Toolchains generiert werden, binden die Komponenten ein, die in anderen Entwicklungsumgebungen erstellt worden sind.
Die Handhabung ist dabei die gleiche wie bei der Verwendung von Bibliotheken, welche direkt in PLCnext Engineer geschaffen oder beispielsweise von Phoenix Contact über den digitalen Marktplatz PLCnext Store zur Verfügung gestellt wurden. Sie lassen sich im Engineer-Projekt referenzieren. Die erzeugten Bibliotheken enthalten entweder Programme oder Funktionsbausteine. Wie vom IEC-Code bekannt, können Funktionsbausteine innerhalb von Programmen aufgerufen werden und tauschen ihre Daten über Ein- und Ausgangsparameter aus. Programme lassen sich einer Task im Execution and Synchronization Manager (ESM) der PLCnext Technology zuordnen und gemäß den Taskeinstellungen ausführen (Bild 4).
Der Datenaustausch von Programmen mit den I/O-Modulen oder weiteren Programmen geschieht über Ports. Bei den Ports handelt es sich um einen Mechanismus, der sicherstellt, dass die Daten dem jeweiligen Programm mittels des Global Data Space (GDS) tasksynchron und konsistent bereitstehen. Eingangsdaten werden zu Beginn der jeweiligen Task über IN-Ports eingelesen, Ausgangsdaten am Ende der Task über OUT-Ports in den zugehörigen Puffer im GDS geschrieben. Die Verknüpfung von IN- und OUT-Ports erfolgt über einen tabellarischen Editor in PLCnext Engineer (Bild 5).
Verschiedene Add-ins für weitere Funktionen nutzen
Der Download der Konfiguration und aller Programmteile auf die Steuerung geht gesammelt aus PLC Engineer vonstatten. Weitreichende Debug-Funktionen unterstützen die anschließende Inbetriebnahme. Auf diese Weise lassen sich auch Werte innerhalb von Simulink-Modellen online beobachten und aufzeichnen. Sollen die Modelle selbst online wie offline in der Engineering-Umgebung angezeigt werden, ist das Add-in Viewer for Simulink per Lizenz freizuschalten.
Visualisierungen kann der Anwender mit den integrierten HMI-Editoren erstellen. Bei standardisierten Anwendungen lassen sich die Visualisierungen mithilfe des Add-ins HMI-Generator automatisch generieren. Eine dazu einmalig erzeugte xml-basierte Konfigurationsdatei definiert die anzufertigenden Visualisierungsseiten und -symbole. Anhand der instanziierten Programme und Funktionsbausteine erstellt PLCnext Engineer die Visualisierung dann selbständig. So muss im Seriengeschäft anstelle einer wiederkehrenden Generierung einer projektspezifischen Visualisierung nur eine Datei erzeugt werden, die sich in jedem Projekt erneut nutzen lässt.
Ist in dem Projekt funktionale Sicherheit erforderlich, hat der Anwender entweder eine hoch performante Sicherheitssteuerung – zum Beispiel den Remote Field Controller RFC 4072S – zu projektieren. Alternativ setzt er eine Steuerung aus der Familie Axioline F ein, die um die neue linksanreihbare Sicherheitssteuerung AXC F XT SPLC 1000 erweitert wird. Die Entwicklungsumgebung zur Erstellung des Sicherheitsprogramms wurde direkt in PLCnext Engineer eingebunden, wobei ein integriertes User Management lediglich berechtigten Usern das Editieren erlaubt. Nachladbare C-Funktionen können den Funktionsumfang der Sicherheitssteuerung um anwendungsspezifische Funktionen ergänzen. Zu diesem Zweck gibt es das Add-in Safe C, das Codevorlagen generiert sowie die Einbindung der erzeugten Bausteine ermöglicht. (neu)
Die PLCnext Technology auf einen Blick
- vernetzte Zusammenarbeit
- Mit PLCnext Technology können mehrere Entwickelnde aus unterschiedlichen Generationen in verschiedenen Programmiersprachen unabhängig voneinander an einem Steuerungsprogramm arbeiten.
- Echtzeitausführung unabhängig von der Sprache
- Programmsequenzen unterschiedlicher Sprachen lassen sich beliebig in Tasks kombinieren. Aufgrund des Task-Handlings laufen Programmroutinen verschiedenen Ursprungs wie ein klassischer IEC-61131-SPS-Code ab, die Hochsprachenprogramme werden automatisch deterministisch. Die Plattform stellt einen konsistenten Datenaustausch sowie die synchrone Ausführung des Programmcodes sicher.
- Nutzung des bevorzugten Programmiertools
- Wegen der Offenheit der PLCnext Technology können Anwender in der von ihnen favorisierten Sprache programmieren, sei es IEC 61131 oder Hochsprache. In der vertrauten Entwicklungsumgebung - wie PLCnext Engineer, Matlab Simulink, Eclipse oder Visual Studio – lassen sich individuelle Lösung zügiger entwickeln.
Autor
Marko Paulat ist Product Manager Automation Systems bei Phoenix Contact Electronics in Lemgo.