



注意

如果类型转换运算符的操作数值超出了目标数据类型的值范围,那么结果输出将取决于处理器类型,因此是未定义的。例如,当操作数负值从LREAL
转换为目标数据类型UINT
时,就会出现这种情况。
从较大的数据类型转换为较小的数据类型时,可能会丢失信息。
运算符将字符串 (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'
)
调用语法
<variable name> := <string to operator> ( <operand> ); <operand> = <variable name> | <literal>
操作符
STRING_TO___UXINT STRING_TO___XINT STRING_TO___XWORD STRING_TO_BIT STRING_TO_BOOL STRING_TO_BYTE STRING_TO_DATE STRING_TO_DINT STRING_TO_DT STRING_TO_DWORD STRING_TO_INT STRING_TO_LDATE STRING_TO_LDT STRING_TO_LINT STRING_TO_LREAL STRING_TO_LTIME STRING_TO_LWORD STRING_TO_LTIME STRING_TO_LTOD STRING_TO_REAL STRING_TO_SINT STRING_TO_TIME STRING_TO_TOD STRING_TO_UDINT STRING_TO_UINT STRING_TO_ULINT STRING_TO_USINT STRING_TO_WORD STRING_TO_WSTRING WSTRING_TO___UXINT WSTRING_TO___XINT WSTRING_TO___XWORD WSTRING_TO_BIT WSTRING_TO_BOOL WSTRING_TO_BYTE WSTRING_TO_DATE WSTRING_TO_DINT WSTRING_TO_DT WSTRING_TO_DWORD WSTRING_TO_INT WSTRING_TO_LDATE WSTRING_TO_LDT WSTRING_TO_LINT WSTRING_TO_LREAL WSTRING_TO_LTIME WSTRING_TO_LTOD WSTRING_TO_LWORD WSTRING_TO_LTIME WSTRING_TO_REAL WSTRING_TO_SINT WSTRING_TO_STRING WSTRING_TO_TIME WSTRING_TO_TOD WSTRING_TO_UDINT WSTRING_TO_UINT WSTRING_TO_ULINT WSTRING_TO_USINT WSTRING_TO_STRING WSTRING_TO_WORD
转换为布尔值
操作符STRING_TO_BOOL
:只有当操作数值为'TRUE'
或 'true'
时,才会返回TRUE
的值。另一方面,FALSE
返回'True'
。
操作符WSTRING_TO_BOOL
:只有当操作数值为"TRUE"
或 "true"
时,才会返回TRUE
的值。另一方面,FALSE
返回"True"
。

示例
ST 实施语言
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; uliReurn: ULINT; uliReurn_0: ULINT; uliReurn_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'); uliReurn := STRING_TO_ULINT('18446744073709551615'); uliReurn_0 := STRING_TO_ULINT('1'); uliReurn_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');

WSTRING
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; uliReurn: ULINT; uliReurn_0: ULINT; uliReurn_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"); uliReurn := WSTRING_TO_ULINT("18446744073709551615"); uliReurn_0 := WSTRING_TO_ULINT("1"); uliReurn_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");

FBD 执行语言
