728x90
프로그램 실행 흐름 제어라고 하면 아마 가장먼저 IF 구문을 떠올리실 텐데요, KRL에도 IF 문이 있습니다. 다른 언어와 구분되는 특징은 너무 아쉽게도 ELSE IF 구문이 없습니다.ㅠㅠ
먼저 가장 기본적인 IF 문의 구조 입니다.
A의 값이 1이면, B에 2를 대입합니다.
IF A==1 THEN
B=2
ENDIF
ELSE 구문을 추가할 수도 있습니다.
A의 값이 1이면 B에 2를 대입하고, A의 값이 1이 아닌 다른 값이면 B에 3을 대입합니다.
IF A==1 THEN
B=2
ELSE
B=3
ENDIF
ELSE IF 구문은 없지만, IF 문의 중첩이 가능하기 때문에 아래와 같은 구조로 3가지 이상의 조건을 걸 수 있습니다.
A의 값이 1이면 B에 2를 대입하고, A의 값이 2이면 B에 3을 대입. A의 값이 1이나 2가 아니면 B에 4를 대입합니다.
IF A==1 THEN
B=2
ELSE
IF A==2 THEN
B=3
ELSE
B=4
ENDIF
ENDIF
IF 문에 AND 조건을 추가해 보겠습니다.
A의 값이 1이고 B의 값이 2가 아닐때 C에 3을 대입
IF A==1 AND B<>2 THEN
C=3
ENDIF
AND의 짝꿍, OR 조건도 추가할 수 있습니다.
A가 1이거나 2일 때 C에 3을 대입
IF A==1 OR A==2 THEN
C=3
ENDIF
눈치가 빠르신 분은 이미 파악하셨겠지만 비교 연산자와 대입 연산자는 아래와 같습니다.
- A == B(A와 B가 같은지 비교)
- A <> B(A와 B가 다른지 비교)
- A = B(A에 B 값을 대입)
위에서 비교 연산자 == 와 <> 를 사용했는데요, 데이터 형식이 Boolean 이거나 PLC와 주고 받는 I/O 신호일 때는 비교 연사자 생략이 가능합니다.
아래 예시에서 bResult의 데이터 타입이 Boolean이라면 아래 두가지 코드 모두
bResult가 True 값이면 A에 1을 대입 합니다.
IF bResult THEN
A=1
ENDIF
IF bResult==TRUE THEN
A=1
ENDIF
다음으로 아래 예시의 코드 모두
디지털 입력 1번이 True(=On)인 경우 A에 1을 대입합니다.
IF $IN[1] THEN
A=1
ENDIF
IF $IN[1]==TRUE THEN
A=1
ENDIF
또 다음으로 아래 예시의 코드 모두
디지털 출력신호 1번이 True(=On)인 경우 A에 1을 대입합니다.
IF $OUT[1] THEN
A=1
ENDIF
IF $OUT[1]==TRUE THEN
A=1
ENDIF
다음 시간에는 SWITCH 문에 대해 알아보겠습니다.
감사합니다.
'Programming > KUKA KRL 문법' 카테고리의 다른 글
KUKA KRL 문법: Program 실행 흐름 제어 005 - WHILE (2) | 2024.02.13 |
---|---|
KUKA KRL 문법: Program 실행 흐름 제어 004 - REPEAT ... UNTIL (2) | 2024.01.29 |
KUKA KRL 문법: Program 실행 흐름 제어 003 - LOOP (2) | 2024.01.27 |
KUKA KRL 문법: Program 실행 흐름 제어 002 - SWITCH (2) | 2024.01.27 |
KUKA KRL 문법: 들어가며 (2) | 2024.01.26 |