Qt OPC UA 概述
OPC UA 是一种在工业应用中进行数据建模和数据交换的协议。
OPC UA 服务器提供对数据的访问,这些数据是通过引用连接的网状节点组织起来的。通过使用不同的引用类型和包含元数据的节点,客户端可以在不事先了解数据结构的情况下浏览和解释数据。
每个节点都有唯一的标识符和可读写的属性。其中包括存储值的变量节点和可调用的方法节点,以及描述参数和返回值的附加节点。此外,还提供事件通知和监测变量节点值变化的功能。
通过使用引用来组合节点,可以创建复杂的对象。继承也是可能的。OPC UA 支持预制模型,可根据特殊需要进行扩展。
OPC UA 是 OPC Classic 的后续版本,与平台无关,适用于从嵌入式传感器到生产执行和企业资源规划系统等各个层面。它有一个面向服务的架构,基于服务请求和响应的标准化信息。这些信息有不同的编码和网络传输方式。最常见的方式是通过 TCP 进行二进制编码。
OPC UA 协议实现的功能
下表总结了Qt OPC UA 支持的 OPC UA 功能。
功能 |
---|
读取 |
批量读取 |
历史读取(原始) |
写 |
批量写入 |
多维数组 |
浏览 |
数据更改订阅 |
事件订阅 |
修改订阅/受监控项目 |
方法调用 |
浏览路径解析 |
获取端点 |
查找服务器 |
节点管理 |
注册节点 |
取消注册节点 |
数据类型
Qt OPC UA 当前支持 OPC UA 数据类型的子集。
数据类型 | Qt OPC UA 数据类型 |
---|---|
Int16, Int32, Int64 | 直接使用 |
UInt16, UInt32, UInt64 | 直接使用 |
字节 | quint8 |
字节 | qint8 |
布尔 | 直接使用 |
双 | 直接使用 |
浮点数 | 直接使用 |
字符串 | QString |
本地化文本 | QOpcUaLocalizedText |
日期时间 | QDateTime |
字节字符串 | QByteArray |
XmlElement | QString |
节点 ID | QString |
GUID | QUuid |
限定名称 | QOpcUaQualifiedName |
状态代码 | QOpcUa::UaStatusCode |
范围 | QOpcUaRange |
欧盟信息 | QOpcUaEUInformation |
复数 | QOpcUaComplexNumber |
双复数 | QOpcUaDoubleComplexNumber |
轴信息 | QOpcUaAxisInformation |
XV | QOpcUaXValue |
参数 | QOpcUaArgument |
扩展节点标识 | QOpcUaExpandedNodeId |
扩展对象 | QOpcUaExtensionObject |
结构定义 | QOpcUaStructureDefinition |
结构字段 | QOpcUaStructureField |
枚举定义 | QOpcUaEnumDefinition |
枚举字段 | QOpcUaEnumField |
诊断信息 | QOpcUaDiagnosticInfo |
简单属性操作符 | QOpcUaSimpleAttributeOperand |
属性操作符 | QOpcUaAttributeOperand |
字面操作符 | QOpcUaLiteralOperand |
元素操作符 | QOpcUaElementOperand |
相对路径元素 | QOpcUaRelativePathElement |
内容过滤元素 | QOpcUaContentFilterElement |
事件过滤器 | 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 模块可在Qt Company 的商业许可下使用。此外,它还受自由软件许可证的保护。这些自由软件许可证包括GNU Lesser General Public License 第 3 版或GNU General Public License 第 2 版。更多详情,请参阅Qt 许可。
Qt OPC UA Qt 6.9.1 中可能包含以下许可协议下的第三方模块:
Mozilla Public License 2.0 和 Creative Commons Zero v1.0 Universal 以及 Creative Commons Attribution Share Alike 4.0 International 和 BSD 3-Clause "New" or "Revised" License 以及 Apache License 2.0 和 MIT License。 |
链接到外部库涉及后端提供商的许可证。
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.