E_SRENï
Einleitungï
Der E_SREN (Event-driven quad-state) ist ein ereignisgesteuerter Funktionsblock, der einen Ausgang mit vier definierten ZustĂ€nden steuert. Er reagiert auf verschiedene Eingangsereignisse und setzt seinen Ausgang entsprechend auf einen der vier ZustĂ€nde: Aktiviert (SET), Deaktiviert (RESET), Fehler (ERROR) oder Keine Aktion (NONE). Der Baustein ist besonders fĂŒr Anwendungen geeignet, in denen ein Signal mehrere BetriebszustĂ€nde reprĂ€sentieren muss, wie z.B. in Ăberwachungs- oder Steuerungssystemen.
Schnittstellenstrukturï
Ereignis-EingĂ€ngeï
S (Set): Setzt den Ausgang
QaufTRUEundQBauf den ZustandCOMMAND_ENABLE.R (Reset): Setzt den Ausgang
QaufFALSEundQBauf den ZustandCOMMAND_DISABLE.ERR (Error): Setzt den Ausgang
QaufFALSEundQBauf den ZustandSTATUS_ERROR.NONE: Setzt den Ausgang
QBauf den ZustandCOMMAND_NO_ACTION. Der AusgangQbleibt unverÀndert.
Ereignis-AusgĂ€ngeï
EO (Event Output): Wird ausgelöst, wenn sich einer der Ausgangswerte (
QoderQB) geÀndert hat. Dieses Ereignis wird immer zusammen mit den aktuellen Werten der DatenausgÀngeQundQBgesendet.
Daten-EingĂ€ngeï
Dieser Funktionsblock besitzt keine Daten-EingÀnge.
Daten-AusgĂ€ngeï
Q (BOOL): Einfacher boolescher Ausgang. Er ist nur
TRUE, wenn dasS-Ereignis eintrifft. Er istFALSEbei den EreignissenRundERRund bleibt unverÀndert beiNONE.QB (BYTE): Ein Byte-Ausgang, der speziell zur Kodierung von vier ZustÀnden (2 Bit) dient. Die konkreten Werte (z.B.
COMMAND_ENABLE) werden aus der importierten Bibliothekquarter::const::quarterbezogen.
Adapterï
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweiseï
Der E_SREN ist als Basic-FB implementiert und besitzt einen internen Zustandsautomaten (ECC). Der Ausgangszustand ist START. Bei Eintreffen eines Eingangsereignisses (S, R, ERR, NONE) wechselt der Automat in den entsprechenden Zustand (SET, RESET, Error, none). In diesen ZustĂ€nden wird der zugehörige Algorithmus ausgefĂŒhrt, der die Werte fĂŒr Q und QB berechnet.
AnschlieĂend prĂŒft eine Bedingung, ob sich der neue Wert von Q oder QB gegenĂŒber dem zuletzt gespeicherten Wert (old_Q, old_QB) geĂ€ndert hat. Falls ja, wechselt der Automat in den Zustand FireEvent. Hier wird der Algorithmus HOLD ausgefĂŒhrt, der die aktuellen Ausgangswerte in den internen Variablen speichert, und gleichzeitig das Ausgangsereignis EO ausgelöst. Danach kehrt der Automat immer in den START-Zustand zurĂŒck. Falls sich die Ausgangswerte nicht geĂ€ndert haben, erfolgt ein direkter Ăbergang von den ZustĂ€nden SET, RESET, Error oder none zurĂŒck in den START-Zustand, ohne dass EO ausgelöst wird.
Technische Besonderheitenï
Zustandserkennung: Der Baustein merkt sich den vorherigen Ausgangszustand in den internen Variablen
old_Qundold_QB. Das AusgangsereignisEOwird nur bei einer tatsĂ€chlichen ZustandsĂ€nderung generiert, was redundante Ereignisausgaben verhindert.BibliotheksabhĂ€ngigkeit: Die spezifischen Byte-Werte fĂŒr den
QB-Ausgang werden aus der Konstanten-BibliotheklogiBUS::utils::quarter::const::quarterimportiert. Die korrekte Funktion setzt die VerfĂŒgbarkeit dieser Bibliothek voraus.Vier-Zustands-Logik: Die Logik des
NONE-Ereignisses ist speziell: WÀhrendQBaufCOMMAND_NO_ACTIONgesetzt wird, bleibt der boolesche AusgangQexplizit unverÀndert.
ZustandsĂŒbersichtï
Der ECC (Execution Control Chart) besteht aus sechs ZustÀnden:
START: Initialer und Ruhezustand.
SET: Wird bei Ereignis
Saktiviert. SetztQ=TRUE,QB=COMMAND_ENABLE.RESET: Wird bei Ereignis
Raktiviert. SetztQ=FALSE,QB=COMMAND_DISABLE.Error: Wird bei Ereignis
ERRaktiviert. SetztQ=FALSE,QB=STATUS_ERROR.none: Wird bei Ereignis
NONEaktiviert. SetztQB=COMMAND_NO_ACTION.Qbleibt unverÀndert.FireEvent: Wird nur betreten, wenn sich
QoderQBgeÀndert haben. Speichert die neuen Werte und löstEOaus.
Anwendungsszenarienï
Aktorsteuerung: Steuerung eines Antriebs mit den Befehlen âEinschaltenâ (
S), âAusschaltenâ (R), âStörungâ (ERR) und âManuell/Extern gesteuertâ (NONE).Meldesysteme: Darstellung des Status einer Maschine: âIn Betriebâ, âStoppâ, âFehlerâ, âWartungâ.
Sicherheitsrelevante Steuerungen: Klare Trennung von normalen Betriebs- (
S/R), Fehler- (ERR) und Wartungs-/Override-ZustÀnden (NONE).
âïž Vergleich mit Ă€hnlichen Bausteinenï
E_SR (Bistabile Funktion): Der klassische Set-Reset-Flipflop kennt nur zwei stabile ZustÀnde (
TRUE/FALSE). Der E_SREN erweitert dieses Konzept um zwei weitere ZustĂ€nde (ERROR,NO_ACTION), die ĂŒber ein dediziertes Byte (QB) kodiert werden.E_D_FF (D-Flipflop): Ăbernimmt einen Datenwert bei einem Takt-Ereignis. Der E_SREN ist ereignisgesteuert (vier verschiedene Ereignisse) und hat keinen separaten Dateneingang. Die âDatenâ sind in den auslösenden Ereignissen implizit enthalten.
Fazitï
Der E_SREN ist ein spezialisierter, ereignisgesteuerter Funktionsblock fĂŒr Anwendungen, die mehr als zwei diskrete ZustĂ€nde benötigen. Durch die Kombination eines einfachen booleschen Signals (Q) mit einem mehrwertigen Byte-Signal (QB) und der intelligenten, Ă€nderungsbasierten Ereignisausgabe (EO) bietet er eine effiziente und ĂŒbersichtliche Lösung fĂŒr komplexe Zustandssteuerungen. Seine StĂ€rke liegt in der klaren Semantik der vier Eingangsereignisse und der zuverlĂ€ssigen Vermeidung von redundanten Ausgabeereignissen.