PLC-XGI (초급) 스마트팩토리-1일차

내 이름 안찬찬·2023년 1월 9일
0

PLC의 정의

  1. PLC(Programmable Logic Controller)란, 종래에 사용하던 제어반 내의 릴레이, 타이머, 카운터 등의 기능을LSI, 트랜지스터 등의 반도체 소자로 대체시켜, 기본적인 시퀀스 제어 기능에 수치 연산 기능을 추가하여 프로그램 제어가 가능하도록 한 자율성이 높은 제어 장치이다.

  2. 현장의 입력기기로부터 입력데이터를 받아들여 사용자가 미리 작성한 프로그램을 실행한 후, 그 결과를 출력기기를 통해 출력함으로써 기계나 설비를 제어하는 전자장치이다.

PLC의 기능

특수 기능(모듈 등)

수치 연산, 아날로그 입/출력, 고속카운터(엔코더), PID제어, 모터제어, 통신 기능, 디지털 입력 / 디지털 출력 (DI / DO)

1. 수치 연산
+, -, /, * 와 같은 단순 수치연산

2. 아날로그 입/출력 -> 아날로그 신호

AC=교류, DC=직류

Analog input(AI)-> XGF-AV8A, XGF-AC8A 등 아날로그 입력 모듈.
아날로그 신호를 디지털 신호로 변환하여 PLC에서 활용
ex) 0~10V DC전압이 입력되면 0~16000 or 0~10000

Analog Output(AO)
ex) 디지털 신호를 아날로그 신호 0~10V DC로 출력한다.

3. 고속카운터

고속으로 입력되는 구형파(5V or 24V 등)을 PLC에서 카운터한다.
보통은 엔코더(스펙: 1회전에 100펄스(pls))로부터 입력

ex.1) 200kpps = 200,000 펄스/초
ex.2) 컴베이어 벨트가 있으면 센서를 달고 카운팅을 함

4. PID 제어 (Ls 제품은 내장 기능으로 제공 CPU에서)

P: Proportion(비율), I: Integral(적분) D: Derication(미분)
Sv -> Set Value ex: 목표 온도
Pv -> Pxx Value: 현재 온도
Mv -> Mainpulated Value: 출력 값

5. 모터 제어

유도 전동기 (인버터 사용), 서보 모터(모터안에 엔코더가 무조건 달려있음)
서보 VS 인버터
서보: 정밀 위치/속도/토크 제어를 위해 서보 드라이브(모터) 사용
인버터: 주파수 등을 이용하여 모터 속도를 제어

6. 통신 기능

PLC와 통신 (상위= Master, 하위= Slave)
Master(클라이언트= 요청)/ Slave(서버= 응답)

Ethernet, Serial 통신(Cnet), Profibus(Pnet), Devicenet(Dnet)
LS 전용(RAPIENET), 타사 전용(ex. CC-LINK 등)

Ps. PLC가 슬레이브가 되는 경우는
HMI - PLC , PC - PLC , SCADA - PLC 정도로 경우가 드물다.

SCADA = 중앙제어장치(PC기반)

7. 디지털 입력 / 디지털 출력 (DI/DO)

-DC24V 신호
-PLC 기준으로 DC24V 입력이 되면 -> 디지털 입력 신호
-PLC 기준으로 DC24v 출력이 되면 -> 디지털 출력 신호
-DI: 스위치, 센서 등
-DO: 램프, SOL 등

PLC의 적용 분야

식료 산업, 제철-제강산업. 섬유-화학공업, 자동차 산업, 기계 산업, 상하수도,
물류 산업, 공장 설비, 공해 방지사업 등

PLC종류

XGT Series (XGB Series) -> B = Block = 소형
XGK XGI XGR (XBC, XEC, XBM, XEM)

Redundancy(이중화 PLC XGR)
-> PLC 기본 베이스가 동일하게 2개가 구성 (= A Side B Side)
(하나가 고장났을 경우 대체하기 위한 방법)
-> 통신 이중화, 전원 이중화, 증설베이스 이중화 등

M사: XGK(프로그래밍 유사), XBC XBM
S사: XGI(IEC 프로그래밍 유사), XEC XEM
XGK와 XGI는 하드웨어 적으로 동일, 언어만 다름

PLC 하드웨어 전체 구조

연산처리

1. 입력 이미지 리프레시

PLC는 운전이 시작되면 입력 모듈을 통해 입력되는 정보들을 메모리의 입력 영역으로 받고, 이 정보들은 다시 입력 이미지 영역으로 복사되어 연산이 수행되는 동안의 입력 데이터로 이용된다.

이렇게 입력 영역의 데이터를 입력 이미지 영역으로 복사하는 것을
‘입력 리프레시’(Input Refresh)라고 한다.

입력 리프레시는 운전이 시작될 때뿐만 아니라 매 스캔 END처리가 끝나면 
그 순간의 입력 정보를 입력 이미지 영역으로 복사하여 연산의 기본 데이터 
또는 연산의 조건으로 활용하게 된다.

2. 프로그램 연산

입력 리프레시 과정에서 읽어 들인 입력 접점의 정보를 조건 또는 데이터로 이용하여 사전에 입력된 프로그램에 따라 연산을 수행하고 그 결과를 내부 메모리 또는 출력 메모리에 저장하게 된다.

GLOFA-GM PLC에서 프로그램은 크게 스캔 프로그램과 태스크 프로그램의 두 가지로 나눌 수 있는데, 스캔 프로그램이란 PLC의 CPU가 RUN 상태면 무조건 수행하는 프로그램이고, 태스크 프로그램이란 특정 조건을 만족해야만 동작하는 프로그램이다.

스캔 프로그램 연산을 수행하는 도중에 태스크 프로그램의 실행 조건이 만족되면 스캔 프로그램의 연산을 멈추고, 태스크 프로그램을 수행한 후
태스크 프로그램으로 전이하기 직전에 연산이 수행되던 스캔 프로그램의 위치로 복귀하여 스캔 프로그램의 연산을 계속하게 된다.

3. 출력 리프레시

스캔 프로그램 및 태스크 프로그램의 연산 도중에 만들어진 결과는 바로 출력으로 보내어지지 않고 출력 이미지 영역에 저장되게 된다.

이 과정을 출력 이미지 리프레시라고 합니다.

4. 자기 진단

연산의 과정에서 만들어진 결과는 바로 출력으로 내보내지 않고 출력 이미지 영역에 저장되게 된다.
그렇게 하는 이유는 프로그램의 마지막 스텝 연산이 끝나고 나면 PLC 의 CPU는 시스템 상에 오류가 있는지를 검사하고 오류가 없을 때만 출력을 내보내기 때문이다.

만일 연산이 성공적으로 끝나서 그 결과가 출력 이미지 영역에 저장되었다고 해도 PLC의 CPU는 자기 시스템을 진단하여 시스템 상에 오류가 있다면 출력을 내보내지 않고 에러 메시지를 발생시키게 된다.

이것을 자기 진단이라고 합니다.

5. END 처리

연산이 성공적으로 수행되고 자기 진단 결과 시스템에 오류가 없으면 출력 이미지 영역에 저장된 데이터를 출력 영역으로 복사함으로써 실질적인 출력을 내보내게 된다.

이 과정을 END 처리라 하며 END 처리가 끝나면 다시 입력 리프레시를 실시함으로써 PLC 는 반복적인 연산을 수행하게 됩니다

PLC 동작 이해

PLC 기본 약호 명령어

1. 점(Point):
입력 8점, 출력 6점의 PLC는 스위치나 센서 등 입력기기를 최대 8개, 램프나 릴레이 등 출력기기를 최대 6개까지 연결할 수 있다.

PLC의 입출력 용량을 표시할 때 사용합니다.

2. 스텝(Step):
PLC명령어의 최소 단위로 A접점, B접점, 출력 코일 등의 명령이 1스텝에 해당하는 명령이고 기타 응용 명령어의 경우 하나의 명령어가 다수의 스텝을 점유한다.

프로그램 용량 및 CPU속도를 표시하는 단위로 사용됩니다. (용량: 30k step, 속도: sec/step)

3. 스캔타임(Scan Time):
사용자 작성 프로그램의 1회 수행에 걸리는 시간을 의미한다.

스텝수가 많은 프로그램의 경우 스캔 타임은 증가합니다.

4. WDT(Watch Dog Timer):
프로그램 연산 폭주나 CPU기능고장에 의하여 출력을 하지 못할 경우 설정한 시간(WDT)대기 후 에러를 발생시키는 시스템 감시 타이머이다.

