INDUSTRY / 전기·제어

PLC·HMI·SCADA

PLC의 판단, HMI의 조작·표시, SCADA의 통합 감시. 펌프가 자동으로 켜지는 과정을 따라 세 가지의 역할을 알아봅니다.

01. 물탱크 하나를 자동으로 채우려면

물탱크의 물이 줄면 펌프를 켜고, 충분히 차면 끈다고 생각해 봅시다. 사람이 계속 수위를 지켜보며 스위치를 누를 수도 있지만, 자동으로 하려면 수위를 알아내는 장치, 켤지 판단하는 장치, 실제로 펌프를 움직이는 장치가 필요합니다.

수위센서가 현재 상태를 전달하면 PLC가 프로그램에 정해진 조건을 판단합니다. 그 결과를 받아 접촉기나 인버터가 모터에 전력을 공급하고, 모터가 펌프를 돌립니다. PLC가 물을 밀어 올리거나 모터의 큰 전력을 직접 만들어 내는 것은 아닙니다.

여기에 사람이 상태를 보고 설정을 바꾸는 창구를 붙이면 HMI입니다. 여러 탱크와 펌프의 상태, 경보, 과거 기록을 한곳에 모아 관리하는 시스템으로 넓히면 SCADA가 등장합니다. 셋은 서로 대체하는 이름이 아니라 서로 다른 역할을 맡습니다.

참고: [1][4][5]

판단하는 장치와 보여 주는 화면은 다릅니다

사람의 조작·표시HMI

현재 수위 · 운전 요청 · 정지 사유

↓ 요청·설정 ↑ 값·상태
통합 감시·기록SCADA

여러 설비 · 추세 · 경보 이력

↓ 상위 명령 ↑ 현장 데이터

HMI와 SCADA는 통신을 통해 아래의 PLC와 데이터를 주고받습니다.

측정센서

수위·압력·온도

입력
판단PLC

조건 확인 · 출력 결정

명령
구동접촉기·인버터

모터 구동 → 펌프 회전

선과 화살표는 정보의 방향입니다. 모터의 동력 전원은 이 통신·신호 경로와 별도로 공급됩니다. HMI를 거쳐야만 SCADA에 연결되는 것은 아닙니다.

02. PLC — 현장 신호를 읽고 동작을 결정하는 제어기

PLC는 Programmable Logic Controller, 즉 프로그램으로 제어 조건을 정하는 산업용 제어기입니다. 사람이 작성한 프로그램과 들어오는 신호를 바탕으로 출력을 결정합니다. 스스로 의도를 추측하는 인공지능이 아니라, 정해 둔 논리를 반복 실행하는 장치입니다.

제어반 안에서는 전원부, CPU, 입출력 단자 또는 모듈, 통신 포트로 구성된 모습을 볼 수 있습니다. 작은 PLC는 이를 한 몸체에 담고, 모듈형 PLC는 필요한 입출력 모듈을 옆에 더합니다. 외형이 달라도 입력을 읽고 판단해 출력을 내보낸다는 기본 역할은 같습니다.

전원부
CPU와 전자회로가 동작할 전원을 제공합니다. PLC 전원과 모터 구동 전력은 역할이 다릅니다.
CPU·메모리
프로그램을 실행하고 수위, 운전 모드, 타이머 상태 같은 값을 다룹니다. 전원 차단 뒤 어떤 값이 유지되는지는 기종과 설정에 따라 다릅니다.
입력부·출력부
현장의 전기 신호와 CPU가 다루는 데이터를 이어 줍니다. 입력은 읽는 쪽, 출력은 명령을 보내는 쪽입니다.
통신부
HMI, 다른 제어기, 원격 입출력, 드라이브 등과 데이터를 주고받습니다. 모든 신호가 PLC 본체의 단자에 직접 꽂혀야 하는 것은 아닙니다.

참고: [1][2][9]

03. 입출력 I/O — 켜짐과 숫자를 구분하기

I/O는 Input/Output의 줄임말입니다. 여기서 입력과 출력은 PLC를 기준으로 읽습니다. 같은 펌프에도 PLC에서 나가는 운전 명령과 PLC로 들어오는 운전 확인 신호가 함께 있을 수 있습니다.

