sequence_T_04_loop
Einleitung
Der Funktionsblock sequence_T_04_loop ist ein zeitgesteuerter Sequenzer mit vier Ausgängen, der in einer Schleife arbeitet. Er durchläuft nacheinander vier Zustände (State_01 bis State_04). Der Übergang von einem Zustand zum nächsten erfolgt automatisch nach Ablauf einer einstellbaren Zeitverzögerung. Der Baustein kann von jedem Zustand aus zurückgesetzt werden und startet dann die Sequenz erneut.
Schnittstellenstruktur
Ereignis-Eingänge
START_S1: Startet die Sequenz. Der Übergang erfolgt vom initialenSTART-Zustand inState_01. Das Ereignis ist mit den vier Zeitdaten-Eingängen verknüpft.RESET: Setzt die Sequenz von jedem beliebigen aktiven Zustand zurück in den initialenSTART-Zustand.
Ereignis-Ausgänge
CNF: Ausführungsbestätigung (Confirmation). Wird bei jedem Zustandswechsel ausgelöst und liefert die aktuelle Zustandsnummer.EO_S1: Wird beim Eintritt inState_01ausgelöst und liefert den zugehörigen DatenausgangDO_S1.EO_S2: Wird beim Eintritt inState_02ausgelöst und liefert den zugehörigen DatenausgangDO_S2.EO_S3: Wird beim Eintritt inState_03ausgelöst und liefert den zugehörigen DatenausgangDO_S3.EO_S4: Wird beim Eintritt inState_04ausgelöst und liefert den zugehörigen DatenausgangDO_S4.
Daten-Eingänge
DT_S1_S2(TIME): Zeitverzögerung für den Übergang vonState_01zuState_02. Initialwert:NO_TIME.DT_S2_S3(TIME): Zeitverzögerung für den Übergang vonState_02zuState_03. Initialwert:NO_TIME.DT_S3_S4(TIME): Zeitverzögerung für den Übergang vonState_03zuState_04. Initialwert:NO_TIME.DT_S4_S1(TIME): Zeitverzögerung für den Übergang vonState_04zurück zuState_01(Schleife). Initialwert:NO_TIME.
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): Ein Zeitgeber-Adapter, der für die zeitgesteuerten Zustandsübergänge verwendet wird. Der FB startet den Timer beim Eintritt in einen Zustand und reagiert auf dessenTimeOut-Ereignis.
Funktionsweise
Der FB ist als BasicFB mit einer ECC (Execution Control Chart) implementiert. Die Sequenz beginnt im initialen Zustand xSTART. Ein START_S1-Ereignis führt in den ersten aktiven Zustand sState_01.
In jedem aktiven Zustand (sState_01 bis sState_04) werden nacheinander folgende Aktionen ausgeführt:
Exit-Step des vorherigen Zustands: Der zugehörige Datenausgang (
DO_Sx) wird aufFALSEgesetzt (außer beim ersten Eintritt vonxSTART).Confirmation-Step: Die Zustandsnummer
STATE_NRwird aktualisiert und die Verzögerungszeit für den nächsten Übergang wird an dentimeOut-Adapter übergeben (timeOut.DT).Entry-Step des neuen Zustands: Der zugehörige Datenausgang (
DO_Sx) wird aufTRUEgesetzt und das entsprechende Ereignis (EO_Sx) wird ausgelöst.Timer-Start: Der
timeOut-Adapter wird gestartet (timeOut.START).
Der Übergang zum nächsten Zustand erfolgt ausschließlich durch das TimeOut-Ereignis des Adapters. Nach State_04 springt die Sequenz gemäß Schleifenlogik zurück zu State_01.
Ein RESET-Ereignis von jedem Zustand aus führt in den sRESET-Zustand. Dort werden alle Ausgänge (DO_S1 bis DO_S4) deaktiviert, der Timer gestoppt, die Zustandsnummer auf 0 (START) gesetzt und eine Bestätigung (CNF) ausgegeben. Anschließend kehrt der FB automatisch in den xSTART-Zustand zurück.
Technische Besonderheiten
Zeitsteuerung: Die Übergänge sind rein zeitgesteuert. Es gibt keine ereignisgesteuerten Übergänge zwischen den Hauptzuständen.
Initialwerte: Die Zeitdaten-Eingänge sind standardmäßig mit
NO_TIMEvorbelegt. Dies muss für einen funktionierenden Ablauf angepasst werden.Konstanten: Der FB verwendet Konstanten aus der Bibliothek
logiBUS::utils::sequence::const::sequence(z.B. für Zustandsnummern) undlogiBUS::utils::sequence::const::sequence::NO_TIME.
Zustandsübersicht
xSTART: Initialer, inaktiver Zustand. Wartet aufSTART_S1.sState_01: Erster aktiver Zustand.DO_S1 = TRUE. Timer für Übergang zuState_02läuft.sState_02: Zweiter aktiver Zustand.DO_S2 = TRUE. Timer für Übergang zuState_03läuft.sState_03: Dritter aktiver Zustand.DO_S3 = TRUE. Timer für Übergang zuState_04läuft.sState_04: Vierter aktiver Zustand.DO_S4 = TRUE. Timer für Übergang (zurück) zuState_01läuft.sRESET: Reset-Zustand. Deaktiviert alle Ausgänge, stoppt den Timer und bestätigt den Reset.
Anwendungsszenarien
Steuerung zyklischer Prozesse mit festen Zeitschritten, z.B. in Verpackungsmaschinen, Waschanlagen oder automatisierten Montagelinien.
Ansteuerung von Aktoren in einer festen, zeitlich getakteten Reihenfolge.
Als zentraler Taktgeber für übergeordnete Steuerungsabläufe.
⚖️ Vergleich mit ähnlichen Bausteinen
Einfache Timer (TON): Einzelne Timer bieten keine integrierte Sequenzlogik.
sequence_T_04_loopkapselt die komplette Zustandsmaschine mit vier Schritten.Ereignisgesteuerte Sequenzer: Im Gegensatz zu ereignisgesteuerten Sequenzern (z.B.
sequence_E_04_loop) erfolgen die Übergänge hier ausschließlich zeitbasiert, nicht durch externe Ereignisse.SPS-Zyklus: Die zeitgesteuerte Ablaufkontrolle ist präziser und unabhängig vom SPS-Zyklus, da sie auf dem
ATimeOut-Adapter basiert.
🛠️ Zugehörige Übungen
Fazit
Der sequence_T_04_loop ist ein robuster und einfach zu konfigurierender Funktionsblock für zeitgesteuerte Ablaufsteuerungen mit vier Schritten. Durch die klare Trennung von Zustandslogik und Zeitparametern sowie die integrierte Reset-Funktionalität eignet er sich gut für standardisierte zyklische Prozesse in der Automatisierungstechnik. Die Verwendung eines Standard-Adapters für die Zeitmessung gewährleistet Portabilität und Zuverlässigkeit.