For maintenance

LS PLC FOR-NEXT문 사용방법 본문

PLC/LS

LS PLC FOR-NEXT문 사용방법

New life 2020. 3. 30. 23:32
반응형

 

LS PLC GMOV 명령어를 FOR-NEXT문으로 만들어 보았습니다.
 : GX-WORK2 BMOV명령어와 동일

GMOV(Group Move) 명령어
---- GMOV / Source / Destination / N
 S : 전송하고자 하는 데이터 또는 데이터가 들어있는 디바이스 번호
 D : 전송된 데이터를 저장할 디바이스 번호
 N : 그룹으로 전송하고자 하는 개수 (0 ~ 65,535)

 S -> D로 N갯수 만큼 전송

**예제

------ GMOV 0 D0 100
 D0번째 주소부터 100개까지의 번지에 "0" 데이터 입력
 D0~99까지 모두 "0" 입력  :  데이타 "0"으로 리셋 시 사용
  
     0 -> D01
     0 -> D02
     0 -> D03
         //
     0 -> D99

 
------ GMOV D0 D1 100
 D0과 D1번 디바이스가 중복되어 사용되면 1SHIFT씩 이동하여 전송
 
  D00 -> D01
  D01 -> D02
  D02 -> D03
         //
  D98 -> D99

여러개의 사이클 타임을 확인하고 싶을 때 사용하시면 편리


한번에 많은 데이타(2디바이스이상)를 2번이상 SHIFT하여 사용 시에는 불가능


그렇다면 GMOV를 여러번 사용하거나
               FOR-NEXT문을 사용하여 반복하여 사용할 수 있다.

SHIFT할 데이터타영역이 작으면 GMOV를 사용하시면되나
SHIFT할 데이타가 50개씩 된다면 FOR-NEXT문을 사용하시면 편리하다.

GMOV로 데이터를 SHIFT하여 사용 시

이동 할 데이타 주소는 가장 아래에 배치
(가장 위에 배치하면 모든 데이타 D000의 데이타를 채워짐)

----- GMOV D000 D100 50 -- 스캐너로 생성된 데이타 50개씩 이동
 
----- GMOV D500 D550 50
----- GMOV D450 D500 50
                        /
----- GMOV D150 D200 50
----- GMOV D100 D150 50

**이제 
FOR-NEXT문(루프 명령어)에 대해서 알아보자.
  → 아래의 내용의 출처는 LS XGK 명령집 내용.

(1) PLC 가 RUN 모드에서 FOR 를 만나면 FOR~NEXT 명령간의
     처리를 n 회 실행한 후 NEXT 명령의 다음 스텝을 실행합니다.
(2) n 은 0 ~ 65535 까지 지정 가능합니다.
(3) FOR~NEXT 의 가능한 NESTING 개수는 16 개까지 입니다. 
     이를 초과시에는 프로그램 다운로드가 되지 않습니다.
(4) FOR~NEXT 루프를 빠져 나오는 다른 방법은 BREAK 명령을 사용합니다.
(5) 스캔 시간이 길어질 수 있으므로, WDT 명령을 사용하여 WDT 설정치를 
    넘지 않도록 주의하여 주십시오.

FOR-NEXT문는 n수만큼 반복적으로 작동 시 많이 사용하는 명령어입니다.
그리고 FOR-NEXT문에 따라오는 디바이스가 있습니다.
바로 Z(인덱스)디바이스 
n수만큼 증가 시 Z디바이스도 동일하게 증가하여
FOR-NEXT문안에서 사용된 명령어를 도와줌
반드시 반복할 디바이스는 FOR-NEXT문 사용전에 "0"(Zero)를 시키고
FOR문을 사용할 것


** 예제 프로그램은
 데이터를 한디바이스씩 SHIFT 시켜 
 10 / 20 / 30 / 40 / 50개 합계 / 평균 구하는 프로그램입니다.

LS PLC는 합계 명령어가 없어 FOR문을 사용하여 만들어 사용하여야 합니다.

50개를 MOV명령어로 사용하면 대략 250STEP정도 됩니다.

FOR-NEXT문을 유용하게 사용하세요.

감사합니다.