SPLIT_DWORD_INTO_WORDS
Einleitung
Der Funktionsblock SPLIT_DWORD_INTO_WORDS dient dazu, ein 32-Bit DWORD in zwei 16-Bit WORDS aufzuteilen. Diese Funktionalität ist besonders nützlich, wenn mit Daten gearbeitet wird, die als DWORD vorliegen, aber in einzelnen WORD-Teilen weiterverarbeitet werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die Ausführung des Funktionsblocks. Wird mit dem Daten-Eingang
INverknüpft.
Ereignis-Ausgänge
CNF: Signalisiert die erfolgreiche Ausführung des Funktionsblocks. Wird mit den Daten-Ausgängen
WORD_00undWORD_01verknüpft.
Daten-Eingänge
IN: DWORD (32-Bit), das in zwei WORDS aufgeteilt werden soll.
Daten-Ausgänge
WORD_00: Erstes WORD (16-Bit) des DWORD.
WORD_01: Zweites WORD (16-Bit) des DWORD.
Adapter
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweise
Der Funktionsblock nimmt ein DWORD als Eingabe und teilt es in zwei WORDS auf:
WORD_00enthält die unteren 16 Bits des DWORD (IN.%W0).WORD_01enthält die oberen 16 Bits des DWORD (IN.%X1).
Die Aufteilung erfolgt bei jedem REQ-Ereignis, und das Ergebnis wird mit dem CNF-Ereignis bestätigt.
Technische Besonderheiten
Die Implementierung erfolgt in Structured Text (ST).
Der Funktionsblock ist Teil des Pakets
eclipse4diac::utils::splitting.
Zustandsübersicht
Der Funktionsblock hat keinen internen Zustand. Die Verarbeitung erfolgt bei jedem REQ-Ereignis unmittelbar.
Anwendungsszenarien
Verarbeitung von DWORD-Daten, die aus Hardware-Registern oder Kommunikationsprotokollen stammen.
Aufteilung von 32-Bit Werten für die weitere Verarbeitung in 16-Bit Systemen.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Gegensatz zu generischen Bit-Manipulationsblöcken ist
SPLIT_DWORD_INTO_WORDSspezialisiert auf die Aufteilung von DWORD in WORDS.Ähnliche Blöcke könnten zusätzliche Flexibilität bieten, wie z.B. die Auswahl der zu extrahierenden Bits, sind aber oft komplexer in der Handhabung.
Fazit
Der SPLIT_DWORD_INTO_WORDS-Funktionsblock bietet eine einfache und effiziente Möglichkeit, DWORD-Daten in ihre WORD-Komponenten aufzuteilen. Seine spezialisierte Funktionalität macht ihn besonders nützlich für Anwendungen, die regelmäßig mit solchen Datenumwandlungen arbeiten müssen.