Technical Document

기술문서

산업 기술 문서 백과

OPC UA란? 정보 모델·보안 모드·Modbus와 차이

요약
OPC UA(Open Platform Communications Unified Architecture)는 제조사와 운영체제에 관계없이 장비 데이터를 그 의미까지 함께 주고받도록 만든 산업용 통신 표준입니다.
PLC, 계측기, SCADA, MES, 클라우드를 하나의 규칙으로 잇는 데 쓰이며, 국제 규격 IEC 62541 시리즈로 정리되어 있습니다.
이 글에서는 노드 기반 정보 모델, 클라이언트/서버와 Pub/Sub 두 가지 통신 방식, 보안 모드 3가지(None·Sign·SignAndEncrypt), Modbus와의 차이, 그리고 기본 포트 4840을 포함한 도입 시 점검 항목을 정리합니다.

설비를 새로 들이면 "OPC UA 지원"이라는 문구를 자주 봅니다. 그런데 막상 모니터링 시스템과 연결해 보면 인증서 오류로 접속이 안 되거나, 태그 이름은 보이는데 단위와 의미를 몰라 다시 제조사에 묻는 일이 생깁니다.

Modbus에 익숙한 현장에서는 "레지스터 주소만 알면 되는데 왜 이렇게 복잡한가"라는 반응도 많습니다. OPC UA가 복잡해 보이는 이유는 데이터 값뿐 아니라 데이터의 구조·단위·관계와 보안까지 표준 안에 담았기 때문입니다. 구조를 한 번 이해하면 장비가 늘어날수록 오히려 연결 작업이 단순해집니다.


1. OPC UA란?

OPC UA는 OPC Foundation이 만든 산업 자동화용 데이터 교환 표준이며, 같은 내용이 IEC 62541 시리즈로 국제 규격화되어 있습니다. 이전 세대인 OPC Classic(OPC DA 등)은 Microsoft Windows의 COM/DCOM 기술에 묶여 있었지만, OPC UA는 특정 운영체제에 의존하지 않도록 새로 설계되었습니다.

OPC UA의 핵심은 세 가지입니다. 첫째, 데이터를 노드(Node)로 이루어진 정보 모델로 표현합니다. 둘째, 클라이언트/서버와 Pub/Sub 두 가지 통신 방식을 지원합니다. 셋째, 인증서 기반 인증과 메시지 서명·암호화를 표준 자체에 포함합니다.

IEC 62541 파트 내용
Part 1 개요와 개념
Part 2 보안 모델
Part 3 주소 공간 모델 (노드 클래스·속성)
Part 4 / Part 6 서비스(읽기·쓰기·구독 등) / 전송·인코딩 매핑
Part 5 / Part 7 기본 정보 모델 / 프로파일(기능 묶음, 인증 시험 기준)
Part 12 / Part 14 디스커버리·인증서 관리 / Pub/Sub 통신 모델

2. OPC UA 정보 모델은 어떻게 생겼나?

2-1. 주소 공간과 노드

OPC UA 서버는 자신이 가진 데이터를 주소 공간(Address Space)이라는 트리 형태의 구조로 보여 줍니다. 주소 공간의 모든 요소는 노드이며, 각 노드는 고유 식별자인 NodeId를 가집니다. 예를 들어 ns=2;s=Boiler1.Temperature 는 네임스페이스 2번 안의 "Boiler1.Temperature"라는 문자열 식별자를 뜻합니다.

노드는 종류에 따라 8가지 노드 클래스로 나뉩니다. 현장에서 가장 자주 다루는 것은 실제 값을 담는 Variable과, 장비 단위를 묶는 Object입니다.

노드 클래스 역할 현장 예시
Object 장비·구성 요소를 묶는 단위 냉동고 1호기
Variable 값을 가진 노드 (값·품질·시간) 내부 온도 -78.4
Method 서버에서 실행하는 기능 알람 리셋
ObjectType / VariableType 객체·변수의 틀(형식) "냉동고 형식"
DataType 값의 자료형 정의 Double, 구조체
ReferenceType 노드 사이 관계의 종류 HasComponent, HasProperty
View 주소 공간의 일부만 보여 주는 보기 유지보수용 화면

2-2. 타입과 참조가 만드는 "의미"

OPC UA 정보 모델에서는 노드끼리 참조(Reference)로 연결됩니다. 온도 변수에는 공학 단위(EngineeringUnits)와 측정 범위(EURange) 속성을 붙일 수 있어서, 클라이언트는 값 하나만 받는 것이 아니라 "이 값은 ℃ 단위이고 -100~50 범위"라는 정보까지 함께 읽습니다.

타입을 한 번 정의하면 같은 형식의 장비 10대를 똑같은 구조로 표현할 수 있습니다. 모니터링 시스템은 타입만 알면 장비마다 태그를 새로 매핑하지 않아도 됩니다.

2-3. 컴패니언 규격 (Companion Specification)

OPC UA 컴패니언 규격은 업계 단체가 특정 장비군의 정보 모델을 표준 형식으로 정한 문서입니다. 공작기계, 사출성형기, 로봇, 포장기 등 장비군별로 만들어져 있어, 같은 컴패니언 규격을 따르는 장비는 제조사가 달라도 비슷한 구조로 데이터가 보입니다. 장비 구매 시 "OPC UA 지원"과 함께 "어떤 컴패니언 규격을 따르는지"를 확인하면 연동 공수가 크게 줄어듭니다.


3. OPC UA 클라이언트/서버와 Pub/Sub의 차이는?

3-1. 클라이언트/서버

OPC UA 클라이언트/서버 방식은 클라이언트가 서버에 세션을 맺고 값을 읽거나(Read) 쓰거나(Write) 구독(Subscription)하는 방식입니다. 구독을 걸면 서버가 값이 바뀌었을 때만 알려 주므로, 일정 주기로 계속 묻는 폴링보다 통신량이 적습니다. 전송은 보통 바이너리 프로토콜인 opc.tcp를 쓰며, 기본 포트는 4840입니다.

3-2. Pub/Sub (발행/구독)

OPC UA Pub/Sub은 IEC 62541-14에 정의된 통신 모델로, 발행자(Publisher)가 데이터를 내보내고 여러 구독자(Subscriber)가 받아 가는 방식입니다. 세션을 맺지 않으므로 하나의 데이터를 많은 수신처에 보낼 때 유리합니다.

  • 브로커 없는 방식 : UDP 멀티캐스트로 같은 네트워크 안에서 직접 주고받습니다. 바이너리 인코딩(UADP)과 함께 쓰여 짧은 주기의 설비 간 통신에 적합합니다.
  • 브로커 방식 : MQTT나 AMQP 브로커를 거쳐 전달합니다. JSON 인코딩을 쓰면 OPC UA를 모르는 클라우드·IT 시스템도 데이터를 읽기 쉽습니다. MQTT 구조는 MQTT란? 브로커·토픽·QoS 쉽게 이해하기 글을 참고하면 됩니다.
구분 클라이언트/서버 Pub/Sub
연결 1:1 세션 1:N, 세션 없음
주요 전송 opc.tcp (기본 4840), HTTPS, WebSocket UDP 멀티캐스트, MQTT, AMQP
장점 주소 공간 탐색, 쓰기·메서드 호출 가능 다수 수신처, 클라우드 연계에 유리
적합한 용도 SCADA·모니터링 서버의 장비 수집 설비 간 데이터 공유, 클라우드 전송

4. OPC UA 보안 모드와 보안 정책은 무엇인가?

OPC UA 보안은 애플리케이션 인증, 사용자 인증, 메시지 보호의 세 층으로 이루어집니다. 서버와 클라이언트는 각자 X.509 애플리케이션 인증서를 가지고, 서로의 인증서를 신뢰 목록(Trust List)에 올려야 보안 통신이 가능합니다. 암호화의 기본 개념은 SSL/TLS 데이터 암호화 프로토콜 글에서 다룬 공개키·대칭키 구조와 비슷합니다.

4-1. 메시지 보안 모드 3가지

보안 모드 내용 권장
None 서명·암호화 없음 시험용으로만
Sign 서명으로 위·변조만 막음 (내용은 보임) 폐쇄망에서 최소 수준
SignAndEncrypt 서명과 암호화를 모두 적용 운영 환경 기본값으로 권장

4-2. 보안 정책과 사용자 인증

보안 정책(Security Policy)은 서명·암호화에 쓰는 알고리즘 묶음입니다. 현재 많이 쓰는 정책은 Basic256Sha256, Aes128_Sha256_RsaOaep, Aes256_Sha256_RsaPss입니다. Basic128Rsa15와 Basic256은 규격에서 사용 중단(deprecated)되어 하위 호환용으로만 남아 있으므로 새 시스템에서는 끄는 것이 좋습니다.

