



HINWEIS

Wenn bei einem Typkonvertierungsoperator der Operandenwert außerhalb des Wertebereichs
des Zieldatentyps liegt, ist die Ergebnisausgabe vom Prozessortyp abhängig und damit
undefiniert. Dies ist beispielsweise der Fall, wenn ein negativer Operandenwert
von LREAL
in den Zieldatentyp UINT
konvertiert wird.
Bei der Typkonvertierung von größeren auf kleinere Typen können Informationen verloren gehen.




HINWEIS

Die Rundungslogik für Grenzfälle ist vom Zielsystem beziehungsweise von der FPU (Floating
Point Unit) des Zielsystems abhängig. Ein Wert wie beispielsweise -1.5
kann auf verschiedenen Steuerungen unterschiedlich konvertiert werden.
Fangen Sie Überschreitungen von Wertebereichen über die Applikation ab, um vom Zielsystem unabhängigen Code zu programmieren.
Die IEC61131-3 kennt keine überladenen Funktionen.
Wenn Sie strikt nach IEC61131-3 programmieren möchten, verwenden Sie bitte die in
den folgenden Abschnitten beschriebenen Operatoren des Schemas <type> _TO_ <another type>
.
Die Regeln für die getypten Konvertierungen gelten auch hier bei der Überladung.
Die Operatoren konvertieren Werte in andere Datentypen, wobei explizit nur ein Zieldatentyp und kein Anfangsdatentyp (Datentyp des Operanden) angegeben wird ("überladene Konvertierung"). Überladungen sind nicht Teil der IEC 61131-3.
Aufrufsyntax
<variable name> := <TO operator> ( <operand> ); <operand> = <variable name> | <literal>
Operatoren
TO___UXINT TO___XINT TO___XWORD TO_BIT TO_BYTE TO_BOOL TO_DATE TO_DINT TO_DT TO_DWORD TO_INT TO_LDATE TO_LDT TO_LINT TO_LREAL TO_LTIME TO_LTOD TO_LWORD TO_REAL TO_SINT TO_STRING TO_TIME TO_TOD TO_UDINT TO_UINT TO_ULINT TO_USINT TO_WORD TO_WSTRING
Beispiele
Implementierungssprache ST:
VAR iNumber_1 : INT; rNumber_2 : REAL := 123.456; iNumber_2 : INT; xIsTrue : BOOL; sOutputText : STRING; sText : STRING := 'Hello World!'; wsText: WSTRING; dateEvent : DATE := D#2019-9-3; uiEvent : UINT; uxiData : __UXINT; END_VAR iNumber_1 := TO_INT(4.22); (* Result: 4 *) iNumber_2 := TO_INT(rNumber_2); (* Result: 123 *) xIsTrue := TO_BOOL(1); (* Result: TRUE *) sOutputText := TO_STRING(342); (* Result: '342' *) wsText := TO_WSTRING(sText); (* Result: "Hello World!" *) uiEvent := TO_UINT(dateEvent); (* Result: 44288 *) uxiData := TO___UXINT(iNumber_2); (* Result: 123 *)