AX_SR_SYM_INIT¶
Einleitung¶
Der Funktionsblock AX_SR_SYM_INIT realisiert ein ereignisgesteuertes, bistabiles Flipflop (Set-Reset) mit symmetrischem Start‑up‑Verhalten und einer speziellen Initialisierungslogik. Er erweitert das klassische SR‑Flipflop um einen qualifizierten Initialisierungs- und Deinitialisierungsablauf, bei dem der Ausgangszustand über den Eingang Q_INIT vorgegeben wird und die gesamte Logik nur dann aktiv ist, wenn der Qualifier QI den Wert TRUE besitzt.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
| Ereignis | Typ | Beschreibung |
|---|---|---|
| INIT | EInit | Initialisierungsanforderung; mit QI und Q_INIT verknüpft |
| S | Event | Setzt den Ausgang Q (über Adapter) |
| R | Event | Setzt den Ausgang Q zurück |
Ereignis-Ausgänge¶
| Ereignis | Typ | Beschreibung |
|---|---|---|
| INITO | EInit | Initialisierungsbestätigung; mit QO verknüpft |
Daten-Eingänge¶
| Variable | Typ | Beschreibung |
|---|---|---|
| QI | BOOL | Eingangsqualifier – steuert, ob Aktionen ausgeführt werden |
| Q_INIT | BOOL | Gewünschter Wert des Ausgangs Q nach einer Initialisierung |
Daten-Ausgänge¶
| Variable | Typ | Beschreibung |
|---|---|---|
| QO | BOOL | Ausgangsqualifier – spiegelt den Wert von QI zum Zeitpunkt des auslösenden Ereignisses |
Adapter¶
| Adapter | Typ | Beschreibung |
|---|---|---|
| Q | adapter::types::unidirectional::AX | Wert des Flipflops – wird über die Schnittstelle gesetzt/ zurückgesetzt |
Funktionsweise¶
Der Baustein besitzt vier Hauptzustände: START, Init, DeInit, SET und RESET.
START– Wartezustand nach dem Systemstart.Init– Wird aktiviert, wenn aufINITeintrifft undQI = TRUE. In diesem Zustand wird der Algorithmusinitializeausgeführt, derQO := QIsetzt. Anschließend verzweigt der Zustand je nachQ_INIT:- Ist
Q_INIT = TRUE, wird in denSET‑Zustand gewechselt (Flipflop wird gesetzt). - Ist
Q_INIT = FALSE, wird in denRESET‑Zustand gewechselt (Flipflop wird zurückgesetzt). DeInit– Wird aktiviert, wenn aufINITeintrifft undQI = FALSE(aus den ZuständenSEToderRESET). Der AlgorithmusdeInitializesetztQO := FALSE. Danach springt der Zustand zurück zuSTART.SET– Wird durch das EreignisSerreicht (ausRESEToder nach Initialisierung mitQ_INIT=TRUE). Der AlgorithmusSETsetztQO := QIund schreibt nur wennQI = TRUEden WertTRUEauf den AdapterausgangQ.D1. Ein erneutesSbleibt wirkungslos, solange der ZustandSETaktiv ist.RESET– Wird durch das EreignisRerreicht (ausSEToder nach Initialisierung mitQ_INIT=FALSE). Der AlgorithmusRESETsetztQO := QIund schreibt nur wennQI = TRUEden WertFALSEaufQ.D1. Ein erneutesRbleibt wirkungslos.
Die Transitionen zwischen SET und RESET werden nur durch die Ereignisse S bzw. R ausgelöst. Die INIT‑Transitionen können aus beiden stabilen Zuständen in DeInit führen, wenn QI = FALSE ist.
Technische Besonderheiten¶
- Qualifier‑abhängige Aktionen: Die eigentliche Änderung des Flipflop‑Ausgangs (
Q.D1) erfolgt nur, wennQI = TRUE. Andernfalls werden nur die Output‑Qualifier (QO) aktualisiert, der Adapter bleibt unverändert. - Symmetrisches Start‑up: Der Baustein kann sowohl mit einem „gesetzten“ als auch mit einem „zurückgesetzten“ Zustand initialisiert werden – abhängig vom Wert
Q_INIT. - Deinitialisierung: Wenn während der Initialisierung
QI = FALSEist, wird der Baustein in denDeInit‑Zustand versetzt, der den Ausgangsqualifier löscht und dann in den Startzustand zurückkehrt. - Guard‑Bedingungen: Die Zustandsübergänge nutzen Bedingungen wie
INIT[TRUE = QI]oder[FALSE = Q_INIT], um die Logik präzise zu steuern.
Zustandsübersicht¶
- START → Ruhezustand nach Start.
- Init → Initialisierungslauf (nur bei
QI=TRUE). - DeInit → Deinitialisierungslauf (nur bei
QI=FALSE). - SET → Stabiler Zustand, in dem
Q.D1 = TRUE(sofern zuvor gesetzt). - RESET → Stabiler Zustand, in dem
Q.D1 = FALSE(sofern zuvor zurückgesetzt).
Übergänge:
- START → Init : wenn INIT & QI=TRUE
- Init → SET : wenn Q_INIT=TRUE
- Init → RESET : wenn Q_INIT=FALSE
- SET → RESET : wenn R
- RESET → SET : wenn S
- SET → DeInit : wenn INIT & QI=FALSE
- RESET → DeInit : wenn INIT & QI=FALSE
- DeInit → START : automatisch nach Abschluss des DeInit‑Algorithmus
Anwendungsszenarien¶
- Steuerung von Aktoren mit definiertem Startverhalten: Ein Motor oder Ventil soll nach dem Einschalten einen bestimmten Zustand einnehmen (z. B. geschlossen =
Q=FALSE), abhängig von einer Initialisierungsvorgabe. - Qualifizierte Zustandsänderungen: In Systemen, in denen ein Freigabesignal (
QI) erst die eigentliche Wertänderung erlaubt, während der Qualifier‑Ausgang (QO) die Gültigkeit signalisiert. - Reset‑fähige Initialisierungsroutine: Eine Komponente kann durch einen INIT‑Aufruf entweder gesetzt oder zurückgesetzt werden, kann aber später durch erneuten INIT‑Aufruf mit
QI=FALSEin einen definierten Ruhezustand versetzt werden.
Vergleich mit ähnlichen Bausteinen¶
- Standard‑SR‑Flipflop (z. B.
SRoderAX_SR): Einfaches Set/Reset ohne Initialisierung und ohne Qualifier.AX_SR_SYM_INITbietet zusätzlich einen qualifizierten Initialisierungs‑ und Deinitialisierungsablauf. - Bausteine mit INIT‑Schnittstelle (z. B.
E_SRmitINIT): Diese haben oft keine ausgeprägte Deinitialisierung oder keinen Qualifier. Der hier vorgestellte FB unterscheidet sich durch das symmetrische Verhalten – sowohl Setzen als auch Zurücksetzen kann im INIT‑Schritt vorgegeben werden. - Bausteine mit Adapter (
unidirectional::AX): Werden verwendet, um den Zustand über eine standardisierte Adapterschnittstelle nach außen zu tragen. DerAX_SR_SYM_INITkapselt diese Logik in einem FB.
Fazit¶
Der AX_SR_SYM_INIT ist ein vielseitiger Funktionsblock für Anwendungen, die ein qualifiziertes Start‑ und Initialisierungsverhalten erfordern. Durch die Kombination von Ereignissteuerung, Qualifier‑Logik und Adapter‑Schnittstelle eignet er sich besonders für modulare Automatisierungslösungen nach IEC 61499, bei denen ein definierter Systemstart und eine saubere Deinitialisierung gefordert sind.