F_ULINT_TO_DINT
Einleitung
Der Funktionsblock F_ULINT_TO_DINT dient der Konvertierung eines ULINT-Wertes (64-Bit unsignierte Ganzzahl) in einen DINT-Wert (32-Bit signierte Ganzzahl). Diese Konvertierung ist besonders in Szenarien relevant, in denen Daten zwischen Systemen mit unterschiedlichen Datentypen ausgetauscht werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die Konvertierung. Der Eingang ist mit dem Daten-Eingang
INverbunden.
Ereignis-Ausgänge
CNF: Signalisiert den Abschluss der Konvertierung. Der Ausgang ist mit dem Daten-Ausgang
OUTverbunden.
Daten-Eingänge
IN (
ULINT): Der unsignierte 64-Bit Wert, der konvertiert werden soll.
Daten-Ausgänge
OUT (
DINT): Das Ergebnis der Konvertierung als signierter 32-Bit Wert.
Adapter
Es sind keine Adapter vorhanden.
Funktionsweise
Bei Aktivierung des REQ-Ereignisses wird der Algorithmus ausgeführt, der den ULINT-Wert am Eingang IN in einen DINT-Wert konvertiert und das Ergebnis am Ausgang OUT ausgibt. Anschließend wird das CNF-Ereignis ausgelöst, um den Abschluss der Konvertierung zu signalisieren.
Technische Besonderheiten
Die Konvertierung kann zu einem Datenverlust führen, wenn der ursprüngliche
ULINT-Wert außerhalb des darstellbaren Bereichs vonDINTliegt (d.h. größer als 2³¹-1 ist).Der Funktionsblock ist Teil des
iec61131::conversion-Pakets.
Zustandsübersicht
Der Funktionsblock besitzt keine internen Zustände. Die Konvertierung erfolgt unmittelbar bei Eingang des REQ-Ereignisses.
Anwendungsszenarien
Datenkonvertierung in Steuerungssystemen, die unterschiedliche Datentypen verwenden.
Integration von Systemen, die unterschiedliche Bitbreiten für Ganzzahlen verwenden.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Vergleich zu generischen Konvertierungsblöcken ist
F_ULINT_TO_DINTspezialisiert auf die Konvertierung vonULINTzuDINT.Andere Konvertierungsblöcke könnten andere Datentypen oder Konvertierungsrichtungen unterstützen.
Fazit
Der F_ULINT_TO_DINT-Funktionsblock bietet eine einfache und effiziente Möglichkeit, unsignierte 64-Bit Werte in signierte 32-Bit Werte zu konvertieren. Seine Verwendung ist in Szenarien mit unterschiedlichen Datentypanforderungen sinnvoll, jedoch sollte auf mögliche Datenverluste bei der Konvertierung geachtet werden.