[포스코x코딩온] 스마트 팩토리 과정 8주차 회고 | PLC

Dana·2023년 5월 14일
0

PLC

공장을 구성하는 요소들

  • SCADA : 공장 전반을 아우르는 집중 감시 원격 시스템
  • HMI : 공정별로 모니터링
  • Inverter : 주파수 등을 이용 → 모터 제어
  • Servo : 정밀 위치/속토/토크 제어를 위해 서보 드라이브 사용
  • Actuator : 센서, 램프, 스위치, 모터 …

국내의 PLC 사용

  • 미쯔비시, 지멘스(siemense), LS-electric
  • 에스컬레이터/엘리베이터, 공장, 로봇

PLC 사용 산업 분야

PLC(Programmable Logic Controller)

  • 디지털 또는 아날로그 입출력 모듈을 통해서 로직, 시퀀싱, 타이밍, 카운팅, 연산과 같은 특수한 기능을 수행하기 위하여 프로그램 가능한 메모리를 사용하고 여러 종류의 기계나 프로세서를 제어하는 디지털 동작의 전자장치
  • GM에서 생산 기종 변경 시 자동차 제조 라인의 배선 교체 작업을 간단히 하고, 교체 비용과 시간 등을 절약하기 위해서 새로운 제어 기기의 조건 제시 → PLC 탄생

PLC 종류

  • 모듈형
  • 블록형(일체형)

LS Electirc의 PLC 종류

  • XGI, XGK, XGR 등
  • 표준 규격을 지키고 있는 XGI 프로그래밍을 다룬다.

PLC 구조(하드웨어 & 소프트웨어)

PLC 구조(하드웨어)

  • 입력부/출력부
    • PLC의 입출력부는 현장의 기기에 직접 접속하여 사용
    • PLC 내부와 달리 높은 전압 레벨을 사용하므로 PLC 내부와 입출력의 접속시 시스템 안정에 매우 많은 영향을 미침 → 요구사항
    1. 외부 기기와 전기적 규격이 일치해야 한다.
    2. 외부 기기로부터 노이즈가 CPU쪽에 전달되지 않도록 해야한다.
    3. 외부 기기와의 접속이 용이해야 한다.
    4. 입출력의 각 접점 상태를 감시할 수 있어야 한다.
  • 입/출력부 외부기기

  • CPU
    • PLC의 두뇌에 해당하는 부분
    • 메모리에 저장되어 있는 프로그램을 해독하여 실행
    • CPU는 매우 빠른 속도로 반복 실행하면서 모든 정보는 이진수로 처리
  • 메모리
    • ROM(read only memory)
      • 읽기 전용, 메모리 내용 변경 불가
      • 한 번 작성한 후에 변경되지 않는, 시스템 관련 프로그램 저장
      • 한 번 저장하면 전원이 끊어져도 메모리의 내용이 그대로 보존(비휘발성)
    • RAM(random access memory)
      • 메모리에 정보를 수시로 읽고 쓰기 가능
      • 정보 일시저장 가능
      • 전원이 끊어지면 기억시킨 정보 모두 상실(휘발성 메모리)
      • PLC의 데이터 영역은 RAM 영역에 저장
      • 전원이 꺼져도 메모리의 내용이 지워지지 않도록 하려면??

PLC 구조(소프트웨어)

  • 하드 와이어드(Hard Wired Logic)
    • 일의 순서를 회로도에 전개하여 그곳에 필요한 제어기기를 결합하여 리드선으로 배선 작업을 해서 요구하는 동작을 실현
    • 소프트웨어와 하드웨어가 한 쌍이 되어 사양이 변경되면 둘 다 변경해야 함
  • 소프트 와이어드(Soft Wired Logic)
    • 하드웨어 속에 있는 기억 장치에 일의 순서를 넣어야만 원하는 일을 할 수 있음(프로그램)

릴레이 시퀀스 vs PLC 프로그램

  • 릴레이 시퀀스 : 실제 부품간 배선에 의해 로직이 결정되는 것
  1. 코일 접점 등 전자 부품의 실제 존재 여부
  2. 회로 동작 방법
  3. 직렬처리와 병렬처리
  4. 사용접점수의 제한
  5. 접점이나 코일 위치의 제한

