sequence_ET_04_loop
Einleitung
Der Funktionsblock sequence_ET_04_loop implementiert eine zyklische Sequenz mit vier Zuständen. Der Übergang zwischen den Zuständen kann entweder durch ein externes Ereignis oder nach Ablauf einer einstellbaren Zeit erfolgen. Der Block ist darauf ausgelegt, wiederkehrende Abläufe in Steuerungsanwendungen zu realisieren, bei denen Aktionen nacheinander und in einer Schleife ausgeführt werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
START_S1: Startet die Sequenz und wechselt vomSTART-Zustand in den ZustandState_01. Überträgt die vier ZeitparameterDT_S1_S2,DT_S2_S3,DT_S3_S4undDT_S4_S1.S1_S2: Löst den Übergang vonState_01zuState_02aus.S2_S3: Löst den Übergang vonState_02zuState_03aus.S3_S4: Löst den Übergang vonState_03zuState_04aus.S4_S1: Löst den Übergang vonState_04zurück zuState_01aus (Schleife).RESET: Setzt die Sequenz von jedem beliebigen Zustand zurück in denSTART-Zustand.
Ereignis-Ausgänge
CNF: Bestätigungsereignis, das bei jedem Zustandswechsel (einschließlich Reset) ausgelöst wird. Überträgt die aktuelle ZustandsnummerSTATE_NR.EO_S1: Wird beim Eintritt inState_01ausgelöst. Überträgt den AusgangswertDO_S1.EO_S2: Wird beim Eintritt inState_02ausgelöst. Überträgt den AusgangswertDO_S2.EO_S3: Wird beim Eintritt inState_03ausgelöst. Überträgt den AusgangswertDO_S3.EO_S4: Wird beim Eintritt inState_04ausgelöst. Überträgt den AusgangswertDO_S4.
Daten-Eingänge
DT_S1_S2(TIME): Zeit für den automatischen Übergang vonState_01zuState_02. WertNO_TIMEdeaktiviert den Zeitübergang.DT_S2_S3(TIME): Zeit für den automatischen Übergang vonState_02zuState_03. WertNO_TIMEdeaktiviert den Zeitübergang.DT_S3_S4(TIME): Zeit für den automatischen Übergang vonState_03zuState_04. WertNO_TIMEdeaktiviert den Zeitübergang.DT_S4_S1(TIME): Zeit für den automatischen Übergang vonState_04zurück zuState_01. WertNO_TIMEdeaktiviert den Zeitübergang.
Daten-Ausgänge
STATE_NR(SINT): Aktuelle Zustandsnummer (0=START,1=State_01,2=State_02,3=State_03,4=State_04).DO_S1(BOOL): IstTRUE, wennState_01aktiv ist.DO_S2(BOOL): IstTRUE, wennState_02aktiv ist.DO_S3(BOOL): IstTRUE, wennState_03aktiv ist.DO_S4(BOOL): IstTRUE, wennState_04aktiv ist.
Adapter
timeOut(Plug, Typ:iec61499::events::ATimeOut): Wird intern für die Realisierung der zeitgesteuerten Zustandsübergänge verwendet.
Funktionsweise
Der FB arbeitet als Basic-FB mit einer endlichen Zustandsmaschine (ECC). Die Sequenz durchläuft die Zustände State_01 -> State_02 -> State_03 -> State_04 und springt dann wieder zurück zu State_01. Jeder Zustand hat drei Hauptaktionen:
Exit-Aktion (X): Setzt den zugehörigen booleschen Ausgang (
DO_Sx) aufFALSE.Confirmation-Aktion (C): Setzt die Zustandsnummer (
STATE_NR) und konfiguriert dentimeOut-Adapter mit der für den nächsten Übergang vorgesehenen Zeit (DT_...). Löst dasCNF-Ereignis aus.Entry-Aktion (E): Setzt den zugehörigen booleschen Ausgang (
DO_Sx) aufTRUEund löst das entsprechende Ausgangsereignis (EO_Sx) aus.
Ein Zustandswechsel kann auf zwei Arten erfolgen:
Durch Ereignis: Durch das entsprechende Eingangsereignis (z.B.
S1_S2).Durch Zeit: Nach Ablauf der im aktuellen Zustand im
timeOut-Adapter eingestellten Zeit, sofern diese nichtNO_TIMEist.
Der RESET-Eingang führt immer in den speziellen sRESET-Zustand, der alle aktiven Ausgänge ausschaltet, die Zustandsnummer auf 0 setzt und dann in den START-Zustand zurückkehrt.
Technische Besonderheiten
Hybride Triggerung: Jeder Zustandsübergang kann individuell entweder ereignis- oder zeitgesteuert konfiguriert werden. Dies ermöglicht maximale Flexibilität innerhalb einer Sequenz.
Initialwerte: Die Zeitparameter sind standardmäßig auf
NO_TIMEinitialisiert, was bedeutet, dass alle zeitgesteuerten Übergänge zunächst deaktiviert sind und auf ein externes Ereignis warten.Adapter-Nutzung: Die Zeitsteuerung wird konsequent über den standardisierten
ATimeOut-Adapter abgewickelt, was die Wiederverwendbarkeit und Klarheit erhöht.Zustandsrückmeldung: Die aktuelle Position in der Sequenz ist über den
STATE_NR-Ausgang stets nach außen sichtbar.
Zustandsübersicht
Die ECC besteht aus sechs Zuständen:
xSTART: Initialer, inaktiver Zustand. Wartet auf
START_S1.sState_01: Aktiver Zustand 1. Setzt
DO_S1. Kann viaS1_S2-Ereignis oder Timeout zusState_02wechseln.sState_02: Aktiver Zustand 2. Setzt
DO_S2. Kann viaS2_S3-Ereignis oder Timeout zusState_03wechseln.sState_03: Aktiver Zustand 3. Setzt
DO_S3. Kann viaS3_S4-Ereignis oder Timeout zusState_04wechseln.sState_04: Aktiver Zustand 4. Setzt
DO_S4. Kann viaS4_S1-Ereignis oder Timeout zurück zusState_01wechseln (Schleife).sRESET: Reset-Zustand. Schaltet alle Ausgänge aus, setzt
STATE_NRauf 0 und wechselt automatisch zurück zuxSTART.
Anwendungsszenarien
Steuerung zyklischer Prozesse: Steuerung von Maschinen, die einen sich wiederholenden Arbeitszyklus mit mehreren Schritten durchführen (z.B. Befüllen, Erhitzen, Mischen, Entleeren).
Ampelschaltungen: Modellierung einer einfachen Lichtsignalanlage mit mehreren Phasen, wobei jede Phase eine feste Zeit dauern oder vorzeitig beendet werden kann.
Batch-Prozesse: Abarbeitung von Chargenprozessen, bei denen einzelne Schritte entweder durch Sensoren (Ereignisse) oder nach einer Mindestzeit beendet werden.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Gegensatz zu einfachen Timer-Blöcken oder Flip-Flops orchestriert dieser FB eine komplette, zustandsbasierte Sequenz. Im Vergleich zu einem E_CYCLE-Block bietet er eine explizite Zustandslogik mit klaren Übergangsbedingungen und der Möglichkeit, jeden Schritt individuell zu triggern. Er ist spezialisierter und strukturierter als eine selbst programmierte Sequenz aus E_SR- und E_DELAY-Blöcken.
🛠️ Zugehörige Übungen
Fazit
Der sequence_ET_04_loop ist ein robuster und flexibler Baustein zur Implementierung von zyklischen 4-Schritt-Sequenzen. Seine Stärke liegt in der hybriden Triggerung, die für jeden Schritt zwischen Ereignis- und Zeitsteuerung wählen lässt. Die klare Zustandsmaschine, die Rückmeldung des aktuellen Zustands und der integrierte Reset machen ihn zu einer zuverlässigen Komponente für wiederkehrende Steuerungsaufgaben in der Automatisierungstechnik.