# SPLIT_LWORD_INTO_QUARTERS ## 🎧 Podcast * [QUARTER](https://podcasters.spotify.com/pod/show/iec-61499-grundkurs-de/episodes/QUARTER-e36741d) ---- ```{index} single: SPLIT_LWORD_INTO_QUARTERS ``` ![SPLIT_LWORD_INTO_QUARTERS](https://github.com/user-attachments/assets/673b8e11-a630-41ed-ab74-5c16e3fe349b) * * * * * * * * * * ## Einleitung Der Funktionsblock `SPLIT_LWORD_INTO_QUARTERS` dient zur Extraktion der 32 Quarter Bytes (je 8 Bit) aus einem LWORD (64 Bit). Dies ermöglicht die gezielte Verarbeitung einzelner Byte-Segmente innerhalb eines langen Wortes. ## Schnittstellenstruktur ### **Ereignis-EingĂ€nge** - `REQ`: Startet die Verarbeitung des Eingangswertes `IN`. ### **Ereignis-AusgĂ€nge** - `CNF`: BestĂ€tigt die erfolgreiche Verarbeitung und liefert alle 32 Quarter Bytes. ### **Daten-EingĂ€nge** - `IN` (LWORD): Das 64-Bit-Eingangswort, das in Quarter Bytes aufgeteilt werden soll. ### **Daten-AusgĂ€nge** 32 AusgĂ€nge vom Typ BYTE: - `QUARTER_BYTE_00` bis `QUARTER_BYTE_31`: Die extrahierten 8-Bit-Segmente des Eingangswortes. ### **Adapter** Keine Adapter vorhanden. ## Funktionsweise Der Funktionsblock nutzt Bitoperationen (AND und Rechts-Shift) in Kombination mit Konstanten (`quarterconst::LWORD_QUARTER_xx` und `quarterconst::SHIFT_QUARTER_xx`), um jedes der 32 Quarter Bytes aus dem Eingangs-LWORD zu isolieren. Jedes Quarter Byte wird anschließend in einen separaten BYTE-Ausgang geschrieben. ## Technische Besonderheiten - Verwendet spezielle Bitmasken und Verschiebungskonstanten fĂŒr prĂ€zise Extraktion - Arbeitet mit dem grĂ¶ĂŸten IEC-Datentyp LWORD (64 Bit) - Liefert alle 32 Quarter Bytes parallel in einem Durchlauf ## ZustandsĂŒbersicht 1. **Idle**: Wartet auf REQ-Ereignis 2. **Processing**: Extrahiert alle Quarter Bytes 3. **Output**: Trigger CNF-Ereignis mit allen Ausgangswerten ## Anwendungsszenarien - Verarbeitung von langen Datenwörtern in Kommunikationsprotokollen - Extraktion einzelner Parameter aus gepackten Datenstrukturen - Bitweise Analyse von Sensor- oder Steuerdaten ## ⚖ Vergleich mit Ă€hnlichen Bausteinen - Im Gegensatz zu einfachen BYTE-Extraktionsblöcken kann dieser FB alle 32 Segmente gleichzeitig verarbeiten - Effizienter als mehrere hintereinandergeschaltete Extraktionsblöcke - Spezialisiert auf die Verarbeitung von LWORD-Datentypen ## Fazit Der `SPLIT_LWORD_INTO_QUARTERS`-Funktionsblock bietet eine hochoptimierte Lösung fĂŒr die Aufteilung von 64-Bit-Wörtern in ihre einzelnen Byte-Komponenten. Durch die parallele Verarbeitung aller Segmente eignet er sich besonders fĂŒr Anwendungen, die eine effiziente Verarbeitung großer Datenwörter erfordern.