SPLIT_DWORD_INTO_WORDS

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 IN verknüpft.

Ereignis-Ausgänge

  • CNF: Signalisiert die erfolgreiche Ausführung des Funktionsblocks. Wird mit den Daten-Ausgängen WORD_00 und WORD_01 verknü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_WORDS spezialisiert 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.