사용자 인증은 익명(Anonymous), 사용자 이름·비밀번호, 사용자 인증서, 외부 발급 토큰 방식 중에서 고릅니다. 운영 환경에서는 익명 접속을 막고, 읽기 전용 계정과 쓰기 계정을 나누는 것이 기본입니다.


5. OPC UA와 Modbus의 차이는?

Modbus는 정해진 주소의 16비트 레지스터와 코일 값을 주고받는 단순한 프로토콜이고, OPC UA는 데이터의 의미와 구조, 보안까지 함께 전달하는 표준입니다. Modbus의 주소 구조는 Modbus 주소 체계 (Coil / Holding Register / Input Register) 글에 정리되어 있습니다.

항목 Modbus (RTU/TCP) OPC UA
데이터 표현 주소 번호 + 16비트 값 이름·자료형·단위·관계를 가진 노드
값의 의미 제조사 매뉴얼의 주소표로 확인 서버를 탐색(Browse)해서 확인
통신 방식 마스터가 주기적으로 질의 (폴링) 구독으로 변화 시 통보, Pub/Sub 가능
보안 기본 규격에 인증·암호화 없음 인증서·서명·암호화가 표준에 포함
타임스탬프·품질 없음 (수집 측에서 시간 기록) 값마다 시각과 상태 코드 포함
장비 부담 작음 (소형 센서·계측기에 적합) 큼 (PLC·게이트웨이·PC급)

두 프로토콜은 경쟁 관계라기보다 층이 다릅니다. 현장 센서와 계측기는 RS-485 기반 Modbus RTU로 묶고, 게이트웨이나 PLC가 이를 OPC UA 서버로 올려 상위 시스템에 제공하는 구성이 흔합니다. 세 프로토콜을 한눈에 비교한 내용은 산업용 통신 프로토콜 비교 (Modbus, OPC-UA, MQTT) 글을 참고하면 됩니다.


6. OPC UA 도입 시 무엇을 확인해야 할까?

OPC UA 도입은 장비가 "지원한다"는 것만으로 끝나지 않습니다. 실제 운영에서 문제가 되는 것은 대부분 인증서 관리, 네트워크 경로, 태그 구조입니다. 아래 표는 장비 연동 전에 확인할 항목입니다.

점검 항목 확인 내용
지원 범위 서버만인지 클라이언트도 되는지, Pub/Sub 지원 여부, 지원 프로파일
보안 설정 SignAndEncrypt 지원 여부, 지원 보안 정책, 익명 접속 차단 가능 여부
인증서 자체 서명 인증서 유효기간, 갱신 방법, 신뢰 목록 등록 절차
네트워크 방화벽에서 4840(또는 지정 포트) 허용, 엔드포인트 주소의 호스트명 해석
정보 모델 따르는 컴패니언 규격, 단위·범위 속성 제공 여부, 태그 이름 규칙
성능 최대 세션 수, 구독 가능한 항목 수, 최소 샘플링 주기
시간 서버·클라이언트 시각 동기화(NTP) 여부

특히 장비 수가 많아지면 인증서를 한 대씩 수동으로 신뢰 처리하는 일이 큰 부담이 됩니다. 이때는 Part 12에 정의된 GDS(Global Discovery Server)처럼 인증서와 신뢰 목록을 중앙에서 관리하는 방식을 검토합니다. 또한 샘플링 주기를 지나치게 짧게 잡으면 서버 부하가 커지므로, 모니터링 목적이라면 공정에 필요한 주기만큼만 설정합니다.


7. OPC UA 연결에서 자주 생기는 문제와 해결

  • BadCertificateUntrusted 오류 : 상대 인증서가 신뢰 목록에 없을 때 생깁니다. 서버의 "거부된 인증서(Rejected)" 폴더에 들어간 클라이언트 인증서를 신뢰(Trusted)로 옮기고, 클라이언트 쪽도 같은 작업을 합니다.
  • 인증서 시간 오류 : 장비 시계가 틀어져 있으면 인증서가 "아직 유효하지 않음" 또는 "만료"로 판정됩니다. 장비와 서버 시각을 NTP로 맞춥니다.
  • 접속은 되는데 데이터를 못 읽음 : 엔드포인트 URL에 장비의 호스트명이 들어 있어 클라이언트가 이름을 해석하지 못하는 경우가 많습니다. IP 주소로 된 엔드포인트를 쓰거나 이름 해석을 설정합니다.
  • 인증서 만료로 갑자기 통신 끊김 : 자체 서명 인증서의 유효기간이 지나면 어느 날 연결이 끊깁니다. 인증서 만료일을 점검 대장에 올리고 미리 갱신합니다.
  • NodeId 변경 : 장비 프로그램을 수정한 뒤 숫자형 NodeId가 바뀌어 수집이 끊기는 경우가 있습니다. 가능하면 문자열 NodeId나 Browse 경로로 태그를 지정합니다.

