PLC

PLC의 메모리 체계와 종류 (XGI, GLOFA)

텍이 2020. 1. 31. 08:00
반응형

안녕하세요, 텍이 입니다!

 

 

PLC 강의 #2

 

 

오늘은 PLC의 메모리에 대해서

강의하는 내용을

담아보았습니다.

 

메모리는 LS산전

XGI(GLOFA) 시리즈

기준으로 설명드리겠습니다.

 

 


 

* XGI CPUUN이라는 모델을 기준으로 범위를 설명했습니다. 
XGK시리즈와 가장 큰 차이는 자동 변수의 유무라고 할 수 있겠습니다.


그럼 일단 각각의 메모리가 어떤 특징을 가지고 있는지 한 번 보겠습니다.  

 

 

 

 

종류별로 메모리를 표현해봤습니다.

 

먼저 A영역은 자동 변수 영역

말 그대로 자동으로 변수를 할당해주는데요.

저는 이 자동변수메모리 때문에 XGI를 더 선호합니다.

 

XGK는 프로그램상 어떤 메모리를 사용하려면

반드시 변수 메모리와 코멘트가 같이 기입해야만 사용이 가능합니다.

하지만 XGI는 별도의 메모리를 설정하지 않고

네임드 변수(심볼릭 변수) 또는 직접 변수만으로 사용할 수 있습니다.

네임드 변수란 한글, 한자, 영문, 숫자, Under Bar [밑줄( "_" )]를 조합한 변수를 말합니다.

예를 들어 버튼1, 램프1, 펌프A_운전 이런식의 형식입니다.

말 그대로 사용자가 직접 변수이름을 정할수 있습니다.

또 이름 뿐 아니라 변수의 종류 및 속성, 메모리까지 직접 할당 가능하고

별도 할당하지 않을때 자동 변수로 할당되게 됩니다.

참고로 영문은 대 · 소문자를 구분하지 않고 공백은 포함할 수 없습니다.

한글/한자는 8자, 영문은 16자까지 선언 가능합니다.

 

직접변수는 식별자의 위치를 표현하는 방식으로

%가 들어가면 직접 변수라고 생각하면 됩니다.

또 직접변수는 변수선언이 필요없습니다.

 

 

다음으로 I, Q 영역은 각각 입력과 출력 변수 영역입니다.

XGK 같은 경우는 입출력 모두 P 영역을 사용했는데

XGI는 입력과 출력 영역이 따로 구분되어 사용됩니다.

 

 

 


그림을 보면 XGK와는 표현방법이 조금 다르죠.

메모리 할당을 어떻게 하는지 설명 드리겠습니다.

 

XGI에서 모든 메모리 앞에는 항상 "%"가 붙습니다.

하지만 실제 프로그램시에는 "%"를 일일이 입력하지 않아도 자동으로 알아서 "%"가 붙습니다.

저는 습관이 돼서 일일이 치는 편이지만 안적어도 상관이 없다는거!

 

% + 위치 접두어 + 크기 접두어 + 베이스 번호 + 슬롯 번호 + 접점 번호 순으로 변수를 표현합니다.

위치 접두어에 입력은 I, 출력은 Q로 표현됩니다.

 

크기 단위는 X, B, W, D, L로 구성되어 있는데

X는 비트(Bit), B는 바이트(Byte), W는 워드(Word), D는 더블 워드(Double Word), L은 롱 워드(Long Word)를 나타냅니다.

데이터 크기 단위에 대해서는 나중에 따로 정리해서 설명 드리도록 하고 넘어가겠습니다.

그리고 X(비트) 크기만 유일하게 생략이 가능합니다.

따라서 앞서 표현한 % 와 같이 생략할 수 있습니다.

% I X 0 . 0 . 0   →   I 0 . 0 . 0 으로 표현해도 똑같이 사용이 가능합니다.

 

다음으로 베이스 번호를 적어주면 됩니다.

참고로 CPU가 있는 기본(메인)베이스는 0번입니다.

추가로 증설되는 증설(확장)베이스가 있을 경우, 딥스위치를 이용해 베이스 번호를 설정할 수 있는데

해당하는 베이스 번호를 표시하면 됩니다.

 

다음 해당하는 입력 또는 출력모듈의 슬롯 번호를 적고 해당 접점 번호를 적으면 메모리 번지수가 완성이 됩니다.

 

 

 

 

예를 들어 0번 베이스, 0번 슬롯에 있는 4번째 접점을 표현한다면

%IX0.0.4로 표현이 되고 위와 같이 나타낼 수 있다.

 

I와 Q영역도 XGK에서의 P 영역과 마찬가지로 실제 사용한 메모리를 제외한 나머지는

내부 메모리처럼 사용이 가능합니다.

 

 

 


다음으로는 M, R, W 영역

내부 메모리인데요.

XGK에서 M과 D 영역과 같이 프로그램에 어떤 값을 저장하는 중간 버퍼 역할을 합니다.

XGI에서는 비트 워드 상관없이 다 사용이 가능합니다.

다만 R 영역은 기본적으로 리테인 기능이 있으며, 블록 형태로 나뉘어져 있습니다.

* RSET이라는 펑션을 이용해 블록 단위를 설정 가능

ㄴ 상당히 귀찮고 헷갈려서 W 영역을 사용하는걸 추천합니다.

 

리테인은 PLC 전원이 꺼졌다 켜져도 해당 주소의 마지막 값을 기억하고 유지하는 기능을 말합니다

* (XGK의 래치와 같습니다.)

그렇다고 M 영역은 리테인이 안되는건 아니고 기본 파라미터에서 범위설정하여 걸 수 있습니다.

 

그리고 입출력 메모리와는 다르게 베이스 번호, 슬롯 번호가 없습니다.

% + 메모리 종류 + 크기 단위 + 주소(크기에 따라 가변) + (.비트 번호)로 표현됩니다.

XGK 같은 경우 비트가 16진수로 표현되었지만 XGI는 10진수로 표현되는게 차이라고 할 수 있습니다.

 

 

다음으로는 F 영역은 시스템 플래그인데 XGK와 같은 기능입니다.

CPU에 이미 선언되어 있는 여러가지 변수입니다.

대표적으로 많이 쓰는 플래그들은 1 스캔 ON, 상시 ON, 상시 OFF, 1S 주기 ON(점멸) 등이 있습니다.

 

 

U 영역 같은 경우에는 특수 레지스터라고 해요.

아날로그, 고속 카운터, 온도, 위치결정 이런 경우에는 전부 U라는 메모리가 할당이 되어 있습니다.
U 영역은 모듈 변수를 등록하고 할당이 가능합니다.

 

 

L 영역은 고속링크 플래그입니다.
고속 링크라는 통신 기능을 수행하게 될 경우에는 어떤 블록을 만들게 돼서 그 해당하는 파라미터 설정을 해요.  
그러면 내가 보낸 블록이 제대로 통신이 돼서 응답이 왔는지 안 왔는지를 진단할 수 있는데

바로 L 영역을 통해서 할 수가 있어요.
변수 추가할 때 플래그 중에서 고속 링크 플래그를 확인해 보시면 각각의 블록 단위별로 서비스 상태와

어떤 내용의 에러인지 알 수가 있습니다.

 

 

N 영역은 P2P 파라미터입니다.

P2P에서 어떤 파라미터를 등록을 하게되면 이때 파라미터에 측정한 내용이 N이라는 영역에 저장이 됩니다. 
프로그램적으로 쓰는 것은 아닙니다.

 

 

반응형