스카다

시스템 개념도

스카다라는 용어는 특정 산업현장 전체, 또는 지리적으로 넓게 퍼져있는 산업 단지를 전반적으로 감시하고 제어하는 집중화된 시스템을 주로 일컫는다. (여기서의 산업 현장과 단지는 공장에서 국가까지 어떤 것이라도 상관없다.) 대부분의 제어 동작은 RTU와 PLC에 의해 자동으로 이루어지며, 운영자가 내릴 수 있는 제어 명령은 보통 기본적인 작업 변경이나 관리 수준의 작업 조정에 한한다. 예를 들어, 어떤 PLC가 특정 작업 공정에 사용되는 냉각수의 흐름을 조절한다면, 스카다 시스템은 그 흐름의 세부 설정을 바꾼다거나, 냉각수 손실이나 온도 등에 대한 경보를 표시하고 기록하도록 설정하는 정도의 작업을 허용하게 된다. 그리고 Feedback 신호는 RTU와 PLC에 전달되지만, 스카다 시스템은 그 Feedback 신호의 전체적인 성능을 관장하게 된다.
데이터 취득은 RTU나 PLC에서 시작되며, 스카다 시스템이 필요로 하는 계측기 수치를 읽거나 각 장비의 상태를 보고하는 작업 등이 여기에 해당된다. 이렇게 얻어진 자료들은 관제 센터에서 HMI를 사용하는 운영자가 시스템 관리를 위해 적절한 판단을 내릴 수 있도록 사람이 이해할 수 있는 형태로 알맞게 변환된다. RTU나 PLC는 이렇게 운영자가 내린 결정에 의해 명령이 변경되거나 조정된다. 한편 이 자료들은 별도의 데이터베이스와 연결된 히스토리안(영어: Operational Historian)에 전달되어 쌓이기도 하는데, 이렇게 누적된 자료들은 데이터 동향 분석(영어: Trending)이나 기타 분석적인 연구 및 감사에 사용되게 된다.
스카다 시스템은 보통 분산형 데이터베이스를 가지고 있으며, 태그나 포인트라고 불리는 데이터를 가지고 있기 때문에 보통 태그 데이터베이스(영어: Tag Database)로 일컬어진다. 포인트는 시스템에 의해 감시/제어되는 하나의 입력 또는 출력부를 말한다. 이 포인트는 "하드" 포인트가 될 수도 있고 "소프트" 포인트가 될 수도 있는데, 말 그대로 하드 포인트는 시스템에서 실제로 존재하는 입력이나 출력을 의미하며, 소프트 포인트는 다른 포인트에 작용하는 형태의 산술/논리 연산자 역할을 하는 것이다. (실질적으로는 모든 값을 소프트 포인트를 통해 나타내는 방식으로 이러한 구분을 필요없게 하고 있다. 이때 가장 간단한 표현은 한 개의 하드 포인트가 될 것이다.) 포인트는 일반적으로 값-타임스탬프(값이 기록/계산된 시각)의 짝으로 기록되며, 이 값들을 나열하게 되면 그것이 그 포인트의 이력이 된다. 태그에 추가적인 메타데이터를 함께 저장하는 것도 일반적인데, 현장의 실제 장치의 위치나 PLC 레지스터, 설계 단계의 주석이나 경보와 관련된 정보가 이런 방식으로 추가될 수 있다.

인간-기계 인터페이스

인간 기계 인터페이스(HMI)는 작업 공정에 연관된 데이터를 인간이 인지할 수 있는 형태로 나타내고, 이를 통해 해당 공정을 제어할 수 있도록 돕는 도구를 말한다.
HMI는 보통 스카다 시스템의 소프트웨어 및 데이터베이스와 연결되어 있으며, 공정에서 발생하는 각종 데이터와 이를 이용한 추세 분석 기능 등을 제공한다. 이외에 해당 공정이나 설비에 대한 관리 정보도 제공되는데, 예컨대 미리 예정된 유지 보수 일정이나 물류 정보, 특정 센서나 기계에 대한 자세한 도해, 전문가 시스템에 대한 문제 해결 도움말 등이 있다.
이런 정보는 해당 공정을 단순화시킨 다이어그램 형태로 운영자에게 제공되므로, 운영자는 전체 공정이 어떤 방식으로 동작하고 제어되는지를 간단히 알 수 있게 된다. 예를 들어, 파이프와 연결된 펌프의 그림은 현재 그 펌프가 동작중이라는 사실과, 현재 얼마만큼의 유속을 제어하는지를 보여준다. 이때 운영자가 펌프를 끈다면, HMI 소프트웨어는 곧 해당 파이프의 유속이 감소하는 것을 실시간으로 보여주게 된다. 이렇게 사용되는 단순화된 다이어그램은 해당 공정의 요소를 나타내는 선(線)과 심벌(영어: Symbol)로 구성될 수도 있고, 각각의 장비를 나타내는 디지타이즈된 사진을 애니메이트된 심벌과 조합시킨 형태로 쓰이는 경우도 있다.
이렇게 사진, 그림, 애니메이션이 HMI에서 많이 쓰이기 때문에, HMI프로그램은 대개 그래픽 관련 작업을 담당하는 프로그램을 포함하고 있다. 이를 통해 운영자나 시스템 유지보수 담당자가 각 공정과 장비가 어떤 방식으로 HMI프로그램에 표시될지를 직접 바꾸고 결정할 수 있다. HMI의 그래픽은, 신호등처럼 간단하게 도식화할 수 있는 것부터 시작하여, 마천루의 모든 엘리베이터나 선로의 모든 기차를 다중 투사방식으로 한번에 나타내는 매우 복잡한 수준에 이르기도 한다.
한편, 스카다 시스템을 적용할 때 가장 중요한 것은 경보(영어: Alarm) 처리이다. 스카다 시스템은 경보 발생 조건을 항상 감시하며 경보 발생 시각을 결정한다. 경보가 발생하면 운영자가 이 사실을 인지할 수 있어야 하므로 경보 표시기를 켜거나, 전자우편을 발송하거나, 문자 메시지를 전송하는 등의 어떤 조치가 취해지게 된다. 보통 이 과정에서 운영자는 경보를 "인지"(영어: Acknowledgement)하는 조작을 하게 되는데, 이 때 경보의 발생 조건에 따라 경보 표시기가 바로 꺼지기도 하고, 문제가 해결될 때까지 일부가 켜진 채로 남아있기도 한다. 경보 발생 조건은 아날로그/디지털 태그 데이터와 수식으로 결정되는 "정상"과 "비정상" 상태를 그대로 경보에 이용할 정도로 직관적일 수도 있고, 어떤 아날로그 태그 데이터에 대해 정상 동작 범위를 정해놓고 스카다 시스템이 이를 감시하다 값이 해당 범위를 벗어나면 경보 상태로 간주하는 형태처럼 복잡한 형태일 수도 있다.
경보 표시기의 예로는 사이렌, 팝업 창, 화면상의 특정 영역의 색변화나 깜빡임 등이 있으며, 어떤 형태이든 목적은 운영자가 경보 발생 사실을 효과적으로 인지하고 대응 작업을 할 수 있게 돕는 것이다. 따라서 스카다 시스템을 설계할 때에는 짧은 시간에 많은 경보를 발생시킬 경우 중첩된 경보가 무시되는 일이 발생하지 않도록 주의해야 한다. 또한, 스카다 시스템에서는 "경보"(Alarm)라는 단어는 문맥에 따라 경보 포인트(태그), 경보 표시기, 경보 이벤트 등의 여러 가지 의미로 사용되기 때문에 혼동할 여지가 있으므로 역시 주의할 필요가 있다.

하드웨어 솔루션

스카다 솔루션은 분산 제어 시스템(영어: Distributed Control System, DCS)을 하위 구성요소로 포함하고 있는 경우도 있다. 중앙 컴퓨터의 개입 없이 일정 수준의 논리 연산을 자동으로 수행할 수 있을 정도로 발전한 RTU나 PLC를 사용하는 일이 점점 늘어나고 있으며, 표준화된 제어용 프로그래밍 언어인 IEC 61131-3(함수 블록, 사다리 연산, 구조화된 텍스트, 순차 함수 차트, 명령 리스트)이 이런 용도로 많이 사용된다. C 언어나 포트란등의 절차적 프로그래밍 언어와는 다르게, IEC 61131-3은 기존에 많이 사용되어온 물리 제어 배열(영어: Physical Control Array)을 사용하는 것과 유사한 수준의 최소한의 교육만을 필요로 한다. 따라서 스카다 시스템 기술자들이 RTU나 PLC용 프로그램의 설계와 구현을 모두 할 수 있게 된다. 프로그램 가능한 자동화 제어기(영어: Programmable Automation Controller, PAC)는 퍼스널 컴퓨터 기반의 제어 시스템과 PLC의 기능을 조합시켜 간편하게 쓸 수 있도록 만든 것이다. PAC도 스카다 시스템을 통해 RTU나 PLC가 하는 일을 수행할 수가 있다. 변전소에서 운용되는 스카다 시스템의 경우, "분산된 RTU"는 정보 처리기(영어: Information Processor)나 변전소 시설 내의 컴퓨터를 디지털 보호 릴레이(영어: Digital Protective Relay), PAC, 입출력 장치 등과 통신하기 위해 사용하며, 스카다 시스템을 통한 일반적인 RTU의 역할도 하게 된다.
대략 1998년 이후로, 거의 모든 주류 PLC 제조사들이 HMI/SCADA 시스템을 개발/공급하게 되었으며, 많은 수의 공개 또는 비 독점적 통신 프로토콜을
지원하였다. 하드웨어 개발 회사 이외에 수많은 HMI/SCADA 전문 회사들도 독자적인 상품을 공급했으며, 대부분의 주류 PLC에 대한 호환성을 갖추고 있었다. 이렇게 상용화된 제품을 통해, 소프트웨어 기술자에 의해 개발된 특정 공정에 대한 맞춤형 프로그램이 없이도 기계 기술자, 전기 기술자 등이 스스로 HMI의 환경 설정을 할 수 있게 되었다.

원격 단말 장치

원격 단말 장치(RTU)는 물리적인 장비와 연결되어 해당 장비가 인지하거나 출력할 수 있는 전기 신호를 컴퓨터가 이해할 수 있는 디지털 신호로 상호 변환하는 역할을 한다. 스위치나 밸브의 개폐상태, 압력 측정값, 액체 등의 흐름, 전압, 전류 등이 여기에 해당된다. 따라서 RTU는 장치가 이해할 수 있는 적절한 전기 신호를 발생시켜 밸브나 스위치를 여닫거나 펌프의 속도를 조절하고, 액체의 흐름을 제어하는 일도 가능하다.

관제 스테이션

관제 스테이션(영어: Supervisory Station)은 RTU나 PLC등의 현장 장비와의 통신을 담당하는 서버와 소프트웨어를 일컫는다. 제어실 등의 워크스테이션에서 동작하는 HMI소프트웨어를 의미하기도 한다. 규모가 작은 시스템에서는 한 대의 PC로 마스터 스테이션을 구성하기도 한다. 좀 더 규모가 커지면 마스터 스테이션은 다중 서버, 분산 처리가 가능한 소프트웨어, 재난 복구 기능 등을 모두 포함하게 되기도 한다. 이런 시스템의 무결성을 높이려면, 다중 서버는 이중 예비 시스템(영어: Dual-Redundant) 또는 상시 대기 방식(영어: Hot-Standby)등으로 구현되며, 이를 통해 장애 발생시에도 안정적으로 제어와 감시를 할 수 있게 된다.

운전 철학

제어 시스템의 장애로 생기는 손해액이 매우 큰 경우도 있으며, 생명을 잃게 되는 경우도 있다. 그래서 일부 스카다 시스템의 하드웨어는 기온, 진동, 전압 변동 등에 대해 높은 내구력을 갖도록 설계되며, 극도로 중요한 시스템에 대해서는 복수의 완전한 제어 센터를 가지게 되는 수준으로 예비 하드웨어와 통신 채널을 구성함으로써 안정성을 높인다. 장애가 일어날 경우 빠르게 해당 위치가 파악되며, 해당 기능은 백업 하드웨어 쪽으로 자동으로 인계되며, 장애가 일어난 부분을 전체 공정을 멈추지 않고도 교체할 수 있게 되어 있는 경우도 있다. 이런 시스템의 안정성은 통계적으로 계산될 수 있으며, 평균 고장 간격(영어: Mean time between failures)의 변형인 평균 고장 시간(영어: Mean time between failure)으로 나타낼 수 있다. 이러한 고 안정 시스템의 평균 고장 시간은 수 백년 단위에 이른다.

통신 환경 및 방법

스카다 시스템은 유선과 무선 통신을 모두 이용해왔고, 동기식 광통신망(영어: Synchronous Optical Networking, SONET/SDH)도 철도나 발전소처럼 대규모의 시스템에 많이 사용되었다. 스카다 시스템의 원격 관리나 감시 기능을 원격측정법의 일종으로 보기도 한다. 일부 유저들은 스카다 데이터를 미리 구축해놓은 사내망을 통해 전송하거나, 다른 응용 프로그램과 해당 망을 공유하기도 한다. 과거의 저속망에 적합한 프로토콜이 여전히 남아있는 경우도 있다.
스카다 시스템에 사용되는 프로토콜은 가볍게 동작할 수 있는 형태로 설계된다. 마스터 스테이션이 RTU의 데이터를 주기적으로 검사하려 할 때에만 정보를 전송하는 경우가 많다. 널리 사용되는 구형 프로토콜로는 모드버스 RTU, RP-570, 프로피버스(영어: Profibus), 코니텔(영어: Conitel) 등이 있다. 이 통신 프로토콜들은 모두 스카다 공급사에 의존적인 형태이긴 하지만, 지금까지 널리 보급되고 사용되었다. 표준 프로토콜로는 IEC 60870-5-101 또는 104, IEC 61850, DNP3 등이 있다. 이 프로토콜들은 모든 유명 스카다 공급사들에 의해 지원되고 표준화되었다. 한편, 현재 이 프로토콜들의 대부분은 TCP/IP를 지원하기 위한 확장 기능도 갖추고 있다.
한편, 보안 측면에서는 외부로부터의 공격 가능성을 낮추기 위해 스카다 시스템을 인터넷에 연결하지 않는 것이 좋다는 의견이 있다. 그러나 현재 상하수도 설비 등 여러 현장에서는 관리 목적으로 셀 무선 통신망을 이용하고 최종 소비자에게 데이터를 전달하는 등의 목적으로 인터넷 포털과 연동을 해오고 있다. 이 때 무선망으로 전송되는 데이터는 인터넷으로 전달되기 전에 암호화된다.
최근, 미국의 북미 전기 신뢰성 협회(영어: North American Electric Reliability Corporation, NERC)나 주요 기반시설 보호(영어: Critical Infrastructure Protection, CIP) 등의 예처럼 보안의 중요성이 증가함에 따라, 위성 통신을 사용하는 경우도 늘어나고 있다. 이 경우의 장점은 독립적인 통신 기반시설을 갖출 수 있다는 것, (즉 공중 전화망을 이용하지 않음) 자체적인 암호화 기법을 사용할 수 있다는 것, 신뢰성과 가용성을 스카다 시스템 운용자가 원하는 만큼 갖출 수 있다는 것이다. 과거 일반 소비자 등급의 초소형 위성 기지국을 이용한 시도는 결과가 좋지 않았다. 최근의 캐리어 등급(영어: Carrier-grade)을 만족하는 시스템은 스카다가 필요로 하는 수준의 성능을 제공하고 있다.
RTU 및 기타 자동 제어 장치들은 상호 운용 가능성에 대한 산업 표준의 시대가 도래하기 전에 개발되었다. 이때문에 개발자와 관리자들은 수많은 제어 프로토콜을 만들어내게 되었다. 대형 업체들 역시 고객을 유지하기 위해 자신만의 고유프로토콜을 사용하는 경향이 있었다. 하지만 최근에는 공정 제어를 위한 OLE(영어: OLE for Process Control, OPC) 프로토콜이 각종 하드웨어, 소프트웨어간의 통신을 위해 널리 사용되고 있다. 이를 이용하면 산업망과의 연동을 고려하지 않은 장치끼리도 상호 통신을 할 수 있게 된다.

스카다의 동작구조

스카다 시스템은 다음과 같은 3세대를 거쳐 발전해왔다.

1세대: "모놀리식"

1세대에서는 전산 작업은 메인프레임 컴퓨터를 통해 이루어졌다. 스카다가 처음 배치되던 때에는 네트워크는 존재하지 않았으며, 당연히도 스카다 시스템은 독립적으로 동작하는 형태였으며 다른 시스템과의 연동은 없었다. 이후에 RTU 공급사들에 의해 RTU와의 통신을 위한 광역 통신망이 개발되었고, 당시 사용된 통신 프로토콜은 특정 구성 전용으로 사용되는 독점적인 형태인 경우가 흔했다. 1세대 스카다 시스템은 예비 구성이 가능했는데, 백업 메인프레임 시스템이 버스 수준으로 연결되어 있었고 주 메인프레임에 문제가 생겼을 때 이것이 대신 사용되었다.

2세대: "분산처리"

근거리 통신망에 의해 여러 개의 스테이션으로 처리과정이 분산되었으며, 실시간으로 정보가 공유되었다. 각 스테이션은 각각의 특정한 작업을 담당하게 되었고, 이를 통해 각각의 스테이션 구성에 들어가는 비용은 1세대 당시의 그것보다 저렴해지게 되었다. 통신 프로토콜은 여전히 독점적 형태가 많았기 때문에, 해커의 표적이 되었을 경우 심각한 보안 문제가 있었다. 당시의 프로토콜은 폐쇄적인 구조였기 때문에 개발자와 해커 정도를 제외하면 스카다 시스템에 대한 보안을 강화하는 방법을 알기가 어려웠다. 미국의 경우 당시의 양당은 보안 문제 자체를 알리지 않는 방식으로 보안을 유지하려 했기 때문에, 스카다 시스템의 보안 능력은 마치 이미 대비가 되어있기라도 한 것처럼 과대평가되었다.

3세대: "네트워크"

표준 프로토콜이 사용되고 많은 수의 스카다 시스템이 인터넷으로 접근 가능하기에, 네트워크를 통한 원격 공격에 잠재적으로 취약하다고 할 수 있다. 반면에, 표준 프로토콜 및 보안 기술을 사용한다는 것은 표준화된 보안 강화 기술들이 스카다 시스템에도 적용될 수 있음을 의미하기도 한다. 물론 여기에는 이 시스템들이 주기적으로 유지보수 및 업데이트를 받아야 한다는 전제가 있다.