Programmable logic controller
프로그래머블 로직 컨트롤러(영어: programmable logic controller, PLC)는 산업 플랜트의 자동 제어 및 감시에 사용하는 제어 장치이다. PLC는 입력을 프로그램에 의해 순차적으로 논리 처리하고 그 출력 결과를 이용해 연결된 외부장치를 제어한다. 순차제어(sequential control)에 사용되는 대표적 장치이다. PLC는 단독으로 쓰일 수도 있고, SCADA 등의 시스템과 함께 사용되기도 한다.
PLC는 산업현장에서 기계제어 등에 많이 사용한다. PLC는 여러개의 입력과 출력을 갖는다. 광범위한 온도범위에서도 동작해야 하고, 전기적 노이즈에 및 진동과 충격에 강해야 한다. 제어를 위한 프로그램은 배터리 백업 및 비휘발성 메모리에 저장된다. 입력에 대해 실시간 처리 능력을 가짐으로써 정해진 시간의 입력 조건에 대해 출력은 정해진 시간 안에 반응한다.
원하는 기능은 주로 래더 다이어그램에 의해 프로그램되어 동작한다. 스위치등을 통해 입력신호가 들어가면 래더 다이어그램의 동작 기술에 의해 내부에서 처리되고 결과물은 최종적으로 출력코일에 나타난다. 출력된 제어 대상의 동작이 전체 시스템을 제어하게 된다.
래더 다이어그램에는 a-접점 스위치, b-접점 스위치, 타이머, 논리연산 명령어, 통신, 기타 다양한 기능을 갖는 기능 블럭에 의해 표현한다.
표현된 래더 다이어그램 프로그램은 처음부터 끝까지 CPU에 의해 순차적으로 해석되어 내부의 상태와 출력의 상태가 결정되고 변한다. 한번 전체가 처리되어 내부 상태와 출력이 결정되면, 각 출력포트에 변화 된 출력이 나타난다. 장치에 따라 초당 정해진 횟수만큼 처리되어 입력에 의해 내부 처리된 출력이 결정되고 외부 출력포트에 결과가 나타난다. 래더 다이어그램의 각 줄에 표현된 논리구조는 서로 연관성을 갖고 있어 컴퓨터 프로그램 코드처럼 처음 줄부터 차례대로 끝 줄까지 실행되는 것이 아니다. 각 줄이 서로 복합적으로 순서없이 서로 작용할 수 있으므로 전체까지 완전히 스캔하여 각 상태의 연관성에 의해 최종 상태가 결정된다. 따라서 한 스캔에 의해 전체 처리가 끝나야 어느 포트 든 상태를 알수 있고, 출력에 반영된다.
PLC의 프로그램 표현은 IEC_61131-3에 의해 표준화 되어있다.
용어 (Terms)
- IEC61131-3
- 국제 전기 표준 회의(IEC)가 1993년 12월에 발행한 표준 규칙으로, PLC용의 이하 5종류 프로그램 언어를 정의한 것입니다.
- IL (Instruction List)
- 어셈블리 언어 형태의 언어로 현재는 거의 사용되지 않는 언어입니다.
- LD (Ladder Diagram)
- 릴레이 로직 표현 방식의 언어로 사다리라는 의미를 가지고 있습니다.
- 전원을 생략하여 로직을 표현하고, 코일이나 접점 등의 그래픽 기호를 통하여 PLC 프로그램을 표현하며, 현재 가장 널리 사용되는 언어입니다.
- SFC (Sequential Function Chart)
- 제어 동작을 STEP과 TRANSITION등의 그래픽 기호를 사용하여 프로그램의 실행 순서와 실행 조건을 표현하는 기술 형식입니다.
- FBD (Function Block Diagram)
- 시퀀스 프로그램 내에서 반복하여 사용하는 회로 블록을 부품화하여 프로그램에서 활용할 수 있도록 하는 프로그램 기능입니다.
- ST (Stuctured Text)
- 선택, 반복 등의 언어구조를 가지며 PASCAL과 유사한 구조화 텍스트 언어입니다.
- 공업제어용 고급언어로, LD 에서 기술하기 어려운 수치연산 처리를 기술할 때 사용됩니다.
- 접점 (POINT)
- PLC의 입출력 용량을 표시할 때 사용합니다.
- 입력 8 점, 출력 6 점의 PLC 는 스위치나 센서 등 입력기기를 최대 8개, 램프나 릴레이 등 출력기기를 6개를 연결할 수 있습니다.
- STEP
- PLC 언어 LD 프로그램 또는 IL 프로그램 등의 언어로 작성한 메모리의 단위입니다.
- PLC 명령어의 최소 단위로 A 접점, B 접점, 출력 코일 등의 명령이 1 스텝에 해당하는 명령이고 기타 응용 명령어의 경우 하나의 명령어가 다수의 스텝을 점유합니다.
- 프로그램 용량 및 CPU 속도를 표시하는 단위로 사용됩니다. (용량: 30k step, 속도:sec/Step)
- 스캔타임(Scan Time) : 사용자 작성 프로그램의 1회 수행에 걸리는 시간을 의미합니다.
- 스텝수가 많은 프로그램의 경우 스캔 타임은 증가합니다.
- WDT (Watch Dog Timer)
- 주기적으로 프로세서를 모니터하고 각 주기가 끝나면 지워지는 타이머 입니다.
- 프로그램 연산 폭주나 CPU 기능고장에 의하여 출력을 하지 못 할 경우 설정한 시간(WDT)대기 후 에러를 발생시키는 시스템 감시 타이머입니다.
- 기본 200ms로 설정되어 있으며 파라미터 지정에 의해 변경시킬 수 있습니다.
- 파라미터
- 프로그램과 함께 PLC에 저장되는 운전 데이터로 통신, 시스템과 환경 등을 지정합니다.
- 릴레이출력
- PLC 출력접점 소자에 릴레이를 사용하는 방식입니다.
- AC, DC 공용이므로 일반적으로 사용되나, 개폐 빈도에 한계가 있습니다.
- Profibus - Process Field Bus
- PROFIBUS (Process Field Bus)는 자동화 기술에 널리 사용되는 필드 버스 시스템으로, 1987년 독일에서 21 개 회사 및 기관의 네트워크를 통해 시작되었습니다.
- TR 출력
- PLC 출력 접점 소자에 스위칭 트랜지스터를 사용하는 방식입니다. DC 전용으로 수명이 반 영구적입니다.
- SSR 출력
- PLC 출력 접점 소자에 무접점 반도체 릴레이를 사용하는 방식입니다. AC 전용으로 수명이 반 영구적입니다.