DOUBLE WORD至STRING
函数DWORD_TO_STRING将数据类型DWORD的值转换为数据类型STRING的值。
以右对齐十进制表示法生成结果字符串,填充前导空格直到预定义的最大字符数。输入
输出
当通过FP-e或FP0等小型PLC使用数据类型STRING时,确保结果字符串的长度等于或大于源字符串的长度。
输入 |
输出定义为 |
结果 |
---|---|---|
16#ABCDEFFE |
STRING[2] |
'FE' |
STRING[4] |
'EFFE' |
|
STRING[6] |
'CDEFFE' |
|
STRING[8] |
'ABCDEFFE' |
|
STRING[10] |
'00ABCDEFFE' |
|
STRING[12] |
'0000ABCDEFFE' |
|
等等 |
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
DWORD_value: DWORD:=0;
(*example value: 16#ABCDEFFE*)
result_string: STRING[10]:='';
(*result: '00ABCDEFFE'*)
@'': @'';
END_VAR
数据类型DWORD的输入变量DWORD_value被值16#ABCDEFFE初始化。result_string的输出变量为数据类型STRING[10]。其最多可以存储10个字符。可以将常量直接写入本体中函数的输入触点,代替使用变量DWORD_value。
数据类型DWORD的DWORD_value转换为STRING[10]。转换值被写入result_string。当变量DWORD_value = 16#ABCDEFFE时,result_string显示'00ABCDEFFE'。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,DWORD_TO_STRING!,Instance,9,1,20,3,,?D?C);
B(B_VARIN,,DWORD_value,7,1,9,3,);
B(B_VAROUT,,result_string,20,1,22,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。
此例说明如何从数据类型DWORD创建STRING[10],其中字符串'16#'的前导部分由字符串'0x'替换。
VAR
input_value: DWORD:=16#12345678;
result_string: STRING[10]:='';
@'': @'';
END_VAR
在此例中,数据类型DWORD的输入变量input_value和数据类型STRING[10]的输出变量result_string被声明。
当执行有问题的操作时,标准函数REPLACE被添附到函数DWORD_TO_STRING。REPLACE替换字符串的一个部分为其他部分。
在示例中,DWORD_TO_STRING函数的输出字符串被添加到REPLACE函数的输入IN1。在输入IN2中,添加STRING常量'0x'作为替换STRING。在REPLACE的L输入中,INT常量3确定要替换的STRING的长度。P输入确定替换开始的位置。在此例中为INT编号1。从变量input_value = 16#12345678中,在经过数据类型转换和REPLACE函数之后得出result_string = '0x12345678'。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,DWORD_TO_STRING!,Instance,8,1,19,3,,?D?C);
B(B_VARIN,,input_value,6,1,8,3,);
B(B_VAROUT,,result_string,26,1,28,3,);
B(B_F,REPLACE!,Instance,20,0,26,6,,?DIN1?DIN2?DL?DP?C);
B(B_VARIN,,'0x',18,2,20,4,);
B(B_VARIN,,3,18,3,20,5,);
B(B_VARIN,,2,18,4,20,6,);
L(19,2,20,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY