Qt OPC UA 概述¶
OPC UA 是一种用于工业应用中数据建模和数据交换的协议。
一个OPC UA服务器提供对数据的访问,这些数据组织在一个由引用连接的节点网格中。使用不同的引用类型和包含元数据的节点使客户端能够在不知道其结构的情况下导航和解释数据。
每个节点都有一个唯一的标识符和可以读取和写入的属性。其中,有存储值的Variable节点和可调用的Method节点,这些节点附带有描述参数和返回值的节点。还提供了事件发生时的Notifications以及对Variable节点值变化的监控。
可以通过使用引用组合节点来创建复杂对象。继承也是可能的。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
SByte
qint8
布尔值
直接使用
双精度
直接使用
浮点数
直接使用
字符串
QString
日期时间
QDateTime
ByteString
QByteArray
XmlElement
QString
QString
全局唯一标识符
QUuid
QualifiedName
状态码
UaStatusCode范围
欧盟信息
复数
双复数
轴信息
XV
参数
扩展节点ID
扩展对象
结构定义
结构字段
枚举定义
枚举字段
诊断信息
相对路径元素
内容过滤元素
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公司获得商业许可。此外,它也可以在自由软件许可下使用。这些自由软件许可包括GNU宽通用公共许可证,版本3,或GNU通用公共许可证,版本2。有关更多详细信息,请参阅Qt许可。
Qt 6.8.1 中的 Qt OPC UA 可能包含以下宽松许可证下的第三方模块:
链接到外部库涉及后端提供者的许可证。
Open62541¶
Open62541插件与Qt OPC UA采用相同的许可证。Open62541库本身则遵循Mozilla Public License v2.0。
安全支持由open62541库的OpenSSL插件提供。如果open62541插件在构建时启用了安全支持,但目标系统上没有OpenSSL,则open62541插件将无法加载。