概述
有关类型转换期间需考虑的一般说明,请参阅章节类型转换功能。
定义
IEC 操作符,用于从变量类型 STRING 到不同类型的转换。
指定值
指定匹配 IEC61131-3 标准的 STRING 操作数类型。该值必须与目标类型的有效 常量(文字) 向对应。
可转换的字符串可以包含:
-
包含类型前缀的数值(如: '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'
)
操作数必须代表目标数据类型的有效值。
注: 如果操作数的数据类型不匹配目标类型,或者如果值超出目标数据类型的范围,则结果将取决于处理器类型,并因此而不会被加以定义。
从较大类型转换为较小类型可能会导致丢失信息。
小心
|
|
数据丢失
在转换不匹配的数据类型或被转换值大于目标数据类型时,确保这些结果已经在您的应用程序中经过验证。
不遵循上述说明可能导致人身伤害或设备损坏。
|
IL 中的示例
示例
|
转换结果
|
LD 'TRUE'
STRING_TO_BOOL
ST b
|
TRUE
|
ST 中的示例
示例
|
转换结果
|
b := STRING_TO_BOOL('TRUE');
|
TRUE
|
w := STRING_TO_WORD('abc34');
|
0
|
w := STRING_TO_WORD('34abc');
|
34
|
t := STRING_TO_TIME('T#127ms');
|
T#127ms
|
r := STRING_TO_REAL('1.234');
|
1.234
|
bv := STRING_TO_BYTE('500');
|
244
|