- Home
- Funktionen/Funktionsbausteine - Referenz
- IEC 61131-3 Funktionen und Funktionsbausteine
- Funktionen zur Typumwandlung (Konvertierung)
- TO_INT
TO_INT
| Typ | Funktion | |||||||||||||||||||||||||||||||||
| Beschreibung | Die überladene Funktion TO_INT konvertiert den am Eingang anliegenden Wert in einen Ausgangswert vom Datentyp INT (siehe Beschreibung des Eingangs für die unterstützten Datentypen). Die Konvertierung erfolgt vorzeichenbehaftet. | |||||||||||||||||||||||||||||||||
| Parameter | Eingang  IN 
 
  OUT 
 
 | |||||||||||||||||||||||||||||||||
| Konvertierungsregeln |  ANY_BIT-Konvertierung Die Konvertierung erfolgt durch bitweises Kopieren des Eingangswerts in den Ausgangswert, d.h. es erfolgt eine binäre Übertragung vom Eingangsdatentyp in den Ausgangsdatentyp. 
  ANY_INT-Konvertierung Für die Datentypkonvertierung gilt folgendes: 
 Beispiel: 
  ANY_REAL-Konvertierung 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.  ANY_STRING-Konvertierung 
 
 Bei der Funktion TO_INT trifft dies auf Eingangswerte vom Datentyp SINT und USINT zu. | |||||||||||||||||||||||||||||||||
| Fehlerverhalten |  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 |  Beispiele in ST out := TO_INT(16#AFFFFFF0); (* liefert -16 *) out := TO_INT(16#FFFF0000); (* liefert 0 *) out := TO_INT(DINT#32767); (* liefert 32767 *) out := TO_INT(DINT#32768); (* liefert -32768 *) out := TO_INT(DINT#65535); (* liefert -1 *) out := TO_INT(DINT#65539); (* liefert 3 *) out := TO_INT(UINT#65535); (* liefert -1 *) out := TO_INT(REAL#3.2768E+004); (* liefert -32768 *) out := TO_INT('123'); (* liefert 123 *) | |||||||||||||||||||||||||||||||||
| Zusätzliche Informationen |  EN/ENO-Verhalten 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. 
 
 | 
