Boolesche Konvertierung

Boolesche Konvertierung 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!

Boolesche Konvertierung 2:

Informationsverlust möglich

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

Boolesche Konvertierung 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.

<type>_TO_BOOL

Die Operatoren dienen der Konvertierung von einem anderen Datentyp in den Datentyp BOOL.

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

Syntax:

<Datentyp>_TO_BOOL (<Variablenname> | <Literal>)

Das Ergebnis ist TRUE, wenn der Operand ungleich 0 ist. Das Ergebnis ist FALSE, wenn der Operand gleich 0 ist.
Beim Datentyp STRING ist das Ergebnis TRUE, wenn der Operandenwert 'TRUE' oder 'true' ist. Andernfalls, auch im Falle von 'True', wird FALSE zurückgegeben.

Beispiele:

ST-Code

Ergebnis

bVar := BYTE_TO_BOOL(2#11010101);

TRUE

bVar := INT_TO_BOOL(0);

FALSE

bVar := TIME_TO_BOOL(T#5ms);

TRUE

bVar := STRING_TO_BOOL('TRUE');

TRUE

bVar := STRING_TO_BOOL('true');

TRUE

bVar := STRING_TO_BOOL('True');

FALSE

BOOL_TO_<type>

Die Operatoren dienen der Konvertierung vom Datentyp BOOL in einen anderen Datentyp.

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

Syntax:

BOOL_TO_<Datentyp> (<Variablenname> | <Literal>)

Bei Zahlendatentypen ist das Ergebnis 1, wenn der Operand TRUE ist, und 0, wenn der Operand FALSE ist. Beim Datentyp STRING ist das Ergebnis 'TRUE' oder 'FALSE'.

Beispiele:

ST-Code

Ergebnis

nVar := BOOL_TO_INT(TRUE);

1

sVar := BOOL_TO_STRING(TRUE);

'TRUE'

tVar := BOOL_TO_TIME(TRUE);

T#1ms

tVar := BOOL_TO_TOD(TRUE);

TOD#00:00:00.001

dVar := BOOL_TO_DATE(FALSE);

D#1970

dtVar := BOOL_TO_DT(TRUE);

DT#1970-01-01-00:00:01

FUP-Code

Ergebnis

Boolesche Konvertierung 4:

1

Boolesche Konvertierung 5:

'TRUE'

Boolesche Konvertierung 6:

T#1ms

Boolesche Konvertierung 7:

TOD#00:00:00.001

Boolesche Konvertierung 8:

D#1970-01-01

Siehe auch: