# EN 61499

Die Europäische Norm EN 61499 bzw. internationale Norm IEC 61499, befasst sich mit Funktionsbausteinen für industrielle Prozessmess- und -steuerungssysteme. Sie ist auch als DIN-Norm für Deutschland gültig und wurde erstmals 2005 veröffentlicht. Die Spezifikation IEC 61499 bzw. EN 61499 definiert ein generisches Modell für verteilte Steuerungssysteme und basiert auf der IEC 61131 bzw. EN 61131. Neben dem Standard selbst werden die Konzepte des IEC-61499-Standards in den Büchern von Lewis und Zoitl sowie Vyatkin detailliert beschrieben.

## Teil 1: Architektur

Im 1. Teil der IEC 61499 wird die Architektur für verteilte Systeme definiert. Das zyklische Ausführungsmodell von IEC 61131 wird in IEC 61499 durch ein ereignisorientiertes Ausführungsmodell ersetzt, welches eine explizite Festlegung der Ausführungsreihenfolge von Funktionsbausteinen ermöglicht. Die im Teil 1 Anhang A definierten Ereignisfunktionsbausteine, speziell der E_CYCLE Funktionsbaustein, zur Generierung von Ereignissen, erlauben auch die Implementierung periodisch ausgeführter Anwendungen.
Die IEC 61499 bedient sich eines anwendungszentrierten Designs. Es wird eine Anwendung für das Gesamtsystem erstellt und anschließend auf die vorhandenen Geräte im System verteilt. Die Geräte eines Systems werden in einem Gerätemodell beschrieben, wobei die Topologie des Systems im Systemmodell widergespiegelt ist. Die aktuelle Verteilung einer Applikation wird im Verteilungsmodell festgehalten. Anwendungen des Systems werden daher gemeinsam verwaltet, sind aber verteilbar.
Anwendungen werden durch ein Funktionsbaustein-Netzwerk definiert. IEC 61499 Funktionsbausteine basieren auf IEC 61131-3 Funktionsbausteinen. Daher besitzen sie ebenfalls eine Schnittstelle und eine Funktionsimplementierung bzw. -beschreibung. Im Gegensatz zur IEC 61131-3 besitzen IEC 61499 Schnittstellen neben den Daten Ein- und Ausgängen zusätzlich noch Ereignis Ein- und Ausgänge, die über eine sogenannte WITH Beziehung mit Daten Ein- bzw. Ausgängen verbunden werden können. Die IEC 61499 definiert verschiedene Bausteintypen, wobei jeder eine Verhaltensbeschreibung in Form von service sequences enthalten kann:
* Dienstschnittstellen-Funktionsbaustein (service interface function block – SIFB): Der Quellcode ist versteckt und seine Funktion wird nur über service sequences beschrieben.
* Basisfunktionsbaustein (basic function block – BFB): Seine Funktion wird in Form eines Execution Control Chart (ECC), ähnlich wie ein UML-Zustandsübergangsdiagramm beschrieben. Jedem Zustand können mehrere Actions zugeordnet werden, denen je ein oder kein Algorithmus und ein oder kein Ausgangsereignis zugeordnet ist. Algorithmen können nach jeder übereinstimmenden Norm implementiert werden.
* Zusammengesetzter Funktionsbaustein (composite function block – CFB): Seine Funktion wird in Form eines Funktionsbausteinnetzwerks beschrieben.
* Adapterschnittstellentyp (adapter interfaces): Ein adapter interface ist kein echter Funktionsbaustein, er bündelt mehrere Event- und Daten-Verbindungen in einer Verbindung und bietet ein Schnittstellenkonzept zur Entkopplung von Spezifizierung und Implementierung.
* Unteranwendung (subapplication): Ihre Funktion wird ebenfalls in Form eines Funktionsbausteinnetzwerks beschrieben. Im Gegensatz zu CFBs sind Unteranwendungen verteilbar.
Um die Anwendungen innerhalb eines Gerätes zu verwalten, definiert IEC 61499 ein Managementmodell. Der Gerätemanager verwaltet den Lebenszyklus von den Ressourcen und übernimmt die Kommunikation mit Software-Werkzeugen (z. B. Konfigurationswerkzeug oder Agent). Diese Kommunikation erfolgt durch Management Kommandos. Durch die Software-Werkzeugschnittstelle und die Management-Kommandos lässt sich Online-Rekonfiguration von Anwendungen umsetzen, wie von Zoitl gezeigt werden konnte.

## Teil 2: Anforderungen an Software-Werkzeuge