PLC 기능

  • 수치연산
  • 아날로그 입.출력
    • 아날로그 신호를 디지털 신호로 변환하여 PLC에서 사용
    • Analog Input(AI)
    • Analog Output(AO)
  • 제어
    • PID(Proportional, Integral, Derivative)
    • 모터 (서보, 인버터)
    • 고속 카운터
  • 통신
    • Master-slave(Server, Client)
    • 사용 프로토콜
      • Ethernet, Serial 통신
      • LS전용(Rapienet), 타사 전용(CC-LINK)
      • MODBUS

PLC 동작

PLC 프로그래밍 언어

  • IL, ST, Ladder, FBD, SFC
  • XGI는 (IL, ST, Ladder, SFC 제공)
    • IL(Instruction List) : 어셈블리언어 형태의 문자 기반 언어

PLC 동작원리

  • 사용자의 프로그램에 의해서 본체에 연결된 외부 입출력 기기 제어
  • 입력단자와 COM 단자 사이에
  • 출력

PLC 연산 처리 과정

1. 입력 이미지 영역 리프레시

  • 입력 이미지 영역
    • 입력 모듈로부터 입력되는 정보를 입력받아 입력 이미지 영역으로 복사
    • 입력 이미지 영역에 복사된 데이터들은 프로그램의 연산시 사용됨
  • 입력 리프레시
    • 입력 영역의 데이터를 입력 이미지 영역으로 복사

2. Scan/Task 프로그램

  • 이전 과정에서 저장한 정보를 바탕으로 사전에 만들어둔 프로그램 연산 수행
  • 프로그램 연산 결과 → 메모리
  • Scan Program : PLC의 CPU가 런 상태이면 무조건 수행하는 프로그램
  • Task Program
    • 스캔 프로그램과 달리 실행 조건이 만족되면 실행하는 프로그램
    • Task Program 실행시, Scan Program의 연산이 멈추고 실행

3. 출력 이미지 영역 리프레시

  • 연산 과정에서 만들어진 결과는 바로 출력으로 내보내지 않고 출력 이미지 영역에 저장됨

4. 자기 진단

  • 마지막 스텝 연산이 끝나고 나서 PLC 시스템 상에 오류가 있는지를 검사하고 오류가 없을 때만 출력을 내보냄
  • 출력 이미지 영역에 저장 후 PLC의 CPU는 자기 시스템을 진단하여 시스템 상에 오류가 있다면 에러 메시지 발생

5. END 처리

  • 연산이 성공적으로 출력되고 자기 진단 결과 오류가 없다면
  • 이미지 영역에 저장된 데이터를 출력 영역으로 복사, 실질적인 출력
  • END 처리 이후 다시 입력 리프레시 실시
    • 1 스캔 이후 다시 그 스캔을 반복하는 반복 연산 수행

PLC CPU

  • LS Electric의 CPU에는 여러가지 종류가 있다
  • XGT : 중대형 컨트롤러
  • XGB : 소형 컨트롤러
  • XGS : 세이프티 컨트롤러
  • XGR : 이중화 PLC

XGT

  • XGT-XGI
    • 국제 표준 규격(IEC)를 따르는 PLC
    • 국제 규격의 통신 프로토콜
    • 윈도우 환경의 프로그래밍 툴 지원
    • 프로그램 작성 용이

국제 표준 규격

  • 다양한 데이터 타입 지원
  • 펑션, 펑션블록, 프로그램과 같은 구성 요소를 이용해 프로그램을 구조적으로 작성할 수 있다
  • 사용자가 작성한 프로그램을 라이브러리화하여 다른 프로젝트에서 재사용 가능
  • 다양한 언어 지원, 사용자는 최적의 언어를 선택해서 사용할 수 있다
    • 도형식 언어 : LD(레더), FBD
    • 문자식 언어 : IL, ST
    • SFC

래더 프로그래밍

  • 사다리 형태로, 릴레이 로직과 유사한 도형 기반의 언어
  • 현재 가장 널리 사용되고 있다.
  • 점(Point) : 입력 8점, 출력 6점 등 PLC는 스위치나 센서 등 입출력 용량을 표시할 때 사용
  • 스텝(Step) : PLC 명령어의 최소 단위
  • 스캔 타임(Scan Time) : 사용자가 작성한 프로그램의 1회 수행에 걸리는 시간
  • WDT (Watch Dog Timer) : 이상으로 인해 출력을 하지 못할 경우 설정한 시간 대기 후 에러를 발생시키는 시스템 감지 타이머
  • 파라미터(Parameter) : 프로그램과 함께 PLC에 저장되는 운전 데이터

레더 프로그래밍 사용 기호 (명령어)

  • 스위치 형태의 입력과 출력 코일
  • 릴레이 로직의 기호와 흡사하다.

  • A접점 : on 인 경우
  • B접점 : off인 경우

소프트웨어 구조

  • 하나의 프로젝트 안에는 PLC 시스템에 필요한 것들이 계층적으로 정의
  • 프로젝트를 작성한다는 것은 PLC 시스템에 필요한 모든 구성 요소를 작성한다는 의미
  • 프로젝트의 모든 구성 요소
    • 글로벌/직접 변수
    • 파라미터
    • 데이터 타입
    • 스캔 프로그램
    • 사용자 펑션/펑션 블록
    • 태스크 프로그램

데이터 타입(자료형)

수치(ANY_NUM)

  • SINT/INT/DINT/LINT (short-8, int-16, double-32, long-64 bit)
  • REAL(32bit 실수)
  • 각 키워드 앞에 U가 붙으면 Unsigned가 됨

시간/날짜/문자열

  • TIME
  • DATE
  • TIME_OF_DATE
  • DATE_AND_TIME
  • STRING

비트 상태

  • BOOL
  • BYTE
  • WORD
  • DWORD
  • LWORD

PLC 변수

변수 종류

  • 글로벌 변수
    • 모든 프로그램에서 사용 가능
    • 일반적인 프로그래밍에서의 전역변수와 비슷
  • 로컬 변수
    • 해당 프로그램에서만 사용 가능
    • 일반적인 프로그래밍에서의 지역 변수와 비슷

변수 표현 방식

  • 직접 변수
    • PLC의 입출력 또는 기억 장소에 대해서 직접적으로 표현하는 것(기본 제공)
    • 이미 지정된 식별자와 주소가 있기 때문에 변수 선언이 필요 없다
  • 심볼릭 변수
    • 변수 선언 필요

직접 변수-입출력 메모리 할당

  • 퍼센트 기호(%)로 시작하고 위치 접두어, 크기 접두어와 숫자들로 구성된다.

  1. 위치 접두어
    • I : 입력 위치(Input Location)
    • Q : 출력 위치(Output Location)
  2. 크기 접두어
    • X : 1비트의 크기 (기본)
    • B : 1바이트(8비트)
    • W : 1워드(16비트)
    • D : 1 더블워드(32비트)
    • L : 1 롱 워드(64비트)

3,4. 베이스 번호와 슬롯 번호

  • 베이스와 슬롯 번호는 0부터 시작
  • 베이스 번호 : 크기접두어에 따른 N1번째 데이터
  • 슬롯 번호 : N1번째 데이터 상의 N2번째 비트
  1. N2 슬롯에 대한 N3번째 데이터(크기 접두어 번호)

ex) %IX0.0.0 : 입력접점의 비트단위 데이터, 0번베이스 0번슬롯의 0번째 데이터

직접 변수-내부 메모리 할당

  1. 위치 접두어 번호
    • M : 내부 메모리의 M영역
    • R : 내부 메모리의 R 영역
    • W : 내부 메모리의 W 영역
  2. 크기 접두어(입출력과 동일)

3,4. 내부 메모리 할당

  • 베이스 번호와 슬롯 번호를 지정하지 않는다.
  • N1은 크기 접두어에 대한 번호
  • N2는 크기 접두어가 X가 아닐 때 비트번호

심볼릭(Symbolic)변수

  • 사용자가 선언해서 사용하는 변수
    • 변수이름
    • 형(data type)
    • 메모리 주소를 할당해서 사용
  • VAR : 읽고 쓸 수 있는 일반적인 변수
  • VAR_CONSTANT : 항상 고정된 값을 가지고 있는 읽기만 할 수 있는 변수(상수)
  • VAR_EXTERNAL : VAR_GLOBAL로 선언된 변수를 사용하기 위한 선언
  • VAR_EXTERNAL_CONSTANT : VAR_GLOBAL로 선언된 상수를 사용하기 위한 선언

Ladder Diagram

모선과 연결선

접점(입력)

모선과 연결선, 접점의 모양

  • 왼쪽 모선 : 1의 값 유지(전기가 흐른다)
  • 평상시 열린 접점
  • 입력 접점에 대해서 직접 변수 사용(%IX0.0.1)과 같은 변수명 사용
  • on일때 왼쪽(모선의 상태 BOOL 1)가 오른쪽(연결선)으로 전달된다.

코일(출력)

0개의 댓글