반응형

PLC 메모리에 데이터 이력관리를 하고 싶은데

저장할 데이터 목록이 많으면?

첫줄에 끼워넣기 한다거나 마지막 줄에 추가하는 방식

또는 넣었던 데이터를 다시 빼내는 방식

여러가지 방법이 있지만 스택 관련 명령어를 사용하면 된다.

 

FINS 명령어를 알아보자.

데이터를 첫줄에 끼워넣는 명령어이다.

 

예제 내려받기

FINS 2017-01-22.gxw (Ver.1.550Y에서 작성 됨

 

화면 설명

FINS 명령어는 첫번째 디바이스 값을 두번째 디바이스+1에 기록한다.

두번째 디바이스에는 기록된 데이터 개수가 저장된다.

 

1회 실행시

ZR101000 에 1이 저장되고 ZR101001에 2017이 저장된다.

2회 실행시

ZR101000에 2가 저장되고 ZR101001에 2017이 저장되고 ZR101002는 이전에 저장했던 2017이 저장된다.

DSFL 명령어와 비슷한 기능을 한다.

 

첨부된 예제 파일을 보면 개수가 저장되는 디바이스를 처리하는 코드가 있는데

개수가 999를 넘으면 999로 고정하게 해놨다.

디바이스 간격은 1000이지만 개수 저장 디바이스 때문에 실제 저장되는 데이터는 999개가 된다.

9개로 하던 99개로 하던 9999개로 하던 필요에 따라 조정하면 된다.

CPU 에러가 발생할 수 있는 명령어이므로 사용 전 도움말을 먼저 읽어보자.

 

아래는 문자열을 이력관리하는 코드이다.

지금껏 16비트만 이력관리를 할 수 있었는데 아래 처럼 MC, FOR, BMOV를 사용하면 문자열도 이력관리 할 수 있다.

문자열 디바이스 10개씩 100개를 이력관리하는 코드이다.

FINS처럼 한 줄씩 뒤로 밀리고 첫줄에 데이터를 삽입하는 방식이다.

반응형

관련글