8. 관련 산업용어

■ 엔드포인트 (Endpoint)
OPC UA 서버에 접속하는 주소와 보안 설정의 조합입니다. 예) opc.tcp://192.168.0.10:4840 + SignAndEncrypt + Basic256Sha256.

■ 네임스페이스 (Namespace)
노드 식별자가 겹치지 않도록 나눈 이름 영역입니다. 0번은 OPC UA 표준 노드용으로 예약되어 있습니다.

■ 모니터드 아이템 (Monitored Item)
구독 안에서 감시하는 개별 값입니다. 샘플링 주기와 변화 기준(데드밴드)을 항목별로 정할 수 있습니다.

■ UADP (UA Datagram Protocol)
OPC UA Pub/Sub에서 쓰는 바이너리 메시지 형식입니다. 크기가 작아 짧은 주기의 데이터 전송에 적합합니다.

■ LDS / GDS
LDS(Local Discovery Server)는 같은 PC나 네트워크의 서버를 찾아 주고, GDS(Global Discovery Server)는 여러 네트워크의 서버 검색과 인증서 관리를 맡습니다.


9. 자주 묻는 질문

Q. OPC UA 기본 포트는 몇 번?
4840번입니다. opc.tcp 바이너리 통신의 기본값이며, 장비에 따라 다른 포트로 바꿀 수 있으므로 장비 설정에서 실제 엔드포인트 주소를 확인합니다.

Q. OPC UA와 OPC DA 차이는?
OPC DA는 Windows의 COM/DCOM에 의존하는 이전 세대 규격이고, OPC UA는 운영체제와 무관한 통합 규격입니다. OPC UA는 DA의 실시간 값뿐 아니라 이력·알람·메서드까지 하나의 주소 공간에 담고, 보안 기능도 표준에 포함합니다.

Q. OPC UA 보안 모드 None으로 써도 되나?
운영 환경에서는 권장하지 않습니다. None은 서명도 암호화도 없어 데이터 변조와 도청을 막지 못하므로, 시험 연결 확인용으로만 쓰고 운영에서는 SignAndEncrypt를 씁니다.

Q. Modbus 장비를 OPC UA로 연결할 수 있나?
가능합니다. Modbus를 읽어 OPC UA 서버로 제공하는 게이트웨이나 소프트웨어를 쓰면 되며, 이때 레지스터 주소와 태그 이름·단위 대응표를 정확히 만들어 두는 것이 중요합니다.

Q. OPC UA Pub/Sub은 MQTT와 같은 것인가?
아닙니다. OPC UA Pub/Sub은 메시지 구조와 정보 모델을 정한 통신 모델이고, MQTT는 그 메시지를 실어 나르는 전송 수단 중 하나입니다. Pub/Sub은 MQTT 외에 UDP 멀티캐스트나 AMQP도 쓸 수 있습니다.


10. 마무리

OPC UA는 값과 함께 단위·구조·시각·품질을 전달하는 정보 모델 중심의 산업 통신 표준입니다. 장비 수집에는 클라이언트/서버 방식이, 다수 수신처나 클라우드 연계에는 Pub/Sub 방식이 적합합니다. Modbus는 현장 센서 층에, OPC UA는 장비와 상위 시스템을 잇는 층에 쓰는 구성이 일반적입니다. 운영 환경에서는 SignAndEncrypt와 사용 중단되지 않은 보안 정책을 쓰고, 인증서 만료일과 시각 동기화를 점검 항목에 넣어 두는 것이 안정적인 운영의 핵심입니다.

참고 기준 : IEC 62541 시리즈 (OPC Unified Architecture, OPC Foundation OPC 10000 시리즈와 같은 번호 체계), IEC 62541-14:2020 (PubSub), OPC 10000-1 v1.05 (Overview and Concepts)


태그 : OPCUA, OPCUA통신, IEC62541, 정보모델, 주소공간, 노드, PubSub, 클라이언트서버, 보안모드, SignAndEncrypt, 보안정책, 인증서, Modbus비교, 산업용통신, 컴패니언규격, 포트4840