F_DINT_TO_USINT
Einleitung
Der Funktionsblock F_DINT_TO_USINT dient der Konvertierung eines 32-Bit Ganzzahlwerts (DINT) in einen 8-Bit vorzeichenlosen Ganzzahlwert (USINT). Diese Konvertierung ist nützlich, wenn Daten zwischen Systemen oder Komponenten ausgetauscht werden müssen, die unterschiedliche Datentypen verwenden.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die Konvertierung. Dieser Ereigniseingang ist mit dem Daten-Eingang
INverknüpft.
Ereignis-Ausgänge
CNF: Signalisiert den Abschluss der Konvertierung. Dieser Ereignisausgang ist mit dem Daten-Ausgang
OUTverknüpft.
Daten-Eingänge
IN: Der Eingangswert vom Typ
DINT(32-Bit Ganzzahl), der konvertiert werden soll.
Daten-Ausgänge
OUT: Der Ausgangswert vom Typ
USINT(8-Bit vorzeichenlose Ganzzahl), der das Ergebnis der Konvertierung enthält.
Adapter
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweise
Bei Auslösung des Ereigniseingangs REQ wird der Algorithmus ausgeführt, der den Wert am Eingang IN vom Typ DINT in einen Wert vom Typ USINT konvertiert und das Ergebnis am Ausgang OUT ausgibt. Anschließend wird der Ereignisausgang CNF aktiviert, um den erfolgreichen Abschluss der Konvertierung zu signalisieren.
Technische Besonderheiten
Die Konvertierung erfolgt durch die eingebaute Funktion
DINT_TO_USINT.Es ist zu beachten, dass bei der Konvertierung von
DINTzuUSINTein möglicher Datenverlust auftreten kann, da der Wertebereich vonUSINT(0 bis 255) kleiner ist als der vonDINT(-2.147.483.648 bis 2.147.483.647).
Zustandsübersicht
Idle-Zustand: Der Funktionsblock wartet auf das Ereignis
REQ.Aktiver Zustand: Bei Empfang von
REQwird die Konvertierung durchgeführt undCNFausgelöst.Abschlusszustand: Nach der Konvertierung kehrt der Funktionsblock in den Idle-Zustand zurück.
Anwendungsszenarien
Datenkonvertierung in Steuerungssystemen, wenn unterschiedliche Datentypen verwendet werden.
Reduzierung der Speicherbelegung, wenn nur kleine vorzeichenlose Werte benötigt werden.
Schnittstellenanpassung zwischen verschiedenen Systemkomponenten.
⚖️ Vergleich mit ähnlichen Bausteinen
F_INT_TO_USINT: Konvertiert einen 16-Bit Ganzzahlwert (INT) in einen 8-Bit vorzeichenlosen Ganzzahlwert (USINT). Im Vergleich dazu verarbeitet
F_DINT_TO_USINTgrößere Eingangswerte.F_LINT_TO_USINT: Konvertiert einen 64-Bit Ganzzahlwert (LINT) in einen 8-Bit vorzeichenlosen Ganzzahlwert (USINT).
F_DINT_TO_USINTist für kleinere Eingangsbereiche ausgelegt.
Fazit
Der Funktionsblock F_DINT_TO_USINT bietet eine einfache und effiziente Möglichkeit, 32-Bit Ganzzahlen in 8-Bit vorzeichenlose Ganzzahlen zu konvertieren. Er ist besonders nützlich in Szenarien, wo Speicherplatz optimiert oder Daten zwischen Systemen mit unterschiedlichen Datentypen ausgetauscht werden müssen. Aufgrund des möglichen Datenverlusts sollte jedoch sichergestellt werden, dass die Eingangswerte innerhalb des zulässigen Bereichs von USINT liegen.