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:
1. START: Der initiale Wartezustand. Bei REQ erfolgt eine Verzweigung basierend auf dem Wert von IB.
2. SET: Wird bei IB = quarter::STATUS_ENABLED aktiviert. Führt den Algorithmus SET aus.
3. RESET: Wird bei IB = quarter::STATUS_DISABLED aktiviert. Führt den Algorithmus RESET aus.
4. Error: Wird bei IB = quarter::STATUS_ERROR aktiviert. Führt den Algorithmus ERROR aus.
5. none: Wird bei IB = quarter::STATUS_NOT_AVAILABLE aktiviert. Führt den Algorithmus NONE aus.
6. ok: Gemeinsamer Zustand, der nach jeder erfolgreichen Konvertierung durchlaufen wird. Löst das CNF-Ereignis aus und führt zurück zum START-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.