OPC UA 정리

Network 2021. 3. 18. 01:00

opcfoundation.org/

 

Home Page - OPC Foundation

Welcome to the World of OPC In today’s complex economy, information is the key to business success and profitability. OPC technologies were created to allow information to be easily and securely exchanged between diverse platforms from multiple vendors a

opcfoundation.org

 

몇년전 우연한 기회로 OPC UA 관련 개발을 진행하면서 정리해둔 내용이 있었는데 최근 관련 문의가 있어 다시 찾아보니 정리했던 자료를 찾을 수 없어 다시 정리해서 공유해둔다.

 

<OPC UA 개요>

 

- OPC 협회는 2004년 1월 OPC를 산업 주도형 기술로 새로운 아키텍처를 설계를 의결했고 "통합 아키텍처(Unified Architecuture)" (이하 OPC-UA)의 초안은 2006년 6월에 발표되었다.

 

- 기존에 OPC-DA로 불리던 기술은 현재 OPC Classic DA로 바꿔 부르고 있다.

 

- OPC-UA는 플랫폼 독립적인 표준으로 이를 통해 다양한 종류의 시스템 및 장치들이 여러 유형의 네트워크상에서 클라이언트/서버 형태로 서로 메시지를 교환하며 통신할 수 있도록 해 준다.

- OPC-UA는 권한을 가진 클라이언트와 서버를 인식할 수 있고 공격에 저항력을 가진 견고하고 안전한 통신 수단을 제공한다. 

- OPC-UA는 서버가 제공할 수 있는 표준 서비스 세트를 정의하고, 각각의 서버는 클라이언트에게 자신이 지원하는 서비스 세트에 대해 알려 준다. 각종 정보들은 표준, 또는 벤더 고유의 데이터 형식을 통해 전송되고 서버는 클라이언트가 런타임에 적용시킬 수 있는 객체 모델을 정의한다. 

- 서버는 현재 데이터와 히스토리컬 데이터에 대한 접근을 모두 허용할 수 있을 뿐만 아니라 경보 및 이벤트 데이터도 제공함으로써 클라이언트가 시스템상의 중요한 변화를 감지할 수 있도록 해 준다. 

- OPC-UA는 다양한 종류의 통신 프로토콜로 맵핑될 수 있으며 데이터를 여러 방식으로 인코딩할 수 있어 이식성(portability)과 효율성(efficiency)의 균형을 원하는 수준으로 맞출 수 있다. 

 

 

<새로운 기술의 필요성>

 

- OPC DA는 마이크로소프트의 COM기반으로 운용되고 있어서 타 플랫폼에서 OPC가 구현되는 것에 많은 제약이 있었다.

 

- 대안으로 제시되었던 XML-DA등은 성능상 단점이 많았던 기술로 업계의 요구를 충족하지 못하고 있었다.

 

- OPC DA는 클라이언트가 실시간 데이터를 읽거나 쓸 수 있게 해 주지만 클라이언트가 특정 데이터에 대해 경보를 발생시킬 수는 없다.

 

- 업계의 요구를 반영하기 위해 HDA(히스토리컬 데이터), A&E(알람과 이벤트)라는 규격이 새롭게 추가되었지만 통합된 형태의 프로토콜이 아니라서 개별적으로 구현되어야 했다.

 

 

 

OPC-UA 계층도

 

<새로운 아키텍처>

 

* 유연성과 확장성

 

- "통합"이란 말에서 알 수 있듯이 OPC-UA에서는 데이터 접근, 히스토리컬 데이터 접근, 경보 및 이벤트 간의 구분없이 통합적으로 지원한다.  

- 동일한 UA 서비스를 통해 데이터의 유형이나 용도와 상관없이 모든 데이터가 전송되기 때문에 복잡도가 높은 데이터(배열, 바이너리 구조체, XML 문서 등)의 경우, 기존의 DA 서버들은 OPC에서 정의한 형식에 맞는 데이터만 제공되는데 비해 UA 하에서는 모든 데이터가 제공가능하다.   

- OPC-UA는 노드 유형과 상호 관계를 무제한으로 지원한다. 또한, 각 노드는 다른 노드들과의 상호 관계에 무제한으로 속할 수 있다. 이러한 유연성은 어떠한 복잡한 시스템이라도 UA를 통해 데이터를 제공할 수 있도록 보장한다.

 

* 엔터프라이즈급 데이터 처리

 

- MES 및 ERP 레벨에서 사용하기 위한 엔터프라이즈 애플리케이션들을 포함할 수 있는 다양한 데이터 스키마를 지원한다.

 

* 견고성(robustness), 신뢰성(reliability), 중복성(redundancy)

 

- OPC-UA는 기존의 인터넷 프로토콜에 의존하지 않고 고장 감지(failure detection) 및 복구 로직(recovery logic)을 위한 모든 사항들을 직접 구현하고 처리하여 중요도가 매우 높은 응용 분야에서도 UA가 충분히 제 기능을 발휘할 수 있도록 한다.

 

