Qt OPC UA Visión general
OPC UA es un protocolo para el modelado e intercambio de datos en aplicaciones industriales.
Un servidor OPC UA ofrece acceso a datos que están organizados en una malla de nodos conectados por referencias. El uso de diferentes tipos de referencias y nodos que contienen metadatos permite a un cliente navegar e interpretar los datos sin conocer de antemano su estructura.
Cada nodo tiene un identificador único y atributos que pueden leerse y escribirse. Entre otros, hay nodos Variable que almacenan valores y nodos Método invocables con nodos adjuntos que describen parámetros y valores de retorno. También se ofrecen notificaciones en caso de eventos y monitorización de nodos Variable para cambios de valor.
Pueden crearse objetos complejos combinando nodos mediante referencias. También es posible la herencia. OPC UA ofrece soporte para modelos prefabricados que pueden ampliarse para adaptarse a necesidades especiales.
OPC UA es el sucesor de OPC Classic, independiente de la plataforma, pensado para su uso a todos los niveles, desde sensores integrados hasta sistemas de ejecución de fabricación y planificación de recursos empresariales. Tiene una arquitectura orientada a servicios basada en mensajes estandarizados para peticiones y respuestas de servicio. Estos mensajes pueden codificarse y transportarse por la red de distintas formas. La forma más común es la codificación binaria a través de TCP.
Características implementadas del protocolo OPC UA
La siguiente tabla resume las características de OPC UA soportadas por Qt OPC UA.
| Característica |
|---|
| Lectura |
| Lectura por lotes |
| Lectura histórica (sin procesar) |
| Escritura |
| Escritura por lotes |
| Matrices multidimensionales |
| Consultar |
| Suscripciones a cambios de datos |
| Suscripciones de eventos |
| Modificar suscripciones / Elementos supervisados |
| Llamadas a métodos |
| Resolución de rutas de navegación |
| GetEndpoints |
| BuscarServidores |
| Gestión de nodos |
| RegistrarNodos |
| DesregistrarNodos |
Tipos de datos
Actualmente, Qt OPC UA admite un subconjunto de tipos de datos OPC UA.
| Tipo de datos | Qt OPC UA Tipo de datos |
|---|---|
| Int16, Int32, Int64 | Utilizados directamente |
| UInt16, UInt32, UInt64 | Uso directo |
| Byte | quint8 |
| SByte | qint8 |
| Booleano | Utilizado directamente |
| Doble | Uso directo |
| Float | Uso directo |
| Cadena | QString |
| LocalizedText | QOpcUaLocalizedText |
| DateTime | QDateTime |
| ByteString | QByteArray |
| XmlElement | QString |
| NodeId | QString |
| GUID | QUuid |
| QualifiedName | QOpcUaQualifiedName |
| StatusCode | QOpcUa::UaStatusCode |
| Rango | QOpcUaRange |
| Información UE | QOpcUaEUInformation |
| ComplexNumber | QOpcUaComplexNumber |
| DoubleComplexNumber | QOpcUaDoubleComplexNumber |
| AxisInformation | QOpcUaAxisInformation |
| XV | QOpcUaXValue |
| Argumento | QOpcUaArgument |
| ExpandedNodeId | QOpcUaExpandedNodeId |
| ExtensionObject | QOpcUaExtensionObject |
| StructureDefinition | QOpcUaStructureDefinition |
| CampoEstructura | QOpcUaStructureField |
| EnumDefinition | QOpcUaEnumDefinition |
| EnumField | QOpcUaEnumField |
| DiagnosticInfo | QOpcUaDiagnosticInfo |
| SimpleAttributeOperand | QOpcUaSimpleAttributeOperand |
| AttributeOperand | QOpcUaAttributeOperand |
| LiteralOperand | QOpcUaLiteralOperand |
| ElementOperand | QOpcUaElementOperand |
| RelativePathElement | QOpcUaRelativePathElement |
| ContentFilterElement | QOpcUaContentFilterElement |
| EventFilter | QOpcUaMonitoringParameters::EventFilter |
Clases y propiedad
Dos clases importantes están expuestas al usuario: QOpcUaClient y QOpcUaNode.
Los objetos de ambas clases son propiedad del usuario y deben eliminarse cuando ya no se necesiten.
Categorías de registro
La siguiente tabla resume las categorías de registro utilizadas por Qt OPC UA.
| Categoría de registro | Descripción |
|---|---|
| qt.opcua | Mensajes independientes de los plugins generados por QOpcUaProvider y QOpcUaClient |
| qt.opcua.plugins.open62541 | Mensajes generados por el plugin open62541 |
Categorías de registro específicas de open62541
Las categorías de registro del sdk open62541 dependen del nivel de registro de open62541, que se configura en tiempo de compilación. El valor por defecto es 300, que permite: info, warning, error y critical. Para obtener una salida más o menos detallada, es necesario reconstruir el sdk open62541 con una configuración diferente.
La siguiente tabla muestra las categorías de registro utilizadas por open62541:
| Open62541 Categoría de registro | Descripción |
|---|---|
| qt.opcua.plugins.open62541.sdk.network | Mensajes generados por la red open62541 |
| qt.opcua.plugins.open62541.sdk.securechannel | Mensajes generados por el canal open62541 |
| qt.opcua.plugins.open62541.sdk.session | Mensajes generados por la sesión open62541 |
| qt.opcua.plugins.open62541.sdk.server | Mensajes generados por los componentes del servidor open62541 |
| qt.opcua.plugins.open62541.sdk.cliente | Mensajes generados por el cliente open62541 |
| qt.opcua.plugins.open62541.sdk.userland | Mensajes generados por open62541 userland |
| qt.opcua.plugins.open62541.sdk.securitypolicy | Mensajes generados por las políticas de seguridad de open62541 |
Licencias
El módulo Qt OPC UA está disponible bajo licencia comercial de The Qt Company. Además, está disponible bajo licencias de software libre. Estas licencias de software libre son la Licencia Pública General Reducida de GNU, versión 3, o la Licencia Pública General de GNU, versión 2. Consulte Licencias de Qt para más detalles.
Qt OPC UA en Qt 6.11.0 puede contener módulos de terceros bajo las siguientes licencias permisivas:
Mozilla Public License 2.0 y Creative Commons Zero v1.0 Universal y Creative Commons Attribution Share Alike 4.0 International y BSD 3-Clause "New" or "Revised" License y Apache License 2.0 y MIT License |
La vinculación a bibliotecas externas implica licencias de los proveedores de backend.
Open62541
El plugin Open62541 está disponible bajo las mismas licencias que Qt OPC UA. La propia biblioteca Open62541 tiene licencia Mozilla Public License v2.0.
El soporte de seguridad lo proporcionan los plugins OpenSSL de la biblioteca open62541. Si el plugin open62541 se construye con soporte de seguridad y OpenSSL no está disponible en el sistema de destino, el plugin open62541 fallará al cargarse.
© 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.