- Home
- Funktionen/Funktionsbausteine - Referenz
- IEC 61131-3 Funktionen und Funktionsbausteine
- Funktionen zur Typumwandlung (Konvertierung)
- TO_ULINT
TO_ULINT
Typ | Funktion | ||||||||||||||||||||||||||||||||||
Beschreibung | Die überladene Funktion TO_ULINT konvertiert den am Eingang anliegenden Wert in einen Ausgangswert des Datentyps ULINT (siehe Beschreibung des Eingangs für die unterstützten Datentypen). | ||||||||||||||||||||||||||||||||||
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. Nicht verwendete Bits im Ausgangsdatentyp werden auf 0 gesetzt. ![]() 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. ![]() 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_ULINT trifft dies auf Eingangswerte vom Datentyp UDINT, 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_ULINT(16#7F); (* liefert 127 *) out := TO_ULINT(16#FFFFFFFF); (* liefert 4.294.967.295 *) out := TO_ULINT(SINT#-128); (* liefert 128 *) out := TO_ULINT(LINT#-9223372036854775808); (* liefert 9.223.372.036.854.775.808 *) out := TO_ULINT('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 ENO auf FALSE gesetzt.
|