Skip to main content

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> )

Operand

Datentyp

Beschreibung

Variable oder Literal

STRING, WSTRING

STRING, WSTRING

Tabelle 14. Casting-Operatoren STRING/WSTRING_TO_<Zieltyp>

Operator STRING

Operator WSTRING

Beispiel

Rückgabewert

Beschreibung

 STRING_TO___UXINT

WSTRING_TO___UXINT

__UXINT, __XINT, __XWORD

 STRING_TO___XINT

WSTRING_TO___XINT

__UXINT, __XINT, __XWORD

 STRING_TO___XWORD

WSTRING_TO___XWORD

__UXINT, __XINT, __XWORD

 STRING_TO_BIT

WSTRING_TO_BIT

BIT

STRING_TO_BOOL

WSTRING_TO_BOOL

STRING_TO_BOOL('TRUE')

STRING_TO_BOOL('true')

WSTRING_TO_BOOL("TRUE")

WSTRING_TO_BOOL("true")

TRUE

BOOL

STRING_TO_BYTE

WSTRING_TO_BYTE

Integer

STRING_TO_DATE

WSTRING_TO_DATE

STRING_TO_DATE('DATE#2019-9-9')

WSTRING_TO_DATE("DATE#2019-9-9")

D#2019-9-9

Syntax: D#jjjj-MM-dd

Datentyp: DATE

STRING_TO_DINT

WSTRING_TO_DINT

Wenn der Ausgangsdatentyp größer ist, können Informationen verloren gehen.

Integer

STRING_TO_DT

WSTRING_TO_DT

STRING_TO_DT('DT#2019-9-9-1:1:1.1')

WSTRING_TO_DT("DT#2019-9-9-1:1:1.1")

DT#2019-9-9-1:1:1

DT#2019-9-9-1:1:1

Syntax: DT#jjjj-MM-dd-hh:mm:ss

Datentyp: DATE

STRING_TO_DWORD

WSTRING_TO_DWORD

Integer

STRING_TO_INT

WSTRING_TO_INT

STRING_TO_INT('123abc')

WSTRING_TO_INT("123abc")

123

Integer

STRING_TO_LDATE

WSTRING_TO_LDATE

Syntax: LDATE#jjjj-MM-dd

Angezeigt wird nur der Tag

Datentyp: DATE

STRING_TO_LDT

WSTRING_TO_LDT

Syntax: LDT#jjj-MM-dd-hh:mm:ss.sss

Datentyp: DATE

STRING_TO_LINT

WSTRING_TO_LINT

Integer

STRING_TO_LREAL

WSTRING_TO_LREAL

STRING_TO_LREAL('1.7E+308')

WSTRING_TO_LREAL("1.7E+308")

1.7000000000000001E+308

REAL, LREAL

STRING_TO_LTIME

WSTRING_TO_LTIME

STRING_TO_LTIME('LTIME#709ms551us615ns')

STRING_TO_LTIME('LTIME#1ms')

WSTRING_TO_LTIME("LTIME#1ms")

LTIME#709ms551us615ns

LTIME#1ms

Datentyp: TIME, LTIME

STRING_TO_LTOD

WSTRING_TO_LTOD

Syntax: LTOD#hh:mm:ss.sssssssss

Datentyp: DATE

STRING_TO_LWORD

WSTRING_TO_LWORD

STRING_TO_LWORD('16#0123456789ABCDEF')

WSTRING_TO_LWORD("16#0123456789ABCDEF")

81985529216486895

Integer

STRING_TO_REAL

WSTRING_TO_REAL

STRING_TO_REAL('1.234')

WSTRING_TO_REAL("1.234")

1.234

Bei Konvertierungen aus einem größeren Wertebereich können Informationen verloren gehen oder ein undefiniertes Resultat zurückgegeben werden.

REAL, LREAL

STRING_TO_SINT

WSTRING_TO_SINT

Integer

-

WSTRING_TO_STRING

WSTRING_TO_STRING("Hello World!")

'Hello World!'

STRING_TO_TIME

WSTRING_TO_TIME

STRING_TO_TIME('T#5d4h3m2s')

WSTRING_TO_TIME("T#5d4h3m2s")

T#5d4h3m2s

Datentyp: TIME, LTIME

STRING_TO_TOD

WSTRING_TO_TOD

STRING_TO_TOD('TOD#20:15')

WSTRING_TO_TOD("TOD#20:15")

TOD#20:15:0

Datentyp: DATE

STRING_TO_UDINT

WSTRING_TO_UDINT

Integer

STRING_TO_UINT

WSTRING_TO_UINT

Integer

STRING_TO_ULINT

WSTRING_TO_ULINT

STRING_TO_ULINT('615')

WSTRING_TO_ULINT("615")

615

Integer

STRING_TO_USINT

WSTRING_TO_USINT

Integer

STRING_TO_WORD

WSTRING_TO_WORD

Integer

STRING_TO_WSTRING

-

STRING_TO_WSTRING('Hello World!')

"Hello World!"

WSTRING



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.

_cds_img_fbd_convert_string_to_bool.png
Beispiel 171. FB_ConvertStrings

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');


Beispiel 172. FB_ConvertWstrings in ST

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");


Beispiel 173. Implementierungssprache FUP
_cds_img_fbd_convert_string.png