Konvertierung STRING, WSTRING
Die Operatoren konvertieren eine Zeichenfolge (STRING oder WSTRING) in den angegebenen Zieldatentyp und geben einen typkonvertierten Wert zurück.
Nur wenn der Operand entsprechend der Norm IEC 61131-3 zum Zieldatentyp passt, ist eine Konvertierung mit sinnvollem Ergebnis möglich. Das ist der Fall, wenn der Wert des Operanden einer gültigen Konstanten (Literal) des Zieldatentyps entspricht.
Konvertierbare Strings enthalten:
Zahl mit Typpräfix (Beispiel:
'16#FFFFFFFF')Zahl mit Gruppierungszeichen (Beispiel:
'2#1111_1111')Hinweis: Das internationale Gewichtungs- und Maßgruppierungszeichen (Thinspace) wird nicht akzeptiert, nur der Unterstrich.
Gleitpunktzahl, auch in Exponentialschreibweise (Beispiel:
'9.876'oder'1.2E-34')Hinnweis: Gleitkommazahlen sind nicht konvertierbar. Das Komma wird wie ein nachstehendes Zeichen behandelt und abgeschnitten.
Zeit- Uhrzeit- und Datumsangabe mit Präfix und Größe (Beispiel:
'T#2h','DT#2019-9-9-12:30:30.9')Infinite Werte (Beispiel:
'1.7E+400')Zusätzliche Zeichen hinter einer Zahl (Beispiel:
'2m'oder'3,14')Diese werden abgeschnitten. Zusätzliche Zeichen vor einer Zahl sind nicht erlaubt.
Leerzeichen davor (Beispiel:
'3.14')
Aufrufsyntax: STRING_TO_<Zieltyp> ( <Operand> ) , WSTRING_TO_<Zieltyp> ( <Operand> )
STRING/WSTRING_TO_<Zieltyp>Operator STRING | Operator WSTRING | Beispiel | Rückgabewert | Beschreibung |
|---|---|---|---|---|
|
| |||
|
| |||
|
| |||
|
| |||
|
|
|
| |
|
| |||
|
|
|
| Syntax: |
|
| Wenn der Ausgangsdatentyp größer ist, können Informationen verloren gehen. | ||
|
|
|
| Syntax: DT#jjjj-MM-dd-hh:mm:ss |
|
| |||
|
|
|
| |
|
| Syntax: Angezeigt wird nur der Tag | ||
|
| Syntax: | ||
|
| |||
|
|
|
| |
|
|
|
| |
|
| Syntax: | ||
|
|
|
| |
|
|
|
| Bei Konvertierungen aus einem größeren Wertebereich können Informationen verloren gehen oder ein undefiniertes Resultat zurückgegeben werden. |
|
| |||
- |
|
|
| |
|
|
|
| |
|
|
|
| |
|
| |||
|
| |||
|
|
|
| |
|
| |||
|
| |||
| - |
|
|
Konvertierung in einen booleschen Wert
Operator STRING_TO_BOOL: Nur wenn der Operandenwert 'TRUE' oder 'true' ist, wird ein TRUE zurückgegeben. Dagegen wird bei 'True' ein FALSE zurückgegeben.
Operator WSTRING_TO_BOOL: Nur, wenn der Operandenwert "TRUE" oder "true" ist, wird ein TRUE zurückgegeben. Dagegen wird bei "True" ein FALSE zurückgegeben.

