- Home
- Funktionen/Funktionsbausteine - Referenz
- IEC 61131-3 Funktionen und Funktionsbausteine
- Funktionen zur Typumwandlung (Konvertierung)
- TO_SINT
TO_SINT
Typ | Funktion | |||||||||||||||||||||||||||||||||
Beschreibung | Die überladene Funktion TO_SINT konvertiert den am Eingang anliegenden Wert in einen Ausgangswert vom Datentyp SINT (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. ![]()
|
|||||||||||||||||||||||||||||||||
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_SINT(16#7F); (* liefert 127 *) out := TO_SINT(16#FFFF); (* liefert -1 *) out := TO_SINT(16#AFFFFFF0); (* liefert -16 *) out := TO_SINT(INT#127); (* liefert 127 *) out := TO_SINT(DINT#128); (* liefert -128 *) out := TO_SINT(DINT#129); (* liefert -127 *) out := TO_SINT(UINT#255); (* liefert -1 *) out := TO_SINT(REAL#1.28E+002); (* liefert -128 *) out := TO_SINT('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.
|