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.
| Datentyp | Qt OPC UA Datentyp |
|---|---|
| Int16, Int32, Int64 | Direkt verwendet |
| UInt16, UInt32, UInt64 | Direkt verwendet |
| Byte | quint8 |
| SByte | qint8 |
| Boolescher Wert | Direkt verwendet |
| Double | Direkt verwendet |
| Float | Direkt verwendet |
| Zeichenkette | QString |
| LokalisierterText | QOpcUaLocalizedText |
| DateTime | QDateTime |
| ByteString | QByteArray |
| XML-Element | QString |
| Knoten-ID | QString |
| GUID | QUuid |
| QualifizierterName | QOpcUaQualifiedName |
| StatusCode | QOpcUa::UaStatusCode |
| Bereich | QOpcUaRange |
| EU-Informationen | QOpcUaEUInformation |
| Komplexe Zahl | QOpcUaComplexNumber |
| Doppelte komplexe Zahl | QOpcUaDoubleComplexNumber |
| Achseninformation | QOpcUaAxisInformation |
| XV | QOpcUaXValue |
| Argument | QOpcUaArgument |
| ErweiterteKnoten-ID | QOpcUaExpandedNodeId |
| Erweiterungsobjekt | QOpcUaExtensionObject |
| Strukturdefinition | QOpcUaStructureDefinition |
| Strukturfeld | QOpcUaStructureField |
| Enum-Definition | QOpcUaEnumDefinition |
| Enum-Feld | QOpcUaEnumField |
| Diagnoseinfo | QOpcUaDiagnosticInfo |
| EinfacherAttributoperand | QOpcUaSimpleAttributeOperand |
| Attributoperand | QOpcUaAttributeOperand |
| Literaloperand | QOpcUaLiteralOperand |
| ElementOperand | QOpcUaElementOperand |
| RelativePathElement | QOpcUaRelativePathElement |
| Inhaltsfilterelement | QOpcUaContentFilterElement |
| Ereignisfilter | QOpcUaMonitoringParameters::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.
| Protokollierungskategorie | Beschreibung |
|---|---|
| qt.opcua | Plugin-unabhängige Meldungen, die von QOpcUaProvider und QOpcUaClient |
| qt.opcua.plugins.open62541 | Vom 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-Protokollierungskategorie | Beschreibung |
|---|---|
| qt.opcua.plugins.open62541.sdk.network | Vom open62541-Netzwerk generierte Meldungen |
| qt.opcua.plugins.open62541.sdk.securechannel | Vom open62541-Kanal generierte Meldungen |
| qt.opcua.plugins.open62541.sdk.session | Vom open62541-Session generierte Nachrichten |
| qt.opcua.plugins.open62541.sdk.server | Vom open62541-Server generierte Meldungen |
| qt.opcua.plugins.open62541.sdk.client | Vom open62541-Client generierte Meldungen |
| qt.opcua.plugins.open62541.sdk.userland | Vom open62541-Userland generierte Meldungen |
| qt.opcua.plugins.open62541.sdk.securitypolicy | Von 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:
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.