디지털은 보통 참/거짓처럼 두 상태를, 아날로그는 수위·온도처럼 크기가 변하는 양을 다룹니다. 아날로그 입력에서는 센서 범위와 단위를 맞춰야 숫자의 의미가 생깁니다. 아래는 단자형 입출력의 예이며, 같은 정보를 통신 데이터로 주고받기도 합니다.

DI · 디지털 입력
“수위 스위치가 감지했나?”, “접촉기 보조접점이 들어왔나?”처럼 두 상태를 읽습니다.
DO · 디지털 출력
중계 릴레이나 접촉기 제어회로에 켜기·끄기 명령을 보냅니다. 산업용 모터의 주전력을 직접 공급하는 단자가 아닙니다.
AI · 아날로그 입력
수위계·압력계 등에서 크기가 변하는 신호를 받습니다. 이때 AI는 인공지능이 아니라 Analog Input입니다.
AO · 아날로그 출력
인버터의 속도 지령이나 조절밸브의 개도 지령처럼 연속적인 목표값을 전달합니다. 실제 속도·개도가 목표와 같은지는 별도 피드백으로 확인합니다.

참고: [1][9]

04. 스캔 — 한 번 판단하고 끝나는 것이 아닙니다

PLC는 운전 중 입력 상태를 갱신하고, 프로그램을 실행하고, 계산한 결과를 출력에 반영하는 일을 반복합니다. 이 반복을 스캔이라고 부릅니다. 물이 줄거나 운전 조건이 바뀌면 다음 처리 과정에서 판단도 바뀝니다.

입출력의 값을 임시로 담아 두는 영역을 프로세스 이미지라고 합니다. 프로그램은 보통 이 영역의 값을 이용하지만, 직접 입출력 접근이나 주기·이벤트 태스크를 쓰는 구성도 있습니다. 모든 PLC가 모든 신호를 정확히 같은 순간에 처리한다고 생각하면 안 됩니다.

예를 들어 S7-1200의 기본 순환 처리에서는 이전 결과의 물리 출력 반영 후 입력 갱신과 프로그램 실행이 이어집니다. 따라서 “입력 → 판단 → 출력”은 기능을 이해하는 순서이지 모든 제조사에서 고정된 실행 순서라는 뜻은 아닙니다.

화면 갱신은 PLC의 판단 주기와도 다릅니다. PLC가 이미 값을 바꾸었더라도 통신과 화면 갱신을 거쳐야 사람이 새 값을 봅니다. 화면이 조금 늦게 바뀐다고 제어가 그때 처음 실행된 것은 아닙니다.

참고: [2]

05. 래더 — 제어 조건을 읽는 그림 언어

래더 다이어그램(Ladder Diagram, LD)은 사다리처럼 생긴 PLC 프로그래밍 언어입니다. 두 세로선 사이에 놓인 가로줄을 렁(rung)이라 부르고, 그 줄에 조건과 처리 결과를 표현합니다. 릴레이 회로와 닮았지만 화면 속 선에 실제 모터 전류가 흐르는 배선도는 아닙니다.

접점 모양의 명령은 “이 데이터가 참인가?” 같은 조건을 검사하고, 코일 모양의 명령은 논리 결과를 데이터에 반영합니다. 그 데이터는 실제 출력과 연결될 수도 있고, 프로그램 안에서만 쓰는 기억값일 수도 있습니다.

예를 들어 “자동 운전이고, 물 보충 요구가 있고, 운전 허가가 있으면 보충 운전 요청을 만든다”는 문장을 조건으로 표현할 수 있습니다. 단순 접점 논리에서 직렬 연결은 AND(모두 만족), 병렬 분기는 OR(어느 한 경로 만족)로 읽습니다.

타이머는 조건이 지속된 시간을, 카운터는 발생 횟수를 다룹니다. 숫자 비교 명령으로 수위가 기준보다 낮은지도 판단할 수 있습니다. 래더는 PLC 자체가 아니라 프로그램 표현 방법이며, 문자로 작성하는 ST나 기능 블록을 연결하는 FBD 같은 다른 언어도 있습니다.

참고: [3]

06. HMI — 사람과 설비가 만나는 조작·표시 창구

HMI는 Human-Machine Interface입니다. 제어반 문에 달린 터치패널이 익숙한 예지만, 산업용 PC나 다른 화면에서도 구현됩니다. 핵심은 화면 크기가 아니라 사람이 기계의 상태를 이해하고 필요한 조작을 전달하도록 돕는 역할입니다.

물탱크 화면이라면 현재 수위, 자동·수동 모드, 펌프 운전 상태, 정지 사유를 보여 줄 수 있습니다. 운전자가 설정값이나 운전 요청을 입력하면 해당 데이터가 제어기로 전달됩니다. 버튼을 눌렀다는 사실과 PLC가 조건을 확인해 실제로 출력을 냈다는 사실은 구분해야 합니다.

또한 설정값과 측정값은 다릅니다. 목표 온도가 20°C라고 표시되어도 실제 온도가 이미 20°C라는 뜻은 아닙니다. 운전 요청, 실제 피드백, 데이터 갱신 상태가 서로 구분되어야 화면을 잘못 읽지 않습니다.

HMI가 없더라도 푸시버튼과 표시등을 이용한 설비가 있을 수 있습니다. 반대로 화면과 PLC가 한 제품 안에 합쳐져 있어도 표시·조작 기능과 제어 기능은 역할로 나누어 이해하면 됩니다.

참고: [4][6]

07. SCADA — 여러 설비의 현재와 과거를 함께 보기

SCADA는 Supervisory Control And Data Acquisition의 약자로, 감시 제어와 데이터 수집을 뜻합니다. 현장의 PLC나 RTU(원격 단말 장치) 등에서 데이터를 모으고, 운영자가 전체 상태를 보며 필요한 명령을 내릴 수 있게 하는 시스템입니다.

펌프 한 대 옆에서 현재 수위를 보는 것을 넘어, 여러 동의 탱크 수위와 펌프 상태를 한곳에서 보고 “어제부터 수위 회복이 느려졌나?”, “어떤 경보가 먼저 발생했나?”를 살펴볼 수 있습니다. 현재값, 시간에 따른 추세, 사건 기록을 함께 보기 때문에 설비 사이의 관계를 이해하는 데 도움이 됩니다.

현장과 연결되는 통신 계층, 데이터를 처리하는 서버, 운영 화면, 필요에 따른 이력 저장소가 함께 구성됩니다. 이력을 저장하는 기능이나 시스템은 히스토리언(historian)이라고도 합니다. 저장 주기와 보관 범위는 설정에 따라 달라집니다.

SCADA가 반드시 인터넷이나 클라우드를 써야 하는 것은 아닙니다. 현장 내부망에서도 구성할 수 있습니다. 화면에서 내리는 상위 명령과 현장 제어기의 빠른 제어·보호 처리는 구분해서 봐야 합니다.

참고: [5][10]

세 이름을 역할로 기억하기

PLC · 제어
“지금 이 조건에서 무엇을 동작시킬까?”
현장 신호를 읽고 프로그램을 실행합니다.
HMI · 조작·표시
“사람이 어떻게 상태를 보고 요청할까?”
설비와 사람 사이의 창구가 됩니다.
SCADA · 통합 감시
“여러 설비가 지금, 그리고 그동안 어땠을까?”
데이터를 모으고 감시·기록·상위 조작을 지원합니다.

HMI와 SCADA는 기능이 겹칠 수 있고, SCADA의 운영 화면 역시 HMI입니다. HMI도 추세와 경보를 제공할 수 있으므로 “작은 화면은 HMI, 큰 화면은 SCADA”로 나누지 않습니다.

08. 태그·트렌드·알람 — 화면의 정보를 제대로 읽기

화면의 수위 숫자나 펌프 상태는 이름이 붙은 데이터와 연결됩니다. 이런 데이터 항목을 태그(tag)라고 부릅니다. 예를 들어 Tank.Level은 수위, Pump.RunRequest는 운전 요청, Pump.RunFeedback은 운전 확인을 가리키도록 정할 수 있습니다. 이름은 설계자가 정하므로 이름만 보고 실제 연결을 확정할 수는 없습니다.

트렌드는 값을 시간축으로 이어 보여 줍니다. 현재 수위가 같더라도 계속 떨어지는 중인지, 보충되며 회복 중인지에 따라 상황은 다릅니다. 통신 두절이나 저장 누락 구간을 정상적인 일정값으로 읽지 않도록 데이터 품질과 시간을 함께 봅니다.

알람은 정해진 이상 조건을 알려 주는 경보입니다. 발생, 정상 복귀, 확인(ACK)은 서로 다른 상태입니다. 확인은 운영자가 경보를 인지했다는 뜻이지, 고장이 수리되었거나 원인이 사라졌다는 뜻이 아닙니다.

통신이 끊기면 화면에 마지막 숫자가 남거나 오류 표시가 나타날 수 있습니다. 값이 그럴듯하다는 이유만으로 현재 측정값이라고 믿으면 안 됩니다. 마지막 갱신 시각과 통신·품질 상태를 확인해야 합니다.

참고: [6][7][10]

09. 펌프가 켜질 때, 명령과 피드백을 따라가기

다음은 상부 탱크를 채우는 자동 급수 설비에 세 역할을 적용한 예입니다. 실제 운전 조건은 설비별로 다르지만, 정보가 어디에서 와서 어디로 가는지를 구분하는 방법은 같습니다.

  1. 수위센서 → PLC: 상부 탱크의 수위가 낮아졌다는 정보가 들어옵니다.
  2. PLC 내부 판단: 자동 모드, 보충 요구, 공급 측 물 부족 여부 등 설계된 운전 조건을 확인합니다. 낮은 수위 신호 하나만으로 무조건 기동하는 것은 아닙니다.
  3. PLC → 구동장치: 허가된 운전 요청을 접촉기 제어회로나 인버터로 보냅니다. 모터의 동력 전원은 별도의 전력 경로로 공급됩니다.
  4. 구동장치·센서 → PLC: 접촉기 보조접점, 드라이브 상태, 유량·압력 같은 실제 신호가 돌아옵니다. 접촉기 ON만으로 물이 실제 흐른다고 단정할 수는 없습니다.
  5. PLC ↔ HMI: 사람은 수위와 상태, 동작하지 않는 이유를 봅니다. 운전 요청이 있어도 허가 조건이 맞지 않으면 기동하지 않을 수 있습니다.
  6. 현장 데이터 → SCADA: 설정된 항목의 추세와 경보를 모아 다른 탱크·펌프와 함께 봅니다. 과거 기록은 원인을 살펴볼 근거이지 그 자체로 원인을 확정하는 진단은 아닙니다.
  7. 수위 회복 → 정지 판단: 정지 기준에 도달하면 요청을 거둡니다. 기동·정지 기준에 간격을 두는 히스테리시스는 경계 부근의 잦은 켜짐·꺼짐을 줄이는 데 쓰입니다.

참고: [1][4][5]

10. 화면이 꺼지면 설비도 멈출까요?

반드시 그렇지는 않습니다. 현장 PLC가 독립적으로 제어하도록 구성되어 있다면 HMI나 SCADA가 꺼져도 제어가 이어질 수 있습니다. 그러나 통신 감시, 원격 허가, 고장 시 처리 방식에 따라 정지하도록 설계되기도 하므로 “항상 계속 운전한다” 또는 “항상 멈춘다” 둘 다 맞지 않습니다.

운전 허가 조건이나 동작을 막는 연동 조건을 인터록(interlock)이라고 부릅니다. 프로그램에 인터록이 있다는 것만으로 안전 기능이 검증된 것은 아닙니다. 일반 PLC 제어와, 안전용 제어기·입출력 등을 사용해 요구 성능을 검증한 안전 제어는 구분해야 합니다.

HMI의 정지 버튼은 설비의 에너지를 격리하는 장치가 아닙니다. 화면의 정지 표시만 보고 회전체나 전기부에 접근해서는 안 됩니다. 점검·정비에는 현장의 승인된 에너지 차단과 확인 절차가 필요합니다.

참고: [2][6][8]

참고자료

  1. Inductive Automation · PLC의 정의와 입출력
  2. Siemens · S7-1200의 스캔 주기
  3. Rockwell Automation · 래더의 명령·렁·분기
  4. Inductive Automation · HMI의 역할
  5. Inductive Automation · SCADA의 구성과 역할
  6. Ignition 매뉴얼 · 태그의 값과 데이터 품질
  7. Ignition 매뉴얼 · 경보 발생·해제·확인
  8. Siemens · 표준 제어와 안전 제어
  9. Siemens · PLC의 입출력·통신 모듈
  10. Ignition 매뉴얼 · 이력 데이터와 저장

이어서 살펴보기