IT 지식/OPCUA

OPCUA 통신 쉽게 알기 - 1편 OPC 란 무엇인가

셔니아빠. 2020. 2. 5. 16:38

 OPCUA 서버와 클라이언트를 개발하고 나서 관련 강의를 들으러 다니다 보니 실제 현장의 요구 만큼의 교육을 받기가 힘들어서 블로그에 글을 남겨보려고 합니다. 이런 분들에게 도움이 되길 바랍니다. 

 

 - PLC 데이터를 상위시스템에서 받고 싶은 엔지니어

 

 - 상위시스템 개발시 PLC와 인터페이스 하는법에 대해서 궁금한 개발자

 

 - 스마트공장을 위해 아키텍처를 구성해야 되는 관리자 등등

 

간단한 프로그램 소스와 구조에 대해서도 여력이 된다면 적어보겠습니다.

제가 기술한 내용들은 제가 경험한 특정 케이스에 대한 내용이니 보고 현장에 맞게 응용해서 이해하시면 됩니다. 

기본적으로 아주 쉽게 설명할 수 있도록 최대한 노력하겠습니다!

 


1. OPC 란 무엇인가?

 

 OPC(OLE for Process Control) 의 약자입니다. 표준화된 통신 프로토콜입니다. OPC Foundation 에 의해서 관리되고 있습니다. 기존에 약자를 따르는 통신이 OPCDA 즉 OPC Classic 이라고 합니다. 그리고 OPCUA로 발전하면서 (Open Platform Communications Unified Architecture)로 변경되었습니다. 개방형 플랫폼 커뮤니케이션 통합 아키텍처라는 뜻이네요. 머리 아프실 수 있는데 최초에 OPC Classic 의 개념이 나와서 윈도우 환경에서만 돌아가는 버전이 OPC-DA 입니다. 그래서 DCOM 으로 통신을 하기 때문에 포트도 지정 되어있지요. 외부에서 접속하기에 설정도 까다롭습니다.  만약에 독자분께서 일하고 계신 환경에서 PLC에 OPC 기능이 들어있다고 한다면 그것은 UA가 들어간것 입니다. PLC에 윈도우를 설치할 수는 없으니까요. OPCUA와 DA의 차이는 다음편에서 설명 드리겠습니다.

 

 

OLE - OLE는 윈도우의 각각의 객체(Object)를 응용프로그램에서 다양하게 사용할 수 있는 (Object Linking & Embedding) 기능을 의미합니다.

 

DCOM - (Distributed Component Object Model, DCOM) 으로 네트워크 컴퓨터 사이에 컴포넌트 간 통신을 위한 마이크로 소프트 기술을 의미합니다. 

 

통신프로토콜 - 통신을 원하는 서로 다른 시스템이 어떤 식으로 어떻게 통신할 것인가를 정하는 규범입니다. 쉽게 말하자면 군대에서 암구호 처럼 서로 대화하기 전에 암구호 주고받고 대화하는 것 같이요. 깊게 들어가면 어려우나 쉽게 생각하면 어렵지 않습니다. 어떤 데이터를 주고받을 건지, 언제 주고받을 건지, 최대 얼마나 주고 받을 건지 같은 것을 지정해 놓습니다. 

 

2. OPC 의 목적이 무엇인가?

 

 밑에 그림과 같이 PLC는 제각각의 프로토콜로 통신을 합니다. 결국 PLC의 데이터를 상위시스템으로 인터페이스를 하기위해서는 PLC 별로 통신 드라이브를 구축해야합니다. 아래 그림 1을 참고해봅시다.

그림 1. 각기 다른 PLC와 통신 연결시 구성도

물론 그림 1. 과 같이 시스템을 구성할리는 없겠지요. 극단적인 예를 들어보았습니다. 생산장비 1대에 PLC가 1대가 있는데 그 PLC의 제품이 모두 다르다면 어떻게 될까요? 각각 다른 통신 프로토콜 별로 통신을 해야 되는 상황이 옵니다. 그래서 많은 HMI 회사들이 상위 시스템으로 데이터를 보내줄때 많은 드라이버들을 제공하고 있습니다. 그럼 OPC로 구성하게 되면 어떻게 되는지 그림2. 로 보겠습니다. 

그림 2. OPC를 구축하였을 경우 

자 그럼 이런 질문이 생길 수 있을겁니다. 결국 OPC 서버가 프로토콜 통신을 해주면서 서버와 클라이언트 구조로 바뀐것 밖에 없는데 시스템 차원에서 어떠한 이득이 있을까요.

뭐가 다른지 다음편에서 이야기 해보도록 하겠습니다.