Typkonvertierungsoperatoren

Bei Typkonvertierungen wird zwischen impliziten und expliziten Typkonvertierungen unterschieden.

Implizite Typkonvertierungen

Konvertierungen von einem „kleineren“ Typ auf einen „größeren“ Typ, wie beispielsweise von BYTE nach INT oder von WORD nach DINT, können explizit durchgeführt werden – sie sind aber auch implizit ohne den Aufruf eines Konvertierungsoperators möglich.

Explizite Typkonvertierungen

Sie können explizit Typkonvertierungsoperatoren aufrufen. Für getypte Konvertierungen von einem elementaren Typ in einen anderen elementaren Typ und auch für Überladungen stehen die unten beschriebenen Typkonvertierungsoperatoren zur Verfügung.

Getypte Konvertierung:

<elementary data type>_TO_<another elementary data type>

Überladene Konvertierung:

TO_<elementary data type>

Elementare Datentypen:

<elementary data type> =
__UXINT | __XINT | __XWORD | BIT | BOOL | BYTE | DATE | DINT | DT | DWORD | INT | LDATE | LDT | LINT | LREAL | LTIME | LTOD | LWORD | REAL | SINT | TIME | TOD | UDINT | UINT | ULINT | USINT | WORD

Die Schlüsselwörter TIME_OF_DAY und DATE_AND_TIME sind alternative Schreibweisen für die Datentypen TOD und DT.

TIME_OF_DAY und DATE_AND_TIME werden nicht als Typkonvertierungsbefehl abgebildet. Verwenden Sie stattdessen die Datentypen TOD und DT.

Typkonvertierungsoperatoren 1:

Undefiniertes Ergebnis bei Überschreitung des Wertebereichs

Wenn der Eingangswert eines Typkonvertierungsoperators außerhalb des Wertebereichs des Ausgangsdatentyps liegt, ist das Ergebnis der Operation nicht definiert und abhängig von der Plattform. Dies ist beispielsweise der Fall, wenn ein negativer Operandenwert von LREAL in den Zieldatentyp UINT konvertiert wird. Auch ein Ausnahmefehler ist dann möglich!

Typkonvertierungsoperatoren 2:

Informationsverlust möglich

Wenn ein größerer Datentyp in einen kleineren Datentyp konvertiert wird, können Informationen verloren gehen.

Typkonvertierungsoperatoren 3:

Stringmanipulation bei Konvertierung nach STRING oder WSTRING

Bei einer Typkonvertierung nach STRING oder WSTRING wird der getypte Wert als Zeichenfolge linksbündig abgelegt und bei Überlänge abgeschnitten. Deklarieren Sie deshalb die Rückgabevariablen für die Typkonvertierungsoperatoren <type>_TO_STRING und <type>_TO_WSTRING ausreichend lang, sodass die Zeichenfolge ohne Manipulation Platz findet.

Siehe auch: