ASSEMBLE_DWORD_FROM_QUARTERS

🎧 Podcast


ASSEMBLE_DWORD_FROM_QUARTERS


Einleitung

Der Funktionsblock ASSEMBLE_DWORD_FROM_QUARTERS kombiniert 16 Quarter-Bytes (je 4 Bit) zu einem DWORD (32 Bit). Dies ist besonders nützlich, wenn Daten in kleineren Einheiten vorliegen und zu einer größeren Einheit zusammengefasst werden müssen.

Schnittstellenstruktur

Ereignis-Eingänge

  • REQ: Startet die Kombination der Quarter-Bytes zu einem DWORD. Wird mit allen 16 Quarter-Bytes verknüpft.

Ereignis-Ausgänge

  • CNF: Signalisiert die erfolgreiche Kombination der Quarter-Bytes zu einem DWORD.

Daten-Eingänge

  • QUARTER_BYTE_00 bis QUARTER_BYTE_15: 16 Eingänge vom Typ BYTE, die jeweils ein Quarter-Byte (4 Bit) enthalten.

Daten-Ausgänge

  • (Unbenannt): Ein Ausgang vom Typ DWORD, der das kombinierte Ergebnis enthält.

Adapter

Keine Adapter vorhanden.

Funktionsweise

Der Funktionsblock nimmt 16 Quarter-Bytes entgegen und kombiniert sie zu einem 32-Bit-DWORD. Jedes Quarter-Byte wird entsprechend seiner Position im DWORD verschoben und dann mit den anderen verknüpft. Die Verschiebung erfolgt mithilfe von Konstanten (quarterconst::SHIFT_QUARTER_XX), die die Position jedes Quarter-Bytes im DWORD definieren.

Technische Besonderheiten

  • Verwendet Bitverschiebungen (SHL) und logische ODER-Operationen (OR), um die Quarter-Bytes korrekt zu kombinieren.

  • Die Konvertierung von BYTE zu DWORD erfolgt mit BYTE_TO_DWORD.

Zustandsübersicht

  1. Idle: Wartet auf das REQ-Ereignis.

  2. Processing: Verarbeitet die Quarter-Bytes und kombiniert sie zu einem DWORD.

  3. Complete: Sendet das CNF-Ereignis und stellt das kombinierte DWORD bereit.

Anwendungsszenarien

  • Datenkomprimierung: Kombination von mehreren kleinen Datenpaketen zu einem größeren.

  • Kommunikationsprotokolle: Verarbeitung von Daten, die in kleineren Einheiten übertragen werden.

  • Signalverarbeitung: Zusammenfassung von Teilen eines Signals zu einem vollständigen Wert.

⚖️ Vergleich mit ähnlichen Bausteinen

  • Ähnliche Bausteine könnten BYTE_TO_WORD oder WORD_TO_DWORD sein, die jedoch weniger Flexibilität bieten, da sie nur feste Größen kombinieren.

  • ASSEMBLE_DWORD_FROM_QUARTERS bietet mehr Kontrolle über die Position jedes einzelnen Bits im resultierenden DWORD.

🛠️ Zugehörige Übungen

Fazit

Der ASSEMBLE_DWORD_FROM_QUARTERS-Funktionsblock ist ein leistungsfähiges Werkzeug zur Kombination von 16 Quarter-Bytes zu einem DWORD. Durch seine flexible und präzise Arbeitsweise eignet er sich ideal für Anwendungen, bei denen Daten in kleineren Einheiten vorliegen und zu einer größeren Einheit zusammengefasst werden müssen.