Qt OPC UA

The Qt OPC UA module implements a Qt API to interact with OPC UA on top of a 3rd party OPC UA stack.

The stacks are connected via plugins and can be selected/switched at runtime. Currently, the LGPL v3 implementation FreeOPCUA and the MPLv2 implementation Open62541 are supported.

A short introduction to OPC UA

OPC UA is a protocol for data modelling and secure exchange of data in industrial applications. The protocol offers built-in transport security based on certificates and established cryptographic algorithms. The data modelling system is object oriented and offers support for pre-made models which can be extended to fit special needs.

Implemented features from the OPC UA protocol

Following features of OPC UA are supported by QtOpcUa:

FeatureOpen62541 pluginFreeOPCUA plugin
ReadXX
WriteXX
BrowseXX
Data change subscriptionsXX
Modify subscriptions / monitored ItemsX
Method callsXX

Data types

A subset of the OPC UA data types is currently supported in QtOpcUa. Most of them are available with both backends.

Data typeOpen62541 pluginFreeOPCUA pluginQtOpcUa data type
Int16 / Int32 / Int64XXDirectly used
UInt16, UInt32, UInt64XXDirectly used
ByteXXquint8
SByteXXqint8
BooleanXXDirectly used
DoubleXXDirectly used
FloatXXDirectly used
StringXXQString
LocalizedTextXXQOpcUa::QLocalizedText
DateTimeXXQDateTime
ByteStringXXQByteArray
XmlElementXQString
NodeIdXXQString
GUIDXXQUuid
QualifiedNameXXQOpcUa::QQualifiedName
StatusCodeXXQOpcUa::UaStatusCode
RangeXQOpcUa::QRange
EUInformationXQOpcUa::QEUInformation
ComplexNumerXQOpcUa::QComplexNumber
DoubleComplexNumberXQOpcUa::QDoubleComplexNumber
AxisInformationXQOpcUa::QAxisInformation
XVXQOpcUa::QXValue

Classes and ownership

Two important classes are exposed to the user: QOpcUaClient and QOpcUaNode.

Objects of both classes are owned by the user and must be deleted when they are no longer needed.

© 2017 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.