sequence_E_04_loop
Einleitung
Der Funktionsblock sequence_E_04_loop implementiert eine zyklische Sequenz mit vier Zuständen. Die Zustandsübergänge werden ausschließlich durch externe Ereignisse ausgelöst. Der Baustein ist für Steuerungsaufgaben konzipiert, bei denen eine feste Abfolge von Aktionen (repräsentiert durch die Ausgänge DO_S1 bis DO_S4) durchlaufen werden muss und ein Rücksetzen von jedem Zustand aus möglich sein soll.
Schnittstellenstruktur
Ereignis-Eingänge
START_S1: Wechselt vom initialenSTART-Zustand in den ersten aktiven ZustandState_01.S1_S2: Wechselt vonState_01zuState_02.S2_S3: Wechselt vonState_02zuState_03.S3_S4: Wechselt vonState_03zuState_04.S4_S1: Wechselt vonState_04zurück zuState_01und schließt damit den Zyklus.RESET: Setzt den Baustein von jedem beliebigen aktiven Zustand (State_01bisState_04) zurück in den initialenSTART-Zustand.
Ereignis-Ausgänge
CNF: Wird bei jedem Zustandswechsel ausgelöst und bestätigt die Ausführung. Transportiert den aktuellen Zustandscode überSTATE_NR.EO_S1: Wird beim Eintritt inState_01ausgelöst. Transportiert den WertTRUEfürDO_S1.EO_S2: Wird beim Eintritt inState_02ausgelöst. Transportiert den WertTRUEfürDO_S2.EO_S3: Wird beim Eintritt inState_03ausgelöst. Transportiert den WertTRUEfürDO_S3.EO_S4: Wird beim Eintritt inState_04ausgelöst. Transportiert den WertTRUEfürDO_S4.
Daten-Eingänge
Dieser Funktionsblock besitzt keine Dateneingänge.
Daten-Ausgänge
STATE_NR(SINT): Gibt die Nummer des aktuellen Zustands aus. Die Kodierung lautet: START = 0, State_01 = 1, State_02 = 2, State_03 = 3, State_04 = 4.DO_S1(BOOL): IstTRUE, wenn der ZustandState_01aktiv ist.DO_S2(BOOL): IstTRUE, wenn der ZustandState_02aktiv ist.DO_S3(BOOL): IstTRUE, wenn der ZustandState_03aktiv ist.DO_S4(BOOL): IstTRUE, wenn der ZustandState_04aktiv ist.
Adapter
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweise
Der Baustein ist als Basic Function Block (BFB) mit einer Execution Control Chart (ECC) implementiert. Die interne Logik basiert auf sechs Zuständen: einem initialen Zustand (xSTART), vier aktiven Arbeitszuständen (sState_01 bis sState_04) und einem speziellen Reset-Zustand (sRESET).
Bei einem Zustandswechsel werden drei Aktionen nacheinander ausgeführt:
Exit-Algorithmus (X): Der Ausgang des vorherigen Zustands wird auf
FALSEgesetzt.Confirmation-Algorithmus (C): Die Zustandsnummer
STATE_NRwird aktualisiert und dasCNF-Ereignis wird ausgelöst.Entry-Algorithmus (E): Der Ausgang des neuen Zustands wird auf
TRUEgesetzt und das entsprechende Ereignis (EO_Sx) wird ausgelöst.
Ein RESET-Ereignis führt immer in den sRESET-Zustand, wo alle Ausgänge (DO_S1 bis DO_S4) deaktiviert werden, die Zustandsnummer auf 0 (START) gesetzt und ein CNF gesendet wird. Anschließend wechselt der Baustein automatisch zurück in den initialen xSTART-Zustand.
Technische Besonderheiten
Ereignisgesteuerte Transitionen: Im Gegensatz zu zeit- oder bedingungsgesteuerten Sequenzern erfolgen alle Zustandsübergänge nur bei Eintreffen des spezifischen Ereignisses. Es gibt keine automatischen oder zeitgesteuerten Weiter schaltungen.
Explizite Reset-Logik: Der Reset-Vorgang ist als eigener Zustand (
sRESET) modelliert, der alle Ausgänge sauber zurücksetzt, bevor der Startzustand wieder erreicht wird.Zustandskodierung: Die Verwendung der Konstanten aus
sequence::State_xxfür die Zuweisung anSTATE_NRerhöht die Wartbarkeit und Lesbarkeit des Codes.
Zustandsübersicht
xSTART: Initialer, inaktiver Zustand. Alle Ausgänge sind
FALSE,STATE_NRist 0.sState_01: Erster aktiver Zustand.
DO_S1 = TRUE,STATE_NR = 1.sState_02: Zweiter aktiver Zustand.
DO_S2 = TRUE,STATE_NR = 2.sState_03: Dritter aktiver Zustand.
DO_S3 = TRUE,STATE_NR = 3.sState_04: Vierter aktiver Zustand.
DO_S4 = TRUE,STATE_NR = 4.sRESET: Temporärer Reset-Zustand. Setzt alle Aktor-Ausgänge (
DO_Sx) aufFALSEundSTATE_NRauf 0.
Die erlaubten Übergänge sind: START -> S1 -> S2 -> S3 -> S4 -> (S1) sowie von jedem Zustand S1-S4 via RESET zurück zu START.
Anwendungsszenarien
Schrittkettensteuerungen: Steuerung von Maschinenabläufen, bei denen jeder Schritt manuell oder durch ein Sensorsignal freigegeben werden muss (z.B. manuelle Bestückungsstationen).
Taktgesteuerte Prozesse: In Produktionslinien, wo ein zentraler Taktgeber (
Sx_Sy-Ereignisse) den Fortschritt der Baugruppe von Station zu Station signalisiert.Test- und Inbetriebnahmesequenzen: Strukturierte Abfolge von Tests, die vom Bediener bestätigt werden müssen.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Vergleich zu einem Zyklischen Sequenzer mit Timer (z.B. E_CYCLE) fehlt hier die integrierte Zeitsteuerung; die Weiter schaltung erfolgt rein ereignisbasiert. Gegenüber einem Binären Schieberegister oder Zähler bietet dieser Baustein eine explizite, leicht nachvollziehbare Zustandsmaschine mit klaren Entry/Exit-Aktionen und einem dedizierten Reset-Pfad, was die Fehlersuche vereinfacht.
Fazit
Der sequence_E_04_loop ist ein robuster und klar strukturierter Funktionsblock zur Implementierung einer ereignisgesteuerten 4-Zustands-Sequenz. Seine Stärken liegen in der expliziten Modellierung jedes Zustandsübergangs, der sauberen Reset-Logik und der klaren Trennung von Entry-, Exit- und Bestätigungsaktionen. Er eignet sich ideal für Anwendungen, bei denen die Ablaufsteuerung durch externe Signale (Taster, Sensoren, übergeordnete Steuerungen) erfolgen soll.