PLC(Programmable Logic Controller, 프로그래머블 로직 컨트롤러)는 공장 설비의 센서·버튼 신호를 읽고, 미리 넣어 둔 프로그램대로 판단해, 모터·밸브·램프·로봇 같은 장치를 켜고 끄는 산업용 제어 컴퓨터입니다. 컨베이어가 상자를 감지하면 멈추고, 로봇에게 “집어도 된다”는 신호를 보내고, 로봇이 끝났다고 답하면 다시 컨베이어를 돌리는 식의 순서 제어가 PLC의 일입니다.
예전에는 이런 순서를 릴레이(전기 스위치) 수십~수백 개를 배선해 만들었습니다. PLC는 그 배선을 프로그램으로 바꾼 장치라서, 공정 순서를 바꿀 때 전선을 다시 잇는 대신 프로그램을 고칩니다. 이름에 ‘로직(논리)’이 들어간 이유도 여기에 있습니다.
PLC는 같은 일을 아주 빠르게 반복한다
PLC가 일하는 방식을 ‘스캔(scan)’이라고 부릅니다. 한 번의 스캔은 세 단계입니다.
- 입력 읽기: 센서, 리밋 스위치, 비상정지 버튼 같은 입력 단자의 상태를 한꺼번에 읽어 메모리에 저장합니다.
- 프로그램 실행: 저장된 입력값으로 프로그램을 처음부터 끝까지 한 번 실행합니다.
- 출력 쓰기: 계산 결과를 출력 단자로 내보내 모터 기동, 밸브 개폐, 경광등 점등 같은 동작을 만듭니다.
이 순환을 수 밀리초 단위로 끊임없이 반복합니다. 예를 들어 LS ELECTRIC의 XGT 시리즈 카탈로그는 상위 CPU의 명령 처리 속도를 스텝당 8.5ns로 표기합니다. 스캔이 끝나야 출력이 바뀌기 때문에, 프로그램이 길어지면 반응도 그만큼 늦어집니다. 아주 빠른 신호(엔코더 펄스 같은)는 그래서 고속 카운터나 위치 결정 같은 전용 모듈에 맡깁니다.
프로그램은 표준 언어 4가지로 쓴다
PLC 언어는 국제표준 IEC 61131-3이 정합니다. 2025년 5월 22일에 나온 4판은 다음 네 가지를 규정합니다.
- 래더 다이어그램(LD): 릴레이 회로도를 그대로 옮긴 그림 언어입니다. 왼쪽 세로선에서 오른쪽으로 접점(조건)을 지나 코일(출력)에 전기가 흐르는 모양으로 읽습니다. 현장 전기 기술자가 가장 익숙해해서 지금도 가장 많이 씁니다.
- 펑션 블록 다이어그램(FBD): 타이머·카운터·PID 같은 기능 블록을 선으로 이어 신호 흐름을 그리는 언어입니다.
- 구조화 텍스트(ST): 일반 프로그래밍 언어처럼 IF·FOR 문으로 쓰는 문자 언어입니다. 계산이 많거나 데이터를 다룰 때 씁니다.
- 순차 기능 차트(SFC): ‘1단계 → 조건 → 2단계’처럼 공정 단계를 나누어 프로그램 전체 구조를 짜는 방법입니다.
예전 판에 있던 명령어 리스트(IL)는 4판의 언어 목록에 없습니다. 같은 IEC 언어를 써도 제조사 개발 도구가 다르면 프로젝트 파일을 그대로 옮길 수는 없으니, 설비를 바꿀 때는 이 부분을 따로 확인해야 합니다.
국내 공장에서 자주 보는 PLC
제조사마다 하드웨어와 개발 도구가 따로 있습니다.
- LS ELECTRIC XGT: 국내에서 많이 쓰는 PLC입니다. 카탈로그 기준으로 LS 고유 명령 체계를 쓰는 XGK, IEC 표준 언어를 쓰는 XGI, 공정 제어용 이중화 시스템 XGR로 나뉘고, 프로그램은 XG5000으로 만듭니다.
- 지멘스 SIMATIC S7: 유럽 설비와 함께 들어오는 경우가 많고, TIA Portal로 프로그래밍합니다.
- 미쓰비시 MELSEC: 일본계 설비와 반도체·디스플레이 라인에서 자주 보며, GX Works로 프로그래밍합니다.
어떤 PLC를 배울지는 일하려는 현장에 어떤 설비가 깔려 있는지로 정하는 편이 현실적입니다. 래더의 기본 개념(접점·코일·타이머·카운터)은 제조사가 달라도 같아서, 하나를 익히면 다른 것도 빨리 읽힙니다.
로봇 컨트롤러와는 역할이 다르다
산업용 로봇에는 자기 컨트롤러가 따로 있습니다. 로봇 컨트롤러는 관절 6개를 동시에 계산해 팔 끝을 원하는 경로로 움직이는 일, 즉 궤적 계산과 모터 제어를 맡습니다. PLC는 그보다 위에서 “지금 로봇이 일을 시작해도 되는가, 끝났으면 다음 설비는 무엇을 하는가”를 결정합니다.
둘은 산업용 통신으로 신호를 주고받습니다. 예를 들어 유니버설로봇 공식 개발자 페이지는 Modbus TCP, EtherNet/IP, PROFINET과 안전 신호용 PROFIsafe를 지원 목록에 올리고, EtherNet/IP와 PROFINET은 동시에 쓸 수 없다고 밝힙니다. PLC가 어떤 통신을 쓰는지 먼저 확인하고 로봇을 고르는 이유가 여기에 있습니다. 로봇 구조별 쓰임은 산업용 로봇 종류, 사람 옆에서 일하는 로봇은 협동로봇 글에 정리했습니다.
아두이노나 PC로 대신하면 안 되나
전기적으로는 아두이노 같은 마이크로컨트롤러도 입력을 읽고 출력을 낼 수 있습니다. 공장에서 PLC를 쓰는 이유는 계산 능력보다 다른 조건에 있습니다.
- 전기 환경: 24V 산업 신호, 큰 모터가 만드는 전기 잡음, 먼지와 진동 속에서 수년간 멈추지 않게 만듭니다.
- 유지보수: 현장 기술자가 래더 화면으로 어느 접점이 막혀 있는지 바로 보고, 설비를 세우지 않고 프로그램 일부를 고치는 기능을 제공합니다.
- 부품 공급: 같은 모델의 교체 부품을 오래 공급합니다. 공장 설비는 10년 이상 쓰는 경우가 많습니다.
반대로 영상 인식이나 AI 모델처럼 계산이 큰 일은 PLC 안에서 하지 않고, 산업용 PC나 별도 비전 장치가 맡아 결과만 PLC에 넘기는 구조가 일반적입니다. 최근에는 PLC가 쌓은 설비 신호를 AI 분석에 쓰려는 시도가 늘었고, 그때 필요한 데이터 정리 방법은 PLC 태그 데이터 정리 글에서 다뤘습니다.
공장 자동화 전체에서 PLC는 어디에 있나
스마트공장이라고 불리는 설비도 현장 맨 아래층에서는 대부분 PLC가 설비를 움직입니다. 그 위에서 생산관리 시스템(MES)이 작업 지시와 실적을 관리하고, 사람이 거의 없는 라인을 목표로 하는 단계가 다크 팩토리입니다. 중소 제조업체가 PLC·로봇 자동화를 들일 때 쓸 수 있는 정부 사업은 스마트공장 지원사업 2026에서 확인할 수 있습니다.