F_LWORD_TO_INT¶
Einleitung¶
Der Funktionsblock F_LWORD_TO_INT dient der Konvertierung eines LWORD-Wertes (64-Bit unsigned integer) in einen INT-Wert (16-Bit signed integer). Diese Konvertierung ist nützlich, wenn Daten zwischen Systemen mit unterschiedlichen Wortbreiten ausgetauscht oder verarbeitet 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: Der Eingangswert vom Typ
LWORD(64-Bit unsigned integer), der konvertiert werden soll.
Daten-Ausgänge¶
- OUT: Der Ausgangswert vom Typ
INT(16-Bit signed integer), der das Ergebnis der Konvertierung enthält.
Adapter¶
- Keine Adapter vorhanden.
Funktionsweise¶
Der Funktionsblock führt die Konvertierung durch, indem der LWORD-Wert am Eingang IN in einen INT-Wert umgewandelt und am Ausgang OUT ausgegeben wird. Die Konvertierung erfolgt bei einem Ereignis am Eingang REQ und wird durch ein Ereignis am Ausgang CNF bestätigt.
Technische Besonderheiten¶
- Die Konvertierung von einem 64-Bit-Wert in einen 16-Bit-Wert kann zu einem Datenverlust führen, wenn der ursprüngliche Wert außerhalb des darstellbaren Bereichs von
INTliegt. - Der Funktionsblock ist als einfacher Funktionsblock (
SimpleFB) implementiert und verwendet einen ST-Algorithmus für die Konvertierung.
Zustandsübersicht¶
Der Funktionsblock hat keine internen Zustände. Die Konvertierung erfolgt unmittelbar bei einem Ereignis am Eingang REQ.
Anwendungsszenarien¶
- Konvertierung von 64-Bit-Datenwerten für Systeme, die nur 16-Bit-Daten verarbeiten können.
- Datenreduktion, wenn nur der untere 16-Bit-Teil eines 64-Bit-Werts relevant ist.
⚖️ Vergleich mit ähnlichen Bausteinen¶
F_DWORD_TO_INT: Konvertiert einen 32-Bit-Wert in einen 16-Bit-Wert.F_LWORD_TO_DINT: Konvertiert einen 64-Bit-Wert in einen 32-Bit-Wert.F_LWORD_TO_SINT: Konvertiert einen 64-Bit-Wert in einen 8-Bit-Wert.
Fazit¶
Der Funktionsblock F_LWORD_TO_INT bietet eine einfache und effiziente Möglichkeit, 64-Bit-Datenwerte in 16-Bit-Datenwerte zu konvertieren. Bei der Verwendung ist jedoch auf den möglichen Datenverlust zu achten, wenn der ursprüngliche Wert außerhalb des darstellbaren Bereichs von INT liegt.