转换:STRING,WSTRING
运算符转换字符串 (STRING 或者 WSTRING) 转换为指定的目标数据类型并返回类型转换的值。
仅当操作数根据 IEC 61131-3 标准与目标数据类型匹配时,才能进行具有有意义结果的转换。如果操作数的值对应于目标数据类型的有效常量(文字),就会出现这种情况。
可转换字符串包含:
带类型前缀的数字(例如:
'16#FFFFFFFF')带有分组字符的数字(例如:
'2#1111_1111')注意:不接受国际度量衡分组字符(细空格)。只接受下划线。
浮点数,也是指数表示法(例如:
'9.876'或者'1.2E-34')注意:浮点数不可转换。逗号会像后面的字符一样被处理和截断。
带有前缀和大小的时间、时间和日期规范(例如:
'T#2h','DT#2019-9-9-12:30:30.9')无限值(例如:
'1.7E+400')附加字符 后 一个数字(例如:
'2m'或者'3.14')这些被截断。附加字符 前 不允许使用数字。
前面的空格(例如:
'3.14')
调用语法: STRING_TO_<目标类型>(<操作数>) , WSTRING_TO_<目标类型>(<操作数>)
STRING/WSTRING_TO_<target type>运算符:STRING | 运算符:WSTRING | 例子 | 返回值 | 描述 |
|---|---|---|---|---|
| | |||
| | |||
| | |||
| | |||
| |
| | |
| | |||
| |
| | 句法: |
| | 如果输出数据类型较大,则信息可能会丢失。 | ||
| |
| | 句法: |
| | |||
| |
|
| |
| | 句法: 仅显示日期。 | ||
| | 句法: | ||
| | |||
| |
| | |
| |
| | |
| | 句法: | ||
| |
|
| |
| |
|
| 从较大的值范围转换时,信息可能会丢失或返回未定义的结果。 |
| | |||
- | |
| | |
| |
| | |
| |
| | |
| | |||
| | |||
| |
|
| |
| | |||
| | |||
| - |
| |
转换为布尔值
操作员 STRING_TO_BOOL:一个值 TRUE 仅当操作数值为 'TRUE' 或者 'true'.另一方面, FALSE 被退回 'True'.
操作员 WSTRING_TO_BOOL:一个值 TRUE 仅当操作数值为 "TRUE" 或者 "true".另一方面, FALSE 被退回 "True".

宣言
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
执行
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');宣言
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
在 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");