F_DWORD_TO_USINT¶
Einleitung¶
Der Funktionsblock F_DWORD_TO_USINT dient der Konvertierung eines 32-Bit-Wertes (DWORD) in einen 8-Bit-unsigned-Integer-Wert (USINT). Diese Konvertierung ist besonders nützlich, wenn Daten zwischen Systemen mit unterschiedlichen Wortbreiten ausgetauscht werden müssen.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
- REQ: Startet die Konvertierung. Wird dieser Eingang ausgelöst, wird der Wert am Daten-Eingang
INverarbeitet.
Ereignis-Ausgänge¶
- CNF: Signalisiert den Abschluss der Konvertierung. Der konvertierte Wert steht am Daten-Ausgang
OUTzur Verfügung.
Daten-Eingänge¶
- IN (DWORD): Der 32-Bit-Wert, der in einen 8-Bit-unsigned-Integer-Wert konvertiert werden soll.
Daten-Ausgänge¶
- OUT (USINT): Der resultierende 8-Bit-unsigned-Integer-Wert nach der Konvertierung.
Adapter¶
Dieser Funktionsblock verfügt über keine Adapter-Schnittstellen.
Funktionsweise¶
Der Funktionsblock führt die Konvertierung durch, indem der 32-Bit-Wert am Eingang IN in einen 8-Bit-unsigned-Integer-Wert umgewandelt wird. Die Konvertierung erfolgt durch die Funktion DWORD_TO_USINT, die den Wert entsprechend umwandelt. Bei der Konvertierung wird nur das niederwertigste Byte des DWORD-Wertes berücksichtigt, während die höherwertigen Bytes ignoriert werden.
Technische Besonderheiten¶
- Die Konvertierung schneidet die höherwertigen Bytes ab, was zu einem Datenverlust führen kann, wenn der ursprüngliche DWORD-Wert größer als 255 ist.
- Der Funktionsblock ist deterministisch und führt die Konvertierung in einem einzigen Ausführungsschritt durch.
Zustandsübersicht¶
Der Funktionsblock besitzt keine internen Zustände. Die Konvertierung wird bei jedem Auslösen des REQ-Ereignisses neu durchgeführt.
Anwendungsszenarien¶
- Datenreduktion in Kommunikationsprotokollen, wo nur 8-Bit-Werte übertragen werden können.
- Anpassung von Datenformaten zwischen unterschiedlichen Systemkomponenten.
- Verwendung in Steuerungen, wo spezifische Hardware nur 8-Bit-Daten verarbeiten kann.
⚖️ Vergleich mit ähnlichen Bausteinen¶
- F_WORD_TO_USINT: Konvertiert einen 16-Bit-Wert (WORD) in einen 8-Bit-unsigned-Integer-Wert. Im Gegensatz dazu verarbeitet
F_DWORD_TO_USINT32-Bit-Werte. - F_DWORD_TO_BYTE: Ähnlich in der Funktionalität, aber der Ausgangstyp ist BYTE, was ebenfalls 8 Bit umfasst, aber ohne Vorzeichen.
Fazit¶
Der Funktionsblock F_DWORD_TO_USINT ist ein einfaches und effizientes Werkzeug zur Konvertierung von 32-Bit-Werten in 8-Bit-unsigned-Integer-Werte. Er eignet sich besonders für Anwendungen, bei denen Daten auf eine kleinere Wortbreite reduziert werden müssen. Aufgrund der möglichen Datenverluste bei großen Eingangswerten sollte seine Verwendung jedoch sorgfältig geplant werden.