转换:整数
该运算符将整数值转换为目标类型并返回类型转换后的值。如果要转换的数字超出范围限制,则忽略数字的前几个字节。
调用语法: <整数类型>_TO_<标准类型> ( <操作数> )
操作数 | 数据类型 | 描述 |
|---|---|---|
变量,文字 | |
| | | | | | | | | | | | | | | | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - | | | | | | | | | | | | | | | |
| | - | | | | | | | | | | | | | | |
| | | - | | | | | | | | | | | | | |
| | | | - | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | - | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | - | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | - | | | | | | | | | |
| | | | | | | | - | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | - | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | - | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | - | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | - | | | | |
| | | | | | | | | | | | | - | | | |
| | | | | | | | | | | | | | - | | |
| | | | | | | | | | | | | | | - | |
| | | | | | | | | | | | | | | | - |
| | | | | | | | | | | | | | | | |
转换为字符串
将值转换为字符串类型的运算符 STRING 或者 WSTRING 需要一个与目标数据类型匹配的操作数。
当较大的数据类型转换为较小的数据类型时,会截断更多的高位(前)字节。当较小的数据类型转换为较大的数据类型时,更多的高位字节用零填充。
FB_ConvertIntegersFromInt 的 ST 声明
FUNCTION_BLOCK FB_ConvertIntegersFromInt
VAR
uxiReturn: __UXINT;
xiReturn: __XINT;
xwReturn: __XWORD;
bitReturn: BIT;
xReturn: BOOL;
bReturn: BYTE;
dateReturn: DATE;
diReturn: DINT;
dtReturn: DATE_AND_TIME;
dwReturn: DWORD;
liReturn: LINT;
lrReturn: LREAL;
lwReturn: LWORD;
siReturn: SINT;
sReturn: STRING;
timReturn: TIME;
todReturn: TIME_OF_DAY;
udiReturn: UDINT;
uiReturn: UINT;
usiReturn: USINT;
wReturn: WORD;
wsReturn: WSTRING;
uliReturn: ULINT;
END_VARFB_ConvertIntegersFromInt 在 ST 中的实现
uxiReturn := INT_TO___UXINT(127); xiReturn := INT_TO___XINT(127); xwReturn := INT_TO___XWORD(127); bitReturn := INT_TO_BIT(127); xReturn := INT_TO_BOOL(127); bReturn := INT_TO_BYTE(127); dateReturn := INT_TO_DATE(127); diReturn := INT_TO_DINT(127); dtReturn := INT_TO_DT(127); dwReturn := INT_TO_DWORD(127); liReturn := INT_TO_LINT(127); lrReturn := INT_TO_LREAL(127); lwReturn := INT_TO_LWORD(127); siReturn := INT_TO_SINT(127); sReturn := INT_TO_STRING(127); timReturn := INT_TO_TIME(127); todReturn := INT_TO_TOD(127); udiReturn := INT_TO_UDINT(127); uiReturn := INT_TO_UINT(127); uliReturn := INT_TO_ULINT(127); usiReturn := INT_TO_USINT(127); wReturn := INT_TO_WORD(127); wsReturn := INT_TO_WSTRING(127);
FB_ConvertIntegersToInt 的 ST 中的声明
FUNCTION_BLOCK FB_ConvertIntegersToInt
VAR
iReturn_uxi: INT;
iReturn_xi: INT;
iReturn_xw: INT;
iReturn_bit: INT;
iReturn_bool: INT;
iReturn_b: INT;
iReturn_d: INT;
iReturn_di: INT;
iReturn_dt: INT;
iReturn_dw: INT;
iReturn_li: INT;
iReturn_lr: INT;
iReturn_lw: INT;
iReturn_r: INT;
iReturn_si: INT;
iReturn_s: INT;
iReturn_tim: INT;
iReturn_tod: INT;
iReturn_tod_0: INT;
iReturn_udi: INT;
iReturn_ui: INT;
iReturn_uli: INT;
iReturn_usi: INT;
iReturn_w: INT;
iReturn_ws: INT;
END_VAR
FB_ConvertIntegersToInt 的 ST 实现
FUNCTION_BLOCK FB_ConvertIntegersFromInt
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
uxiReturn: __UXINT;
xiReturn: __XINT;
xwReturn: __XWORD;
bitReturn: BIT;
xReturn: BOOL;
bReturn: BYTE;
dateReturn: DATE;
diReturn: DINT;
dtReturn: DATE_AND_TIME;
dwReturn: DWORD;
liReturn: LINT;
lrReturn: LREAL;
lwReturn: LWORD;
siReturn: SINT;
sReturn: STRING;
timReturn: TIME;
todReturn: TIME_OF_DAY;
udiReturn: UDINT;
uiReturn: UINT;
usiReturn: USINT;
wReturn: WORD;
wsReturn: WSTRING;
uliReturn: ULINT;
END_VAR
uxiReturn := INT_TO___UXINT(127);
xiReturn := INT_TO___XINT(127);
xwReturn := INT_TO___XWORD(127);
bitReturn := INT_TO_BIT(127);
xReturn := INT_TO_BOOL(127);
bReturn := INT_TO_BYTE(127);
dateReturn := INT_TO_DATE(127);
diReturn := INT_TO_DINT(127);
dtReturn := INT_TO_DT(127);
dwReturn := INT_TO_DWORD(127);
liReturn := INT_TO_LINT(127);
lrReturn := INT_TO_LREAL(127);
lwReturn := INT_TO_LWORD(127);
siReturn := INT_TO_SINT(127);
sReturn := INT_TO_STRING(127);
timReturn := INT_TO_TIME(127);
todReturn := INT_TO_TOD(127);
udiReturn := INT_TO_UDINT(127);
uiReturn := INT_TO_UINT(127);
uliReturn := INT_TO_ULINT(127);
usiReturn := INT_TO_USINT(127);
wReturn := INT_TO_WORD(127);
wsReturn := INT_TO_WSTRING(127);
FUNCTION_BLOCK FB_ConvertIntegersToInt
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
iReturn_uxi: INT;
iReturn_xi: INT;
iReturn_xw: INT;
iReturn_bit: INT;
iReturn_bool: INT;
iReturn_b: INT;
iReturn_d: INT;
iReturn_di: INT;
iReturn_dt: INT;
iReturn_dw: INT;
iReturn_li: INT;
iReturn_lr: INT;
iReturn_lw: INT;
iReturn_r: INT;
iReturn_si: INT;
iReturn_s: INT;
iReturn_tim: INT;
iReturn_tod: INT;
iReturn_tod_0: INT;
iReturn_udi: INT;
iReturn_ui: INT;
iReturn_uli: INT;
iReturn_usi: INT;
iReturn_w: INT;
iReturn_ws: INT;
END_VAR
iReturn_uxi := __UXINT_TO_INT(18446744073709551615);
iReturn_xi := __XINT_TO_INT(9223372036854775807);
iReturn_xw := __XWORD_TO_INT(16#FFFF_FFFF_FFFF_FFFF);
iReturn_bit := BIT_TO_INT(1);
iReturn_bool := BOOL_TO_INT(TRUE);
iReturn_b := BYTE_TO_INT(2#1111_0000);
iReturn_d := DATE_TO_INT(DATE#2019-9-13);
iReturn_di := DINT_TO_INT(2147483647);
iReturn_dt := DT_TO_INT(DT#1979-1-1-00:00:00);
iReturn_dw := DWORD_TO_INT(16#FFFF_FFFF);
// iReturn_i := INT_TO_<>(iData_12);
iReturn_li := LINT_TO_INT(9223372036854775807);
iReturn_lr := LREAL_TO_INT(1.7976931348623157E+30);
iReturn_lw := LWORD_TO_INT(16#FFFF_FFFF_FFFF_FFFF);
iReturn_r := REAL_TO_INT(3.402823E+38);
iReturn_si := SINT_TO_INT(127);
iReturn_s := STRING_TO_INT('127');
iReturn_tim := TIME_TO_INT(T#49D17H2M47S295MS);
iReturn_tod := TOD_TO_INT(TOD#23:59:59.999);
iReturn_tod_0 := TOD_TO_INT(TOD#1:1:1.001);
iReturn_udi := UDINT_TO_INT(4294967295);
iReturn_ui := UINT_TO_INT(65535);
iReturn_uli := ULINT_TO_INT(18446744073709551615);
iReturn_usi := USINT_TO_INT(255);
iReturn_w := WORD_TO_INT(16#FFFF);
iReturn_ws := WSTRING_TO_INT("1234567890");
PROGRAM PLC_PRG
VAR
fbConvertIntegersFromInt : FB_ConvertIntegersFromInt;
fbConvertIntegersToInt : FB_ConvertIntegersToInt;
END_VAR
fbConvertIntegersFromInt();
fbConvertIntegersToInt();执行

