REAL至STRING
函数REAL_TO_STRING将来自数据类型REAL的值转换为数据类型STRING[15]的值,在小数点前后均有7个空格。结果字符串为右对齐,并在'-999999.0000000'至'9999999.0000000'的范围内。在正数范围内省略加号。前导零以空格填充(例如:-12.0之外是STRING '-12.0')。
输入
输出
函数需要大约160步的程序内存。若要重复使用,应将其集成到仅在内存中存储一次的用户函数中。
当通过FP-e或FP0等小型PLC使用数据类型STRING时,确保结果字符串的长度等于或大于源字符串的长度。
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
input_value: REAL:=-123.4560166;
result_string: STRING[15]:='';
END_VAR
数据类型REAL的输入变量input_value被值-123.4560166初始化。result_string的输出变量为数据类型STRING[15]。其最多可以存储15个字符。可以将常量直接写入本体中函数的输入触点,代替使用变量input_value。
数据类型REAL的input_value转换为STRING[15]。转换值被写入result_string。当变量input_value = 123.4560166时,result_string显示' -123.4560165'。
BODY
WORKSPACE</p>
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,REAL_TO_STRING!,Instance,7,1,17,3,,?D?C);
B(B_VARIN,,input_value,5,1,7,3,);
B(B_VAROUT,,result_string,17,1,19,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
此例说明如何从数据类型REAL创建小数点之前4位及之后2位的STRING[7]。
所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。
VAR
input_value: REAL:=-123.4560166;
(*example value*)
result_string: STRING[15]:='';
(*result: here ' -123.45'*)
END_VAR
在此例中,数据类型REAL的输入变量input_value和数据类型STRING[7]的输出变量result_string均被声明。
当执行有问题的操作时,标准函数MID被添附到函数REAL_TO_STRING。MID在字符串中从位置P(INT值)创建一个L(INT值)字符的中间部分。
在示例中,INT常量7输入到MID的L输入,确定结果字符串的长度。P输入的INT常量4确定中间部分开始的位置。从变量input_value = -123.4560166中,从数据类型转换得出STRING ' -123.4560166'。MID函数切断位置4的STRING并得出result_string '-123.45'。
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,REAL_TO_STRING!,Instance,7,2,17,4,,?D?C);
B(B_VARIN,,input_value,5,2,7,4,);
B(B_VAROUT,,result_string,24,2,26,4,);
B(B_F,MID!,Instance,19,1,24,6,,?DIN?DL?DP?C);
B(B_VARIN,,7,17,3,19,5,);
B(B_VARIN,,4,17,4,19,6,);
L(17,3,19,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY