Programming/KUKA KRL 문법

KUKA KRL 문법: Program 실행 흐름 제어 005 - WHILE

레드마티즈 2024. 2. 13. 23:01
728x90

오늘은 KRL에서 제공하는 반복문 WHILE ... ENDWHILE 을 소개해 드리겠습니다.

 

WHILE ... ENDWHILE은 KUKA Manual에 보면 Rejecting Loop라고 설명되어 있는데요, WHILE ... ENDWHILE은 반복문을 시작하기 전에 조건에 맞지 않으면 반복을 거절(Reject)하기 때문입니다. 반복문이지만 한번도 반복하지 않을 수 있는 셈이죠.

 

WHILE 뒤에 나오는 조건문 결과가 TRUE이면 첫 번째 반복을 실행하고
반복 후 조건문 결과가 TRUE이면 다음 반복을
반복 후 조건문 결과가 FALSE이면 반복을 정지 합니다.
아래 코드는 A의 값을 1씩 증가시키다가 A의 값이 100보다  작지 않을 때 WHILE ... ENDWHILE을 빠져나갑니다.
A=1
WHILE A<100
   A=A+1      
ENDWHILE

 

A의 값을 1씩 증가시켰으니 반복문을 빠져나온 후 A의 값은 100 이겠네요.

 

PLC와 입력 신호를 주고 받는 경우를 예로 들어보겠습니다.
아래 코드는 입력 신호가 1일 때 WHILE ... ENDWHILE를 계속 반복합니다.
1번 입력신호가 On일 때 1번 모델을 계속 생산하는 프로그램을 작성할 때 사용할 수 있겠네요.
WHILE $IN[1]==TRUE
   ;CODES
ENDWHILE

 

WHILE ... ENDWHILE로 무한 반복 루프를 형성하고 싶다면 

WHILE 조건 뒤에 항상 TRUE가 오는 연산을 넣거나
TRUE를 직접 입력하여 무한 반복 루프를 형성할 수 있습니다.
WHILE 1==1
   ;CODES
ENDWHILE

WHILE TRUE
   ;CODES
ENDWHILE

 

다음 시간에는 FOR 문에 대해 알아보겠습니다.

 

감사합니다.