For maintenance

GX-WORK2 Marking data Shift시켜 10개 나타내기(FOR-NEXT) 본문

PLC/PLC 명령어

GX-WORK2 Marking data Shift시켜 10개 나타내기(FOR-NEXT)

New life 2020. 4. 1. 08:01
반응형

마킹된 데이터를 순차적으로 10개 나타내기 위해서는 BMOV 명령어를 사용하면 된다.

1~2개의 데이터를 BMOV(블록무브) 시키기는 쉬우나 여러개의 데이타를 BMOV 시키기 위해서

동일한 명령어를 여러 번 사용하여 프로그램을 작성하여야 한다.

FOR문을 사용하면 시간을 단축하여 편리하게 작성 할 수 있다.

 

FOR문 : PLC가 RUN모드에서 FOR문을 만나면 n회 실행한 후 NEXT명령의 다음 스텝을 실행합니다.

FOR~NEXT 루프를 빠져나오는 다른 방법은 BREAK명령을 사용.

FOR문을 많이 사용하면 SCAN 시간이 길어져 필요 이상 사용을 금지.

 

동영상 설명(스텝기준)

0.

   1)  M100 실행 접점으로 FOR문 실행

   2) MOV명령어를 이용하여 데이터 리셋

5.

   1) FOR문 실행

7.

   1) FOR문과 함께 증가된 값을 사용할 수 있게 Z0(인덱스) 디바이스 사용

   2) INC 명령어로 FOR문 반복 시마다 ZO 1씩 증가

   3) 시프트시킬 데이터 수만큼 곱하기(K100)

   4) M200(A접점) BMOV 명령어를 역순으로 실행할 수 있도록 Z6디바이스에 증가값 저장

      : M200실행하여 역순으로 BMOV를 실행하면 데이터 정상적으로 시프트 가능

        BMOV로 나타내면 ↓

       BMOV D1000 D1100 K100

       BMOV D900 D1000 K100

       BMOV D800 D900 K100

                      /

       BMOV D100 D200 K100

   5) M200(B접점) BMOV 명령어를 정방향으로 실행할 수 있도록 Z6디바이스에 증가값 저장

     : 정방향으로 BMOV를 실행하면 1~n 까지 모든 데이터가 동일하게 저장됨 

       ※ BMOV로 나타내면 ↓

       BMOV D100 D200 K100

       BMOV D200 D300 K100

       BMOV D300 D400 K100

                      /

       BMOV D1000 D1100 K100

   6) BMOV D100Z6 D200Z6 K100

       D100 + Z6값(Z6 : 100 → D200) // D200 + Z6값(Z6 : 100 → D300)

       D200~D299값을 D300~D399에 블록 데이터 전송

27.

   1) Z0이 10이되면 M200 리셋

END