IF_THEN

특정 조건이 발생할 경우 IF_THEN을 사용하여 작업을 완료합니다.
피연산자
IF bool_expression THEN
<statement>;
피연산자
유형
형식
입력
Bool_
식
BOOL
태그 식
BOOL 값으로 계산되는 BOOL 태그 또는 식
(BOOL 식)
설명
구문은 표에 설명되었습니다.
Structured Text Syntax_If_Then
ELSIF 또는 ELSE 구문을 사용하려면 다음 가이드라인을 따르십시오.
사용 가능한 몇 개의 문 그룹에서 선택하려면 하나 이상의 ELSIF 문을 추가합니다.
ELSIF 문마다 하나의 대체 경로를 나타냅니다.
필요한 수의 ELSIF 경로를 지정하십시오.
컨트롤러는 첫 번째 참인 IF 또는 ELSIF 문을 실행하고 나머지 ELSIF 및 ELSE 문을 건너뜁니다.
모든 IF 또는 ELSIF 조건이 거짓일 경우 어떤 작업이 실행되도록 하려면 ELSE 문을 추가합니다.
다음 표에 IF, THEN, ELSIF 및 ELSE 문의 다양한 조합이 요약되어 있습니다.
다음의 경우
및
구성:
조건이 참일 경우 작업 실행
조건이 거짓일 경우 아무 작업도 실행하지 않음
IF_THEN
조건이 거짓일 경우 다른 작업 실행
IF_THEN_ELSE
입력 조건에 따라 대체 문 또는 문 그룹 선택
조건이 거짓일 경우 아무 작업도 실행하지 않음
IF_THEN_ELSIF
모든 조건이 거짓일 경우 기본 문 할당
IF_THEN_ELSIF_ELSE
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
없음.
예
예 1
IF…THEN
이 작업을 수행할 경우
입력할 스트럭쳐드 텍스트
IF rejects > 3 then
IF rejects > 3 THEN
conveyor = off (0)
conveyor := 0;
alarm = on (1)
alarm := 1;
END_IF;
예 2
IF_THEN_ELSE
이 작업을 수행할 경우
입력할 스트럭쳐드 텍스트
If conveyor direction contact = forward (1) then
IF conveyor_direction THEN
light = off
light := 0;
Otherwise light = on
ELSE
light [:=] 1;
END_IF;
[:=] 기호는 컨트롤러가 다음을 수행할 때마다 라이트 커튼을 해제하도록 지시합니다.
RUN 모드로 진입합니다.
자동 리셋을 위해 SFC를 구성한 경우 SFC의 단계를 떠납니다. (이는 단계 작업에 할당을 포함하거나 JSR 명령어를 통해 작업을 사용하여 구조화된 텍스트 루틴을 호출하는 경우에만 적용됩니다.)
예 3
IF…THEN…ELSIF
이 작업을 수행할 경우
입력할 스트럭쳐드 텍스트
If sugar low limit switch = low (on) and sugar high limit switch = not high
(on) then
IF Sugar.Low & Sugar.High THEN
inlet valve = open (on)
Sugar.Inlet [:=] 1;
Until sugar high limit switch = high (off )
ELSIF NOT(Sugar.High) THEN
Sugar.Inlet := 0;
END_IF;
[:=] 기호는 컨트롤러가 다음을 수행할 때마다 Sugar.Inlet을 해제하도록 지시합니다.
RUN 모드로 진입합니다.
자동 리셋을 위해 SFC를 구성한 경우 SFC의 단계를 떠납니다. (이는 단계 작업에 할당을 포함하거나 JSR 명령어를 통해 작업을 사용하여 구조화된 텍스트 루틴을 호출하는 경우에만 적용됩니다.)
예 4
IF…THEN…ELSIF…ELSE
이 작업을 수행할 경우
입력할 스트럭쳐드 텍스트
If tank temperature > 100
IF tank.temp > 200 THEN
then pump = slow
pump.fast :=1; pump.slow :=0; pump.off :=0;
If tank temperature > 200
ELSIF tank.temp > 100 THEN
then pump = fast
pump.fast :=0; pump.slow :=1; pump.off :=0;
Otherwise pump = off
ELSE
pump.fast :=0; pump.slow :=0; pump.off :=1;
END_IF;
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal