F_UINT_TO_USINT¶
Einleitung¶
Der Funktionsblock F_UINT_TO_USINT dient der Konvertierung eines vorzeichenlosen 16-Bit-Integer-Werts (UINT) in einen vorzeichenlosen 8-Bit-Integer-Wert (USINT). Der Baustein ist Teil der iec61131::conversion-Bibliothek und implementiert eine einfache Typumwandlung.
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 (UINT): Der vorzeichenlose 16-Bit-Integer-Wert, der konvertiert werden soll.
Daten-Ausgänge¶
- OUT (USINT): Der resultierende vorzeichenlose 8-Bit-Integer-Wert nach der Konvertierung.
Adapter¶
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweise¶
Bei Auslösung des REQ-Ereignisses wird der Algorithmus ausgeführt, der den IN-Wert von UINT zu USINT konvertiert und das Ergebnis an OUT ausgibt. Anschließend wird das CNF-Ereignis ausgelöst, um den erfolgreichen Abschluss der Operation zu signalisieren. Die Konvertierung erfolgt durch Abschneiden der höherwertigen Bits, falls der Eingabewert den Wertebereich von USINT überschreitet.
Technische Besonderheiten¶
- Wertebereichsbehandlung: Da USINT nur Werte von 0 bis 255 darstellen kann, werden bei Eingabewerten außerhalb dieses Bereichs die höherwertigen Bits verworfen. Dies kann zu Datenverlust führen.
- Deterministisches Verhalten: Die Konvertierung erfolgt in einem einzigen Ausführungsschritt ohne Zustandsverwaltung.
Zustandsübersicht¶
Der Funktionsblock ist zustandslos und führt die Konvertierung bei jedem REQ-Ereignis neu aus.
Anwendungsszenarien¶
- Datenreduktion: Verwendung in Systemen, wo Speicherplatz begrenzt ist und eine Reduktion der Datengröße erforderlich ist.
- Protokollanpassung: Anpassung von Datenformaten für Kommunikationsprotokolle, die nur 8-Bit-Daten unterstützen.
⚖️ Vergleich mit ähnlichen Bausteinen¶
- F_UINT_TO_SINT: Konvertiert UINT in einen vorzeichenbehafteten 8-Bit-Integer (SINT), wobei der Wertebereich anders behandelt wird.
- F_UINT_TO_INT: Behält die 16-Bit-Größe bei, konvertiert aber in einen vorzeichenbehafteten Typ.
Fazit¶
F_UINT_TO_USINT ist ein einfacher und effizienter Funktionsblock für die Konvertierung von 16-Bit- zu 8-Bit-Daten ohne Vorzeichen. Seine Verwendung ist ideal in Szenarien, wo eine platzsparende Darstellung erforderlich ist, jedoch sollte die Möglichkeit eines Datenverlusts bei großen Eingabewerten berücksichtigt werden.