IEC 61499
Das Single Line Engineering
Industrie 4.0 ruft nach Automatisierungskonzepten, bei denen die Steuerungsintelligenz auf viele Komponenten verteilbar ist. Die IEC 61499 eröffnet hier interessante Möglichkeiten, die nicht auf den ersten Blick ins Auge fallen – zum Beispiel das Single Line Engineering.
Angesichts der steigenden Komplexität, die Konzepte wie Industrie 4.0 und Internet-of-Things mit sich bringen, besteht die große Herausforderung darin, Automation einfach zu gestalten. Speziell was das Engineering der Steuerungstechnik betrifft, bringt die IEC 61499 hier ideale Voraussetzungen mit.
Zur Erinnerung: Die IEC 61499 ist als Nachfolgenorm der IEC 61131 angetreten, deren Einschränkungen insbesondere in Hinblick auf verteilte Steuerungssysteme zu überwinden. Ähnlich wie bei der IEC 61131 beruht das Modell der IEC 61499 auf einem objektorientierten Ansatz mit Funktionsbausteinen – allerdings wird das zyklische Ausführungsmodell der alten Norm bei der IEC 61499 durch ein ereignisgesteuertes Modell ersetzt. Der größte Fortschritt der Norm ist wohl die Möglichkeit, ganze Systeme beziehungsweise Anlagen zu modellieren und die Steuerungslogik flexibel auf unterschiedliche Geräte zu verteilen. Außerdem wird durch die Interoperabilität, Konfigurierbarkeit und Portabilität eine weitreichende Systemoffenheit gefördert.
Am Beispiel einer Förderbandstrecke mit einer variablen Anzahl an Förderbandsegmenten, segmentierten Anfahrwarnungen und Not-Aus-Kreisen lässt sich gut veranschaulichen, wie sich auf der Grundlage der IEC 61499 und der darauf basierenden Software-Suite nxtStudio von nxtControl sehr einfache Lösungen im Sinne eines so genannten Single Line Engineering umsetzen lassen. Bei Letzterem handelt es sich um eine Art der Programmierung, bei der sich auf der Grundlage des Adapter-Konzeptes der IEC 61499 Funktionsblöcke mit einfachen Verbindungslinien selbst zu komplexen Anwendungen verschalten lassen. Der entscheidende Vorteil dabei: Die vollständige Komplexität der Anwendung bleibt dem Automatisierungstechniker verborgen. Dieser spart so Zeit und Geld und umgeht viele Fehlerquellen.
HMI-Visualisierung der Beispielapplikation ‘Förderbandstrecke’: Da die visuelle Darstellung immer Teil eines gekapselten Automatisierungsobjekts ist, können Visualisierungen sehr schnell erstellt werden.
© nxtControlIn dieser Applikation gilt es, die Not-Aus-Signale mit den einzelnen Förderantrieben zu verschalten. Die Anfahrwarnungssequenz (Ampelsignal) muss vor dem Einschalten der Antriebe ablaufen. Weiterhin sollen die Förderbandantriebe einer nach dem anderen eingeschaltet werden, um zum Beispiel Materialstau zu vermeiden. Umgekehrt müssen beim Ausschalten, bei einem Ausfall eines Antriebes oder beim Auftreten eines Not-Aus-Signals alle Antriebe gleichzeitig stoppen. Nicht zuletzt soll die Anlage jederzeit schnell und mit geringem Aufwand um weitere Teilsegmente (Förderbandstrecke mit Anfahrwarnung und Not-Aus) erweiterbar sein.
Das entsprechende Steuerungsprogramm für die beschriebene Applikation setzt sich zusammen aus den Funktionsblöcken für zentrale Anlagenfunktionen, den Förderbandantrieben, der Anfahrwarnungssequenz und der Not-Aus-Funktion. Die einzelnen Funktionsblöcke beinhalten als Verbindungspunkt jeweils einen ‚Socket‘ und ‚Plug‘ eines Adaptertyps, über die der Signalaustausch zwischen den Funktionsblöcken bidirektional erfolgt. Ein Socket ist eine Instanz eines IEC-61499-Adapters, der auf der Ausgangsseite eines Funktionsblockes verwendet wird; als Plug wird die Instanz bezeichnet, wenn diese auf der Eingangsseite eines Funktionsblocks Verwendung findet. Socket und Plug unterscheiden sich also durch die Umkehrung der am IEC-61499- Adapter definierten Interfaces.
Daten stets konsistent
Ein IEC-61499-Adaptertyp ermöglicht die Formulierung eines Interfaces als Funktionsblock. Die Assoziation eines Events zu Daten am Interface sorgt für Datenkonsistenz, da mit Auftreten eines Events die dazugehörigen Daten gemeinsam als ein einziges Informationspaket gesehen und zwischen verbundenen Adaptern in verteilten Systemen auch über Gerätegrenzen hinweg übertragen werden. Abstrakt verglichen mit Hochprogrammiersprachen kann ein Adapter als Interface betrachtet werden. Dessen Events stellen Methodenbezeichner dar, die verbundenen Daten die Membervariablen einer Methode.
Die Kreativität besteht nun darin, das Adapterkonzept so zu verwenden, dass für die Verschaltung von Funktionsblöcken die Anzahl der Verbindungslinien auf ein Minimum reduziert wird. Dazu müssen die Daten entsprechend bearbeitet beziehungsweise ausgewertet werden; anschließend werden nur kumulative Ergebnisse an den nächsten Funktionsblock weitergeleitet.
Beispiel eines Adaptertyps: Im Bild oben zu sehen ist der Adapter mit der Event-Datenassoziation, unten links der Adapter als Socket (FB-Ausgang) und unten rechts der Adapter als Plug (FB-Eingang).
© nxtControlJeder Funktionsblock verarbeitet seine Daten in sich als Black-Box. Das Interface eines Adaptertyps definiert die Informationen, die – als Blackbox gesehen – mit Vorgängern und Nachfolgern einer Verarbeitungskette ausgetauscht werden. Ein ‚Informationspaket‘ wird in diesem Programmierkonzept sequentiell von einer Black Box zur nächsten weitergereicht. Daten innerhalb des Informationspakets können hierbei gelesen, geschrieben oder im Datenfluss verändert werden. Somit reicht im optimalen Fall für die Verschaltung eine einfache Linie, welche die Adapter miteinander verbindet – deshalb auch die Bezeichnung Single Line Engineering.
Die tatsächliche Komplexität der Lösung ist bei diesem Ansatz für den Automatisierungstechniker nicht sichtbar in den einzelnen Funktionsbausteinen implementiert. So entstehen komplette Bibliotheken mit Automatisierungsobjekten, die dem Anwendungsprogrammierer das Leben wesentlich erleichtern. Die Bibliotheken selbst werden von Spezialisten gebaut und getestet und danach Projektingenieuren zur Verfügung gestellt. Sind diese Bibliotheken auf das aspektorientierte Engineering ausgelegt, beinhalten die einzelnen Automatisierungsobjekte jeweils auch ihre Visualisierung (HMI/SCADA), die I/O-Anbindung, Test- und Inbetriebnahme, Dokumentation und eben die Steuerungslogik.
Standards definieren keine Bibliotheken, deshalb hängt es vom Know-how und der Erfahrung des jeweiligen Anbieters ab, inwieweit eine Bibliothek den Anwender unterstützt. Auf jeden Fall enthält ein Bibliothekselement im nxtStudio ein konsistentes, in sich gekapseltes Bild eines Objektes mit all seinen unterschiedlichen Aspekten. Je nach Kontext werden diese Aspekte im Engineering-Prozess dem Anwender zur Verfügung gestellt. Zusammenhängende Informationen werden vom Tool verwaltet und automatisch angereichert (zum Beispiel Variablenanbindung bei HMI, Querkommunikation usw.).
Komplexität vor dem Anwender verbergen
Zum besseren Verständnis der für den Anwendungsprogrammierer verborgenen Komplexität nun ein detaillierterer Blick auf die Not-Aus-Funktion: Prinzipiell ist die Verriegelungslogik in der Funktionalität so aufgebaut, dass ein Antrieb sich ausschalten muss, falls der nachfolgende Antrieb nicht läuft. Dazu wird ein boolesches Signal (followerNotRunning) zwischen den Funktionsbausteinen ausgetauscht. Für das segmentweise Ausschalten wird dieses Signal vom Not-Aus-Funktionsbaustein logisch verknüpft.
Der Funktionsbaustein ist in der verschalteten Kette am Segment-Ende eines Sicherheitskreises platziert. Einerseits wertet er den physikalischen Zustand des I/O-Signals aus, andererseits verknüpft er den Status der nachfolgenden Antriebe mit diesem Signal. Wenn kein Not-Aus-Signal anliegt, wird das logische Ergebnis der Nachfolger durchgereicht. Liegt jedoch ein Not-Aus-Signal vor, wird allen Vorgängern ein Abschaltsignal gesandt.
Im Sinne des Single Line Engineering wird bei der Applikationsprogrammierung die Verschaltung und damit die logische Verknüpfung zwischen den einzelnen Elementen – wie bereits erwähnt – durch eine einzige Adpaterverbindung realisiert! Durch die Verwendung von SIFB (Service-Funktionsbausteinen) für den abstrakten Zugriff auf physische I/O-Signale innerhalb des Funktionsbausteines reduziert sich das Funktionsbaustein-Interface auf funktional notwendige Signale. Die I/O-Anbindung wird im Inneren des Funktionsbausteines definiert und hierarchisch strukturiert und für die physische Verschaltung im Editor oder Hardware-Konfigurator angeboten.
Trotz der Komplexität einer über mehrere Steuerungen verteilten Applikation mit zwei unterschiedlich verteilten Sicherheitszonen ist das Steuerungsprogramm sehr simpel.
© nxtControlDurch das beschriebene Konzept gestaltet sich das Erstellen und Segmentieren einer Förderbandanwendung entsprechend einfach. Das heißt, es müssen lediglich Funktionsbaustein-Instanzen für die gewünschte Anzahl an Antrieben, Anfahrwarnungen und Sicherheitskreisen durch Drag&Drop des Typs im Editor erstellt und dort mit einzelnen Linien verbunden werden. Die Reihenfolge der Verkettung definiert hierbei die Segmentierung und Zuständigkeit für Anfahrwarnung und Sicherheitskreis.
Eine Änderung der Applikation ist genauso einfach. Etwaige Anpassungen können durch simples Hinzufügen oder Entfernen von Funktionsblock-Instanzen und Einbindung in die Verschaltungskette erfolgen. Alle logischen Verknüpfungen zur Erfüllung der Abschaltsequenz beziehungsweise der Anfahrwarnungen sind hierbei bereits in den Funktionsblocktypen enthalten und verschalten sich automatisch zu einer Gesamtapplikation.
Auf der Grundlage dieses Konzeptes lassen sich auch sehr komplexe Projektanforderungen abdecken. Das heißt: Ein (Teil-)Automatisierungsprogramm kann seine Konfiguration zur Laufzeit verändern oder sie beim Systemstart feststellen und seinen Programmfluss entsprechend anpassen. Als konkretes Beispiel kann an eine Temperaturregelung eine beliebige Zahl an Temperatursensoren über Adapter angeschlossen werden. Die Regelung definiert hierbei das erwartete Signal wie zum Beispiel Mittel-, Minimal- oder Maximalwert. Über ein Adapter-Event wird die Konfigurationsinformation an die Sensoren weitergeleitet, die Sensoren liefern ihrerseits den Temperaturwert sequentiell richtig verarbeitet an die Regelung. Die Regelung benötigt hierbei keine Information über Anzahl- und Ausprägung der Sensoren, sondern fordert Daten in benötigter Ausprägung über den Adapter an.
Zudem wird eine Technologie-übergreifende Programmierung von Anlagen wesentlich erleichtert.
Auch Technologie-Mix wird unterstützt
Programm eines (vereinfachten) Not-Aus-Funktionsblocks. Orange hinterlegt die Verwendung des Adapters als Socket und Plug für sequentielle Datenweitergabe.
© nxtControlDas Konzept des Adapter-Interfaces unterstützt einen solchen Technologie-Mix. So kann zum Beispiel ein Interface in Hochsprachen (.Net, C++, Java-Klasse) als Adapter abgebildet und als Kommunikationspunkt mit einem Steuerungsprogramm direkt verbunden werden. Der Datenfluss ist im Adapter als Black Box gekapselt, jedoch durch sein Interface transparent in der Anwendung einsetzbar.
Bis hierher lässt sich also festhalten: Durch die Verwendung von Adaptern als Interface zwischen Applikationen und/oder Bausteinen ist jederzeit eine flexible Anpassung der Anlage möglich. Mehr noch: Die Definition von Interfaces zwischen Applikationen ist eine Grundvoraussetzung für moderne Produktionskonzepte wie Plug & Produce. Die IEC-61499-Adapter bieten hier eine standardisierte Möglichkeit, datenkonsistente Interfaces durch die Kombination aus Daten- und Event-Beschreibung beziehungsweise aus Daten- und Event-Assoziation zur Verfügung zu stellen. Am Ende des Tages wird so Engineering-Zeit eingespart und eine gleichbleibende Qualität erzielt.
Zugegeben: Auf den ersten Blick ist ein Standard wie die IEC 61499 durchaus eine ‚sperrige‘ Sache. Bei näherem Hinsehen jedoch beziehungsweise wenn man erst einmal ein detailliertes Verständnis über die dahinterstehenden Mechanismen entwickelt hat, lässt sich klar erkennen, dass sich diese Norm ideal dafür eignet, den Herausforderungen der digitalen Industrie-4.0-Welt gerecht zu werden.
Autoren:
Gernot Kollegger ist Entwicklungsleiter von nxtControl;
Horst Mayer ist Geschäftsführender Gesellschafter von nxtControl.
















