ASSEMBLE_DWORD_FROM_QUARTERS¶
🎧 Podcast¶
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_00bisQUARTER_BYTE_15: 16 Eingänge vom TypBYTE, 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
BYTEzuDWORDerfolgt mitBYTE_TO_DWORD.
Zustandsübersicht¶
- Idle: Wartet auf das
REQ-Ereignis. - Processing: Verarbeitet die Quarter-Bytes und kombiniert sie zu einem DWORD.
- 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_WORDoderWORD_TO_DWORDsein, die jedoch weniger Flexibilität bieten, da sie nur feste Größen kombinieren. ASSEMBLE_DWORD_FROM_QUARTERSbietet 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.