* 고급 인증(enhanced certification)

 

* 이전 버전들과의 호환성(backward compatibility)

 

* 보안모델

 

* 통합 주소공간 모델

 

- OPC-UA 서버가 클라이언트에게 제공하는 객체 세트와 관련 정보들을 서버의 주소공간이라고 하며 OPC-UA 주소공간은 연결되어 있는 일련의 노드 정보로 표현한다.

 

* 통합 객체 모델

 

- OPC-UA 객체 모델은 주소공간 내의 객체들을 표현하기 위한 일관성 있는 통합 노드 클래스 세트를 제공하여 객체 변수, 이벤트, 메소드, 다른 객체와의 상호 관계 등을 통해 객체를 표현한다.

 

* 통합 서비스

 

- OPC-UA 서비스는 클라이언트에게 두 가지 기능들을 제공한다. 클라이언트로 하여금 서버에게 요청을 전송하고 응답을 수신하는 폴링(polling)방식과 클라이언트가 서버에게 통지 기능을 신청할 수 있도록 해 주는 구독서비스(subscription)방식이다. 구독서비스는 서버가 경보, 데이터 값의 변화, 이벤트, 프로그램 실행 결과 등을 알릴 때 사용된다.

 

(구체적인 내용은 기술 문서 참조)

 

<평가>

 

- 개인적으로 OPC-UA를 처음 접했을때 산업용 표준을 이끌어갈 프로토콜로 인식되었다. IoT나 모바일용 새로운 규약들이 나오고 있지만 특정 영역에 한정된 기능들을 제공하는 기술들이었고 OPC-UA는 그에 비해 기존의 산업현장에서 제기되었던 요구들을 최대한 수용하면서도 확장성을 고려한 프로토콜이라 성능상의 이슈만 없다면 업계의 표준으로 자리잡을 것이 분명해 보였다. 특히, PLC에서 사용되는 프로토콜들이 업계마다 달라 표준이 없는 상황에서 모드버스를 울며 겨자먹기 식으로 쓰여졌었는데 어쩌면 그 부분조차 OPC-UA에 의해 대체될 수 있겠다는 생각이 들었다.

 

- 아니면 시범적으로 국산 PLC를 대상으로 OPC-UA 게이트웨이를 제작해보는 것도 재미있을 것 같다는 생각이 들었는데 최근 관련 자문이 들어와 역시 업계의 수요가 존재한다는 것을 알 수 있었다.

 

-----

 

현재 OPC-UA 서버 클라이언트를 개발하는 것은 협회가 제공하는 OPC-UA 프로토콜 스택을 기반으로 개발이 가능하지만 협회 가입이 되어있지 않으면 기술지원을 받을 수 없다. 단 협회 홈페이지에서 회원 가입만 해도 .Net, Java, Ansi C에 대한 스택 코드와 샘플을 받을 수 있다. (고 되어 있는데 ANSI C 소스는 링크가 깨져있다.)

 

opcfoundation.org/developer-tools/samples-and-tools-unified-architecture

 

Members

 

opcfoundation.org

 

닷넷 서버 샘플

github.com/OPCFoundation/UA-.NETStandard-Samples/tree/master/Samples/GDS

 

OPCFoundation/UA-.NETStandard-Samples

Contribute to OPCFoundation/UA-.NETStandard-Samples development by creating an account on GitHub.

github.com

 

그 외에 여러 상용화된 라이브러리가 만들어져 판매되고 있고 최근에는 파이썬과 C++기반의 오픈소스도 공개되어 있어 개발여력이 많아졌다.

 

https://github.com/FreeOpcUa

 

Free OPC-UA Library

Open Source C++ and Python OPC-UA Libraries. Free OPC-UA Library has 9 repositories available. Follow their code on GitHub.

github.com

 

en.wikipedia.org/wiki/OPC_Unified_Architecture

 

OPC Unified Architecture

OPC Unified Architecture (OPC UA) is a machine to machine communication protocol for industrial automation developed by the OPC Foundation. Distinguishing characteristics are: Based on a client server communication Focus on communicating with industrial eq

en.wikipedia.org

blog.naver.com/suresofttech/221394318179

 

질문으로 알아보는 스마트팩토리 - 'OPC UA' (상) 편

​본 게시글에서 다룰 내용은 OPC UA입니다.본론으로 가기 전에, 도움이 될만한 기초 지식을 짚고 넘...

blog.naver.com

 

'Network' 카테고리의 다른 글

미디어 서버 (MistServer) 설치 테스트  (0) 2022.08.11
V2X 통신 정리  (0) 2019.08.28
gRPC Java 설치 및 사용해보기  (0) 2019.01.08
OPC DA & UA  (0) 2018.12.05
BACnet 프로토콜에 대하여  (2) 2015.02.04
Posted by 휘프노스
,