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
直接使用
Byte
quint8
SByte
qint8
布尔值
直接使用
Double
直接使用
Float
直接使用
字符串
QString
DateTime
QDateTime
ByteString
QByteArray
XmlElement
QString
QString
GUID
QUuid
QualifiedName
StatusCode
UaStatusCode
Range
EUInformation
ComplexNumber
DoubleComplexNumber
AxisInformation
XV
Argument
ExpandedNodeId
ExtensionObject
StructureDefinition
QOpcUaStructureDefinition
StructureField
EnumDefinition
EnumField
DiagnosticInfo
RelativePathElement
ContentFilterElement
事件过滤器
类及其所有权#
向用户公开了两个重要的类: QOpcUaClient
和 QOpcUaNode
。
这两个类的对象属于用户所有,并且在不再需要时必须被删除。
日志分类#
以下表格总结了Qt OPC UA使用的日志分类。
日志分类
描述
qt.opcua
由
QOpcUaProvider
和QOpcUaClient
生成的插件独立消息qt.opcua.plugins.open62541
由open62541插件生成的消息
Open62541特定日志分类#
open62541 SDK的日志分类取决于open62541的日志级别,该日志级别在编译时配置。默认为300,启用了:info、warning、error和critical。要获取更详细或更简略的输出,需要重新构建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 Lesser General Public License,版本3,或GNU General Public License,版本2。有关详细信息,请参阅Qt许可协议。
Qt 6.7.0中的Qt OPC UA可能包含以下允许许可证的第三方模块
连接到外部库涉及后端提供者的许可证。
Open62541#
Open62541插件可在与Qt OPC UA相同的许可证下使用。Open62541库本身的许可证为Mozilla Public License v2.0 。
安全支持由open62541库的OpenSSL插件提供。如果open62541插件是与安全支持一起构建的,但是目标系统上没有OpenSSL,open62541插件将无法加载。