SPLIT_DWORD_INTO_BOOLS
Einleitung
Der Funktionsblock SPLIT_DWORD_INTO_BOOLS dient dazu, ein 32-Bit-DWORD in seine einzelnen Bits aufzuteilen und diese als separate BOOL-Werte auszugeben. Dies ist besonders nützlich, wenn komprimierte Daten in einer Steuerung verarbeitet werden müssen und die einzelnen Bits separat angesprochen werden sollen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die Ausführung des Funktionsblocks. Wird dieser Eingang aktiviert, werden die Bits des Eingangs-DWORD ausgewertet und an den Ausgängen bereitgestellt.
Ereignis-Ausgänge
CNF: Bestätigt die erfolgreiche Ausführung des Funktionsblocks. Dieses Ereignis wird zusammen mit den aktualisierten BOOL-Ausgängen ausgelöst.
Daten-Eingänge
IN: Das Eingangs-DWORD, das in 32 einzelne Bits aufgeteilt werden soll.
Daten-Ausgänge
BIT_00 bis BIT_31: Die 32 einzelnen Bits des Eingangs-DWORD, jeweils als BOOL-Wert ausgegeben. Jeder Ausgang repräsentiert ein Bit des DWORD, wobei
BIT_00dem niederwertigsten Bit (LSB) undBIT_31dem höchstwertigen Bit (MSB) entspricht.
Adapter
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweise
Der Funktionsblock extrahiert jedes Bit des Eingangs-DWORD IN und weist es den entsprechenden BOOL-Ausgängen zu. Die Zuordnung erfolgt direkt:
BIT_00= Bit 0 (LSB)BIT_01= Bit 1…
BIT_31= Bit 31 (MSB)
Bei Aktivierung des REQ-Ereignisses werden alle Bits ausgewertet, und das CNF-Ereignis wird ausgelöst, sobald die Ausgänge aktualisiert sind.
Technische Besonderheiten
Der Funktionsblock ist in ST (Structured Text) implementiert und verwendet direkte Bit-Zugriffe auf das DWORD (
IN.%X0bisIN.%X31).Die Ausgänge werden synchron mit dem
CNF-Ereignis aktualisiert, was eine deterministische Verarbeitung ermöglicht.
Zustandsübersicht
Der Funktionsblock hat keinen internen Zustand. Bei jedem REQ-Ereignis werden die Ausgänge neu berechnet.
Anwendungsszenarien
Verarbeitung von komprimierten Statusinformationen, z. B. aus einem Feldbus oder einer Schnittstelle.
Dekodierung von Bitmasken in Steuerungsanwendungen.
Aufteilung von DWORD-Werten für individuelle Bit-Manipulationen.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Vergleich zu generischen Bit-Manipulations-Funktionen bietet dieser Baustein eine direkte und effiziente Methode zur Extraktion aller Bits eines DWORD.
Ähnliche Bausteine könnten nur Teile eines DWORD verarbeiten oder zusätzliche Logik enthalten, was hier nicht der Fall ist.
Fazit
Der SPLIT_DWORD_INTO_BOOLS-Funktionsblock ist ein spezialisiertes Werkzeug zur effizienten Aufteilung eines DWORD in seine einzelnen Bits. Durch seine einfache und deterministische Funktionsweise eignet er sich ideal für Anwendungen, in denen Bit-Manipulationen erforderlich sind.