사용자 도구

사이트 도구

English

codesysmanual:loopinstruction

루프 반복 수행 명령문

때때로 특정 횟수만큼 작업을 수행해야하는 경우가 있습니다. ST언어에서는 세 가지 유형의 루프문 사용이 가능합니다.

  • WHILE 루프
  • FOR 루프
  • REPEAT 루프

WHILE...DO...END_WHILE

이 명령어는 조건이 충족되는 루프안 명령어를 계속 반복수행합니다. 처음부터 조건이 FALSE이면 명령이 수행되지 않습니다. 구문은 다음과 같습니다.

WHILE 조건 DO
    명령문;
END_WHILE;

다음은 사용예입니다.

k := 1;
WHILE Area[k] < 1000 DO
    Area[k] := 3.14*radius[k]*radius[k] + 2*3.14*radius[k]*height;
    k := k + 1;
END_WHILE;

FOR...END_FOR

반복 횟수를 미리 결정할 수있을 때 유용합니다. 루프는 특정 횟수만큼 명령을 수행하며, 인덱스 변수에 의해 제어됩니다. 인덱스 변수의 증가치를 특별히 지정하지 않았다면 루프마다 1씩 증가됩니다.

FOR index := 초기값 TO 종료값 DO
    명령문;
END_FOR;

키워드 BY를 추가 하면 1보다 큰 증가치를 사용할 수 있습니다.

FOR k := 1 TO 20 BY 2 DO
    Num := Num*2;
END_FOR;

REPEAT ... END_REPEAT

이 루프는 얼마나 반복할지 모르는 상황에서 쓸수 있는 반복문입니다. WHILE문과 동일한데, 조건판단을 뒤에서 하기때문에 내부명령문이 최소 1번은 수행됩니다.

REPEAT
    명령문;
    UNTIL 조건
END_REPEAT;

사용예)

REPEAT
    Values[x] := New_value;
    x := x + 1;
    UNTIL New_value > 1000
END_REPEAT;

EXIT 명령문

EXIT는 WHILE, FOR 또는 REPEAT 루프의 실행을 중지하고 루프를 탈출하는 명령입니다.

REPEAT
    Area[k] := 3.14*radius[k]*radius[k] + 2*3.14*radius[k]*height;
    k := k + 1;
    IF k >= 200 THEN EXIT;  (* 이 조건이 만족되면 루프 탈출 *)
    END_IF;
UNTIL Area[k] > 1000
END_REPEAT;

CODESYS

codesysmanual/loopinstruction.txt · 마지막으로 수정됨: 2020/12/09 01:18 저자 Comfile Technology