Deklaration
FUNCTION_BLOCK FB_ConvertStrings VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR xReturn_0: BOOL; xReturn_1: BOOL; dateReturn: DATE; dtReturn: DATE_AND_TIME; iReturn: INT; lrReturn: LREAL; lrReturn_0: LREAL; lwReturn: LWORD; lwReturn_0: LWORD; lwReturn_1: LWORD; ltReturn: LTIME; ltReturn_0: LTIME; ltReturn_1: LTIME; ltReturn_2: LTIME; rReturn: REAL; rReturn_0: REAL; timReturn: TIME; timReturn0: TIME; timReturn1: TIME; timReturn2: TIME; todReturn: TIME_OF_DAY; todReturn0: TIME_OF_DAY; todReturn1: TIME_OF_DAY; todReturn2: TIME_OF_DAY; uliReturn: ULINT; uliReturn_0: ULINT; uliReturn_1: ULINT; wReturn: WORD; wReturn_0: WORD; wReturn_1: WORD; wstrReturn: WSTRING; wstrReturn_0: WSTRING; dtReturn2: DATE_AND_TIME; END_VAR
Implementierung
FUNCTION_BLOCK FB_ConvertStrings
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
xReturn_0: BOOL;
xReturn_1: BOOL;
dateReturn: DATE;
dtReturn: DATE_AND_TIME;
iReturn: INT;
lrReturn: LREAL;
lrReturn_0: LREAL;
lwReturn: LWORD;
lwReturn_0: LWORD;
lwReturn_1: LWORD;
ltReturn: LTIME;
ltReturn_0: LTIME;
ltReturn_1: LTIME;
ltReturn_2: LTIME;
rReturn: REAL;
rReturn_0: REAL;
timReturn: TIME;
timReturn0: TIME;
timReturn1: TIME;
timReturn2: TIME;
todReturn: TIME_OF_DAY;
todReturn0: TIME_OF_DAY;
todReturn1: TIME_OF_DAY;
todReturn2: TIME_OF_DAY;
uliReturn: ULINT;
uliReturn_0: ULINT;
uliReturn_1: ULINT;
wReturn: WORD;
wReturn_0: WORD;
wReturn_1: WORD;
wstrReturn: WSTRING;
wstrReturn_0: WSTRING;
END_VAR
xReturn_0 := STRING_TO_BOOL('FALSE');
xReturn_1 := STRING_TO_BOOL('TRUE');
dateReturn := STRING_TO_DATE('DATE#2019-9-9');
dtReturn := STRING_TO_DT('DT#2019-9-9-1:1:1.1');
iReturn := STRING_TO_INT('123abc');
lrReturn := STRING_TO_LREAL('4.94E-323');
lrReturn_0 := STRING_TO_LREAL('1.7E+308');
lwReturn := STRING_TO_LWORD('16#FFFF_FFFF_FFFF_FFFF');
lwReturn_0 := STRING_TO_LWORD('16#0123456789ABCDEF');
lwReturn_1 := STRING_TO_LWORD('16#0123456789ABCDEF');
ltReturn := STRING_TO_LTIME('LTIME#213503d23h34m33s709ms551us615ns');
ltReturn_0 := STRING_TO_LTIME('LTIME#0ns');
ltReturn_1 := STRING_TO_LTIME('LTIME#1ms');
ltReturn_2 := STRING_TO_LTIME('LTIME#2s');
rReturn := STRING_TO_REAL('6.543e21');
rReturn_0 := STRING_TO_REAL('1.234');
timReturn := STRING_TO_TIME('T#5d4h3m2s');
timReturn0 := STRING_TO_TIME('TIME#1s');
timReturn1 := STRING_TO_TIME('1s');
timReturn2 := STRING_TO_TIME('TIME#5s');
todReturn := STRING_TO_TOD('TOD#12:0:0.1');
todReturn0 := STRING_TO_TOD('TOD#0:0:0.0');
todReturn1 := STRING_TO_TOD('20:15');
todReturn2 := STRING_TO_TOD('TOD#20:15');
uliReturn := STRING_TO_ULINT('18446744073709551615');
uliReturn_0 := STRING_TO_ULINT('1');
uliReturn_1 := STRING_TO_ULINT('0');
wReturn := STRING_TO_WORD('16#FFFF_0000');
wReturn_0 := STRING_TO_WORD('34abc');
wReturn_1 := STRING_TO_WORD('16#34abc');
wstrReturn := STRING_TO_WSTRING('Hello World!');
wstrReturn_0 := STRING_TO_WSTRING('123456789');Deklaration
FUNCTION_BLOCK FB_ConvertWstrings VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR xReturn_0: BOOL; xReturn_1: BOOL; dateReturn: DATE; dtReturn: DATE_AND_TIME; iReturn: INT; lrReturn: LREAL; lrReturn_0: LREAL; lwReturn: LWORD; lwReturn_0: LWORD; lwReturn_1: LWORD; ltReturn: LTIME; ltReturn_0: LTIME; ltReturn_1: LTIME; ltReturn_2: LTIME; rReturn: REAL; rReturn_0: REAL; timReturn: TIME; timReturn0: TIME; timReturn1: TIME; timReturn2: TIME; todReturn: TIME_OF_DAY; todReturn0: TIME_OF_DAY; todReturn1: TIME_OF_DAY; todReturn2: TIME_OF_DAY; uliReturn: ULINT; uliReturn_0: ULINT; uliReturn_1: ULINT; wReturn: WORD; wReturn_0: WORD; wReturn_1: WORD; wstrReturn: WSTRING; wstrReturn_0: WSTRING; END_VAR
Implementierung in ST
FUNCTION_BLOCK FB_ConvertWstrings
VAR
xReturn_0: BOOL;
xReturn_1: BOOL;
dateReturn: DATE;
dtReturn: DATE_AND_TIME;
iReturn: INT;
lrReturn: LREAL;
lrReturn_0: LREAL;
lwReturn: LWORD;
lwReturn_0: LWORD;
lwReturn_1: LWORD;
ltReturn: LTIME;
ltReturn_0: LTIME;
ltReturn_1: LTIME;
ltReturn_2: LTIME;
rReturn: REAL;
rReturn_0: REAL;
timReturn: TIME;
timReturn0: TIME;
timReturn1: TIME;
timReturn2: TIME;
todReturn: TIME_OF_DAY;
todReturn0: TIME_OF_DAY;
todReturn1: TIME_OF_DAY;
todReturn2: TIME_OF_DAY;
uliReturn: ULINT;
uliReturn_0: ULINT;
uliReturn_1: ULINT;
wReturn: WORD;
wReturn_0: WORD;
wReturn_1: WORD;
wstrReturn: WSTRING;
wstrReturn_0: WSTRING;
END_VAR
xReturn_0 := WSTRING_TO_BOOL("FALSE");
xReturn_1 := WSTRING_TO_BOOL("TRUE");
dateReturn := WSTRING_TO_DATE("DATE#2019-9-9");
dtReturn := WSTRING_TO_DT("DT#2019-9-9-1:1:1.1");
iReturn := WSTRING_TO_INT("123abc");
lrReturn := WSTRING_TO_LREAL("4.94E-323");
lrReturn_0 := WSTRING_TO_LREAL("1.7E+308");
lwReturn := WSTRING_TO_LWORD("16#FFFF_FFFF_FFFF_FFFF");
lwReturn_0 := WSTRING_TO_LWORD("16#0123456789ABCDEF");
lwReturn_1 := WSTRING_TO_LWORD("16#0123456789ABCDEF");
ltReturn := WSTRING_TO_LTIME("LTIME#213503d23h34m33s709ms551us615ns");
ltReturn_0 := WSTRING_TO_LTIME("LTIME#0ns");
ltReturn_1 := WSTRING_TO_LTIME("LTIME#1ms");
ltReturn_2 := WSTRING_TO_LTIME("LTIME#2s");
rReturn := WSTRING_TO_REAL("6.543e21");
rReturn_0 := WSTRING_TO_REAL("1.234");
timReturn := WSTRING_TO_TIME("T#5d4h3m2s");
timReturn0 := WSTRING_TO_TIME("TIME#1s");
timReturn1 := WSTRING_TO_TIME("1s");
timReturn2 := WSTRING_TO_TIME("TIME#5s");
todReturn := WSTRING_TO_TOD("TOD#12:0:0.1");
todReturn0 := WSTRING_TO_TOD("TOD#0:0:0.0");
todReturn1 := WSTRING_TO_TOD("20:15");
todReturn2 := WSTRING_TO_TOD("TOD#20:15");
uliReturn := WSTRING_TO_ULINT("18446744073709551615");
uliReturn_0 := WSTRING_TO_ULINT("1");
uliReturn_1 := WSTRING_TO_ULINT("0");
wReturn := WSTRING_TO_WORD("16#FFFF_0000");
wReturn_0 := WSTRING_TO_WORD("34abc");
wReturn_1 := WSTRING_TO_WORD("16#34abc");