F_DINT_TO_WORD
Einleitung
Der Funktionsblock F_DINT_TO_WORD dient der Konvertierung eines 32-Bit Ganzzahlwertes (DINT) in einen 16-Bit Wortwert (WORD). Diese Konvertierung ist besonders nützlich, wenn Daten zwischen Systemen mit unterschiedlicher Wortbreite ausgetauscht werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die Konvertierung. Wird dieser Eingang ausgelöst, wird der Wert am Daten-Eingang
INgelesen und konvertiert.
Ereignis-Ausgänge
CNF: Signalisiert die erfolgreiche Beendigung der Konvertierung. Der konvertierte Wert steht am Daten-Ausgang
OUTzur Verfügung.
Daten-Eingänge
IN: Der zu konvertierende 32-Bit Ganzzahlwert (DINT).
Daten-Ausgänge
OUT: Der konvertierte 16-Bit Wortwert (WORD).
Adapter
Dieser Funktionsblock verfügt über keine Adapter.
Funktionsweise
Bei Auslösung des Ereigniseingangs REQ wird der Algorithmus ausgeführt, der den Wert von IN von DINT in WORD konvertiert und das Ergebnis an OUT ausgibt. Anschließend wird das Ereignis CNF ausgelöst, um den Abschluss der Operation zu signalisieren.
Technische Besonderheiten
Die Konvertierung schneidet die oberen 16 Bit des DINT-Wertes ab, da ein WORD nur 16 Bit speichern kann. Es ist daher wichtig sicherzustellen, dass der ursprüngliche DINT-Wert innerhalb des darstellbaren Bereichs eines WORD liegt (0 bis 65535), um Datenverlust zu vermeiden.
Der Funktionsblock ist deterministisch und hat keine internen Zustände.
Zustandsübersicht
Da es sich um einen einfachen Funktionsblock ohne interne Zustände handelt, gibt es keine Zustandsübergänge. Der Block führt die Konvertierung bei jedem REQ-Ereignis aus und signalisiert den Abschluss mit CNF.
Anwendungsszenarien
Kommunikation zwischen Systemen, die unterschiedliche Wortbreiten verwenden.
Anpassung von Daten für Peripheriegeräte, die nur WORD-Daten verarbeiten können.
Einsatz in Steuerungssystemen, wo Speicherplatz optimiert werden muss.
⚖️ Vergleich mit ähnlichen Bausteinen
Im Vergleich zu generischen Konvertierungsblöcken wie
F_ANY_TO_ANYistF_DINT_TO_WORDspezialisiert und daher effizienter, wenn genau diese Konvertierung benötigt wird.Ähnliche Blöcke wie
F_INT_TO_WORDarbeiten mit kleineren Ganzzahltypen, währendF_DINT_TO_WORDmit dem größeren DINT-Typ umgeht.
Fazit
Der F_DINT_TO_WORD Funktionsblock ist ein spezialisiertes und effizientes Werkzeug für die Konvertierung von 32-Bit Ganzzahlen in 16-Bit Wörter. Seine Einfachheit und Determinismus machen ihn zu einer verlässlichen Komponente in Steuerungsanwendungen, insbesondere bei der Datenanpassung zwischen unterschiedlichen Systemen.