Der 2. Teil der IEC 61499 beschreibt die Anforderungen an IEC-61499-konforme Software-Werkzeuge. Dies betrifft die Darstellung und Portierbarkeit von IEC-61499-Elementen inklusive eines Dokumenttypdefinitionsformats zum Austausch von IEC-61499-Elementen zwischen verschiedenen Software-Werkzeugen.
Einige IEC-61499-konforme Software-Werkzeuge sind bereits verfügbar. Darunter sind kommerzielle Software-Werkzeuge, Open-Source-Software-Werkzeuge, aber auch akademische Entwicklungen bzw. Forschungsentwicklungen. In der Regel wird eine IEC-61499-konforme Laufzeitumgebung und eine IEC-61499-konforme Entwicklungsumgebung benötigt.

## Teil 3: Tutorial Informationen (2008 zurückgezogen)

Der 3., 2008 zurückgezogene, Teil der IEC 61499 bezieht sich auf die 1. Edition des Standards und beantwortet FAQs bezogen auf die IEC 61499. Außerdem wird die Nutzung der Elemente der IEC 61499 zur Lösung häufig auftretender Problemstellungen beim Entwickeln von Automatisierungssystemen anhand von Beispielen beschrieben.
Die Beispiele betreffen unter anderem die Anwendung von SIFBs wie Kommunikationsfunktionsbausteine für den Fernzugriff auf Echtzeit Daten und Parameter von Funktionsbausteinen, die Nutzung von adaptern Schnittstellen zur Implementierung objektorientierter Konzepte, Initialisierungsalgorithmen in Funktionsbausteinnetzwerken, die Implementierung eines ECCs für eine vereinfachte Motorsteuerung eines hypothetischen Videorekorders.
Außerdem wird auf die Auswirkungen des Mappings bezüglich der Handhabung von Kommunikationsfunktionsbausteinen eingegangen, sowie dem Device Management mit Hilfe von Management Applikationen und ihren Funktionsbausteinen, wie die Funktionsweise des Device Manager Funktionsbaustein (DEV_MGR).

## Teil 4: Regeln für normgerechte Profile (Compliance Profile)

Der 4. Teil der IEC 61499 beschreibt Regeln, die ein System, Gerät oder Software-Werkzeug unterstützen muss, um als IEC 61499 konform zu gelten. Diese Regeln beziehen sich auf Interoperabilität, Portierbarkeit und Konfigurierbarkeit. Zwei Geräte sind interoperabel, wenn sie zusammenarbeiten können, um die in einer Systemkonfiguration festgelegten Funktionen gemeinsam ausführen zu können. IEC 61499 konforme Applikationen müssen portierbar sein, also zwischen Software-Werkzeugen unterschiedlicher Hersteller ausgetauscht werden können, unter Berücksichtigung der in IEC 61499-2 festgelegten Anforderungen für Software-Werkzeuge. Geräte unterschiedlicher Hersteller müssen durch Software-Werkzeuge unterschiedlicher Hersteller konfiguriert werden können.
Neben diesen allgemeinen Regeln legt Teil 4 außerdem den Aufbau von sogenannten Compliance Profiles fest. Ein Compliance Profile beschreibt wie ein System die Regeln des IEC 61499 Standards erfüllt. Die Konfigurierbarkeit eines Gerätes durch ein Software-Werkzeug wird z. B. durch die unterstützten Management Kommandos bestimmt, wobei jedes konforme Gerät die Kommandos create, delete, start, stop, kill, query, read, write, reset unterstützen muss, damit IEC 61499 Applikationen darauf geladen und ausgeführt werden können. Das Austauschformat, welches die Portierbarkeit von IEC 61499 konformen Applikationen bestimmt, wird in Teil 2 definiert und im Compliance Profile z. B. durch unterstützte Dateierweiterungen für Bibliothekselemente ergänzt.
Die Interoperabilität zwischen Geräten verschiedener Hersteller wird über die verschiedenen Layer des OSI-Modells definiert. Dabei sind die unterstützten Funktionsbausteine zur Kommunikation zwischen den Geräten zu berücksichtigen, wie PUBLISH/SUBSCRIBE und CLIENT/SERVER und ihre Status Ausgaben, IP-Adressen und Port Nummern sowie das Daten Encoding.
HOLOBLOC, Inc. definiert das „IEC 61499 compliance profile for feasibility demonstrations“, welches zum Beispiel von den IEC 61499 konformen Software-Werkzeugen FBDK, 4diac IDE und nxtSTUDIO unterstützt wird.