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 | 직접 사용 |
Byte | quint8 |
SByte | qint8 |
부울 | 직접 사용 |
Double | 직접 사용 |
Float | 직접 사용 |
문자열 | QString |
LocalizedText | QOpcUaLocalizedText |
DateTime | QDateTime |
바이트 문자열 | QByteArray |
XmlElement | QString |
NodeId | QString |
GUID | QUuid |
한정된 이름 | QOpcUaQualifiedName |
StatusCode | QOpcUa::UaStatusCode |
범위 | QOpcUaRange |
EU정보 | QOpcUaEUInformation |
복합 번호 | QOpcUaComplexNumber |
이중 복합 번호 | QOpcUaDoubleComplexNumber |
축 정보 | QOpcUaAxisInformation |
XV | QOpcUaXValue |
인수 | QOpcUaArgument |
확장 노드 ID | QOpcUaExpandedNodeId |
확장 오브젝트 | QOpcUaExtensionObject |
구조 정의 | QOpcUaStructureDefinition |
구조 필드 | QOpcUaStructureField |
EnumDefinition | QOpcUaEnumDefinition |
EnumField | QOpcUaEnumField |
진단 정보 | QOpcUaDiagnosticInfo |
SimpleAttributeOperand | QOpcUaSimpleAttributeOperand |
AttributeOperand | QOpcUaAttributeOperand |
LiteralOperand | QOpcUaLiteralOperand |
ElementOperand | QOpcUaElementOperand |
상대 경로 요소 | QOpcUaRelativePathElement |
콘텐츠필터 엘리먼트 | QOpcUaContentFilterElement |
EventFilter | QOpcUaMonitoringParameters::EventFilter |
클래스 및 소유권
사용자에게 노출되는 두 가지 중요한 클래스는 QOpcUaClient 와 QOpcUaNode 입니다.
두 클래스의 객체는 사용자가 소유하며 더 이상 필요하지 않은 경우 삭제해야 합니다.
로깅 카테고리
다음 표에는 Qt OPC UA 에서 사용하는 로깅 카테고리가 요약되어 있습니다.
로깅 카테고리 | 설명 |
---|---|
qt.opcua | QOpcUaProvider 에서 생성된 플러그인 독립 메시지와 QOpcUaClient |
qt.opcua.plugins.open62541 | open62541 플러그인에 의해 생성된 메시지 |
Open62541 특정 로깅 카테고리
open62541 sdk 로깅 카테고리는 컴파일 시 구성되는 open62541의 로그 레벨에 따라 달라집니다. 기본값은 300으로 정보, 경고, 오류 및 심각을 활성화합니다. 더 적거나 더 자세한 출력을 얻으려면 다른 구성으로 open62541 sdk를 다시 빌드해야 합니다.
다음 표는 open62541에서 사용하는 로깅 카테고리를 보여줍니다:
Open62541 로깅 카테고리 | 설명 |
---|---|
qt.opcua.plugins.open62541.sdk.network | open62541 네트워크에서 생성된 메시지 |
qt.opcua.plugins.open62541.sdk.securechannel | open62541 채널에 의해 생성된 메시지 |
qt.opcua.plugins.open62541.sdk.session | open62541 세션에 의해 생성된 메시지 |
qt.opcua.plugins.open62541.sdk.server | open62541 서버 컴포넌트에 의해 생성된 메시지 |
qt.opcua.plugins.open62541.sdk.client | open62541 클라이언트에 의해 생성된 메시지 |
qt.opcua.plugins.open62541.sdk.userland | open62541 사용자 랜드에 의해 생성된 메시지 |
qt.opcua.plugins.open62541.sdk.securitypolicy | open62541 보안 정책에 의해 생성된 메시지 |
라이선스
Qt OPC UA 모듈은 The Qt Company의 상용 라이센스에 따라 사용할 수 있습니다. 또한 무료 소프트웨어 라이선스에 따라 사용할 수 있습니다. 이러한 무료 소프트웨어 라이선스는 GNU 약소 일반 공중 사용 허가서, 버전 3 또는 GNU 일반 공중 사용 허가서, 버전 2입니다. 자세한 내용은 Qt 라이선스를 참조하십시오.
Qt OPC UA Qt 6.8.2에는 다음과 같은 허용 라이선스에 따라 타사 모듈이 포함될 수 있습니다:
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.