Qt OPC UA Übersicht

OPC UA ist ein Protokoll für die Datenmodellierung und den Austausch von Daten in industriellen Anwendungen.

Ein OPC UA Server bietet Zugang zu Daten, die in einem Netz von Knoten organisiert sind, die durch Referenzen verbunden sind. Die Verwendung verschiedener Referenztypen und Knoten, die Metadaten enthalten, ermöglicht es einem Client, in den Daten zu navigieren und sie zu interpretieren, ohne ihre Struktur im Voraus zu kennen.

Jeder Knoten hat einen eindeutigen Bezeichner und Attribute, die gelesen und geschrieben werden können. Unter anderem gibt es Variablenknoten, die Werte speichern, und aufrufbare Methodenknoten mit angehängten Knoten, die Parameter und Rückgabewerte beschreiben. Benachrichtigungen bei Ereignissen und die Überwachung von Variablenknoten auf Wertänderungen werden ebenfalls angeboten.

Komplexe Objekte können durch die Kombination von Knoten unter Verwendung von Referenzen erstellt werden. Vererbung ist ebenfalls möglich. OPC UA bietet Unterstützung für vorgefertigte Modelle, die für spezielle Anforderungen erweitert werden können.

OPC UA ist der plattformunabhängige Nachfolger von OPC Classic und ist für den Einsatz auf allen Ebenen gedacht, von eingebetteten Sensoren bis hin zur Fertigungssteuerung und Warenwirtschaftssystemen. Es hat eine dienstorientierte Architektur, die auf standardisierten Nachrichten für Dienstanfragen und Antworten basiert. Es gibt verschiedene Möglichkeiten, diese Nachrichten zu kodieren und über das Netzwerk zu transportieren. Der häufigste Weg ist die binäre Kodierung über TCP.

Implementierte Funktionen des OPC UA Protokolls

Die folgende Tabelle fasst die Funktionen von OPC UA zusammen, die von Qt OPC UA unterstützt werden.

Funktion
Lesen
Batch-Lesen
HistorieLesen (Roh)
Schreiben
Stapelweises Schreiben
Mehrdimensionale Arrays
Durchsuchen
Abonnements für Datenänderungen
Ereignis-Abonnements
Ändern von Abonnements/überwachten Elementen
Methodenaufrufe
Pfadauflösung beim Durchsuchen
GetEndpoints
FindServers
NodeManagement
RegisterKnoten
UnregisterNodes

Datentypen

Eine Teilmenge der OPC UA-Datentypen wird derzeit in Qt OPC UA unterstützt.

DatentypQt OPC UA Datentyp
Int16, Int32, Int64Unmittelbar verwendet
UInt16, UInt32, UInt64Unmittelbar verwendet
Bytequint8
SByteqint8
Boolescher WertUnmittelbar verwendet
DoubleUnmittelbar verwendet
FloatUnmittelbar verwendet
ZeichenketteQString
LocalizedTextQOpcUaLocalizedText
DatumZeitQDateTime
ByteStringQByteArray
XmlElementQString
NodeIdQString
GUIDQUuid
QualifizierterNameQOpcUaQualifiedName
StatusCodeQOpcUa::UaStatusCode
BereichQOpcUaRange
EU-InformationenQOpcUaEUInformation
KomplexeZahlQOpcUaComplexNumber
DoubleComplexNumberQOpcUaDoubleComplexNumber
Achsen-InformationQOpcUaAxisInformation
XVQOpcUaXValue
ArgumentQOpcUaArgument
ExpandedNodeIdQOpcUaExpandedNodeId
ErweiterungsObjektQOpcUaExtensionObject
StrukturDefinitionQOpcUaStructureDefinition
StrukturFeldQOpcUaStructureField
EnumDefinitionQOpcUaEnumDefinition
EnumFieldQOpcUaEnumField
DiagnoseInfoQOpcUaDiagnosticInfo
SimpleAttributeOperandQOpcUaSimpleAttributeOperand
AttributeOperandQOpcUaAttributeOperand
LiteralOperandQOpcUaLiteralOperand
ElementOperandQOpcUaElementOperand
RelativePathElementQOpcUaRelativePathElement
ContentFilterElementQOpcUaContentFilterElement
EventFilterQOpcUaMonitoringParameters::EventFilter

Klassen und Eigentümerschaft

Zwei wichtige Klassen sind für den Benutzer sichtbar: QOpcUaClient und QOpcUaNode.

Die Objekte beider Klassen sind Eigentum des Benutzers und müssen gelöscht werden, wenn sie nicht mehr benötigt werden.

Logging-Kategorien

Die folgende Tabelle fasst die Protokollierungskategorien zusammen, die von Qt OPC UA verwendet werden.

ProtokollierungskategorieBeschreibung
qt.opcuaPlugin-unabhängige Meldungen, die von QOpcUaProvider und QOpcUaClient
qt.opcua.plugins.open62541Meldungen, die vom open62541-Plugin erzeugt werden

Open62541 spezifische Logging Kategorien

Die open62541 sdk Logging-Kategorien hängen von der Log-Ebene für open62541 ab, die zur Kompilierungszeit konfiguriert wird. Der Standardwert ist 300, was folgende Kategorien ermöglicht: info, warning, error und critical. Um weniger oder mehr ausführliche Ausgaben zu erhalten, muss das open62541 sdk mit einer anderen Konfiguration neu erstellt werden.

Die folgende Tabelle zeigt die von open62541 verwendeten Logging-Kategorien:

Open62541 ProtokollierungskategorieBeschreibung
qt.opcua.plugins.open62541.sdk.networkVom open62541-Netzwerk erzeugte Nachrichten
qt.opcua.plugins.open62541.sdk.securechannelVom open62541-Kanal erzeugte Nachrichten
qt.opcua.plugins.open62541.sdk.sessionVon der open62541-Sitzung erzeugte Nachrichten
qt.opcua.plugins.open62541.sdk.serverMeldungen, die von den open62541-Serverkomponenten erzeugt werden
qt.opcua.plugins.open62541.sdk.clientMeldungen, die vom open62541-Client erzeugt werden
qt.opcua.plugins.open62541.sdk.userlandMeldungen, die vom open62541 Userland erzeugt werden
qt.opcua.plugins.open62541.sdk.securitypolicyMeldungen, die von den open62541-Sicherheitsrichtlinien erzeugt werden

Lizenzen

Das Modul Qt OPC UA ist unter kommerziellen Lizenzen von The Qt Company erhältlich. Darüber hinaus ist es unter Lizenzen für freie Software erhältlich. Diese Lizenzen für freie Software sind die GNU Lesser General Public License, Version 3, oder die GNU General Public License, Version 2. Siehe Qt-Lizenzierung für weitere Details.

Qt OPC UA in Qt 6.8.2 kann Module von Drittanbietern enthalten, die unter den folgenden erlaubten Lizenzen stehen:

Open62541, version 1.3.11

Mozilla Public License 2.0 und Creative Commons Zero v1.0 Universal und Creative Commons Attribution Share Alike 4.0 International und BSD 3-Klausel "New" oder "Revised" License und Apache License 2.0 und MIT License

Die Verknüpfung mit externen Bibliotheken erfordert Lizenzen der Backend-Anbieter.

Open62541

Das Open62541 Plugin ist unter den gleichen Lizenzen wie Qt OPC UA verfügbar. Die Open62541-Bibliothek selbst ist unter der Mozilla Public License v2.0 lizenziert.

Die Sicherheitsunterstützung wird von den OpenSSL-Plugins der open62541-Bibliothek bereitgestellt. Wenn das open62541-Plugin mit Sicherheitsunterstützung gebaut wird und OpenSSL auf dem Zielsystem nicht verfügbar ist, wird das open62541-Plugin nicht geladen.

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