IF_THEN
특정 조건이 발생할 경우 IF_THEN을 사용하여 작업을 완료합니다.
피연산자
IF bool_expression THEN
<statement>;
피연산자 | 유형 | 형식 | 입력 |
Bool_ 식 | BOOL | 태그 식 | BOOL 값으로 계산되는 BOOL 태그 또는 식 (BOOL 식) |
설명
구문은 표에 설명되었습니다.

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; |
의견을 작성 부탁드립니다.