1 Einleitung
2 Hierarchische Strukturierung von Applikationen
Position
des FBs rechts in Abb. 2, was aufgrund des Portalroboteraufbaus nachvollziehbar ist. Diese Annahme wird jedoch an die nächsthöhere Hierarchieebene über die Schnittstelle Controller_Interface
weitergereicht, die einen konkreten Positionswert (Final_Position
) erwartet. Die nächsthöhere Komponente wird also gezwungen diese Schnittstelle zu implementieren und bindet sich dadurch stark an Subkomponenten die Koordinaten als Eingabe erwarten.
Controller_Interface
, welches nun gänzlich anders aussieht als das in Abb. 2 und mit diesem inkompatibel ist. Vervollständigt man das notwendige Automationsprogramm, so sieht man, dass sich diese Schnittstellen bis in die oberste Hierarchieebene ziehen und somit alle SW-Komponente abhängig von den HW-Schnittstellen werden und damit nur beschränkt wiederverwendbar sind.
STRING
s an die unterlagerten HW-Steuerungen über die AAxisLogic
Schnittstelle (siehe Abb. 4) weitergegeben. Diese Schnittstelle beschreibt also nicht wie wie der Aktuator verfahren werden soll (z. B. Schaltstellungen oder kartesische Koordinaten), sondern nur wohin er verfahren werden soll.
3 Integration von IEC 61131-3 in IEC 61499
RESOURCE
IEC 61499 FB in einer vorbestimmten Reihenfolge zyklisch aufgerufen. Während der Aktivierung können eintreffende Events verarbeitet werden. Obwohl mit dieser Implementierung IEC 61131-3 und IEC 61499 Applikationen nebeneinander verwendet werden können, sind einige Nachteile, wie der Abarbeitungs-Overhead durch das zyklische Aufrufen, die Berechnung der Abarbeitungsreihenfolge, sowie nicht konforme Implementierung von IEC 61499 Konzepten gegenwärtig [14].Dienstschnittstellen
-FB
koppelt den zyklischen Teil mit dem eventgetriebenen Teil der Anwendung. Jedoch führt der Kopplungs-FB zum Entstehen gravierender Nachteile, wie instabile Zykluszeiten und Dateninkonsistenzen [16].3.1 Integrationskonzept
3.1.1 Zuordnung der Modellelemente
TASK
mit einer IEC 61499 RESOURCE
korrespondiert, wird ein spezieller Ressourcentyp erstellt, der als Abarbeitungscontainer für IEC 61131-3 Programm-Organisationseinheiten (POEs) dient und die beinhalteten IEC 61131 POEs zyklisch aufruft. Die geforderte Zykluszeit wird dieser speziellen die RESOURCE
als Parameter bekannt gemacht. Die IEC 61499 definiert die RESOURCE
als eine von anderen RESOURCE
en unabhängige Abarbeitungseinheit. Unter der Annahme, dass die Echtzeitbedingungen für alle Ressourcen erfüllt werden können, kann eine korrekte zyklische Abarbeitung garantiert werden. Dies kann beispielsweise dadurch erreicht werden, dass jede RESOURCE
als Echtzeit-Thread mit Round-Robin Scheduling gestartet wird. Um die zyklische Abarbeitung von IEC 61131 POEs in das eventbasierte Abarbeitungsmodell der IEC 61499 zu integrieren, wird die Aufrufreihenfolge als lineare Liste in die Event-Aufrufliste eingetragen (siehe Abb. 7). Im Gegensatz zu IEC 61499 Funktionsbausteinnetzwerken, deren Abarbeitungsreihenfolge dynamisch erzeugt werden muss, kann die Aufrufreihenfolge einer Funktionsbaustein-Sprache (FBS) Applikation statisch berechnet werden (siehe Abschn. 3.1.2). Bei jedem zyklischen Aufruf der IEC 61131 RESOURCE
wird die Abarbeitung am Anfang der Liste gestartet und endet mit der Abarbeitung des letzten eingetragenen FB. Danach wird bis zum nächsten Aufruf des IEC 61131 RESOURCE
zum Start des nächsten Zyklus gewartet. Hiermit ist eine parallele Abarbeitung von zyklischer IEC 61131-3 und eventgetriebener IEC 61499 Steuerungslogik möglich.
einfache FB (EFB)
erweist sich als geeignetes eventgetriebenes Analogon zum IEC 61131-3 FB. Daher wird liegt in dieser Arbeit der Fokus auf der Integration der IEC 61131-3 FBS. Die IEC 61499 beschreibt den EFB
als einen Dienstschnittstellen
-FB
, bei dem jedes verfügbare Eingangsevent jeweils die Abarbeitung eines assoziierten Algorithmus startet. Für das vorliegende Integrationskonzept [16] wird diese Definition adaptiert: Ein EFB
gilt als vereinfachte Version eines Basis-FB mit nur einem Algorithmus, nur einem Eingangsevent REQ
, und einem Ausgangsevent CNF
. Wird nun schlussendlich der Eventkopf des IEC 61499 FB entfernt, so kann ein IEC 61499 EFB
auch als IEC 61131-3 FB
verwendet werden. Ein FB der abgearbeitet werden soll, wird durch das REQ
Event des dualen EFB aktiviert (siehe Abb. 8). Damit werden die Datenwerte, welche an den Eingängen des FB anliegen, übernommen und die Abarbeitung des FB gestartet. Das CNF
Event wird in der Abarbeitung nur zur Bestimmung des Endes der Abarbeitung und der damit einhergehenden Aktualisierung der Ausgänge verwendet. Algorithmen, welche Sprachen verwenden deren Abarbeitungsreihenfolge im zyklischen Abarbeitungsmodell der IEC 61131 inhärent wohldefiniert sind (z. B. Structured Text (ST), Kontaktplan (KOP), FBS), können trivial übernommen werden. Algorithmen die als IEC 61499 FB-Netzwerk (FBN) definiert sind, müssen gesondert betrachtet werden. Sie ähneln in ihren Eigenschaften den zusammengesetzten FB der IEC 61499. Diese können als atomare Abarbeitungseinheiten gesehen werden [18], was es erlaubt jeden dieser FBN Algorithmen gesondert zu betrachten. Eine Möglichkeit eventbasierte FBNs in das zyklische Abarbeitungsmodell der IEC 61131 zu übertragen wurde von Lastra et al. [19] präsentiert. Eine Einschränkung des Code-Sharing ist, dass VAR_IN_OUT
, ACCESS_PATH
und GLOBAL
Variablen nicht genutzt werden können, da diese im Sprachgebrauch der IEC 61499 nicht existieren. FBs die in der IEC 61499 über ein INIT
Event initialisiert werden müssen, können ebenfalls verwendet werden. Die INIT
Events werden beim Starten der RESOURCE
vor dem ersten Zyklus aktiviert und die entsprechenden Initialisierungsalgorithmen ausgeführt. Herstellerspezifische- und Kommunikations- FBs können ebenfalls über die Abarbeitungsmodelle geteilt werden, solange die oben genannten Einschränkungen nicht verletzt werden.
PUBLISH
/SUBSCRIBE
FBs und bidirektionale Interaktion mit den CLIENT
/SERVER
FBs. Diese FBs werden in die IEC 61131-3 übertragen und ermöglichen so Code-Sharing und Interaktion zwischen den beiden Subsystemen.3.1.2 Abarbeitungsverhalten
POE
welche das FBS beinhaltet als \((\emptyset, O_{m})\) und POE
-Ausgang als \((I_{n}, \emptyset)\) dargestellt. POE
s können in diesem Zusammenhang IEC 61131-3 PROGRAM
s, FB
s, oder FUNCTION
s sein. Das Netzwerk lässt sich als 4-Tupel \(P = (\Sigma_{I}, \Sigma_{O}, \Sigma_{F}, C)\) beschrieben werden, wobei -
\(\Sigma_{I}\) die Menge aller FB-Eingänge und
POE
-Ausgänge \(I_{n}\), -
\(\Sigma_{O}\) die Menge aller FB-Ausgänge und
POE
-Eingänge \(O_{m}\), -
\(\Sigma_{F}\) die Menge aller FBs \(F_{j}\),
-
\(C\) die \(\lvert\Sigma_{I}\rvert\times\lvert\Sigma_{O}\rvert\) ungewichtete Verbindungsmatrix aller Verbindungen zwischen den Elementen aus \(\Sigma_{I}\) und \(\Sigma_{O}\)
IN1
, IN2
und IN3
sind am Anfang des Programmablaufs durch das Prozessabbild der Eingänge (PAE) bekannt. Da IN1
und IN2
die Zustände der Eingänge von FB1
definieren, kann FB1
ausgewertet werden. Ähnliches gilt für FB2
, dessen einziger Eingang durch IN2
eindeutig definiert wird und deshalb ebenfalls abgearbeitet werden kann. Der Eingang IN3
führt zu FB3
und definiert damit den Zustand von Eingang 1 von FB3
. Eingang 2 von FB3
ist in einem expliziten Rückkoppelpfad mit Ausgang 3 von FB3
. Ohne Initialwert könnte FB3
daher nie ausgeführt werden, da die Ausgänge von FB3
nur ermittelt werden, wenn alle Eingänge wohldefiniert sind, was jedoch ohne den Wert von Ausgang 3 nicht möglich ist. Durch die Angabe eines Initialwerts an Eingang 2 sind jedoch alle Eingänge von FB3
wohldefiniert und FB3
kann ausgewertet werden. Das aktuelle Ergebnis von Ausgang 3 wird im nächsten Abarbeitungszyklus als Wert für Eingang 2 wieder herangezogen. Nun da alle FB
s die direkt mit Eingängen verbunden sind ausgewertet wurden, wird ermittelt welche nachfolgenden FB
s ausgewertet werden können. Die Ausgänge von FB1
und FB2
sind nun bekannt und definieren die Eingänge von FB4
welcher nun ebenfalls ausgewertet werden kann, womit nun auch alle Eingänge von FB5
über die Ausgänge von FB3
und FB4
bekannt sind, und damit ausgewertet werden kann. Damit sind nun die Ausgänge der POE
bekannt und das FBS Netzwerk vollkommen ausgewertet. Wie eingangs erwähnt gibt es im Allgemeinen keine eindeutige Abarbeitungsreihenfolge. Die Abarbeitung von FB1
, FB2
und FB3
kann beliebig vertauscht werden. Auch FB4
kann vor FB3
ausgewertet werden, solange die Auswertung von FB1
und FB2
vor FB4
passiert.
3.2 Zusammenfassung der Integration von IEC 61131-3 in IEC 61499
EFB
als gemeinsames SW-Element von beiden Subsystemen verwendet werden, und so den Entwicklungs- und Ausführungsaufwand reduziert.