Qt OPC UA Présentation
OPC UA est un protocole destiné à la modélisation et à l'échange de données dans les applications industrielles.
Un serveur OPC UA permet d’accéder à des données organisées en un maillage de nœuds reliés par des références. L’utilisation de différents types de références et de nœuds contenant des métadonnées permet à un client de naviguer et d’interpréter les données sans en connaître la structure au préalable.
Chaque nœud possède un identifiant unique et des attributs pouvant être lus et écrits. Il existe notamment des nœuds « Variables » qui stockent des valeurs et des nœuds « Méthodes » pouvant être appelés, auxquels sont associés des nœuds décrivant les paramètres et les valeurs de retour. Des notifications en cas d’événements et la surveillance des nœuds « Variables » pour détecter les changements de valeur sont également proposées.
Des objets complexes peuvent être créés en combinant des nœuds à l’aide de références. L’héritage est également possible. OPC UA prend en charge des modèles prédéfinis pouvant être étendus pour répondre à des besoins spécifiques.
OPC UA est le successeur indépendant de toute plateforme d’OPC Classic, destiné à être utilisé à tous les niveaux, des capteurs embarqués jusqu’aux systèmes d’exécution de la production et de planification des ressources d’entreprise. Il dispose d’une architecture orientée services basée sur des messages standardisés pour les requêtes et les réponses de services. Il existe différentes méthodes pour encoder ces messages et les transporter sur le réseau. La méthode la plus courante est l’encodage binaire sur TCP.
Fonctionnalités implémentées du protocole OPC UA
Le tableau suivant résume les fonctionnalités d'OPC UA prises en charge par Qt OPC UA.
| Fonctionnalité |
|---|
| Lecture |
| Lecture par lots |
| Lecture de l'historique (brute) |
| Écriture |
| Écriture par lots |
| Tableaux multidimensionnels |
| Parcourir |
| Abonnements aux modifications de données |
| Abonnements aux événements |
| Modifier les abonnements / les éléments surveillés |
| Appels de méthodes |
| Résolution du chemin de navigation |
| GetEndpoints |
| FindServers |
| Gestion des nœuds |
| RegisterNodes |
| Désenregistrer des nœuds |
Types de données
Un sous-ensemble des types de données OPC UA est actuellement pris en charge dans Qt OPC UA.
| Type de données | Qt OPC UA type de données |
|---|---|
| Int16, Int32, Int64 | Utilisés directement |
| UInt16, UInt32, UInt64 | Utilisés directement |
| Octet | quint8 |
| SByte | qint8 |
| Booléen | Utilisé directement |
| Double | Utilisé directement |
| Float | Utilisé directement |
| Chaîne | QString |
| Texte localisé | QOpcUaLocalizedText |
| DateTime | QDateTime |
| Chaîne d'octets | QByteArray |
| Élément XML | QString |
| ID de nœud | QString |
| GUID | QUuid |
| Nom qualifié | QOpcUaQualifiedName |
| Code d'état | QOpcUa::UaStatusCode |
| Plage | QOpcUaRange |
| InformationsUE | QOpcUaEUInformation |
| NombreComplexe | QOpcUaComplexNumber |
| NombreComplexeDouble | QOpcUaDoubleComplexNumber |
| Informations sur l'axe | QOpcUaAxisInformation |
| XV | QOpcUaXValue |
| Argument | QOpcUaArgument |
| ID du nœud développé | QOpcUaExpandedNodeId |
| Objet d’extension | QOpcUaExtensionObject |
| Définition de structure | QOpcUaStructureDefinition |
| ChampDeStructure | QOpcUaStructureField |
| Définition d'énumération | QOpcUaEnumDefinition |
| Champ d'énumération | QOpcUaEnumField |
| Info de diagnostic | QOpcUaDiagnosticInfo |
| Opérande d'attribut simple | QOpcUaSimpleAttributeOperand |
| Opérande d'attribut | QOpcUaAttributeOperand |
| Opérande littéral | QOpcUaLiteralOperand |
| Opérande d'élément | QOpcUaElementOperand |
| Élément de chemin relatif | QOpcUaRelativePathElement |
| Élément de filtre de contenu | QOpcUaContentFilterElement |
| Filtre d’événement | QOpcUaMonitoringParameters::EventFilter |
Classes et propriété
Deux classes importantes sont mises à la disposition de l'utilisateur : QOpcUaClient et QOpcUaNode.
Les objets de ces deux classes sont la propriété de l'utilisateur et doivent être supprimés lorsqu'ils ne sont plus nécessaires.
Catégories de journalisation
Le tableau suivant récapitule les catégories de journalisation utilisées par Qt OPC UA.
| Catégorie de journalisation | Description |
|---|---|
| qt.opcua | Messages indépendants des plugins générés par QOpcUaProvider et QOpcUaClient |
| qt.opcua.plugins.open62541 | Messages générés par le plugin open62541 |
Catégories de journalisation spécifiques à Open62541
Les catégories de journalisation du SDK open62541 dépendent du niveau de journalisation d'open62541, qui est configuré lors de la compilation. La valeur par défaut est 300, ce qui active les niveaux : info, avertissement, erreur et critique. Pour obtenir une sortie plus ou moins détaillée, le SDK open62541 doit être recompilé avec une configuration différente.
Le tableau suivant présente les catégories de journalisation utilisées par open62541 :
| Catégorie de journalisation Open62541 | Description |
|---|---|
| qt.opcua.plugins.open62541.sdk.network | Messages générés par le réseau open62541 |
| qt.opcua.plugins.open62541.sdk.securechannel | Messages générés par le canal open62541 |
| qt.opcua.plugins.open62541.sdk.session | Messages générés par la session open62541 |
| qt.opcua.plugins.open62541.sdk.server | Messages générés par les composants serveur open62541 |
| qt.opcua.plugins.open62541.sdk.client | Messages générés par le client open62541 |
| qt.opcua.plugins.open62541.sdk.userland | Messages générés par l'environnement utilisateur open62541 |
| qt.opcua.plugins.open62541.sdk.securitypolicy | Messages générés par les politiques de sécurité open62541 |
Licences
Le module « Qt OPC UA » est disponible sous licence commerciale auprès de The Qt Company. Il est également disponible sous licence de logiciel libre. Ces licences de logiciel libre sont la Licence publique générale restreinte GNU, version 3, ou la Licence publique générale GNU, version 2. Pour plus de détails, consultez la page Licences Qt.
Qt OPC UA Dans Qt 6.12.0, il peut contenir des modules tiers sous les licences permissives suivantes :
la Licence publique Mozilla 2.0, la licence Creative Commons Zero v1.0 Universal, la licence Creative Commons Attribution Share Alike 4.0 International, la licence BSD à 3 clauses « New » ou « Revised », la licence Apache 2.0 et la licence MIT |
La liaison à des bibliothèques externes implique les licences des fournisseurs de services en arrière-plan.
Open62541
Le plugin Open62541 est disponible sous les mêmes licences que Qt OPC UA. La bibliothèque Open62541 elle-même est sous licence Mozilla Public License v2.0.
La prise en charge de la sécurité est assurée par les plugins OpenSSL de la bibliothèque open62541. Si le plugin open62541 est compilé avec la prise en charge de la sécurité et qu’OpenSSL n’est pas disponible sur le système cible, le plugin open62541 ne pourra pas se charger.
© 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.