- Home
- Funktionen/Funktionsbausteine - Referenz
- IEC 61131-3 Funktionen und Funktionsbausteine
- Funktionen zur Typumwandlung (Konvertierung)
- TO_DINT
TO_DINT
Typ | Funktion | |||||||||||||||||||||||||||||||||
Beschreibung | Die überladene Funktion TO_DINT konvertiert den am Eingang anliegenden Wert in einen Ausgangswert des Datentyps DINT (siehe Beschreibung des Eingangs für die unterstützten Datentypen). Die Konvertierung erfolgt vorzeichenbehaftet. | |||||||||||||||||||||||||||||||||
Parameter | Eingang
![]()
![]()
|
|||||||||||||||||||||||||||||||||
Konvertierungsregeln | ![]() Die Konvertierung erfolgt durch bitweises Kopieren des Eingangswerts in den Ausgangswert, d.h. es erfolgt eine binäre Übertragung vom Eingangsdatentyp in den Ausgangsdatentyp.
![]() Für die Datentypkonvertierung gilt folgendes:
Beispiel:
![]() Die Typkonvertierung erfolgt in zwei Schritten. Zuerst wird die Gleitkommazahl auf die nächst größere ganze Zahl gemäß den Standard-Rundungsregeln gerundet (Bsp.: 2,5 wird auf 3 aufgerundet und -2,5 auf -3). Im zweiten Schritt wird der gerundete Eingangswert in die niederwertigsten Bits des Ausgangswerts geschrieben. ![]()
Bei der Funktion TO_DINT trifft dies auf Eingangswerte vom Datentyp INT, SINT, UINT und USINT zu. |
|||||||||||||||||||||||||||||||||
Fehlerverhalten | ![]() Die folgende Tabelle zeigt die Fehler, die bei der Ausführung der Funktion auftreten können, und den von der Funktion im entsprechenden Fehlerfall zurückgegebenen Wert.
Tritt einer der aufgeführten String-Fehler auf, wird ein String-Fehler im Online-Protokoll des MELDUNGEN-Fensters ausgegeben.
Hinweis zu großen Real-Werten Beispiel: 3.6000000E+7 => 3.600000E+7 => SINT: 0 3.6000001E+7 => 3.600000E+7 => SINT: 0 3.6000002E+7 => 3.600000E+7 => SINT: 0 3.6000003E+7 => 3.600004E+7 => SINT: 4 3.6000004E+7 => 3.600004E+7 => SINT: 4 ... Die Werte 3.600001E+7, 3.600002E+7 und 3.600003E+7 können nicht als REAL-Werte dargestellt werden und werden deshalb auf den nächstmöglichen REAL-Wert gesetzt. Das führt zu Lücken. Je größer die Zahl ist, desto größer wird die Lücke, solange bis immer 0 als Ergebnis angezeigt wird. |
|||||||||||||||||||||||||||||||||
Beispiele | ![]() out := TO_DINT(INT#16#7F); (* liefert 127 *) out := TO_DINT(INT#16#FFFF); (* liefert -1 *) out := TO_DINT(LINT#16#FFFFFFFF00000000); (* liefert 0 *) out := TO_DINT(LINT#16#FFFFFFFFFFFFFFFF); (* liefert -1 *) out := TO_DINT(LINT#2147483647); (* liefert 2147483647 *) out := TO_DINT(LINT#-2147483648); (* liefert -2147483648 *) out := TO_DINT(LINT#4294967295); (* liefert -1 *) out := TO_DINT(LINT#4294967299); (* liefert 3 *) out := TO_DINT(LINT#4294967299); (* liefert 3 *) out := TO_DINT(UDINT#4294967295); (* liefert -1 *) out := TO_DINT(REAL#2.147483648E+9); (* liefert -2147483648 *) out := TO_DINT('123'); (* liefert 123 *) |
|||||||||||||||||||||||||||||||||
Zusätzliche Informationen | ![]() Die POE wird nur dann ausgeführt, wenn TRUE am Eingang EN anliegt. Wenn EN = FALSE ist, wird die POE nicht ausgeführt und ENO auf FALSE gesetzt (FU/FB inaktiv). Wenn bei der Ausführung der Funktion einer der unter "Fehlerverhalten" aufgeführten Fehler auftritt, wird die POE nicht ausgeführt, der letzte Wert am Ausgang gehalten und ENO auf FALSE gesetzt.
|