F_UDINT_TO_LINT¶
Einleitung¶
Der Funktionsblock F_UDINT_TO_LINT dient der Konvertierung eines 32-Bit vorzeichenlosen Integer-Werts (UDINT) in einen 64-Bit vorzeichenbehafteten Integer-Wert (LINT). Dieser Baustein ist Teil des iec61131::conversion-Pakets und ermöglicht eine einfache und effiziente Typumwandlung zwischen diesen beiden Datentypen.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
- REQ: Startet die Ausführung der Konvertierung. Der Eingang ist mit dem Daten-Eingang
INverknüpft.
Ereignis-Ausgänge¶
- CNF: Signalisiert den Abschluss der Konvertierung. Der Ausgang ist mit dem Daten-Ausgang
OUTverknüpft.
Daten-Eingänge¶
- IN (UDINT): Der 32-Bit vorzeichenlose Integer-Wert, der konvertiert werden soll.
Daten-Ausgänge¶
- OUT (LINT): Der resultierende 64-Bit vorzeichenbehaftete Integer-Wert nach der Konvertierung.
Adapter¶
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweise¶
Bei Auslösung des Ereigniseingangs REQ wird der Wert des Daten-Eingangs IN (UDINT) in den Daten-Ausgang OUT (LINT) kopiert. Die Konvertierung erfolgt direkt, da LINT einen größeren Wertebereich als UDINT abdeckt und somit alle möglichen UDINT-Werte ohne Datenverlust darstellen kann. Nach Abschluss der Konvertierung wird das Ereignis CNF ausgelöst.
Technische Besonderheiten¶
- Algorithmus: Der Funktionsblock verwendet einen einfachen ST-Algorithmus, der den Eingabewert direkt dem Ausgabewert zuweist.
- Datenverlust: Da LINT einen größeren Wertebereich als UDINT hat, gibt es bei dieser Konvertierung keinen Datenverlust.
- Performance: Die Konvertierung ist sehr effizient und erfolgt in konstanter Zeit.
Zustandsübersicht¶
Der Funktionsblock hat keine internen Zustände. Die Konvertierung erfolgt unmittelbar bei Auslösung des REQ-Ereignisses.
Anwendungsszenarien¶
- Typumwandlung: In Szenarien, wo ein vorzeichenloser 32-Bit-Wert in einen vorzeichenbehafteten 64-Bit-Wert umgewandelt werden muss, z.B. bei der Verarbeitung von Sensordaten oder in mathematischen Berechnungen.
- Datenkompatibilität: Bei der Integration von Systemen, die unterschiedliche Integer-Typen verwenden.
⚖️ Vergleich mit ähnlichen Bausteinen¶
- F_UDINT_TO_DINT: Konvertiert UDINT zu DINT (32-Bit vorzeichenbehaftet), kann jedoch zu Überlauf führen, da DINT einen kleineren Wertebereich hat.
- F_UDINT_TO_ULINT: Konvertiert UDINT zu ULINT (64-Bit vorzeichenlos), behält jedoch den vorzeichenlosen Charakter bei.
🛠️ Zugehörige Übungen¶
Fazit¶
Der F_UDINT_TO_LINT-Funktionsblock bietet eine einfache und effiziente Möglichkeit, vorzeichenlose 32-Bit-Integer-Werte in vorzeichenbehaftete 64-Bit-Integer-Werte umzuwandeln. Durch seine direkte und verlustfreie Konvertierung eignet er sich ideal für Anwendungen, die eine Erweiterung des Wertebereichs erfordern.