⚖️ Unterschied zwischen IEC 61131-3 und IEC 61499
Die Normen IEC 61131-3 und IEC 61499 definieren beide Standards für die Programmierung von industriellen Steuerungssystemen, verfolgen jedoch unterschiedliche Ansätze in Bezug auf Architektur und Ausführung.
1. Architekturmodell
IEC 61131-3: Zentrale Steuerung
Die IEC 61131-3 wurde primär für speicherprogrammierbare Steuerungen (SPS) entwickelt. Das Modell geht von einer zentralen Recheneinheit aus, die ein Programm ausführt.
Struktur: Konfiguration -> Ressource -> Task -> Programm -> Funktionsbausteine/Funktionen.
Fokus: Ein einzelnes Gerät steuert einen Prozess.
IEC 61499: Verteilte Systeme
Die IEC 61499 erweitert die Konzepte der IEC 61131-3 für verteilte Systeme. Eine Applikation kann auf mehrere Geräte (Devices) und Ressourcen verteilt werden, ohne dass die Funktionalität neu programmiert werden muss.
Struktur: System -> Gerät -> Ressource -> Applikation -> Funktionsbausteine.
Fokus: Funktionale Einheiten (Software-Bausteine) kommunizieren über Ereignisse und Daten, unabhängig davon, auf welcher Hardware sie laufen.
2. Ausführungsmodell
Der wohl wichtigste Unterschied liegt in der Art und Weise, wie Code ausgeführt wird.
IEC 61131-3: Zyklisch (Scan-basiert)
In der klassischen SPS-Welt folgt die Ausführung meist einem starren Zyklus:
Eingänge lesen: Alle physikalischen Eingänge werden in das Prozessabbild eingelesen.
Programm ausführen: Der Code wird von oben nach unten (oder nach Task-Priorität) abgearbeitet.
Ausgänge schreiben: Die berechneten Werte werden auf die physikalischen Ausgänge geschrieben.
Dieser Zyklus wiederholt sich ständig (z. B. alle 10 ms). Ein Funktionsbaustein wird in jedem Zyklus aufgerufen, unabhängig davon, ob sich seine Eingangsdaten geändert haben.
IEC 61499: Ereignisgesteuert (Event-driven)
Die Ausführung in IEC 61499 basiert auf Ereignissen (Events).
Ein Funktionsbaustein tut nichts, solange kein Ereignis an einem seiner Ereignis-Eingänge (Event Inputs) eintrifft.
Wenn ein Ereignis eintrifft (z. B.
REQfür Request), wird der Baustein „geweckt“.Die Ausführungssteuerung (ECC) entscheidet dann, welche Algorithmen ausgeführt und welche Ausgangs-Ereignisse (z. B.
CNFfür Confirmation) gefeuert werden.Es gibt keinen globalen Zyklus; die Ausführungskette wird durch den Fluss von Ereignissen bestimmt.
3. Funktionsbausteine im Vergleich
Merkmal |
IEC 61131-3 FB |
IEC 61499 FB |
|---|---|---|
Schnittstelle |
Nur Daten (VAR_INPUT, VAR_OUTPUT) |
Ereignisse (Events) und Daten |
Ausführung |
Wird durch den Aufruf im Programm (Zyklus) getriggert |
Wird durch eingehende Ereignisse getriggert |
Interne Logik |
Code-Rumpf (in ST, KOP, FBS, etc.) |
Explizite Zustandsmaschine (ECC) oder verschaltetes Netzwerk |
Datensynchronisation |
Implizit (beim Aufruf) |
Explizit durch WITH-Qualifier (verbindet Daten mit Ereignissen) |
Zusammenfassung
Nutzen Sie IEC 61131-3, wenn Sie eine einzelne SPS programmieren und eine zyklische, deterministische Abarbeitung benötigen.
Nutzen Sie IEC 61499, wenn Sie verteilte Systeme entwerfen, komponentenbasierte Softwarekapselung benötigen oder ereignisgesteuerte Prozesse abbilden wollen.