sequence_T_08_loop
Einleitung
Der Funktionsblock sequence_T_08_loop ist ein zeitgesteuerter Sequenzer mit acht Ausgangszuständen. Er realisiert eine zyklische Abfolge von Zuständen, wobei der Übergang zwischen den einzelnen Zuständen durch einstellbare Zeitverzögerungen gesteuert wird. Der Baustein ist für Anwendungen konzipiert, in denen Prozessschritte oder Maschinenzustände nacheinander für eine definierte Dauer aktiviert werden müssen, beispielsweise in Förderanlagen, Verpackungsmaschinen oder automatisierten Montageprozessen.
Schnittstellenstruktur
Ereignis-Eingänge
START_S1: Startet die Sequenz durch einen Sprung vom initialenSTART-Zustand in den ersten aktiven ZustandState_01. Löst die Ausführung der zugehörigen Algorithmen aus.RESET: Setzt die Sequenz unabhängig vom aktuellen Zustand sofort in den initialenSTART-Zustand zurück. Alle aktiven Ausgänge werden deaktiviert.
Ereignis-Ausgänge
CNF(Execution Confirmation): Wird bei jedem Zustandswechsel ausgelöst und bestätigt die Ausführung. Überträgt die aktuelle ZustandsnummerSTATE_NR.EO_S1bisEO_S8: Ereignisausgänge, die beim Eintritt in den jeweiligen ZustandState_01bisState_08ausgelöst werden. Sie übertragen den zugehörigen booleschen Datenwert (DO_S1bisDO_S8), der aufTRUEgesetzt wird.
Daten-Eingänge
Acht Zeitdaten-Eingänge vom Typ TIME, die die Verweildauer in jedem Zustand definieren. Der Standardwert ist NO_TIME (keine Zeit, sofortiger Übergang).
DT_S1_S2: Verweildauer inState_01vor Übergang zuState_02.DT_S2_S3: Verweildauer inState_02vor Übergang zuState_03.DT_S3_S4: Verweildauer inState_03vor Übergang zuState_04.DT_S4_S5: Verweildauer inState_04vor Übergang zuState_05.DT_S5_S6: Verweildauer inState_05vor Übergang zuState_06.DT_S6_S7: Verweildauer inState_06vor Übergang zuState_07.DT_S7_S8: Verweildauer inState_07vor Übergang zuState_08.DT_S8_S1: Verweildauer inState_08vor dem zyklischen Übergang zurück zuState_01.
Daten-Ausgänge
STATE_NR(SINT): Gibt die Nummer des aktuell aktiven Zustands aus.START= 0,State_01= 1, …,State_08= 8.DO_S1bisDO_S8(BOOL): Die physischen Ausgangssignale der Sequenz. Jeder Ausgang wird aufTRUEgesetzt, wenn der entsprechende Zustand aktiv ist, ansonsten ist erFALSE.
Adapter
timeOut(Plug, Typ:iec61499::events::ATimeOut): Ein Zeitgeber-Adapter, der für die Realisierung der zeitgesteuerten Zustandsübergänge verwendet wird. Der FB startet den Timer beim Eintritt in einen Zustand und wechselt bei Empfang desTimeOut-Ereignisses zum nächsten Zustand.
Funktionsweise
Der FB arbeitet als Basic Function Block mit einem internen Execution Control Chart (ECC). Die Sequenz beginnt im initialen Zustand xSTART. Ein START_S1-Ereignis führt zum Zustand sState_01. Beim Eintritt in einen Zustand (z.B. sState_01) werden drei Aktionen ausgeführt:
Der Exit-Algorithmus des vorherigen Zustands (z.B.
State_08_X) deaktiviert dessen Ausgang.Der Confirmation-Algorithmus (z.B.
State_01_C) setzt dieSTATE_NRund lädt die für diesen Zustand konfigurierte Zeit (DT_S1_S2) in dentimeOut-Adapter.Der Entry-Algorithmus (z.B.
State_01_E) setzt den zugehörigen Datenausgang (DO_S1) aufTRUEund löst das entsprechende Ereignis (EO_S1) aus.Der Timer-Adapter wird mit
timeOut.STARTgestartet.
Nach Ablauf der eingestellten Zeit löst der Adapter das timeOut.TimeOut-Ereignis aus, was im ECC den Übergang zum nächsten Zustand (z.B. von sState_01 zu sState_02) bewirkt. Nach dem letzten Zustand (sState_08) erfolgt der Übergang zurück zum ersten Zustand (sState_01), wodurch eine Endlosschleife entsteht.
Ein RESET-Ereignis von jedem Zustand aus führt zum Zustand sRESET. Hier werden alle Ausgänge deaktiviert, der Timer gestoppt und eine Bestätigung mit STATE_NR=0 gesendet, bevor automatisch in den xSTART-Zustand zurückgekehrt wird.
Technische Besonderheiten
Zyklus ohne Stopp: Die Sequenz läuft nach dem Start endlos im Kreis, bis ein
RESET-Signal empfangen wird. Es gibt keinen integrierten Stopp-Befehl.Sofortige Zustandsübergänge: Durch Setzen der Zeitwerte auf
NO_TIME(Standard) kann der FB so konfiguriert werden, dass er sofort zum nächsten Zustand wechselt, sobald der Eintrittsalgorithmus des aktuellen Zustands abgearbeitet ist.Deterministische Abarbeitung: Die Algorithmen für Exit, Confirmation und Entry werden in genau dieser Reihenfolge und atomar beim Zustandseintritt ausgeführt.
Konstanten für Zustandsnummern: Die
STATE_NRwird über Konstanten aus dem Importsequence(z.B.sequence::State_01) gesetzt, was die Wartbarkeit und Lesbarkeit verbessert.
Zustandsübersicht
Der ECC besteht aus 10 Zuständen:
xSTART: Initialer, inaktiver Zustand. Wartet aufSTART_S1.sState_01bissState_08: Die acht aktiven Sequenzzustände. Jeder verwaltet seinen eigenen Ausgang und die Zeit bis zum nächsten Zustand.sRESET: Reset-Zustand. Wird beiRESET-Ereignis von jedem Zustand aus angesprungen, deaktiviert alle Ausgänge und kehrt dann zuxSTARTzurück.
Die Übergangsbedingungen sind:
START_S1: VonxSTARTnachsState_01.timeOut.TimeOut: Von jedem ZustandsState_XXzum nächstensState_YY(zyklisch vonsState_08zusState_01).RESET: Von jedem aktiven Zustand (sState_01-sState_08) nachsRESET.1(immer wahr): VonsRESETzurück zuxSTART.
Anwendungsszenarien
Steuerung von Rundtaktmaschinen: Aktivierung verschiedener Werkzeuge oder Stationen in einer rotierenden Maschine für eine genau definierte Dauer.
Batch-Prozesse in der Verfahrenstechnik: Schrittweise Steuerung von Ventilen, Pumpen und Heizungen in einem chemischen Prozess mit festen Zykluszeiten.
Automatisierte Prüfsequenzen: Nacheinander Durchführung verschiedener Messungen oder Tests an einem Bauteil.
Licht- oder Signalanlagen: Erzeugung von festen Blink- oder Lauflichtmustern.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Gegensatz zu einem E_CYCLE- oder E_DELAY-FB, die einfache periodische oder verzögerte Ereignisse erzeugen, bietet sequence_T_08_loop eine strukturierte Zustandsmaschine mit mehreren unabhängigen Ausgängen. Im Vergleich zu einem frei programmierbaren E_CTU (Zähler) in Kombination mit SEL-Blöcken ist dieser FB vorkonfiguriert und damit einfacher und schneller für Standard-Sequenzen mit bis zu acht Schritten einsetzbar. Für komplexere oder zustandsabhängige Sequenzen müsste auf einen Service Sequence Function Block (SFC) oder eine individuelle Basic FB-Programmierung zurückgegriffen werden.
🛠️ Zugehörige Übungen
Fazit
Der sequence_T_08_loop ist ein robuster und einfach zu konfigurierender Funktionsblock für zeitgesteuerte Sequenzen mit fester Schrittanzahl. Seine klare Struktur aus Zuständen, konfigurierbaren Verweilzeiten und dedizierten Ausgängen macht ihn besonders geeignet für standardisierte Steuerungsaufgaben in der Automatisierungstechnik, bei denen Zuverlässigkeit und leichte Parametrierung im Vordergrund stehen. Die Integration eines Timer-Adapters entkoppelt die Zeitmessung von der FB-Logik und fördert die Wiederverwendbarkeit.