https://red-nose-cousin.tistory.com/2
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를 구축하였을 경우
3. OPC를 도입해야 하는 이유
지난 글 마지막에서 다루었듯이 프로토콜 통신이 OPC 통신으로 바뀌게 되면 어떤 이득이 있는지 다루어 보도록 하겠습니다.
그림 3. OPC UA 어플리케이션
그림 3. 을 보면 다소 복잡하게 되어있지만 결론은 심플합니다. 바로 같은 통신 방법으로 하위에서 상위까지 모두 동일한 프로토콜로 통신이 가능합니다. 만약 드라이버별로 나누어진 통신 프로토콜을 중국어, 한국어, 영어라고 한다면 서로 의사소통을 하기 힘들겠지요. 그래서 한가지 언어로 통합해서 의사소통을 하기 위해서 OPC를 구성한다라고 이해하시면 편합니다. 이것을 상호운용성을 확보했다라고 표현합니다. 하지만 이런 의사소통을 좀 더 효율적으로 하기 위해서 OPC 서버는 많은 기능들을 제공해주고 있습니다.
상호운용성 - 하나의 시스템이 동일 또는 이기종의 다른 시스템과 아무런 제약이 없이 서로 호환되어 사용할 수 있는 성질을 말한다. 처음에는 정보통신(IT) 또는 소프트웨어 개발 분야에서 사용되는 용어였으나, 이후 정치, 법률, 군사, 사회, 조직 등 다양한 분야로 확산되어 사용되고 있다.