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 | 直接使用 |
Byte | quint8 |
SByte | qint8 |
Boolean | 直接使用 |
Double | 直接使用 |
Float | 直接使用 |
String | QString |
LocalizedText | QOpcUaLocalizedText |
DateTime | QDateTime |
ByteString | QByteArray |
XmlElement | QString |
NodeId | QString |
GUID | QUuid |
QualifiedName | QOpcUaQualifiedName |
StatusCode | QOpcUa::UaStatusCode |
Range | QOpcUaRange |
EUInformation | QOpcUaEUInformation |
ComplexNumber | QOpcUaComplexNumber |
DoubleComplexNumber | QOpcUaDoubleComplexNumber |
AxisInformation | QOpcUaAxisInformation |
XV | QOpcUaXValue |
Argument | QOpcUaArgument |
ExpandedNodeId | QOpcUaExpandedNodeId |
ExtensionObject | QOpcUaExtensionObject |
StructureDefinition | QOpcUaStructureDefinition |
StructureField | QOpcUaStructureField |
EnumDefinition | QOpcUaEnumDefinition |
EnumField | QOpcUaEnumField |
DiagnosticInfo | QOpcUa诊断信息 |
简单属性运算符 | QOpcUa简单属性运算符 |
属性运算符 | QOpcUa属性运算符 |
文字运算符 | QOpcUa文字运算符 |
元素运算符 | QOpcUa元素运算符 |
相对路径元素 | QOpcUa相对路径元素 |
内容过滤器元素 | QOpcUa内容过滤器元素 |
事件过滤器 | QOpcUa监控参数::事件过滤器 |
类和所有权
暴露给用户的有两个重要类: 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 OPC UA在Qt 6.7.2中可能包含以下允许使用以下许可证的第三方模块
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的商标。商标的所有权均属于其各自的拥有者。