QUARTER_TO_STR_MEASURED
🎧 Podcast
Einleitung
Der Funktionsblock QUARTER_TO_STR_MEASURED dient der Konvertierung eines 4-Zustands-Signals (kodiert in den unteren zwei Bits eines BYTE-Wertes) in einen menschenlesbaren Text-String (STRING). Er ist besonders für die Anzeige oder Protokollierung von Statusinformationen in Steuerungssystemen geeignet, wo diskrete Zustände wie „Eingeschaltet“, „Ausgeschaltet“, „Fehler“ oder „Nicht verfügbar“ in eine textuelle Form überführt werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die normale Ausführung des Funktionsblocks. Bei diesem Ereignis wird der Wert am Daten-Eingang
IBausgewertet und die entsprechende Konvertierung durchgeführt.
Ereignis-Ausgänge
CNF: Signalisiert die Beendigung der Konvertierung und die Verfügbarkeit des Ergebnisses am Daten-Ausgang
STR.
Daten-Eingänge
IB (BYTE): Der Eingang für den zu konvertierenden 4-Zustands-Wert (Quad-State). Es werden nur die unteren zwei Bits (LSB) ausgewertet. Der Block erwartet spezifische, vordefinierte Konstantenwerte (z.B.
quarter::STATUS_ENABLED). Der Initialwert istquarter::STATUS_DISABLED.
Daten-Ausgänge
STR (STRING): Der Ausgang, an dem der konvertierte Text-String bereitgestellt wird. Der Initialwert ist die Textkonstante für den Status „Disabled“ (
quarter::STATUS_DISABLED_msg).
Adapter
Dieser Funktionsblock verfügt über keine Adapter-Schnittstellen.
Funktionsweise
Der QUARTER_TO_STR_MEASURED ist ein Basic Function Block (BFB) mit einem internen Ausführungssteuerungsgraphen (ECC). Bei Eintreffen des REQ-Ereignisses wird der Wert am Eingang IB mit vordefinierten Konstanten aus der Bibliothek logiBUS::utils::quarter::const::quarter verglichen. Abhängig vom übereinstimmenden Wert verzweigt die Steuerung in einen von vier Zuständen (SET, RESET, Error, none). In jedem dieser Zustände wird ein spezifischer Algorithmus ausgeführt, der die entsprechende Textkonstante (z.B. quarter::STATUS_ENABLED_msg) dem Ausgang STR zuweist. Anschließend wechselt der Block in den Zustand ok, von dem aus das CNF-Ausgangsereignis ausgelöst wird, bevor der Block in seinen initialen Zustand START zurückkehrt und auf den nächsten REQ wartet.
Technische Besonderheiten
Typisierte Konstanten: Der Block verwendet streng typisierte Konstanten für sowohl die Eingangswerte (
quarter::STATUS_...) als auch die Ausgangsstrings (quarter::STATUS_..._msg). Dies erhöht die Typsicherheit und Wartbarkeit des Codes.Basic FB: Die Implementierung als Basic FB mit ECC ermöglicht eine klare und nachvollziehbare Zustandslogik.
Initialwerte: Sowohl der Daten-Eingang
IBals auch der Daten-AusgangSTRsind mit sinnvollen Initialwerten (deaktivierter Status) vorbesetzt.
Zustandsübersicht
Der ECC des Funktionsblocks besteht aus sechs Zuständen:
START: Der initiale Wartezustand. Bei
REQerfolgt eine Verzweigung basierend auf dem Wert vonIB.SET: Wird bei
IB = quarter::STATUS_ENABLEDaktiviert. Führt den AlgorithmusSETaus.RESET: Wird bei
IB = quarter::STATUS_DISABLEDaktiviert. Führt den AlgorithmusRESETaus.Error: Wird bei
IB = quarter::STATUS_ERRORaktiviert. Führt den AlgorithmusERRORaus.none: Wird bei
IB = quarter::STATUS_NOT_AVAILABLEaktiviert. Führt den AlgorithmusNONEaus.ok: Gemeinsamer Zustand, der nach jeder erfolgreichen Konvertierung durchlaufen wird. Löst das
CNF-Ereignis aus und führt zurück zumSTART-Zustand.
Anwendungsszenarien
HMI/SCADA-Anbindung: Konvertierung von internen Steuerungsstatuswerten in lesbare Texte für die Darstellung auf Bedienpanels oder in Visualisierungssystemen.
Protokollierung und Diagnose: Erzeugung von klartextbasierten Log-Einträgen für Fehler- oder Statusmeldungen, die einfacher zu analysieren sind als numerische Codes.
Schnittstelle zu übergeordneten Systemen: Aufbereitung von Statusinformationen für die Übertragung an MES- oder ERP-Systeme, die String-Daten erwarten.
⚖️ Vergleich mit ähnlichen Bausteinen
BYTE_TO_STRING: Ein genereller Konverter, der einen beliebigen BYTE-Wert in seine dezimale String-Repräsentation umwandelt.QUARTER_TO_STR_MEASUREDist spezialisierter und wandelt spezifische, semantisch bedeutungsvolle Werte in vordefinierte, aussagekräftige Texte um, nicht in Zahlenstrings.E_SRoderE_RS(FlipFlops): Diese Blöcke repräsentieren binäre Zustände (SET/RESET) durch boolesche Signale.QUARTER_TO_STR_MEASUREDerweitert dieses Konzept auf vier Zustände und bietet zusätzlich die textuelle Repräsentation.
Fazit
Der QUARTER_TO_STR_MEASURED ist ein spezialisierter und robuster Funktionsblock zur semantischen Konvertierung von 4-Zustands-Signalen. Durch die Verwendung von Bibliothekskonstanten für Ein- und Ausgänge gewährleistet er eine hohe Codequalität und vereinfacht die Wartung. Er ist die ideale Wahl, wenn diskrete Statusinformationen aus der Steuerungsebene für Anzeige-, Protokollierungs- oder Schnittstellenzwecke in eine textuelle Form gebracht werden müssen.