LIMIT

输入变量的限制值

LIMIT中,第1个输入变量构成下限值,第3个输入变量构成上限值。如果第2个输入变量在此限制内,它将被传输到输出变量。如果高于此限制,将传输上限值;如果低于此限制,将传输下限值。

参数

输入

MN (INT, DINT, UINT, UDINT, REAL, LREAL)

第1个输入:下限值

IN (INT, DINT, UINT, UDINT, REAL, LREAL)

第2个输入:与上限值和下限值比较的值

MX (INT, DINT, UINT, UDINT, REAL, LREAL)

第3个输入:上限值

输出

VAR_OUT (INT, DINT, UINT, UDINT, REAL, LREAL)

输出作为输入:结果,如果在上限值和下限值之间则为第2个输入值,否则为上限值或下限值

示例

POU头

所有用于编程此函数的输入和输出变量已在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_valcomparison_valueupper_limit_val)。相反,可以直接在函数的输入触点处输入常量。

LD本体

lower_limit_valupper_limit_val构成范围,如果必须将comparison_value传输到result,则其必须在上述范围内。

  • 如果comparison_value高于upper_limit_valupper_limit_val的值将被传输到result

  • 如果其低于lower_limit_vallower_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

ST本体

result:=LIMIT(MN:=lower_limit_val, IN:=comparison_value, MX:=upper_limit_val);

IL本体

LD

lower_limit_val

LIMIT

comparison_value, upper_limit_val

ST

result

最后更新日期: 此页面上的反馈松下热线