PLC(Programmable Logic Controller)를 처음 배울 때 가장 먼저 접하게 되는 것이 바로 PLC 프로그래밍 언어입니다. C언어나 Python처럼 텍스트로 코드를 입력하는 일반적인 컴퓨터 프로그래밍과 달리, PLC는 현장 엔지니어의 직관적인 이해와 유지보수를 돕기 위해 다양한 형태의 언어를 지원합니다.
국제 전기 기술 위원회(IEC)에서는 IEC 61131-3 표준을 통해 PLC 프로그래밍 언어를 크게 5가지로 규정하고 있습니다. 이번 글에서는 이 5가지 언어의 특징과 장단점, 그리고 현장 실무에서 주로 어떤 언어가 사용되는지 알기 쉽게 정리해 보겠습니다.
1. IEC 61131-3 표준 언어 5가지 개요
PLC 언어는 크게 그래픽 기반 언어(Graphical Languages) 3가지와 텍스트 기반 언어(Textual Languages) 2가지로 나뉩니다.
| 구분 | 언어 명칭 | 주요 특징 |
| 그래픽 기반 | LD (Ladder Diagram) | 시퀀스 릴레이 회로도와 유사한 방식을 채택한 가장 보편적인 언어 |
| FBD (Function Block Diagram) | 신호의 흐름을 상자(Block) 형태로 연결하여 표현하는 언어 | |
| SFC (Sequential Function Chart) | 공정의 순서(Step)와 전환 조건(Transition)을 흐름도처럼 시각화한 언어 | |
| 텍스트 기반 | ST (Structured Text) | C, Pascal과 유사한 고성능 텍스트 기반 고급 언어 |
| IL (Instruction List) | 어셈블리어와 유사한 방식의 저급 텍스트 언어 (현재 사용 감소 추세) |
2. 각 언어별 세부 특징 및 장단점
① LD (Ladder Diagram, 래더 다이아그램)
국내외 산업 현장에서 가장 널리 사용되는 독보적인 1위 언어입니다. 전기 릴레이 회로도(Relay Logic)의 모습을 그대로 본떠 만들어졌습니다.
- 장점: 전기 도면을 볼 줄 아는 현장 엔지니어나 정비 인력이라면 누구나 직관적으로 이해할 수 있습니다. 접점의 ON/OFF 상태를 실시간으로 모니터링하기가 매우 용이합니다.
- 단점: 복잡한 수학적 계산(스케일링, 복잡한 공식 연산)이나 문자열 처리, 데이터 배열 작업 등을 구현하려면 도면이 매우 길고 복잡해집니다.
② ST (Structured Text, 구조화된 텍스트)
C언어나 Pascal과 같은 일반 컴퓨터 프로그래밍 언어와 구조가 매우 유사한 고급 텍스트 언어입니다.
- 장점:
IF-THEN,FOR,WHILE등의 제어문과 복잡한 연산식, 문자열 및 배열 처리를 깔끔하고 효율적으로 작성할 수 있습니다. 코드의 재사용성이 매우 뛰어납니다. - 단점: 전기 회로 형태가 아니기 때문에 현장 유지보수 담당자가 한눈에 입출력 동작 상태를 파악하기 어렵고, 접근 장벽이 상대적으로 높습니다.
③ FBD (Function Block Diagram, 기능 블록 도면)
입력값과 출력값을 가진 하나의 ‘기능 상자(Block)’를 선으로 연결하여 제어 논리를 구성하는 언어입니다.
- 장점: 데이터의 흐름을 한눈에 보기 쉽고, 타이머·카운터·PID 제어 등 이미 만들어진 함수 블록을 가져와 연결만 하면 되므로 아날로그 제어나 신호 처리에 유용합니다.
- 단점: 단순한 ON/OFF 시퀀스 제어를 구현할 때는 래더(LD)보다 화면 구성이 복잡해질 수 있습니다.
④ SFC (Sequential Function Chart, 순차 기능 차트)
순서도(Flowchart)와 매우 유사한 구조로, 공정의 시작부터 마침까지의 전체 흐름을 단계(Step)별로 시각화한 언어입니다.
- 장점: 대형 자동화 라인이나 순차적인 제어가 중요한 공정(예: 원자재 투입 → 혼합 → 가열 → 배출)의 전체 흐름을 한눈에 파악하기 좋습니다.
- 단점: 예외 상황(비상정지, 인터록 제어 등)이 발생했을 때의 예외 처리 로직을 구획하기가 까다로울 수 있습니다.
⑤ IL (Instruction List, 명령어 목록)
어셈블리어(Assembly language)처럼 LD, AND, OR, ST 등의 숏코드 명령어를 세로로 나열하여 작성하는 방식입니다.
- 장점: 프로그램 용량이 매우 작고 실행 속도가 빠릅니다.
- 단점: 가독성이 현저히 떨어지며 유지보수가 매우 어렵습니다. 최근에는 IEC 표준에서도 사용을 줄이는 추세이며, 최신 PLC 소프트웨어에서는 지원을 중단하기도 합니다.
3. 실무에서는 LD와 ST를 어떻게 함께 쓸까?
실제 산업 현장에서는 하나의 언어만 고집하기보다, 상황에 맞춰 언어를 혼용해서 사용하는 방식이 늘어나고 있습니다.
- 단순 ON/OFF 제어 및 인터록: 가독성과 현장 유지보수가 뛰어난 LD(래더) 사용
- 복잡한 수학 계산, 데이터 변환, 통신 처리: 깔끔하게 코딩할 수 있는 ST(구조화 텍스트) 사용
예를 들어, 아날로그 센서 데이터의 온도를 계산하는 공식이나 인버터 통신 데이터를 처리하는 부분만 ST 언어로 보조 프로그램(Subroutine/Function Block)을 작성하고, 메인 동작 로직은 LD 로직에서 그 블록을 불러와 사용하는 형태가 실무에서 가장 효율적인 조합으로 평가받고 있습니다.
요약 및 정리
- PLC 프로그래밍 언어는 IEC 61131-3 표준에 따라 LD, ST, FBD, IL, SFC 5가지로 구분됩니다.
- 현장에서 가장 보편적으로 쓰이는 것은 LD(래더 디아그램)이며, 유지보수와 직관성이 가장 뛰어납니다.
- 데이터 연산이나 통신 제어 등 복잡한 작업은 ST(구조화 텍스트)를 함께 조합해 사용하는 것이 최근 실무 트렌드입니다.
자신이 다루는 현장의 장비 특성과 유지보수 환경에 맞는 언어를 적절히 선택하는 것이 효율적인 PLC 프로그래밍의 첫걸음입니다.