输入变量的限制值
在LIMIT中,第1个输入变量构成下限值,第3个输入变量构成上限值。如果第2个输入变量在此限制内,它将被传输到输出变量。如果高于此限制,将传输上限值;如果低于此限制,将传输下限值。
输入
第1个输入:下限值
第2个输入:与上限值和下限值比较的值
第3个输入:上限值
输出
输出作为输入:结果,如果在上限值和下限值之间则为第2个输入值,否则为上限值或下限值
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
lower_limit_val: INT:=0;
(*all types allowed*)
comparison_value: INT:=0;
(*all types allowed*)
upper_limit_val: INT:=0;
(*all types allowed*)
result: INT:=0;
(*all types allowed*)
END_VAR
在此例中,已声明输入变量(lower_limit_val、comparison_value和upper_limit_val)。相反,可以直接在函数的输入触点处输入常量。
lower_limit_val和upper_limit_val构成范围,如果必须将comparison_value传输到result,则其必须在上述范围内。
如果comparison_value高于upper_limit_val,upper_limit_val的值将被传输到result。
如果其低于lower_limit_val,lower_limit_val的值将被传输到result。
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_VARIN,,lower_limit_val,9,1,11,3,);
B(B_VARIN,,comparison_value,9,2,11,4,);
B(B_VARIN,,upper_limit_val,9,3,11,5,);
B(B_VAROUT,,result,16,1,18,3,);
B(B_F,LIMIT!,Instance,11,0,16,5,,?DMN?DIN?DMX?C);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
result:=LIMIT(MN:=lower_limit_val, IN:=comparison_value, MX:=upper_limit_val);
LD |
lower_limit_val |
LIMIT |
comparison_value, upper_limit_val |
ST |
result |