Auf dieser Seite

Qt OPC UA Übersicht

OPC UA ist ein Protokoll zur Datenmodellierung und zum Datenaustausch in industriellen Anwendungen.

Ein OPC-UA-Server bietet Zugriff auf Daten, die in einem Netz aus Knoten organisiert sind, die durch Referenzen miteinander verbunden sind. Die Verwendung verschiedener Referenztypen und Knoten, die Metadaten enthalten, ermöglicht es einem Client, die Daten zu durchsuchen und zu interpretieren, ohne deren Struktur im Voraus zu kennen.

Jeder Knoten verfügt über eine eindeutige Kennung sowie über 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. Außerdem werden Benachrichtigungen bei Ereignissen sowie die Überwachung von Variablenknoten auf Wertänderungen angeboten.

Komplexe Objekte lassen sich durch die Kombination von Knoten mithilfe von Referenzen erstellen. Auch Vererbung ist möglich. OPC UA bietet Unterstützung für vorgefertigte Modelle, die an spezielle Anforderungen angepasst werden können.

OPC UA ist der plattformunabhängige Nachfolger von OPC Classic und für den Einsatz auf allen Ebenen vorgesehen, von eingebetteten Sensoren bis hin zu Fertigungssteuerungs- und Unternehmensressourcenplanungssystemen. Es verfügt über eine serviceorientierte Architektur, die auf standardisierten Nachrichten für Serviceanfragen und -antworten basiert. Es gibt verschiedene Möglichkeiten, diese Nachrichten zu kodieren und über das Netzwerk zu übertragen. Die gängigste Methode ist die binäre Kodierung über TCP.

Implementierte Funktionen des OPC-UA-Protokolls

Die folgende Tabelle fasst die von Qt OPC UA unterstützten Funktionen von OPC UA zusammen.

Funktion
Lesen
Batch-Lesevorgang
HistoryRead (Raw)
Schreiben
Batch-Schreiben
Mehrdimensionale Arrays
Durchsuchen
Abonnements für Datenänderungen
Ereignisabonnements
Abonnements / überwachte Elemente ändern
Methodenaufrufe
Auflösung des Browse-Pfads
GetEndpoints
FindServers
Knotenverwaltung
RegisterNodes
Knoten deregistrieren

Datentypen

In „ Qt OPC UA “ wird derzeit eine Teilmenge der OPC-UA-Datentypen unterstützt.

DatentypQt OPC UA Datentyp
Int16, Int32, Int64Direkt verwendet
UInt16, UInt32, UInt64Direkt verwendet
Bytequint8
SByteqint8
Boolescher WertDirekt verwendet
DoubleDirekt verwendet
FloatDirekt verwendet
ZeichenketteQString
LokalisierterTextQOpcUaLocalizedText
DateTimeQDateTime
ByteStringQByteArray
XML-ElementQString
Knoten-IDQString
GUIDQUuid
QualifizierterNameQOpcUaQualifiedName
StatusCodeQOpcUa::UaStatusCode
BereichQOpcUaRange
EU-InformationenQOpcUaEUInformation
Komplexe ZahlQOpcUaComplexNumber
Doppelte komplexe ZahlQOpcUaDoubleComplexNumber
AchseninformationQOpcUaAxisInformation
XVQOpcUaXValue
ArgumentQOpcUaArgument
ErweiterteKnoten-IDQOpcUaExpandedNodeId
ErweiterungsobjektQOpcUaExtensionObject
StrukturdefinitionQOpcUaStructureDefinition
StrukturfeldQOpcUaStructureField
Enum-DefinitionQOpcUaEnumDefinition
Enum-FeldQOpcUaEnumField
DiagnoseinfoQOpcUaDiagnosticInfo
EinfacherAttributoperandQOpcUaSimpleAttributeOperand
AttributoperandQOpcUaAttributeOperand
LiteraloperandQOpcUaLiteralOperand
ElementOperandQOpcUaElementOperand
RelativePathElementQOpcUaRelativePathElement
InhaltsfilterelementQOpcUaContentFilterElement
EreignisfilterQOpcUaMonitoringParameters::EventFilter

Klassen und Eigentumsverhältnisse

Dem Benutzer stehen zwei wichtige Klassen zur Verfügung: „ QOpcUaClient “ und „ QOpcUaNode “.

Objekte beider Klassen befinden sich im Besitz des Benutzers und müssen gelöscht werden, wenn sie nicht mehr benötigt werden.

Protokollierungskategorien

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.open62541Vom Plugin „open62541“ generierte Meldungen

Open62541-spezifische Protokollierungskategorien

Die Protokollierungskategorien des open62541-SDK hängen von der Protokollierungsstufe für open62541 ab, die zur Kompilierungszeit konfiguriert wird. Der Standardwert ist 300, wodurch die Kategorien „info“, „warning“, „error“ und „critical“ aktiviert sind. Um eine weniger oder ausführlichere Ausgabe zu erhalten, muss das open62541-SDK mit einer anderen Konfiguration neu kompiliert werden.

Die folgende Tabelle zeigt die von „open62541“ verwendeten Protokollierungskategorien:

Open62541-ProtokollierungskategorieBeschreibung
qt.opcua.plugins.open62541.sdk.networkVom open62541-Netzwerk generierte Meldungen
qt.opcua.plugins.open62541.sdk.securechannelVom open62541-Kanal generierte Meldungen
qt.opcua.plugins.open62541.sdk.sessionVom open62541-Session generierte Nachrichten
qt.opcua.plugins.open62541.sdk.serverVom open62541-Server generierte Meldungen
qt.opcua.plugins.open62541.sdk.clientVom open62541-Client generierte Meldungen
qt.opcua.plugins.open62541.sdk.userlandVom open62541-Userland generierte Meldungen
qt.opcua.plugins.open62541.sdk.securitypolicyVon den open62541-Sicherheitsrichtlinien generierte Meldungen

Lizenzen

Das Modul „ Qt OPC UA “ ist unter kommerziellen Lizenzen von The Qt Company erhältlich. Darüber hinaus ist es unter freien Softwarelizenzen verfügbar. Bei diesen freien Softwarelizenzen handelt es sich um die GNU Lesser General Public License, Version 3, oder die GNU General Public License, Version 2. Weitere Informationen finden Sie unter Qt-Lizenzierung.

Qt OPC UA in Qt 6.12.0 kann Module von Drittanbietern unter folgenden freizügigen Lizenzen enthalten:

Open62541, version v1.5.7

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

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

Open62541

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

Die Sicherheitsunterstützung wird durch die OpenSSL-Plugins der open62541-Bibliothek bereitgestellt. Wenn das open62541-Plugin mit Sicherheitsunterstützung kompiliert wurde und OpenSSL auf dem Zielsystem nicht verfügbar ist, kann das open62541-Plugin nicht geladen werden.

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