6.29. FOR(FOR) 블록 반복
6.29. FOR(FOR): 블록 반복
심볼 | |
Relay조합 | |
인수 | idx: 인덱스(index) 릴레이 init: 초기값(initial value) 릴레이 혹은 숫자 final: 종료값(final value) 릴레이 혹은 숫자 step: 스텝(step)으로 사용할 릴레이 혹은 숫자 |
설명 | Rung이 활성이면, NEXT까지의 블록을 init부터 final까지 idx 릴레이 값을 step씩 증가하면서 반복 실행합니다. FOR문을 실행할 때 무조건 idx에 init값을 대입합니다. FOR/NEXT문은 최대 10개까지 중첩시킬 수 있습니다. → FOR() FOR() FOR() ….NEXT NEXT NEXT step>0인 경우, init>final이면 실행하지 않고 NEXT로 Jump함. step<0인 경우, init<final이면 실행하지 않고 NEXT로 Jump함. Final과 step은 변수로 지정해도 for문을 처음 시작할 때의 값만을 사용합니다. 특수하게 FOR문의 중간에서 빠져나가고자 할 때에는 뒤에서 설명할 JMP(음수)명령을 사용할 수 있습니다. (JMP명령설명 참조) 주의) FOR명령은 브랜치를 위한 별도의 처리를 하지 않습니다. |
사용 예 | FOR(RB10,1,4,1): RB10=1부터 4까지 1씩 증가하면서 NEXT명령까지 반복 실행합니다. {|--[FOR(SW61,1,256,1)]-—[XIC(X-1)]—-[OTL(Y-1)]—-[NEXT]--|}: SW61=1부터 256까지 1씩 증가하면서 {XIC(X-1), OTL(Y-1)}명령을 반복 실행 합니다. 즉, idx가 상대어드레싱(SW61~SW69)을 위한 릴레이를 사용하고 있고, 그 XIC의 X릴레이와 OTL의 Y릴레이가 “-1”이므로 SW61의 값에 있는 번호가 적용되기 때문에, X1~X256중 High인 신호번호에 해당하는 Y릴레이 번호만 High로 출력하고 입력되지 않는 번호의 Y출력은 이전상태를 유지합니다. 참고) 상대어드레싱이란 어떤 형식의 릴레이든지 그 번지를 -1~-9값으로 설정하면 SW61~SW69에 저장된 값으로 릴레이 번지가 지정되는 방식을 말합니다. |