ASSEMBLE_DWORD_FROM_BOOLS
Einleitung
Der Funktionsblock ASSEMBLE_DWORD_FROM_BOOLS kombiniert 32 einzelne BOOL-Werte zu einem einzigen DWORD-Wert. Dies ist besonders nützlich, wenn mehrere binäre Zustände in einer kompakten Form verarbeitet oder übertragen werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Auslöseereignis, das die Verarbeitung der Eingangsdaten startet. Wird mit allen 32 BIT-Eingängen verknüpft.
Ereignis-Ausgänge
CNF: Bestätigungsereignis, das nach erfolgreicher Kombination der BOOL-Werte zu einem DWORD ausgegeben wird.
Daten-Eingänge
32 BOOL-Eingänge (BIT_00 bis BIT_31), die jeweils ein Bit im resultierenden DWORD repräsentieren:
BIT_00: Bit 0 (niederwertigstes Bit)BIT_01: Bit 1…
BIT_31: Bit 31 (höchstwertigstes Bit)
Daten-Ausgänge
OUT: DWORD, das aus den 32 Eingangs-BOOLs zusammengesetzt wird.
Adapter
Keine Adapter vorhanden.
Funktionsweise
Der Funktionsblock setzt bei Auslösung des REQ-Ereignisses die 32 BOOL-Eingänge zu einem DWORD zusammen. Jeder BOOL-Eingang entspricht einem Bit im DWORD:
BIT_00wird zu Bit 0 (LSB)BIT_31wird zu Bit 31 (MSB)
Nach der erfolgreichen Kombination wird das CNF-Ereignis ausgegeben.
Technische Besonderheiten
Der Funktionsblock ist in ST (Structured Text) implementiert.
Die Bit-Zuordnung erfolgt direkt über die Zuweisung der BOOL-Werte zu den entsprechenden Bit-Positionen des DWORD.
Keine Pufferung oder Zustandsspeicherung: Die Verarbeitung erfolgt bei jedem
REQ-Ereignis neu.
Zustandsübersicht
Der Funktionsblock hat keinen internen Zustand. Die Verarbeitung erfolgt rein ereignisgesteuert:
REQempfangen → Verarbeitung starten.BOOL-Werte lesen und zu DWORD kombinieren.
CNFausgeben.
Anwendungsszenarien
Komprimierung mehrerer binärer Signale für die Übertragung über Kommunikationsprotokolle.
Speicherung mehrerer Schaltzustände in einem einzigen Register.
Effiziente Verarbeitung von Bitmasken in Steuerungsalgorithmen.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Vergleich zu manuellen Bit-Operationen in ST oder anderen FB-Typen bietet dieser Baustein eine vordefinierte, fehlerfreie Lösung für die Kombination von BOOLs zu einem DWORD.
Ähnliche Bausteine könnten weniger Bits verarbeiten oder zusätzliche Funktionen wie Bit-Verschiebungen bieten.
Fazit
Der ASSEMBLE_DWORD_FROM_BOOLS-Funktionsblock ist eine effiziente und zuverlässige Lösung, um 32 binäre Eingänge in einem einzigen DWORD zu kombinieren. Durch seine einfache und klare Schnittstelle eignet er sich ideal für Anwendungen, die kompakte Darstellungen mehrerer binärer Zustände erfordern.