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_00 enthält die unteren 16 Bits des DWORD (IN.%W0).
- WORD_01 enthä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.