Zeitkonvertierung

Zeitkonvertierung 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!

Zeitkonvertierung 2:

Informationsverlust möglich

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

Zeitkonvertierung 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.

TIME_TO_<type>

Die Operatoren dienen der Konvertierung vom Datentyp TIME oder LTIME in einen anderen Datentyp.

Als Operand können Sie eine Variable oder ein Literal angeben.

Syntax:

TIME_TO_<Datentyp> (<Variablenname> | <Literal>)
LTIME_TO_<Datentyp> (<Variablenname> | <Literal>)

TIME/LTIME nach BOOL konvertieren

Operatoren:

TIME_TO_BOOL (<Variablenname> | <Literal>)
LTIME_TO_BOOL (<Variablenname> | <Literal>)

Genau dann, wenn der Operandenwert als „0“ interpretiert werden kann, wird vom Operator ein FALSE zurückgegeben.

Beispiele:

ST-Code

Ergebnis

TIME_TO_BOOL(T#0MS);

FALSE

TIME_TO_BOOL(T#0NS);

FALSE

TIME_TO_BOOL(T#1MS);

TRUE

TIME_TO_BOOL(T#1NS);

TRUE

TIME/LTIME nach STRING/WSTRING konvertieren

Operatoren:

TIME_TO_STRING (<Variablenname> | <Literal>)
LTIME_TO_STRING (<Variablenname> | <Literal>)
TIME_TO_WSTRING (<Variablenname> | <Literal>)
LTIME_TO_WSTRING (<Variablenname> | <Literal>)

Beispiele:

ST-Code

Ergebnis

TIME_TO_STRING(T#0MS);

'T#0MS'

LTIME_TO_WSTRING(T#0US);

"T#0US"