sequence_ET_05_loop
Einleitung
Der Funktionsblock sequence_ET_05_loop implementiert eine zyklische Sequenz mit fünf Zuständen. Der Übergang zwischen den einzelnen Zuständen kann entweder durch ein externes Ereignis oder nach Ablauf einer einstellbaren Zeit erfolgen. Der Baustein ist für Anwendungen konzipiert, bei denen ein Prozess schrittweise durchlaufen und dabei verschiedene Aktionen in einer festen Reihenfolge ausgelöst werden müssen, wie beispielsweise in Verpackungsmaschinen, Montageprozessen oder Waschprogrammen.
Schnittstellenstruktur
Ereignis-Eingänge
START_S1: Startet die Sequenz und führt den Übergang vom Startzustand (START) in den ersten Zustand (State_01). Überträgt die Zeitwerte für alle zeitgesteuerten Übergänge.S1_S2: Löst den Übergang vonState_01nachState_02aus.S2_S3: Löst den Übergang vonState_02nachState_03aus.S3_S4: Löst den Übergang vonState_03nachState_04aus.S4_S5: Löst den Übergang vonState_04nachState_05aus.S5_S1: Löst den Übergang vonState_05zurück inState_01aus (Zyklus).RESET: Setzt die Sequenz von jedem beliebigen Zustand zurück in den Startzustand (START).
Ereignis-Ausgänge
CNF: Bestätigungsereignis, das bei jedem Zustandswechsel ausgelöst wird. Überträgt die aktuelle Zustandsnummer (STATE_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.EO_S5: Wird beim Eintritt inState_05ausgelöst. Überträgt den AusgangswertDO_S5.
Daten-Eingänge
DT_S1_S2(Typ:TIME, Initialwert:NO_TIME): Zeit für den automatischen Übergang vonState_01nachState_02. BeiNO_TIMEist der zeitgesteuerte Übergang deaktiviert.DT_S2_S3(Typ:TIME, Initialwert:NO_TIME): Zeit für den automatischen Übergang vonState_02nachState_03.DT_S3_S4(Typ:TIME, Initialwert:NO_TIME): Zeit für den automatischen Übergang vonState_03nachState_04.DT_S4_S5(Typ:TIME, Initialwert:NO_TIME): Zeit für den automatischen Übergang vonState_04nachState_05.DT_S5_S1(Typ:TIME, Initialwert:NO_TIME): Zeit für den automatischen Übergang vonState_05nachState_01.
Daten-Ausgänge
STATE_NR(Typ:SINT): Gibt die Nummer des aktuellen Zustands aus (START = 0, State_01 = 1, …, State_05 = 5).DO_S1(Typ:BOOL): IstTRUE, wennState_01aktiv ist.DO_S2(Typ:BOOL): IstTRUE, wennState_02aktiv ist.DO_S3(Typ:BOOL): IstTRUE, wennState_03aktiv ist.DO_S4(Typ:BOOL): IstTRUE, wennState_04aktiv ist.DO_S5(Typ:BOOL): IstTRUE, wennState_05aktiv ist.
Adapter
timeOut(Typ:ATimeOut): Ein gesteckter Adapter zur Realisierung der zeitgesteuerten Zustandsübergänge. Der FB nutzt dessen SchnittstellenSTART,STOPundDT(Zeitwert) sowie das EreignisTimeOut.
Funktionsweise
Der FB ist als Basic-FB mit einer Execution Control Chart (ECC) implementiert. Die Sequenz beginnt im Zustand xSTART. Mit dem Ereignis START_S1 wird der erste Zustand sState_01 aktiviert. Bei jedem Zustandseintritt werden folgende Aktionen ausgeführt:
Der Timer-Adapter wird gestoppt (
timeOut.STOP).Der Ausgang des vorherigen Zustands wird zurückgesetzt (z.B.
State_05_XfürDO_S5).Die Zustandsnummer
STATE_NRwird aktualisiert und der Timer für den nächsten Übergang konfiguriert (z.B.State_01_C).Der Ausgang des neuen Zustands wird gesetzt (z.B.
State_01_EfürDO_S1).Der Timer-Adapter wird mit der für diesen Übergang konfigurierten Zeit gestartet (
timeOut.START).
Ein Zustandswechsel kann nun auf zwei Arten erfolgen:
Ereignisgesteuert: Durch das entsprechende Eingangsereignis (z.B.
S1_S2).Zeitgesteuert: Durch das
TimeOut-Ereignis des Adapters, sofern die Zeit (DT_...) nicht aufNO_TIMEgesetzt ist.
Die Sequenz durchläuft die Zustände 1 bis 5 und springt dann von State_05 wieder zurück zu State_01, wodurch ein endloser Zyklus entsteht. Das Ereignis RESET führt unabhängig vom aktuellen Zustand in den Reset-Zustand sRESET, von wo aus die Sequenz automatisch in den xSTART-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 festen Sequenz.
Sichere Zustandsausgänge: Die booleschen Ausgänge (
DO_Sx) werden beim Verlassen eines Zustands explizit über einen Exit-Algorithmus (State_XX_X) zurückgesetzt. Dies verhindert ein unbeabsichtigtes Beibehalten desTRUE-Signals.Explizite Timer-Steuerung: Der Timer wird bei jedem Zustandswechsel neu gestartet und gestoppt, was eine präzise und deterministische Zeitsteuerung gewährleistet.
Konstanten: Der FB verwendet definierte Konstanten (
sequence::State_XX,NO_TIME) aus importierten Bibliotheken, was die Wartbarkeit und Lesbarkeit des Codes erhöht.
Zustandsübersicht
Die ECC besteht aus sieben Zuständen:
xSTART: Inaktiver Anfangszustand.sState_01bissState_05: Die fünf aktiven Sequenzzustände.sRESET: Zwischenzustand, der beim Reset alle Ausgänge zurücksetzt und die Bestätigung für denxSTART-Zustand sendet.
Anwendungsszenarien
Steuerung von Zyklischen Prozessen: Automatische Bearbeitungsmaschinen (z.B. Drehmaschinen mit mehreren Werkzeugen), bei denen jeder Schritt eine bestimmte Zeit dauert oder durch ein Sensorereignis abgeschlossen wird.
Batch-Prozesse: Chargenweise Abarbeitung in der Lebensmittel- oder Pharmaindustrie, wo Mischen, Erhitzen und Abfüllen nacheinander erfolgen.
Sicherheitssequenzen: Überwachte Start- oder Stoppprozeduren, bei denen jeder Schritt manuell freigegeben (
EVENT) oder nach einer Wartezeit (TIME) automatisch weiterläuft.Teststände: Automatisierte Prüfabläufe, bei denen nacheinander verschiedene Messungen oder Funktionstests durchgeführt werden.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Vergleich zu einfachen Timer-Bausteinen oder selbsthaltenden Relaiskaskaden bietet sequence_ET_05_loop eine vordefinierte, zyklische Struktur mit integrierter Zeit- und Ereignissteuerung. Gegenüber einer Programmierung mit einzelnen Blöcken (z.B. E_SR, E_DELAY) reduziert er den Verdrahtungsaufwand und erhöht die Übersichtlichkeit. Andere Sequenzer-FBs haben möglicherweise eine variable Anzahl von Schritten oder andere Übergangslogiken (nur Zeit ODER nur Ereignis). Dieser FB zeichnet sich durch die kombinierte EVENT/TIME-Triggerung pro Schritt aus.
Fazit
Der sequence_ET_05_loop ist ein robust und klar strukturierter Funktionsblock zur Implementierung von zyklischen 5-Schritt-Sequenzen. Die Kombination aus ereignis- und zeitgesteuerten Übergängen macht ihn äußerst flexibel für eine Vielzahl von Automatisierungsaufgaben. Die explizite Steuerung der Ausgänge und des Timers sorgt für ein deterministisches und zuverlässiges Verhalten. Er ist ideal geeignet, um wiederkehrende Prozessabläufe mit fester Schrittanzahl effizient und übersichtlich in einer IEC 61499-basierten Steuerung abzubilden.