F_DWORD_TO_BYTE¶
Einleitung¶
Der Funktionsblock F_DWORD_TO_BYTE dient der Konvertierung eines 32-Bit-Wertes (DWORD) in einen 8-Bit-Wert (BYTE). Diese Konvertierung ist nützlich in Szenarien, wo eine Datenreduktion oder Typanpassung erforderlich ist.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
- REQ: Startet die Ausführung des Funktionsblocks. Der Eingang ist mit dem Daten-Eingang
INverknüpft.
Ereignis-Ausgänge¶
- CNF: Signalisiert die erfolgreiche Beendigung der Konvertierung. Der Ausgang ist mit dem Daten-Ausgang
OUTverknüpft.
Daten-Eingänge¶
- IN: Der Eingangswert vom Typ
DWORD(32-Bit), der in einBYTEkonvertiert werden soll.
Daten-Ausgänge¶
- OUT: Der Ausgangswert vom Typ
BYTE(8-Bit), der das Ergebnis der Konvertierung enthält.
Adapter¶
- Keine Adapter vorhanden.
Funktionsweise¶
Der Funktionsblock führt die Konvertierung von DWORD zu BYTE durch, sobald das Ereignis REQ empfangen wird. Die Konvertierung erfolgt mittels der Funktion DWORD_TO_BYTE. Nach erfolgreicher Konvertierung wird das Ereignis CNF ausgelöst.
Technische Besonderheiten¶
- Die Konvertierung kann zu einem Datenverlust führen, wenn der ursprüngliche
DWORD-Wert außerhalb des darstellbaren Bereichs einesBYTE(0-255) liegt. - Der Funktionsblock ist als einfacher FB (SimpleFB) implementiert und verwendet einen ST-Algorithmus für die Konvertierung.
Zustandsübersicht¶
- Idle: Wartet auf das Ereignis
REQ. - Processing: Führt die Konvertierung durch.
- Completed: Sendet das Ereignis
CNFund kehrt in den Idle-Zustand zurück.
Anwendungsszenarien¶
- Datenreduktion in Steuerungssystemen.
- Typkonvertierung in Kommunikationsprotokollen.
- Anpassung von Daten für spezifische Hardware-Schnittstellen.
⚖️ Vergleich mit ähnlichen Bausteinen¶
- F_WORD_TO_BYTE: Konvertiert einen 16-Bit-Wert (WORD) in ein BYTE.
- F_DWORD_TO_WORD: Konvertiert einen 32-Bit-Wert (DWORD) in ein 16-Bit-Wert (WORD).
- F_BYTE_TO_DWORD: Führt die umgekehrte Konvertierung durch (BYTE zu DWORD).
Fazit¶
Der Funktionsblock F_DWORD_TO_BYTE bietet eine einfache und effiziente Möglichkeit, 32-Bit-Werte in 8-Bit-Werte zu konvertieren. Aufgrund des möglichen Datenverlusts bei großen Werten sollte die Verwendung jedoch sorgfältig abgewogen werden.