기본 200ms로 설정되어 있으며 파라미터 지정에 의해 변경시킬 수 있습니다.

5. 파라미터(Parameter):
프로그램과 함께 PLC에 저장되는 운전 데이터로 통신, 시스템 환경 등을 지정한다.

XGI 개요

그 동안 PLC 고객은 메이커(maker)마다 사용 언어와 통신 네트워크가 서로 달라 많은 불편함을 겪어 왔다.

이러한 불편함을 해소하고, PLC 고객에게 편리성을 도모하고자 IEC에서 PLC 국제 표준화 규격이 제정 되었다.

XGI 구조

식별자

직접 변수: %로 시작하는 주소(변수) -> CPU에서 기본 제공
ex. %M, %I, %Q, %R (%W), %F, %U 등

간접 변수(네임드 변수): 사용자가 직접 지정하는 변수
영문자, 한글, 기호(시작 기호는 _ 등만 사용)

EX) 영문자, 기호는 1Byte, 한글은 2Byte

데이터 타입

[실수]
REAL: (32bit)
LREAL: (64bit)

[십진수(수치)]
INT (정수, 16bit) = 1WORD
앞에 Long, Double, Short 가 붙을 수 있음
LINT (64bit), DINT (32bit), SINT(8bit)
ULINT, UDINT, USINT, UINT -> U= Unsined => 부호 없는 10진수
INT: -32768 ~ 32767
UINT: 0 ~ 65535

[WORD 형태]
WORD: (16bit), LWORD (64bit), DWORD(32bit), BYTE(8bit), BOOL(1bit)

위치 접두어와 크기접두어

직접 변수% (크기 접두어: X(1),B(8),W(16),D,L)
%위치 접두어, %크기 접두어 n1.n2.n3

%I: 디지털 입력 (%IX)
(0번 베이스, 0번~15번 슬롯에 꽂혀 있는 디지털 입력 모듈)
%IX0.0.0~%IX0.0.15: 16개 비트 => %IW0.0.0 => %IB0.0.0~1
%IW0.0.1 (%IX0.0.16 ~ 31) => %IB0.0.2~3

X: 비트 , B: 바이트, W: 워드 D: 더블워드 L: 롱워드

%Q: 디지털 출력 (%QX)
(0번 베이스, 1번 슬롯에 ""디지털 출력 모듈)
%QX0.1.0~%QX0.1.15: 16개 비트

%MX0 ~ CPU에서 제공하는 "보조 릴레이"
=> 사용자가 원하는 방식으로 사용 가능

%MX0 ~~~ (소수점이 없음)
%MW0: (워드 형태, %MX0~15)
ex) %MW1: (%MX16~31)
~~ %MW262143 까지 사용이 가능

간접 변수%

프로그램 종류

프로그램 종류로는 사용자 펑션, 사용자 펑션 블록, 프로그램이 있습니다.
프로그램에서 자기 자신의 프로그램을 호출할 수는 없습니다. (재귀 호출 금지)

펑션: 1스캔에 결과 출력, 출력값이 1개(ex. MOVE,ADD,SUB)
펑션 블록: 여러 스캔에 걸쳐 결과 출력, 출력값이 2개 이상(ex.타이머, 카운터 등)

LD(Ladder Diagram)

LD 프로그램은 릴레이 로직 다이어그램에서 많이 사용하는 코일이나 접점 등의 그래픽 기호를 통하여 PLC의 프로그램을 표현하는 것입니다.

마무으리

첫 날 부터 죄다 흡수하는 스펀지가 되는 걸 바란건 아니지만,
분명 수업 들을 때까지만 해도 이 정도로 이해하지 못 했다고 느끼진 않았는데..?

막상 집 와서 필기한 거 정리하는데 무슨 소리인지 몰라서 또 읽고 또 읽고..

꾸준히 공부한 거 정리해야겠다고 생각이 든다.
필기한 걸 제대로 정리하려고 하면서 이해 못 했던 걸 다시금 이해하게 된다.

다 이해 한 건 아니지만!!(데이터타입 녀석..!!)

이제 그만 이해하지 못 한 것들 추가로 찾아보면서 공부하러 가야겠다.

profile
스마트팩토리 개발자가 되기 위한 □□ !!

0개의 댓글