입력 변수의 한계값
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 |