Qt OPC UA 概览

OPC UA 是一种工业应用中的数据建模和交换的数据协议。

OPC UA 服务器提供对由引用连接的节点网格中组织的数据的访问。使用不同的引用类型和包含元数据的节点,使客户端能够在不知道它们结构的情况下导航和解释数据。

每个节点都有一个唯一的标识符和可读写的属性。其中包括存储值的 变量 节点和带有描述参数和返回值的可调用的 方法 节点。还提供事件发生时的 通知,以及对变量节点值变化的监控。

可以通过使用引用组合节点来创建复杂对象。继承也是可能的。OPC UA 提供对预制的模型的支持,这些模型可以扩展以适应特殊需求。

OPC UA 是 OPC Classic 的平台无关的继任者,旨在用于所有级别,从嵌入式传感器到制造执行和企业管理系统。它有一个基于标准化消息的服务请求和响应的服务导向型架构。有不同方式对这些消息进行编码和在网络上传输。最常见的方式是通过 TCP 进行二进制编码。

从 OPC UA 协议实现的功能

下表总结了 Qt OPC UA 支持的 OPC UA 功能。

功能
读取
批量读取
历史读取(原始)
写入
批量写入
多维数组
浏览
数据更改订阅
事件订阅
修改订阅/监控项
方法调用
浏览路径解析
GetEndpoints
FindServers
节点管理
注册节点
注销节点

数据类型

Qt OPC UA 当前支持 OPC UA 数据类型的一个子集。

数据类型Qt OPC UA 数据类型
Int16, Int32, Int64直接使用
UInt16, UInt32, UInt64直接使用
Bytequint8
SByteqint8
Boolean直接使用
Double直接使用
Float直接使用
StringQString
LocalizedTextQOpcUaLocalizedText
DateTimeQDateTime
ByteStringQByteArray
XmlElementQString
NodeIdQString
GUIDQUuid
QualifiedNameQOpcUaQualifiedName
StatusCodeQOpcUa::UaStatusCode
RangeQOpcUaRange
EUInformationQOpcUaEUInformation
ComplexNumberQOpcUaComplexNumber
DoubleComplexNumberQOpcUaDoubleComplexNumber
AxisInformationQOpcUaAxisInformation
XVQOpcUaXValue
ArgumentQOpcUaArgument
ExpandedNodeIdQOpcUaExpandedNodeId
ExtensionObjectQOpcUaExtensionObject
StructureDefinitionQOpcUaStructureDefinition
StructureFieldQOpcUaStructureField
EnumDefinitionQOpcUaEnumDefinition
EnumFieldQOpcUaEnumField
DiagnosticInfoQOpcUa诊断信息
简单属性运算符QOpcUa简单属性运算符
属性运算符QOpcUa属性运算符
文字运算符QOpcUa文字运算符
元素运算符QOpcUa元素运算符
相对路径元素QOpcUa相对路径元素
内容过滤器元素QOpcUa内容过滤器元素
事件过滤器QOpcUa监控参数::事件过滤器

类和所有权

暴露给用户的有两个重要类: QOpcUaClientQOpcUaNode

这两个类对象归用户所有,当不再需要时必须删除。

日志类别

以下表格总结了Qt OPC UA使用的日志类别。

日志类别描述
qt.opcuaQOpcUaProviderQOpcUaClient 生成的插件独立消息
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较小通用公共许可证,版本3GNU通用公共许可证,版本2。有关更多详细信息,请参阅Qt许可

Qt OPC UA在Qt 6.7.2中可能包含以下允许使用以下许可证的第三方模块

Open62541,版本1.3.9

Mozilla公共许可证2.0和Creative Commons Zero v1.0通用和Creative Commons署名相同4.0国际和BSD 3-clause "新"或"修订"许可证以及Apache许可证2.0和MIT许可证

链接到外部库涉及后端提供商的许可证

Open62541

Open62541插件可在与Qt OPC UA相同的许可证下使用。Open62541库本身根据Mozilla公共许可证v2.0授权。

安全支持由open62541库的OpenSSL插件提供。如果使用安全支持构建open62541插件,而目标系统上不可用OpenSSL,Open62541插件将无法加载。

© © 2024 The Qt Company Ltd。本文件中包含的文档贡献属于其各自的版权所有者。本文件提供的文档是根据由自由软件基金会发布的GNU自由文档许可协议版本1.3条款许可的。Qt及其相应商标是芬兰及全球其他地区的The Qt Company Ltd的商标。商标的所有权均属于其各自的拥有者。