Qt OPC UA 개요

OPC UA는 산업 애플리케이션에서 데이터 모델링 및 데이터 교환을 위한 프로토콜입니다.

OPC UA 서버는 레퍼런스로 연결된 노드 메시로 구성된 데이터에 대한 액세스를 제공합니다. 다양한 참조 유형과 메타데이터를 포함하는 노드를 사용하면 클라이언트는 구조를 미리 알지 못해도 데이터를 탐색하고 해석할 수 있습니다.

각 노드에는 고유 식별자와 읽고 쓸 수 있는 속성이 있습니다. 그 중에서도 값을 저장하는 변수 노드와 매개변수와 반환값을 설명하는 노드가 연결된 호출 가능한 메서드 노드가 있습니다. 이벤트 발생 시 알림과 값 변경에 대한 변수 노드 모니터링 기능도 제공됩니다.

참조를 사용하여 노드를 결합하여 복잡한 객체를 만들 수 있습니다. 상속도 가능합니다. OPC UA는 특별한 요구 사항에 맞게 확장할 수 있는 사전 제작 모델을 지원합니다.

OPC UA는 임베디드 센서부터 제조 실행 및 전사적 자원 계획 시스템에 이르기까지 모든 수준에서 사용할 수 있도록 설계된 플랫폼 독립적인 OPC Classic의 후속 버전입니다. 서비스 요청 및 응답을 위한 표준화된 메시지를 기반으로 하는 서비스 지향 아키텍처를 갖추고 있습니다. 이러한 메시지를 인코딩하고 네트워크를 통해 전송하는 방법에는 여러 가지가 있습니다. 가장 일반적인 방법은 TCP를 통한 바이너리 인코딩입니다.

OPC UA 프로토콜에서 구현된 기능

다음 표에는 Qt OPC UA 에서 지원하는 OPC UA의 기능이 요약되어 있습니다.

기능
읽기
일괄 읽기
히스토리 읽기(원시)
Write
일괄 쓰기
다차원 배열
찾아보기
데이터 변경 구독
이벤트 구독
구독/모니터링 항목 수정하기
메서드 호출
경로 해상도 찾아보기
GetEndpoint
FindServers
NodeManagement
등록 노드
등록 노드 해제

데이터 유형

현재 Qt OPC UA 에서 지원되는 OPC UA 데이터 유형의 하위 집합입니다.

데이터 유형Qt OPC UA 데이터 유형
Int16, Int32, Int64직접 사용
UInt16, UInt32, UInt64직접 사용
Bytequint8
SByteqint8
부울직접 사용
Double직접 사용
Float직접 사용
문자열QString
LocalizedTextQOpcUaLocalizedText
DateTimeQDateTime
바이트 문자열QByteArray
XmlElementQString
NodeIdQString
GUIDQUuid
한정된 이름QOpcUaQualifiedName
StatusCodeQOpcUa::UaStatusCode
범위QOpcUaRange
EU정보QOpcUaEUInformation
복합 번호QOpcUaComplexNumber
이중 복합 번호QOpcUaDoubleComplexNumber
축 정보QOpcUaAxisInformation
XVQOpcUaXValue
인수QOpcUaArgument
확장 노드 IDQOpcUaExpandedNodeId
확장 오브젝트QOpcUaExtensionObject
구조 정의QOpcUaStructureDefinition
구조 필드QOpcUaStructureField
EnumDefinitionQOpcUaEnumDefinition
EnumFieldQOpcUaEnumField
진단 정보QOpcUaDiagnosticInfo
SimpleAttributeOperandQOpcUaSimpleAttributeOperand
AttributeOperandQOpcUaAttributeOperand
LiteralOperandQOpcUaLiteralOperand
ElementOperandQOpcUaElementOperand
상대 경로 요소QOpcUaRelativePathElement
콘텐츠필터 엘리먼트QOpcUaContentFilterElement
EventFilterQOpcUaMonitoringParameters::EventFilter

클래스 및 소유권

사용자에게 노출되는 두 가지 중요한 클래스는 QOpcUaClientQOpcUaNode 입니다.

두 클래스의 객체는 사용자가 소유하며 더 이상 필요하지 않은 경우 삭제해야 합니다.

로깅 카테고리

다음 표에는 Qt OPC UA 에서 사용하는 로깅 카테고리가 요약되어 있습니다.

로깅 카테고리설명
qt.opcuaQOpcUaProvider 에서 생성된 플러그인 독립 메시지와 QOpcUaClient
qt.opcua.plugins.open62541open62541 플러그인에 의해 생성된 메시지

Open62541 특정 로깅 카테고리

open62541 sdk 로깅 카테고리는 컴파일 시 구성되는 open62541의 로그 레벨에 따라 달라집니다. 기본값은 300으로 정보, 경고, 오류 및 심각을 활성화합니다. 더 적거나 더 자세한 출력을 얻으려면 다른 구성으로 open62541 sdk를 다시 빌드해야 합니다.

다음 표는 open62541에서 사용하는 로깅 카테고리를 보여줍니다:

Open62541 로깅 카테고리설명
qt.opcua.plugins.open62541.sdk.networkopen62541 네트워크에서 생성된 메시지
qt.opcua.plugins.open62541.sdk.securechannelopen62541 채널에 의해 생성된 메시지
qt.opcua.plugins.open62541.sdk.sessionopen62541 세션에 의해 생성된 메시지
qt.opcua.plugins.open62541.sdk.serveropen62541 서버 컴포넌트에 의해 생성된 메시지
qt.opcua.plugins.open62541.sdk.clientopen62541 클라이언트에 의해 생성된 메시지
qt.opcua.plugins.open62541.sdk.userlandopen62541 사용자 랜드에 의해 생성된 메시지
qt.opcua.plugins.open62541.sdk.securitypolicyopen62541 보안 정책에 의해 생성된 메시지

라이선스

Qt OPC UA 모듈은 The Qt Company의 상용 라이센스에 따라 사용할 수 있습니다. 또한 무료 소프트웨어 라이선스에 따라 사용할 수 있습니다. 이러한 무료 소프트웨어 라이선스는 GNU 약소 일반 공중 사용 허가서, 버전 3 또는 GNU 일반 공중 사용 허가서, 버전 2입니다. 자세한 내용은 Qt 라이선스를 참조하십시오.

Qt OPC UA Qt 6.8.2에는 다음과 같은 허용 라이선스에 따라 타사 모듈이 포함될 수 있습니다:

Open62541, version 1.3.11

Mozilla Public License 2.0 및 Creative Commons Zero v1.0 Universal 및 Creative Commons Attribution Share Alike 4.0 International과 BSD 3-C항 "New" 또는 "Revised" 라이선스, Apache License 2.0 및 MIT 라이선스.

외부 라이브러리에 연결하려면 백엔드 제공업체의 라이선스가 필요합니다.

Open62541

Open62541 플러그인은 Qt OPC UA 과 동일한 라이선스에 따라 사용할 수 있습니다. Open62541 라이브러리 자체는 Mozilla Public License v2.0에 따라 라이선스가 부여됩니다.

보안 지원은 open62541 라이브러리의 OpenSSL 플러그인에서 제공합니다. 보안 지원으로 빌드된 open62541 플러그인이 대상 시스템에서 OpenSSL을 사용할 수 없는 경우 open62541 플러그인을 로드하지 못합니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.