WORD至STRING
函数WORD_TO_STRING将数据类型WORD的值转换为数据类型STRING的值。
以右对齐十进制表示法生成结果字符串,填充前导空格直到预定义的最大字符数。
输入
输出
当通过FP-e或FP0等小型PLC使用数据类型STRING时,确保结果字符串的长度等于或大于源字符串的长度。
输入 |
输出定义为 |
结果 |
---|---|---|
16#ABCD |
STRING[1] |
'D' |
STRING[2] |
'CD' |
|
STRING[3] |
'BCD' |
|
STRING[4] |
'ABCD' |
|
STRING[5] |
'0ABCD' |
|
STRING[6] |
'00ABCD' |
|
等等 |
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
input_value: WORD:=0;
result_string: STRING;
数据类型WORD的输入变量input_value被值16#ABCD初始化。result_string的输出变量为数据类型STRING[6]。其最多可以存储6个字符。可以将常量直接写入本体中函数的输入触点,代替使用变量input_value。
数据类型WORD的input_value转换为STRING[6]。转换值被写入result_string。当变量input_value = 16#ABCD时,result_string显示'00ABCD'。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 2 ;
NETWORK_BODY
B(B_F,WORD_TO_STRING!,Instance,11,0,21,2,,?D?C);
B(B_VARIN,,input_value,9,0,11,2,);
B(B_VAROUT,,result_string,21,0,23,2,);
L(1,0,1,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result_string:=WORD_TO_STRING(input_value);
此例说明如何从数据类型WORD创建STRING[4],其中删除了字符串'16#'的前导部分。
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
input_value: WORD:=16#1234;
(*example value*)
result_string1: STRING[7]:='';
(*result: here '0001234'*)
result_string: STRING[4]:='';
(*result: here '1234'*)
END_VAR
在此例中,数据类型WORD的输入变量input_value和数据类型STRING[4]的输出变量result_string均被声明。
当执行有问题的操作时,标准函数RIGHT被添附到函数WORD_TO_STRING。RIGHT创建长度为L的右对齐字符串。
在示例中,WORD_TO_STRING函数的输出字符串被添加到RIGHT函数的输入中。在RIGHT的L输入中,INT常量4确定要替换的STRING的长度。从变量input_value = 0001234中,根据数据类型转换和RIGHT函数得出result_string 1234。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 2 ;
NETWORK_BODY
B(B_F,WORD_TO_STRING!,Instance,11,0,21,2,,?D?C);
B(B_VARIN,,input_value,9,0,11,2,);
B(B_VAROUT,,result_string1,21,0,23,2,);
L(1,0,1,2);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_VARIN,,result_string1,10,2,12,4,);
B(B_VAROUT,,result_string,17,2,19,4,);
B(B_F,RIGHT!,Instance,12,1,17,5,,?DIN?DL?C);
B(B_VARIN,,4,10,3,12,5,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY