본문 바로가기

개발

OPC UA란 무엇인가 ㅡ 개발자의 시선으로 정리한 산업 자동화 표준

들어가며

지난번 OPC UA에서 인증서를 관리하는 기능을 개발하면서,

산업용 Device에서 인증서를 어떻게 다루는지에 대해 공부할 기회가 있었다.

 

두 달이 지난 시점에서, 산업 자동화 시스템의 표준으로 자리 잡은 OPC UA에 대한 내용을 정리해 보려 한다.

나는 약 한 달간 2022년 6월에 발간된 <OPC UA 기술> 책을 중심으로 공부했다.
어드레스 스페이스 모델, 표준 정보 모델, 도메인 특화 정보 모델과 같은 핵심  개념을 익히고,
실제 구현을 목표로 전체 아키텍처를 살펴보는 데 집중했다.
https://blog.aladin.co.kr/Bbird/16907600

https://prejudice.tistory.com/9

 

산업용 제어 장치에서의 인증서 처리와 OPC UA 보안 이해하기

들어가며지금 진행 중인 프로젝트에 OPC UA Server 기능 개발 요구가 있어서 공부하게 됐다.OPC UA(Open Platform Communications Unified Architecture)는 산업용 제어 장치들끼리 데이터를 주고받는 기능으로인증

prejudice.tistory.com


OPC UA의 탄생 배경

OPC UA의 출발점에는 산업 자동화 환경의 변화가 있다.

 

1990년대 후반 공장 자동화가 확산되면서 PLC, DCS, SCADA 등의 인터페이스를 통합하려는 시도가 이어졌고,

그 결과 OPC Classic이 등장했다.

 

당시 산업 현장은 Windows 기반 환경이 주를 이루고 있었기 때문에, OPC Classic은 COM/DCOM 기반으로 개발됐다.

이로 인해 네트워크 확장성과 플랫폼 독립성 측면에서 분명한 한계가 존재했다.

 

이후 공장의 원격화, 대규모 데이터 수집, AI 기반 분석 등 산업 환경이 변화하면서, 기존 구조로는 요구사항을 충족하기 어려워졌다.

이에  *OPC Foundation은 기존 OPC Classic과의 호환성에 얽매이지 않고,

플랫폼 독립성과 보안을 전제로 한 새로운 표준으로 OPC UA를 설계했다.

*OPC Foundation은 OPC UA 표준을 개발·관리하는 비영리 재단으로, 기술 문서화, OPC UA Library 제공, OPC 인증 프로그램 운영 등을 통해 생태계 확산을 지원한다.


OPC UA란 무엇인가?

OPC UA는 산업 공장을 구성하는 장치들이 소통하는 시스템이다.

현대의 공장은 HMI, SCADA, PLC, Sensor 등 다양한 장비와 운영체제(Linux, Windows, RTOS)가 복잡하게 연결되어 있다.

다양하게 연결된 공장 통신 예시

 

예를 들어 그림과 같은 환경에서 Linux SW를 개발한다고 가정하면,

각 장비에 맞는 통신 드라이버를 개별적으로 구현해야 한다.

 

하지만 모든 장비가 OPC UA를 지원한다면, 하나의 표준 인터페이스를 통해 시스템을 통합할 수 있다.

이는 시스템 구조를 단순화하고 유지보수 비용을 크게 줄여준다.


OPC UA Stack 구조

또 그림을 보면 Linux와 Windows는 다른 OS이며

Sensor와 HMI, SCADA와 같은 장비는 통신 프로토콜이 다를 수 있다는 것을 유추할 수 있다.

OPC UA Stack (계층구조)

 

그림과 같이, OPC UA는 OS, 네트워크, 보안 레이어를 명확히 분리한 계층 구조를 가진다.

이 구조 덕분에 특정 운영체제나 통신 방식에 종속되지 않는 플랫폼 독립성을 확보할 수 있다.

 

또한 환경에 따라 Stack 구성을 선택하거나 변경할 수 있어,

성능 요구사항이 서로 다른 임베디드 환경에서도 유연하게 대응할 수 있다.

 

요약하면 OPC UA Stack은

플랫폼 독립성, 보안, 확장성을 동시에 만족시키기 위해 계층을 명확히 분리한 구조라고 볼 수 있다.

이러한 특성 덕분에 OPC UA는 Indurstry 4.0 시대의 핵심 표준으로 자리 잡았다.


OPC UA는 단순한 프로토콜이 아니다

처음 OPC UA를 접했을 때는 단순한 산업용 통신 프로토콜로 생각하기 쉽다.

하지만 실제로는 그보다 훨씬 더 넓은 범위의 개념을 담고 있다.

 

OPC UA는 통신뿐 아니라 다음과 같은 요소들을 표준화하고, 시스템을 훨씬 일관적으로 볼 수 있다.

  • 데이터가 관리되는 구조
  • 데이터를 표현하는 방법
  • 보안 정보
  • 요청 및 응답 과정
  • 내부적으로 동작하는 방법

이를 OPC UA관점에서 정리하면 다음과 같다.

  • 데이터 구조 → 어드레스 스페이스 모델
  • 데이터를 표현 → 표준 정보 모델, 도메인 특화 정보 모델
  • 보안 → 인증 / 보안 프로토콜
  • 통신 패턴 → Server-Client 패턴, Chain Server 패턴, Server-Server 패턴
  • 내부 동작 → Pub-Sub 구조, 이벤트 및 메시지 기반 처리 구조

이처럼 OPC UA는 개념 모델부터 실제 구현 방식까지 포괄하는 시스템적 표준이다.

 

물론 학습해야 할 범위가 넓고 구조가 무겁다는 단점도 존재한다.

그럼에도 불구하고 높은 보안성을 요구하는 Factory Automation 시장동향, 산업용 Device 간의 운용성은

공장 자동화 산업 수요와 일치하는 큰 장점이다.


회고 ㅡ 개발자의 시선으로 본 OPC UA

Embedded 개발자의 관점에서 보면 OPC UA는 한 번 잘 만들어두면 모든 장비와 연결할 수 있는 강력한 인터페이스다.

 

로컬 데이터를 어드레스 스페이스 모델에 맞게 변환해야 하고,

인증서 기반 보안을 구현하기 위해 관련 프로토콜을 공부해야 하는 부담은 있다.

 

하지만 OPC Foundation에서 공식 Client/Server 라이브러리를 제공하고 있어, 초기 진입 장벽은 생각보다 높지 않다.

 

완성된 소프트웨어는 OPC Foundation이 운영하는 OPC UA Compliance Certification 프로그램을 통해 인증을 받을 수 있다.

아직 직접 경험해 보지는 못했지만, 임베디드 개발자로서 내가 만든 제품에 OPC UA 인증 마크가 붙는 순간은 꽤 감동적인 순간일 것 같다.

 

산업 표준을 책을 통해 공부한 적은 처음인데, 선배 공학도들의 깊이 생각한 아이디어를 배우고

OPC Foundation에서 실제 운영되는 시스템을 보면서 공부할 수 있어 재밌었다.

부족한 부분이나 더 궁금한 주제가 있다면 댓글로 남겨주세요.
직접 공부해서 다음 글로 정리해 보려고 합니다.