F_DINT_TO_INT¶
Einleitung¶
Der Funktionsblock F_DINT_TO_INT dient der Konvertierung eines 32-Bit-DINT-Wertes in einen 16-Bit-INT-Wert. Diese Konvertierung ist insbesondere in Szenarien erforderlich, in denen Daten zwischen Systemen mit unterschiedlicher Wortbreite ausgetauscht werden müssen.
Schnittstellenstruktur¶
Ereignis-Eingänge¶
REQ(Normal Execution Request): Startet die Konvertierung. Der Eingang ist mit dem Daten-EingangINverknüpft.
Ereignis-Ausgänge¶
CNF(Execution Confirmation): Signalisiert den Abschluss der Konvertierung. Der Ausgang ist mit dem Daten-AusgangOUTverknüpft.
Daten-Eingänge¶
IN(DINT): Der 32-Bit-DINT-Wert, der konvertiert werden soll.
Daten-Ausgänge¶
OUT(INT): Der resultierende 16-Bit-INT-Wert nach der Konvertierung.
Adapter¶
Keine Adapter vorhanden.
Funktionsweise¶
Der Funktionsblock führt die Konvertierung von einem 32-Bit-DINT-Wert (IN) in einen 16-Bit-INT-Wert (OUT) durch, sobald das Ereignis REQ ausgelöst wird. Die Konvertierung erfolgt durch die Funktion DINT_TO_INT. Nach Abschluss der Konvertierung wird das Ereignis CNF ausgelöst.
Technische Besonderheiten¶
- Die Konvertierung kann zu einem Datenverlust führen, wenn der ursprüngliche DINT-Wert außerhalb des darstellbaren Bereichs eines INT-Wertes liegt (-32768 bis 32767).
- Der Funktionsblock ist Teil des Pakets
iec61131::conversion.
Zustandsübersicht¶
Der Funktionsblock besitzt keine internen Zustände. Die Konvertierung erfolgt unmittelbar bei Auslösung des REQ-Ereignisses.
Anwendungsszenarien¶
- Datenkonvertierung in Steuerungssystemen mit unterschiedlicher Wortbreite.
- Integration von Systemen, die unterschiedliche Datentypen verwenden.
- Reduzierung der Speicherbelegung, wenn die höhere Präzision eines DINT nicht benötigt wird.
⚖️ Vergleich mit ähnlichen Bausteinen¶
- Im Vergleich zu generischen Konvertierungsbausteinen ist
F_DINT_TO_INTspezialisiert auf die Konvertierung von DINT zu INT und bietet daher eine einfache und direkte Lösung für diesen spezifischen Anwendungsfall. - Andere Konvertierungsbausteine, wie
F_INT_TO_DINT, führen entgegengesetzte Konvertierungen durch.
Fazit¶
Der Funktionsblock F_DINT_TO_INT ist ein effizientes Werkzeug für die Konvertierung von 32-Bit-DINT-Werten in 16-Bit-INT-Werte. Seine einfache und spezialisierte Funktionsweise macht ihn ideal für Anwendungen, in denen solche Konvertierungen regelmäßig erforderlich sind. Bei der Verwendung ist jedoch auf den möglichen Datenverlust bei großen Werten zu achten.