Está en la página 1de 68

Suscríbete a DeepL Pro para poder traducir archivos de mayor tamaño.

Más información disponible en www.DeepL.com/pro.


Cliente OPC UA .NET
para SIMATIC S7-1500
Servidor OPC UA

S7-1500 / OPC UA / .NET / C# Siemens


Industry
https://support.industry.siemens.com/cs/ww/en/view/109737901 Asisten
cia en
línea
Información jurídica

Información jurídica
Uso de ejemplos de aplicación
Los ejemplos de aplicación ilustran la solución de tareas de automatización mediante la interacción de varios
componentes en forma de texto, gráficos y/o módulos de software. Los ejemplos de aplicación son un servicio
gratuito de Siemens AG y/o de una filial de Siemens AG ("Siemens"). No son vinculantes y no pretenden ser
completos ni funcionales en cuanto a configuración y equipamiento. Los ejemplos de aplicación sólo ofrecen
ayuda para tareas típicas; no constituyen soluciones específicas para el cliente. Usted mismo es responsable
del funcionamiento correcto y seguro de los productos de acuerdo con la normativa vigente y debe comprobar
también el funcionamiento del ejemplo de aplicación correspondiente y adaptarlo a su sistema.
Siemens le concede el derecho no exclusivo, no sublicenciable e intransferible a que los ejemplos de aplicación
sean utilizados por personal técnicamente capacitado. Cualquier modificación de los ejemplos de aplicación es
responsabilidad suya. Sólo se permite compartir los ejemplos de aplicación con terceros o copiar los ejemplos
de aplicación o extractos de los mismos en combinación con sus propios productos. Los ejemplos de aplicación
no deben someterse a las pruebas e inspecciones de calidad habituales de un producto facturable; pueden
presentar defectos funcionales y de rendimiento, así como errores. Es responsabilidad del usuario utilizarlos de
forma que los fallos de funcionamiento que puedan producirse no ocasionen daños materiales o personales.

Exención de responsabilidad
Siemens no asumirá ninguna responsabilidad, por ningún motivo legal, incluyendo, sin limitación, la
responsabilidad por la usabilidad, disponibilidad, integridad y ausencia de defectos de los ejemplos de
aplicación, así como por la información relacionada, la configuración y los datos de rendimiento y cualquier
daño causado por ello. Esto no se aplicará en los casos de responsabilidad obligatoria, por ejemplo, en virtud
de la Ley alemana de responsabilidad por productos defectuosos, o en los casos de dolo, negligencia grave o
pérdida culpable de la vida, lesiones corporales o daños a la salud, incumplimiento de una garantía, no
revelación fraudulenta de un defecto o incumplimiento culpable de obligaciones contractuales materiales. No
obstante, las reclamaciones por daños y perjuicios derivadas del incumplimiento de obligaciones contractuales
materiales se limitarán a los daños previsibles típicos del tipo de acuerdo, a menos que la responsabilidad se
derive de dolo o negligencia grave o se base en la pérdida de vidas, lesiones corporales o daños para la salud.
Siemens AG 2022 Todos los derechos

Las disposiciones anteriores no implican ninguna modificación de la carga de la prueba en su perjuicio. Usted
eximirá a Siemens de las reclamaciones existentes o futuras de terceros en este sentido, salvo en los casos en
que Siemens sea obligatoriamente responsable.
Al utilizar los ejemplos de aplicación, usted reconoce que Siemens no se hace responsable de ningún daño que
vaya más allá de las disposiciones de responsabilidad descritas.

Información adicional
reservados

Siemens se reserva el derecho a realizar modificaciones en los ejemplos de aplicación en cualquier momento y sin
previo aviso. En caso de discrepancias entre las sugerencias de los ejemplos de aplicación y otras publicaciones de
Siemens, como los catálogos, tendrá preferencia el contenido de la otra documentación.
También se aplicarán las condiciones de uso de Siemens (https://support.industry.siemens.com).

Información sobre seguridad


Siemens ofrece productos y soluciones con funciones de seguridad industrial que contribuyen al
funcionamiento seguro de plantas, sistemas, máquinas y redes.

Para proteger las plantas, los sistemas, las máquinas y las redes contra las ciberamenazas, es necesario
implantar -y mantener continuamente- un concepto de seguridad industrial holístico y de vanguardia. Los
productos y soluciones de Siemens constituyen un elemento de dicho concepto.

Los clientes son responsables de impedir el acceso no autorizado a sus instalaciones, sistemas, máquinas y
redes. Dichos sistemas, máquinas y componentes sólo deben conectarse a una red de empresa o a Internet si
tal conexión es necesaria y en la medida en que lo sea, y sólo cuando existan medidas de seguridad adecuadas
(por ejemplo, cortafuegos y/o segmentación de la red).

Para más información sobre las medidas de seguridad industrial que pueden aplicarse, visite
https://www.siemens.com/industrialsecurity.

Los productos y soluciones de Siemens están sometidos a un desarrollo continuo para hacerlos más seguros.
Siemens recomienda encarecidamente que las actualizaciones de los productos se apliquen en cuanto estén
disponibles y que se utilicen las últimas versiones de los productos. El uso de versiones de productos que ya no
son compatibles y la no aplicación de las últimas actualizaciones pueden aumentar la exposición del cliente a
las ciberamenazas.

Para mantenerse informado sobre las actualizaciones de productos, suscríbase al canal RSS de Siemens Industrial
Security en: https://www.siemens.com/industrialsecurity.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 2
Índice

Índice
Información jurídica ..........................................................................................................................2
1 Introducción ............................................................................................................................4
1.1 Visión general ............................................................................................................4
1.2 Modo de funcionamiento ...........................................................................................5
1.3 Componentes utilizados .............................................................................................7
2 Ingeniería .................................................................................................................................8
2.1 Configuración del servidor OPC UA del S7-1500......................................................8
2.1.1 Habilitación del servidor OPC UA..............................................................................8
2.1.2 Activación de la configuración de seguridad global .................................................10
2.1.3 Configuración de políticas de seguridad OPC UA (puntos finales del servidor)......11
2.1.4 Seguridad mediante gestión de certificados (opcional)...........................................12
2.1.5 Creación de usuario para el servidor OPC UA........................................................14
2.1.6 Habilitación de etiquetas para la comunicación OPC UA........................................15
2.2 Programación del ejemplo de cliente OPC UA........................................................16
2.2.1 Cliente OPC UA S7-1500 ........................................................................................16
2.2.2 UAClientHelperAPI ..................................................................................................19
2.2.3 Diagrama de secuencia para el ejemplo del cliente ................................................21
2.3 Operación ................................................................................................................27
2.3.1 Descripción de la interfaz de usuario.......................................................................27
Siemens AG 2022 Todos los derechos

2.3.2 Puesta en servicio del servidor OPC UA del S7-1500.............................................35


2.3.3 Puesta en servicio del cliente OPC UA S7-1500.....................................................35
2.3.4 Creación, exportación y carga del certificado de cliente en el S7-1500 (opcional) .36
2.3.5 Establecimiento de una conexión con el servidor OPC UA.....................................39
2.3.6 Exploración del espacio de direcciones del servidor OPC UA ................................41
2.3.7 Lectura/escritura de etiquetas ..................................................................................42
2.3.8 Suscripciones ..........................................................................................................48
reservados

2.3.9 Estructuras de lectura y escritura/UDT ....................................................................49


2.3.10 Métodos de llamada ................................................................................................50
3 Información valiosa ..............................................................................................................53
3.1 Conceptos básicos...................................................................................................53
3.1.1 Información general sobre OPC UA ........................................................................53
3.1.2 Espacio de direcciones OPC UA .............................................................................54
3.1.3 Seguridad OPC UA..................................................................................................56
3.1.4 Servidor OPC UA del S7-1500 ................................................................................58
3.2 Detalles del proyecto del Portal TIA ........................................................................59
3.2.1 Configuración de S7-1500 y OPC UA .....................................................................59
3.2.2 Programa S7 ...........................................................................................................59
3.3 Modelo de licencia para OPC UA .NET stack/SDK.................................................60
4 Anexo.....................................................................................................................................61
4.1 Servicio y asistencia ................................................................................................61
4.2 Enlaces y bibliografía...............................................................................................62
4.3 Modificar la documentación .....................................................................................62

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 3
1 Introducción

1 Introducción

1.1 Visión general


OPC UA (Open Platform Communications Unified Architecture) es un protocolo de
comunicación M2M adoptado en 2009 y especificado por la fundación OPC. La especificación
OPC se ha desarrollado para crear un protocolo de comunicación interoperable, seguro y
fiable. Basándose en estas propiedades, OPC UA se impone cada vez más como estándar en
el entorno industrial.
Con el firmware actual de SIMATIC S7-1500 se ha añadido al sistema de control un servidor
OPC UA integrado. Esto permite una opción adicional de intercambio directo de datos de
proceso del SIMATIC S7-1500 con una amplia variedad de otros sistemas compatibles con
OPC UA.

Contenido de este ejemplo de aplicación


Para intercambiar datos con el servidor de SIMATIC S7-1500 a través de OPC UA, este
ejemplo de aplicación le mostrará cómo crear un cliente sencillo en .Net. Además, explica paso
a paso cómo configurar el servidor OPC UA de SIMATIC S7-1500.
Figura 1-1

Ejemplo de cliente OPC Servidor OPC


Siemens AG 2022 Todos los derechos

UA UA
reservados

OPC UA

Windows PC/PG SIMATIC S7-1500

Ventajas del ejemplo de aplicación


Este ejemplo de aplicación le ofrece las siguientes ventajas:
• Proyecto TIA ampliable con servidor OPC UA preconfigurado para SIMATIC S7-1500
• Un cliente OPC UA sencillo y ampliable, creado en C# para .NET
• Una clase C# comentada que resume las funciones básicas del cliente OPC UA y
garantiza una implementación sencilla.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 4
1 Introducción

Conocimientos asumidos
El usuario debe tener los siguientes conocimientos básicos:
• Fundamentos de programación en C#/.NET
• Conceptos básicos de configuración en el Portal TIA
• Conceptos básicos de OPC
• Conceptos básicos de seguridad de software y gestión de certificados

1.2 Modo de funcionamiento


A continuación, encontrará una explicación de los componentes, las funciones y el modo de
funcionamiento que se utilizan en el ejemplo de aplicación.

Descripción general de las funciones


La siguiente figura muestra los componentes más importantes de este ejemplo de aplicación:
Figura 1-2

Ejemplo de cliente Servidor OPC


OPC UA UA
Siemens AG 2022 Todos los derechos

Ethernet industrial
OPC UA
reservados

UAClientHelperAPI

Pila OPC UA .NET

Windows PC/PG SIMATIC S7-1500

Un sencillo cliente OPC UA .NET para PCs/PGs Windows se comunica con el servidor OPC
UA de un SIMATIC S7-1500.
El cliente admite los siguientes conjuntos de servicios OPC UA:
• Búsqueda y localización de servidores: Conjunto de servicios de descubrimiento (FindServers,
GetEndpoints)
• Creación y finalización de sesiones: Conjunto de servicios de sesiones (CreateSession,
CloseSession)
• Navegar en el espacio de direcciones: Ver conjunto de servicios (Navegar,
RegistrarNodos, DesregistrarNodos)
• Lectura y escritura de etiquetas y atributos: Conjunto de servicios de atributos (lectura,
escritura)
• Suscripción a etiquetas: Subscription Service Set (CreateSubscription,
DeleteSubscription); MonitoredItem Service Set (CreateMonitoredItem,
DeleteMonitoredItem)
• Llamada a métodos: Conjunto de servicios de métodos (GetMethodArguments, CallMethod)

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 5
1 Introducción

El servidor OPC UA de SIMATIC S7-1500 se planifica y configura a través del TIA Portal. El
cliente OPC UA se crea en C#/.NET y utiliza internamente la pila OPC UA .NET de libre acceso
de la OPC Foundation. Para facilitar las implementaciones individuales de un cliente .NET, se
incluye la clase C# "UAClientHelperAPI". Esta clase resume las funciones básicas del
.NET de la OPC Foundation y le facilita considerablemente el uso de las funciones básicas. El
cliente y el servidor se conectan a través de Ethernet y se comunican mediante OPC UA a
través de TCP/IP.

Secuencia funcional
Una vez que el servidor OPC UA ha sido planificado, configurado (con certificado de cliente) y
cargado en la CPU, la siguiente secuencia funcional es el resultado para el cliente de este
ejemplo:
Figura 1-3

Iniciar cliente

Solicitar puntos
finales del
servidor a través
de LDS
Siemens AG 2022 Todos los derechos

Conectarse al
punto final del
servidor
reservados

Navegar por
los nodos
del
servidor

Iniciar
Leer o Registrar Solicitar
suscripción a
escribir nodos de argumentos de
nodos de
nodos de etiquetas entrada y salida
etiquetas
etiquetas

Detener la
Leer o
suscripción a Método de
escribir
nodos de llamada
nodos de
etiquetas
etiquetas

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 6
1 Introducción

Para poder solicitar puntos finales del servidor a través de un LDS (Local Discovery Server)
NOTA o GDS (Global Discovery Server) es necesario tener instalado un LDS en el PC/PG o
disponer de un GDS en la red.

1.3 Componentes utilizados


Este ejemplo de aplicación se creó con los siguientes componentes:

Cuadro 1-1
Componente Cant. Número de artículo Nota
S7-1500 1 6ES7 511-1UK01-0AB0 Cualquier S7-1500-CPU compatible,
CPU 1511TF-1 PN Firmware 2.9 o superior
STEP 7 Profesional 1 6ES7822-1..05-.. TIA Portal V15 o superior

Visual Studio 2020 1 - También es posible una versión


comunitaria.
Pila OPC UA .Net 1 - V1.04.369.30
Descargar: Enlaces y literatura en el
artículo
\2\.
Siemens AG 2022 Todos los derechos

NOTA Requiere un entorno de ejecución .NET.

Este ejemplo de aplicación contiene los siguientes componentes:


reservados

Tabla 1-2
Componente Nombre del fichero Nota
Documentación 109737901_OPC_UA_Client_S7- Este documento.
1500_DOKU_V1_5_en.pdf
Ejemplo de proyecto 109737901_OPC_UA_Client_S7- El archivo ZIP contiene el
1500_CODE_V1_5.zip proyecto de Visual Studio y TIA
Portal.

El proyecto TIA Portal está protegido. Para iniciar sesión necesita las siguientes

NOTA credenciales: Usuario: Usuario


Contraseña: Siemens.1

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 7
2 Ingeniería

2 Ingeniería
2.1 Configuración del servidor OPC UA del S7-1500
Las siguientes instrucciones paso a paso muestran cómo planificar y configurar el servidor OPC
UA de SIMATIC S7- 1500 a través del TIA Portal.

Requisitos previos
• Cree un nuevo proyecto TIA Portal (V15 o superior).
• Configure un SIMATIC S7-1500 con firmware 2.9 o superior.

2.1.1 Habilitación del servidor OPC UA

El servidor OPC UA del S7-1500 está desactivado por defecto. Las instrucciones siguientes le
muestran cómo habilitar los pasos necesarios en el servidor:
1. Vaya a las "Propiedades" de la CPU S7-1500 configurada en el Portal TIA.
2. Vaya a "Licencias de tiempo de ejecución > OPC UA" en la ventana del inspector y
seleccione allí la licencia necesaria.
Siemens AG 2022 Todos los derechos

3. Vaya a "OPC UA > Servidor > General" en la ventana del inspector y active allí la casilla
reservados

"Activar servidor OPC UA".

4. Vaya a "OPC UA > General" en la ventana de inspección y asigne un nombre adecuado a


su servidor OPC UA en el campo "Nombre de aplicación". El servidor UA S7-1500 se
identifica ante los clientes UA mediante este nombre.

Esta configuración es suficiente para habilitar el servidor OPC UA de la CPU y garantizar un


NOTA funcionamiento básico. Tenga en cuenta que el servidor en su configuración estándar
permite la conexión de cualquier cliente.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 8
2 Ingeniería

5. Vaya a "OPC UA > Servidor" > Opciones" en la ventana de inspección y asigne la


dirección de puerto que desee para el servidor OPC UA de la CPU. Además, asigne un
"Intervalo mínimo de publicación" y un "Intervalo mínimo de muestreo" para el servidor
OPC UA.

"Intervalo mínimo de publicación":


Siemens AG 2022 Todos los derechos

Este valor determina a qué intervalos mínimos se permite al servidor OPC UA enviar datos a
un cliente a través de suscripciones OPC UA.
"Intervalo mínimo de muestreo":
NOTA Este valor determina en qué intervalos mínimos se permite al servidor OPC UA solicitar
cambios de datos de la gestión de datos de la CPU.
reservados

Estos valores influyen en la comunicación y en la carga de la CPU, por lo que deben tenerse
en cuenta. El valor mínimo depende del tipo de CPU.

6. Seleccione la CPU en el árbol de proyectos y cargue el proyecto en el controlador.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 9
2 Ingeniería

2.1.2 Activar la configuración de seguridad global

Para gestionar los certificados de software del servidor OPC UA, es necesario habilitar la
configuración de seguridad global del proyecto TIA. Las instrucciones siguientes le muestran
los pasos necesarios:
1. Navegue hasta las "Propiedades" de la CPU S7-1500 configurada en el Portal TIA.
2. Vaya a "Protección y seguridad > Gestor de certificados" y active la casilla "Utilizar
la configuración de seguridad global para el gestor de certificados".

NOTA Al marcar la casilla se eliminan todos los certificados de dispositivo.

3. Vaya a "OPC UA > Servidor > Seguridad > Certificados" en la navegación del proyecto y
cree un nuevo certificado de servidor.
Siemens AG 2022 Todos los derechos
reservados

4. Vaya a "Protección y seguridad > Mecanismo de conexión" y seleccione el certificado de


servidor creado como "Certificado de comunicación PLC".

5. Vaya a "Ajustes de seguridad > Ajustes > Protección del proyecto" en la navegación del
proyecto y haga clic en el botón "Proteger este proyecto". Asigne un "Nombre de usuario"
y una "Contraseña", para poder realizar ajustes de seguridad en su proyecto.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 10
2 Ingeniería

6. A través del nombre de usuario y la contraseña asignados, puede iniciar sesión en el


proyecto TIA para acceder al gestor de certificados y a otras funciones de seguridad.

2.1.3 Configuración de políticas de seguridad OPC UA (puntos finales del servidor)

Puede configurar el modo de cifrado y autenticación entre el cliente y el servidor OPC UA a


través de las políticas de seguridad del servidor OPC UA. Las siguientes instrucciones
muestran los pasos necesarios para activar las políticas de seguridad existentes:
1. Navegue hasta las "Propiedades" de la CPU S7-1500 configurada en el Portal TIA.
2. Vaya a "OPC UA > Servidor > Seguridad > Canal seguro" en la ventana del inspector y
seleccione las políticas de seguridad que desee en "Políticas de seguridad disponibles en
el servidor". El servidor crea un endpoint independiente para cada política seleccionada al
Siemens AG 2022 Todos los derechos

que puede conectarse un cliente.


reservados

Para que un cliente OPC UA pueda conectarse a los puntos finales del servidor OPC UA,
NOTA debe admitir las políticas seleccionadas.

3. Seleccione la CPU en el árbol de proyectos y cargue el proyecto en el controlador.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 11
2 Ingeniería

2.1.4 Seguridad mediante gestión de certificados (opcional)

Para estos ajustes deben cumplirse los siguientes requisitos previos:


• La configuración de seguridad global está activada
• Ha iniciado sesión en la configuración de seguridad global
• Los certificados de cliente están disponibles.

La siguiente instrucción le muestra lo que debe configurar para permitir que sólo los clientes OPC
UA con certificados de software definidos se conecten al servidor OPC UA:
1. Vaya a "Propiedades" de la CPU S7-1500 configurada en el portal TIA. Vaya a la
ventana de inspección "OPC UA > Servidor > Seguridad > Certificados" y desactive la
casilla de verificación "Aceptar automáticamente todos los certificados de cliente durante
el tiempo de ejecución" en "Clientes de confianza".
Siemens AG 2022 Todos los derechos

Sin embargo, cuando se activa la política de seguridad "none", cualquier cliente puede
NOTA seguir conectándose a través del endpoint correspondiente incluso sin certificado aceptado.

2. Vaya a "Ajustes globales de seguridad" en la navegación del proyecto y abra el


"Gestor de certificados". Vaya a la pestaña "Certificados de dispositivo".
reservados

3. Haga clic con el botón derecho del ratón en el área de trabajo y, a continuación, haga clic con
el botón izquierdo en "Importar".

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 12
2 Ingeniería

4. Seleccione el certificado de software de su cliente OPC UA a través del explorador


de archivos abierto y confirme con "Abrir". A continuación, los certificados
importados pueden visualizarse en el área de trabajo.

5. Vaya a la ventana de inspección "OPC UA > Servidor > Seguridad > Certificados" y vaya al
área "Clientes de confianza". Haga doble clic en "<Añadir nuevo>" en la lista y, a
continuación, haga clic en el icono "...".

6. En el cuadro de diálogo que se abre ahora, seleccione el certificado de software


previamente importado del gestor de certificados en el que debe confiar su servidor
OPC UA y confírmelo con la marca verde.
Siemens AG 2022 Todos los derechos
reservados

7. Seleccione la CPU en el árbol de proyectos y cargue el proyecto en el controlador.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 13
2 Ingeniería

2.1.5 Creación de usuario para el servidor OPC UA

Si desea crear un usuario en el servidor para la autenticación, proceda del siguiente modo:
1. Navegue hasta las "Propiedades" de la CPU S7-1500 configurada en el Portal TIA.
2. Vaya a la ventana de inspección "OPC UA > Servidor > Seguridad > Autenticación de
usuario".
3. Active la casilla "Activar autenticación de nombre de usuario y contraseña".

4. Haga clic en el campo "<Añadir nuevo usuario>" y asigne un nombre de usuario.


Siemens AG 2022 Todos los derechos

5. A continuación, haga clic en la celda de la columna "Contraseña" y asigne una


contraseña para el usuario en el cuadro de diálogo que aparece a continuación. Repita
la contraseña y confirme con "OK".
reservados

6. Seleccione la CPU en el árbol de proyectos y cargue el proyecto en el controlador.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 14
2 Ingeniería

Los clientes OPC UA pueden autenticarse en el servidor del S7-1500 mediante el ID de


NOTA usuario recién creado.

2.1.6 Habilitación de etiquetas para la comunicación OPC UA

Para cada tag (aparte de los temporales) en el programa de usuario S7 puede especificar
individualmente si deben ser habilitados para la comunicación OPC UA. La siguiente
instrucción le explica lo que tiene que hacer.
1. En su proyecto TIA navegue hasta las etiquetas que desea tener en un FB, DB o las etiquetas
del PLC.
2. Active la casilla "Accesible desde HMI/OPC UA" en las declaraciones de etiquetas.

3. Seleccione la CPU en el árbol de proyectos y cargue el proyecto en el controlador.


Siemens AG 2022 Todos los derechos
reservados

4. Los tags modificados por usted son ahora escribibles o legibles a través de clientes OPC UA.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 15
2 Ingeniería

2.2 Programación del ejemplo de cliente OPC UA


Las siguientes descripciones explican las funciones y principios del programa de ejemplo de
cliente OPC UA.

2.2.1 Cliente OPC UA S7-1500

El programa de ejemplo de cliente OPC UA "OPC UA Client S7-1500" ha sido creado en .NET y
requiere .NET Framework 4.8.

Configuración estructural
La siguiente figura muestra la estructura del ejemplo de cliente OPC UA de este ejemplo de
aplicación:
Figura 2-1

Interfaz de usuario

UAClientForm
UAClientForm.cs

UAClientMatrixForm
Siemens AG 2022 Todos los derechos

UAClientMatrixForm.cs Cliente OPC UA S7-1500

UaClientCertForm
UAClientCertForm.cs
reservados

UAClientHelperAPI
UaClientHelperAPI.cs

OPC UA .NET SDK / Pila


Opc.Ua.Core.dll
Opc.Ua.Client.dll
Opc.Ua.Security.Certificates.dll

La clase "UAClientForm" deriva de la clase de sistema Windows.Forms e incluye el constructor


del formulario así como los EventHandlers de la interfaz del programa. En los EventHandlers se
accede a los métodos de la clase "UAClientHelperAPI".
El "UAClientMatrixForm" deriva de la clase de sistema Windows.Forms. e incluye el
constructor del formulario así como el EventHandler de la interfaz del programa. En el
EventHandler se realiza el paso de los valores escritos a la clase "UAClientHelperAPI".
La clase "UAClientCertForm" deriva de la clase de sistema Windows.Forms e incluye el
constructor del formulario así como los EventHandlers de la interfaz del programa. La gestión
del certificado se realiza en los EventHandlers.
La clase "UAClientHelperAPI" es una clase específica de usuario que resume las llamadas más
importantes de la pila OPC UA .NET. Además, se incluyen métodos privados para crear y
rellenar los objetos necesarios para la pila OPC UA .NET. Esta clase puede ser ampliada y
reutilizada como se desee y puede ser utilizada por los desarrolladores, con el fin de crear
simples clientes OPC UA independientes.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 16
2 Ingeniería

La "pila OPC UA .NET" de la Fundación OPC incluye las clases/objetos reales que ejecutan y
gestionan la comunicación OPC UA. La pila consiste en una multitud de bibliotecas (DLLs).
Este ejemplo de aplicación sólo se realiza a través de los métodos y objetos de
Opc.Ua.Core.dll, Opc.Ua.Client.dll y Opc.Ua.Security.Certificates.dll. La descarga de la pila
.NET completa, así como su documentación, puede encontrarse en los enlaces y bibliografía
del punto
\2\.

Uso de UAClientHelperAPI en el ejemplo


En la siguiente tabla se enumeran las funciones en las que se utilizan los métodos públicos de
la UAClientHelperAPI:
Tabla 2-1
UAClientHelperAPI Utilizado dentro de UAClientForm.cs en el
método...
BuscarServidores EndpointButton_Click
GetEndpoints EndpointButton_Click
Conectar ConnectServerButton_Click
EpConnectButton_Click
Desconecte ConnectServerButton_Click
EpConnectButton_Click
ClientForm_FormClosing
GetNamespaceUri -
GetNamespaceIndex -
Siemens AG 2022 Todos los derechos

GetNamespaceArray -
NavegarRaíz BrowsePage_Enter
NavegarNodo NodeTreeView_BeforeExpand
BrowseNodeByReferenceType -
Suscríbase a SubscribeButton_Click
reservados

AddMonitoredItem SubscribeButton_Click
AddEventMonitoredItem -
EliminarelementoSupervisado SubscribeButton_Click
EliminarSuscripción UnsubscribeButton_Click
LeerNodo NodeTreeView_BeforeSelect
ReadNodeAttributes StructReadButton_Click
EscribirValores WriteValButton_Click
RgWriteValButton_Click
LeerValores ReadValButton_Click
RgReadButton_Click
ReadStructUdt StructReadButton_Click
WriteStructUdt StructWriteButton_Click
RegisterNodeIds RegisterButton_Click
UnregisterNodeIds UnregisterButton_Click
GetMethodArguments MethodInfoButton_Click
Método de llamada CallButton_Click

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 17
2 Ingeniería

En la siguiente tabla se enumeran los EventHandlers en los que deben procesarse los eventos
públicos de la UAClientHelperAPI:
Cuadro 2-2
UAClientHelperAPI Usado en UAClientForm.cs en el manejador
de eventos...
Notificación_CertificadoValidación Validator_CertificateValidation
Notification_MonitoredItem Notification_MonitoredItem
Notificación_KeepAlive Notificación_KeppAlive
Notification_MonitoredEventItem -
Server_ReconnectComplete -

Diagrama de clases
El siguiente diagrama de clases muestra las clases del ejemplo de cliente OPC UA. Las
funciones de la interfaz del programa son implementadas por las clases utilizadas.
Figura 2-2

UAClientForm
UAClientCertForm
+ConnectServerButton_Click()
+SubscribeButton_Click() +AcceptButton_Click()
+ReadValButton_Click()
+RejectButton_Click()
+RegisterButton_Click()
Siemens AG 2022 Todos los derechos

+ ...

-miSesión
-miSuscripción
reservados

-myMonitoredItem

UAClientHelperAPI

Pila OPC UA::Varias clases

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 18
2 Ingeniería

2.2.2 UAClientHelperAPI

Las siguientes explicaciones describen la clase reutilizable "UAClientHelperAPI" que ilustra las
principales funcionalidades del ejemplo de cliente OPC UA.

Diagrama de clases
La siguiente figura muestra el diagrama de clases para la clase "UAClientHelperAPI". Los
métodos de acceso más importantes a un servidor OPC UA están encapsulados y resumidos
en esta clase.
La UAClientHelperAPI accede a los ensamblados .NET Opc.UA.Client.dll, Opc.UA.Core.dll y
Opc.Ua.Security.Certificates.dll de la OPC Foundation.
Figura 2-3

UAClientHelperAPI
D

+BuscarServidores()
+GetEndpoints()
+Conectar()
+Desconexión()
+GetNamespaceUri()
+GetNamespaceIndex()
+GetNamespaceArray()
+BrowseRoot()
Siemens AG 2022 Todos los derechos

+BrowseNode()
+Suscribirse()
+EliminarSuscripción()
+AddMonitoredItem()
+AddEventMonitiredItem()
+RemoveMonitoredItem()
reservados

+ReadNode()
+ReadNodeAttributes()
+ReadValues()
+EscribirValores()
+ReadStructUdt()
+WriteStructUdt()
+RegisterNodeIds()
+UnregisterNodeIds()
+GetMethodArguments()
+CallMethod()

+Notificación_CertificateValidation()
+Notification_MonitoredItem()
+Notification_KeepAlive()
+Notification_MonitoredEventItem()
+Server_ReconnectComplete

OPC UA .NET SDK / Pila

Servidor OPC UA

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 19
2 Ingeniería

Descripción del método


La siguiente tabla explica las funciones de los métodos públicos dentro de la clase
"UAClientHelperAPI", a través de los cuales se realizan las funcionalidades del cliente OPC UA:

Tabla 2-3
Método Explicación
BuscarServidores Busca servidores OPC UA en la red.
Requisitos: Debe estar disponible un LDS (Local Discovery Server) o
un GDS (Global Discovery Server).
GetEndpoints Determina los puntos finales disponibles en un servidor a través de
los cuales se puede establecer una conexión.
Conectar Establece una conexión con un servidor y crea un canal seguro y
una sesión con el servidor.
Disconnet Finaliza una sesión existente y desconecta la conexión con el
servidor.
NavegarRaíz Devuelve una colección de nodos que se pueden encontrar en el
directorio raíz del servidor.
NavegarNodo Devuelve una colección de nodos que se pueden encontrar
jerárquicamente en un nodo específico.
BuscarPorTipoDeReferencia Devuelve una colección de nodos que se pueden encontrar en un
nodo específico por un tipo de referencia específico.
GetNamespaceUri Devuelve el espacio de nombres Uri relacionado con un índice de
Siemens AG 2022 Todos los derechos

espacio de nombres enviado.


GetNamespaceIndex Devuelve el índice de espacio de nombres relacionado con una Uri
de espacio de nombres enviada.
GetNamespaceArray Devuelve la matriz de espacios de nombres.
Suscríbase a Crea una suscripción en el servidor.
reservados

EliminarSuscripción Elimina una suscripción específica del servidor.


AddMonitoredItem Añade un MonitoredItem para supervisar una suscripción existente.
AddEventMonitoredItem Añade un (Evento)MonitoredItem para monitorizar una suscripción
existente.
EliminarelementoSupervisado Elimina un MonitoredItem existente de una suscripción.
LeerNodo Lee los metadatos de un nodo específico.
ReadNodeAttributes Lee una lista de los atributos más importantes de un nodo específico.
LeerValores Lee los valores de un nodo de variables.
EscribirValores Escribe valores en variables de nodo.
ReadStructUdt Lee valores de estructuras definidas por el usuario y UDTs con la
ayuda del "TypeDictionary" del servidor.
WriteStructUdt Escribe valores en estructuras definidas por el usuario y UDTs que
fueron leídos anteriormente.
RegisterNodeIds Registra IDs de nodos en el servidor para un acceso optimizado a
los nodos.
UnregisterNodeIds Elimina el registro de los ID de nodo ya registrados.
GetMethodArguments Determina los argumentos de entrada y salida disponibles de un
método.
Método de llamada Llama a un método en un servidor.
Notificación_CertificadoValidación Evento que se dispara cuando un certificado de servidor no puede
ser aceptado.
Notification_MonitoredItem Evento que se dispara cuando se cambia el valor de un
MonitoredItem.
Notificación_KeepAlive Evento que se dispara cuando llega el valor de una
KeepAliveNotification.
Notification_MonitoredEventItem Evento que se dispara cuando llega un evento OPC UA.
Cliente OPC 1500
Entrada-ID: 109737901, V1.5, 09/2022 20
2 Ingeniería
Server_ReconnectComplete Evento que se dispara cuando llega un evento de reconexión.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 21
2 Ingeniería

En este ejemplo, no se pueden convertir todos los tipos de datos PLC disponibles. Esta
restricción afecta a los métodos "ReadValues", "WriteValues", "ReadStructUdt",
NOTA
"WriteStructUdt" y Subscription.
Adapte el código fuente a sus necesidades.

2.2.3 Diagrama de secuencia para el ejemplo del cliente

Los siguientes diagramas de secuencia muestran las secuencias de programa del cliente de
ejemplo OPC UA para varias funciones del ejemplo.

Establecimiento y finalización de la conexión con el servidor OPC UA


El siguiente diagrama de secuencia muestra los procedimientos para establecer y desconectar la
conexión con el servidor OPC UA.
Figura 2-4

Usuario UAClientForm UAClientHelperAPI Pila OPC UA

1 EndpointButton_Click() BuscarServidor DiscoveryClient.BuscarServidores()


es()

DiscoveryClient.GetEndpoints()
Siemens AG 2022 Todos los derechos

GetEndpoints()

2 EpConnectButton_Click() Conectar() Sesión.Crear()


reservados

Validación de certificados()

Sesión.KeepAlive()

3 EpConnectButton_Click() Desconectar Sesión.Cerrar()


()

Cuadro 2-4
No. Descripción
1. A través del botón "Get Endpoints", se llama al método EndpointButton_Click() de la interfaz,
que a su vez llama a los métodos FindServers() y GetEndpoints() de la UAClientHelperAPI.
Como resultado, el usuario recibe todos los endpoints disponibles en la red (si se dispone de
un LDS o GDS) o de un servidor.
2. Una vez que el usuario ha seleccionado un endpoint de la lista y ha pulsado el botón
"Conectar al servidor", se llama al método UI EpConnectButton_Click(). Esto llama al método
Connect() de la UAClientHelperAPI. Se crea y rellena un objeto session y otro objeto para el
método Session.Create(). Una vez que se ejecuta el Session.Create(), se responde a un
evento CertificateValidation que llega a través del cual se puede validar el certificado del
servidor.
3. Cuando se vuelve a pulsar el botón se ejecuta de nuevo el método
EpConnectButton_Click(). Si ya existe una conexión, se ejecuta el método Disconnect() de
la UAClientHelperAPI. Esto finaliza la sesión existente a través del método Session.Close()
de la pila OPC UA.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 22
2 Ingeniería

Navegación en el servidor OPC UA


El siguiente diagrama de secuencia muestra los procedimientos, con el fin de navegar por los
nodos en el espacio de direcciones OPC UA del servidor.
Figura 2-5

Usuario UAClientForm UAClientHelp erAPI Pila OPC UA

1 ExaminarPágina_En NavegarRaíz( Sesión.Examinar(


trar() ) )

2 NodeTreeView_
BeforeExpand() NavegarNodo( Sesión.Examinar(
) )

Tabla 2-5
No. Descripción
1. Tan pronto como el usuario en el ejemplo de cliente va a la pestaña "Browse Nodes", el
método BrowsePage_Enter() UI es llamado. Esto llama al método BrowseRoot() de la
UAClientHelperAPI. En este caso, se llama al método Session.Browse() de la pila OPC UA
con los parámetros de transferencia adecuados, para navegar por el nodo raíz del servidor.
2. Cuando se expande un nodo de la vista en árbol del espacio de direcciones, se llama al
método UI NodeTreeView_BeforeExpand(). Esto llama al método BrowseNode() de la
UAClientHelperAPI. En este caso, se llama al método Session.Browse() de la pila OPC UA
Siemens AG 2022 Todos los derechos

con los parámetros de transferencia adecuados, para examinar cualquier nodo del servidor.

Lectura y escritura de etiquetas


El siguiente diagrama de secuencia muestra los procedimientos para leer o escribir etiquetas:
reservados

Figura 2-6

Usuari UAClientForm UAClientHelperAPI Pila OPC UA


o

1 ReadValButton_Click() LeerValores() Session.ReadValues()

2 WriteValButton_Click() EscribirValore 3
s() Session.ReadNode()

4 Session.Write()

Tabla 2-6
No. Descripción
1. Cuando se pulsa el botón "Leer", se llama al método UI ReadValButton_Click(). Transfiere
el método ReadValues() una lista de cadenas de ID de nodo a la UAClientHelperAPI. A
partir de la lista de cadenas transmitida, se crea una lista de ID de nodos y se transfiere al
método de pila OPC UA Session.ReadValues(). Este método lee todos los valores de los ID
de nodo de la lista y los devuelve.
2. Cuando se pulsa el botón "Write", se llama al método UI WriteValButton_Click(). Esto
transfiere un diccionario de pares de valores de ID de nodos y sus valores
relacionados como cadena al método WriteValues() de la UAClientHelperAPI.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 23
2 Ingeniería

No. Descripción
3. Los identificadores de nodo se crean a partir de las cadenas transmitidas. Estos se leen
mediante el método Session.ReadNode(), para determinar sus tipos de datos.
4. El método Session.Write() escribe los valores en el servidor a través de los tipos de datos e
identificadores de nodo determinados.

Estructuras de lectura y escritura/UDT


El siguiente diagrama de secuencia muestra los procedimientos para leer o escribir
estructuras/UDTs:
Figura 2-7

Usuario UAClientForm UAClientHelperAPI Pila OPC UA

1
StructReadButton_Click() ReadStructUdt()
2
LeerAtributosDeNodo
()
3 LeerNodo()

4 GetTypeDictionary()

ParseDataToTags
Siemens AG 2022 Todos los derechos

5 FromDictionary()

6 7
StructWriteButton_Click() WriteStructUdt()
LeerAtributosDeNodo
reservados

()

8 LeerNodo()

GetTypeDictionary()
9

ParseDataTo
10 ByteArray()

Session.Write()
11

Tabla 2-7
No. Descripción
1. Cuando se pulsa el botón "Read Struct/UDT", se llama al método de la UI
StructReadButton_Click(). Esto transfiere una lista de cadenas de ID de nodo al método
ReadStructUdt() de la UAClientHelperAPI.
2. El método "ReadNodeAttributes" lee los atributos del ID de nodo basándose en el ID de
nodo transferido. De ellos, se utilizan los atributos "Value" y "DataType".
3. Basándose en el atributo determinado para el tipo de datos, el nodo de tipo de datos se lee
mediante el método "ReadNode". Recibirá un ID de nodo del tipo "DataTypeNode".

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 24
2 Ingeniería

No. Descripción
4. Basándose en el tipo de datos Nodo el método GetTypeDictionary() lee el TypeDictionary
del servidor. El diccionario se crea de la siguiente manera:
1. Los datos leídos anteriormente Tipo Nodo contienen en su cuerpo la información
sobre la estructura con la clase "StructureDefinition".
2. Utilizando el objeto de la clase "StructureDefinition" se obtiene una
"StructureFieldCollection", que contiene toda la información sobre los campos de
la estructura
3. Comprobando el "NamespaceIndex" de los campos de estructura individuales en la
"StructureFieldCollection" se determina si otras estructuras/UDTs están contenidas
en la estructura/UDT padre. Si es así, se lee el ID de nodo del campo de estructura
correspondiente y se llama recursivamente a la función "GetTypeDictionary()".
4. Cada campo de estructura del tipo de datos base se añade a una lista de
matrices de cadenas con la información sobre el tipo de datos y las dimensiones
de la matriz.
El método devuelve una lista con todos los campos de la estructura, el "TypeDictionary", así
como sus tipos de datos y dimensiones del array.
5. Basándose en el "TypeDictionary" determinado y el atributo "Value", que se lee en una
estructura como matriz de bytes, el método "ParseDataToTagsFromDictionary" deserializa
la matriz de bytes según los campos individuales y su tipo de datos del "TypeDictionary". El
método devuelve una lista de matrices de cadenas, que contienen la información, el índice
de la matriz, el nombre de la etiqueta, el valor de la etiqueta y el tipo de datos de la
etiqueta.
6. Cuando se pulsa el botón "Write Struct/UDT", se llama al método UI
StructWriteButton_Click(). Transfiere los valores de proceso introducidos y un ID de nodo al
método WriteStructUdt() de la UAClientHelperAPI.
Siemens AG 2022 Todos los derechos

7. El método "ReadNodeAttributes" lee los atributos del ID de nodo basándose en el ID de


nodo transferido. De ellos, se utilizan en particular los atributos "Value" y "DataType".
8. Basándose en el atributo determinado para el tipo de datos, el nodo de tipo de datos se lee
mediante el método "ReadNode". Recibirá un ID de nodo del tipo "DataTypeNode".
9. El método GetTypeDictionary() lee el TypeDictionary del servidor desde el nodo de tipos
de datos. El método devuelve una lista con todos los campos de estructura, el
reservados

"TypeDictionary" y sus tipos de datos y dimensiones de array.


10. Basándose en el "TypeDictionary" determinado y en la lista de valores de proceso
introducidos por la interfaz de usuario, el método "ParseDataToByteArray" codifica los
valores de cadena de la lista de la interfaz de usuario según los tipos de datos reales del
"TypeDictionary" en una matriz de bytes. El método devuelve una matriz de bytes.
11. El método Session.Write() escribe los valores en el servidor a través del Node Id.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 25
2 Ingeniería

Registro de ID de nodos
El siguiente diagrama de secuencia muestra los procedimientos para registrar IDs de nodo en
el servidor OPC UA. Las operaciones de lectura y escritura optimizadas se pueden ejecutar a
través de estos ID registrados.
Figura 2-8

Usuari UAClientForm UAClientHelp erAPI Pila OPC UA


o

1
RegisterButton_Click() RegistrarNodos() Session.RegisterNodes()

2
DesregistrarBotón_Clic() DesregistrarNodos() Session.UnregisterNodes()

Tabla 2-8
No. Descripción
1. Al hacer clic en el botón "Registrar", se llama al método de interfaz de usuario
RegisterButton_Click(). Esto transfiere al método RegisterNodeIds() una lista de cadenas
de ID de nodo a la UAClientHelperAPI. A partir de la lista de cadenas transmitida, se crea
una lista de ID de nodos y se transfiere al método de pila OPC UA
Session.RegisterNodes(). Este método registra todos los ID de nodo de la lista.
2. Cuando se pulsa el botón "Unregister", se llama al método UI UnregisterButton_Click().
Siemens AG 2022 Todos los derechos

Esto transfiere al método UnregisterNodeIds() una lista de cadenas de ID de nodos a la


UAClientHelperAPI. A partir de la lista de cadenas transmitida, se crea una lista de ID de
nodos y se transfiere al método de pila OPC UA Session.UnregisterNodes(). Este método
cancela el registro de todos los ID de nodo transferidos.
reservados

Suscripción/finalización de suscripciones
El siguiente diagrama de secuencia muestra los procedimientos para suscribirse o finalizar la
suscripción a determinadas etiquetas:
Figura 2-9

Usuario UAClientForm UAClientHelperAPI Pila OPC UA

1 SubscribeButton_Click() Suscribir() 2 Session.AddSubscription()

Suscripción.Crear()

3 AñadirelementoSup Subscription.AddItem()
ervisado()

4 SubscribeButton_Click() EliminarSuscripción() Suscripción.Eliminar()

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 26
2 Ingeniería

Tabla 2-9
No. Descripción
1. Al hacer clic en el botón "Suscribir", se llama al método de interfaz de usuario
SubscribeButton_Click(). Esto llama al método Subscribe() de la UAClientHelperAPI.
2. Dentro del método Subscribe(), se crea una suscripción, se transfiere a la sesión
(Session.AddSubscription) y se habilita (Subscription.Create()).
3. Dentro del método de interfaz de usuario SubscribeButton_Click() se crea un elemento
supervisado una vez que se ha creado una suscripción y se ha transferido al método
AddMonitoredItem() de la UAClientHelperAPI. Esto agrega el elemento supervisado
transferido mediante el método Subscription.AddItem() a la suscripción.
4. Cuando se vuelve a hacer clic en el botón "Suscribir", se llama al método de interfaz de
usuario UnregisterButton_Click(). Esto llama al método RemoveSubscription() de la
UAClientHelperAPI. Dentro de este método, se llama al método de pila UA
Subscription.Delete() que finaliza la suscripción en el servidor.

Métodos de llamada
El siguiente diagrama de secuencia muestra los procedimientos para llamar a los métodos del
servidor.
Figura 2-10

Usuario UAClientForm UAClientHelperAPI Pila OPC UA


Siemens AG 2022 Todos los derechos

MethodInfoButton_
1 GetMethodArguments() 2 Sesión.Examinar()
Click()

Session.ReadValues()
reservados

3 CallButton_Click() LlamarMétod Sesión.Llama


o() r()

Tabla 2-10
No. Descripción
1. Cuando se pulsa el botón "Get Method Info", se llama al método UI
MethodInfoButton_Click(). Esto llama al método GetMethodArguments() de la
UAClientHelperAPI.
2. Dentro del método GetMethodArguments(), se utiliza Session.Browse() para navegar hasta
los nodos de los argumentos de entrada y salida. Posteriormente, los argumentos se leen
mediante Session.ReadValues(). Al hacerlo, se determinan los nombres y tipos de datos de
los argumentos.
3. Cuando se pulsa el botón "Call Method", se llama al método de interfaz de usuario
CallButton_Click(). Éste llama al método CallMethod() de la UAClientHelperAPI y transfiere
los argumentos de entrada previamente determinados, así como los valores que hayas
asignado para los argumentos en la interfaz de usuario. Tras la llamada, el resultado del
método se convierte de acuerdo con los argumentos de salida determinados y se devuelve.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 27
2 Ingeniería

2.3 Operación
Las siguientes instrucciones paso a paso le muestran cómo puede poner en marcha el ejemplo
de aplicación y cómo puede utilizarlo.

2.3.1 Descripción de la interfaz de usuario

La interfaz de usuario del cliente de ejemplo "OPC UA Client S7-1500" se divide en cinco
pestañas:
• "Conectar"
• "Navegar por los nodos"
• "Lectura/Escritura"
• "Suscribirse"
• "Leer/Escribir Struct/UDT"
• "Llamada al método"
Las descripciones siguientes explican con más detalle cada una de las pestañas:

"Conectar
" La siguiente figura muestra la interfaz de la pestaña "Conectar":
Figura 2-11
Siemens AG 2022 Todos los derechos

1 2
reservados

La siguiente tabla describe las funciones de la interfaz de la figura anterior:


Tabla 2-11
No. Descripción
1. Campo de texto para introducir una URL de servidor OPC UA (Discovery).
2. Botón para buscar endpoints OPC UA con la URL del campo de texto (1).
3. Lista de los endpoints OPC UA encontrados.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 28
2 Ingeniería

4. Configuración de la autenticación de usuarios.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 29
2 Ingeniería

No. Descripción
5. Botón para establecer una conexión con un punto final seleccionado de la lista (3).

Para acceder a las pestañas "Examinar nodos", "Lectura/escritura" y "Suscribirse", debe


NOTA estar conectado con un servidor OPC UA.

"Navegar por los nodos"


La siguiente figura muestra la interfaz de la pestaña "Examinar nodos":
Figura 2-12

2
Siemens AG 2022 Todos los derechos

1
reservados

La siguiente tabla describe las funciones de la interfaz de la figura anterior:


Tabla 2-12
No. Descripción
1. Vista en árbol de los nodos disponibles en el servidor OPC UA.
2. Vista de datos de los atributos de un nodo seleccionado de la vista en árbol (1).
3. Botón para copiar el ID de nodo de la vista de datos (2) en el portapapeles.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 30
2 Ingeniería

"Lectura/Escritura"
La siguiente figura muestra la interfaz de la pestaña "Lectura/Escritura".

Figura 2-13

1 2 3

4 5
6
7

8 9 10 11

12 13
Siemens AG 2022 Todos los derechos

14 15
reservados

La siguiente tabla describe las funciones de la interfaz de la figura anterior:


Tabla 2-13
No. Descripción
1. Botón para leer un ID de nodo introducido desde el campo de texto (2).
2. Campo de texto para introducir un ID de nodo a leer.
3. Campo de texto para dar salida al valor del ID de nodo leído del campo de texto (2).
4. Botón para escribir un ID de nodo introducido desde el campo de texto (5).
5. Campo de texto para introducir un ID de nodo a escribir.
6. Casilla de verificación para seleccionar si el ID de nodo es un array/matriz o no.
7. Campo de texto para introducir el valor del ID de nodo que se escribirá desde el campo de
texto (5).
8. Botón para registrar un ID de nodo introducido desde el campo de texto (9).
9. Botón para cancelar el registro de un ID de nodo introducido desde el campo de texto (9).
10. Campo de texto para introducir un ID de nodo a registrar.
11. Campo de texto para mostrar un ID de nodo registrado.
12. Botón para leer el ID de un nodo registrado.
13. Campo de texto para dar salida al valor del ID de nodo leído y registrado desde el campo de
texto.
14. Botón para escribir en un ID de nodo registrado.
15. Campo de texto para introducir el valor del ID del nodo que se va a escribir.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 31
2 Ingeniería

La siguiente figura muestra la interfaz de la pestaña "Lectura/Escritura" introduciendo un ID de


nodo del tipo array/matriz.
Figura 2-14

3
Siemens AG 2022 Todos los derechos

Los botones 1 - 3 permiten visualizar o introducir los valores de la matriz.


reservados

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 32
2 Ingeniería

La siguiente figura muestra la interfaz de la pestaña "Lectura/Escritura" para introducir valores de


matriz/array:
Figura 2-15
Siemens AG 2022 Todos los derechos

1
reservados

El botón permite introducir valores de matriz/array y cierra la vista.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 33
2 Ingeniería

"Suscribirse"
La siguiente figura muestra la interfaz de la pestaña "Suscribirse".
Figura 2-16

2 3

4
Siemens AG 2022 Todos los derechos
reservados

La siguiente tabla describe las funciones de la interfaz de la figura anterior:


Tabla 2-14
No. Descripción
1. Campo de texto para introducir un ID de nodo que se añade a la suscripción como
MonitoredItem.
2. Botón para iniciar una suscripción en un servidor OPC UA y crear un MonitoredItem a
través del ID de nodo del campo de texto (2).
3. Botón para finalizar una suscripción y eliminar el MonitoredItem.
4. Campo de texto para mostrar el valor del elemento supervisado de la suscripción con
marca de tiempo y estado.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 34
2 Ingeniería

"Leer/Escribir Struct/UDT"
La siguiente figura muestra la interfaz de la pestaña "Lectura/Escritura Struct/UDT".
Figura 2-17

3
Siemens AG 2022 Todos los derechos

4
reservados

La siguiente tabla describe las funciones de la interfaz de la figura anterior:


Tabla 2-15
No. Descripción
1. Campo de texto para introducir un ID de nodo que haga referencia a una estructura de
lectura/escritura/UDT.
2. Botón para leer un ID de nodo introducido desde el campo de texto (1).
3. Vista de datos de la estructura de lectura/UDT de un nodo introducido desde el campo de
texto (1).
4. Botón para escribir en el ID de nodo leído del campo de texto (1).

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 35
2 Ingeniería

"Llamada al método"
La siguiente figura muestra la interfaz de la pestaña "Llamada a métodos".
Figura 2-18

2
4
3

6
Siemens AG 2022 Todos los derechos
reservados

La siguiente tabla describe las funciones de la interfaz de la figura anterior:


Tabla 2-16
No. Descripción
1. Campo de texto para introducir un ID de nodo que haga referencia a un método.
2. Campo de texto para mostrar el ID del nodo que hace referencia a un objeto que incluye un
método.
3. Botón para determinar los argumentos de entrada y salida del método.
4. Lista de argumentos de entrada.
5. Lista de argumentos de salida.
6. Botón para llamar al método.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 36
2 Ingeniería

2.3.2 Puesta en servicio del servidor OPC UA del S7-1500

Realice los pasos de configuración del capítulo 2.1 "Configuración del servidor OPC UA del
S7- 1500" o descargue el proyecto TIA Portal ya preparado en su controlador. Proceda como
se indica a continuación:
1. Descargue el proyecto "109737901_OPC_UA_Client_S7-1500_CODE_V13.zip" en su
disco duro. La descarga se encuentra en la página HTML de esta entrada (\1\).
2. Descomprime el proyecto.
3. Navegue hasta "OPC_UA_Server_1500" en la carpeta descomprimida. El proyecto
TIA Portal se encuentra en esta carpeta.
4. Abra el proyecto haciendo doble clic en el archivo "UA Server 1500.ap17".
– Nombre de usuario: "Usuario"
– Contraseña: "Siemens.1"
5. Seleccione la CPU en el árbol de proyectos y cargue el proyecto en el controlador.
Siemens AG 2022 Todos los derechos
reservados

2.3.3 Puesta en servicio del cliente OPC UA S7-1500

El cliente de ejemplo se proporciona a través de un proyecto de Visual Studio.


1. Descargue el proyecto "109737901_OPC_UA_Client_S7-1500_CODE_V15.zip" en su
disco duro. La descarga se encuentra en la página HTML de esta entrada (\1\).
2. Descomprime el proyecto.
3. Navegue hasta "OPC_UA_Client_1500 > UA_Client_1500 > Application" en la carpeta
descomprimida. El archivo .EXE ejecutable compilado del cliente de ejemplo OPC UA se
encuentra en esta carpeta.
4. Inicie el programa haciendo doble clic en el archivo "UA Client 1500.exe".

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 37
2 Ingeniería

2.3.4 Creación, exportación y carga del certificado de cliente en el S7-1500 (opcional)

Si desea aumentar la seguridad de su aplicación mediante la gestión de certificados, siga los


siguientes pasos:
1. Inicie el Cliente OPC UA S7-1500.
2. Durante el primer inicio del programa, se crea un certificado de software autofirmado del
programa cliente y se almacena en el almacén de certificados de Windows. Este
certificado debe ser conocido por el servidor OPC UA si desea comunicarse firmado y
cifrado con un servidor.
3. Haga clic en "Inicio > Ejecutar" en Windows e introduzca "mmc". Confirme con el botón "Intro".
4. En el almacén de certificados ahora abierto, haga clic en "Archivo > Añadir/Quitar
complemento...".
Siemens AG 2022 Todos los derechos

5. Busque "Certificados" en el cuadro de diálogo que aparece, selecciónelo y haga clic en


"Añadir >".
reservados

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 38
2 Ingeniería

6. Seleccione la casilla "Mi cuenta de usuario" y confirme con "Finalizar".

7. A continuación, haz clic en "Aceptar" para confirmar.


8. Navegue desde la "Raíz de la consola" hasta "Certificados - Usuario actual > Personal >
Siemens AG 2022 Todos los derechos

Certificados".
reservados

9. Haga clic con el botón derecho del ratón en el certificado "UA Client 1500" que ha creado
el cliente de ejemplo y vaya a "Todas las tareas" en el menú contextual. A continuación,
haga clic en "Exportar...".

10. En el cuadro de diálogo que aparece a continuación, haga clic en "Siguiente >".

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 39
2 Ingeniería

11. Seleccione la casilla "No, no exportar clave privada" y haga clic en "Siguiente >".

12. Seleccione la casilla "X.509 binario codificado con DER (.CER)" y, a continuación, haga clic
en "Siguiente >".
Siemens AG 2022 Todos los derechos
reservados

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 40
2 Ingeniería

13. Seleccione una ubicación de almacenamiento adecuada para el certificado mediante


"Examinar..." y asígnele un nombre de archivo. A continuación, haga clic en "Siguiente
>".
Siemens AG 2022 Todos los derechos

14. Haga clic en "Finalizar" en el cuadro de diálogo que aparece a continuación.


15. El certificado se guarda ahora en la ubicación de almacenamiento seleccionada y puede
reservados

importarse al Portal TIA o a otros servidores OPC UA desde allí.


16. (Opcional) Siga las instrucciones de configuración del capítulo 2.1.4 "Seguridad
mediante gestión de certificados (opcional)".

2.3.5 Establecimiento de una conexión con el servidor OPC UA

Conéctese al cliente de ejemplo con un servidor OPC UA a través del navegador de endpoints.
Proceda como se indica a continuación:
1. Introduzca la URL de un servidor OPC UA, LDS o GDS en el campo de texto.
Haga clic en el botón "Obtener puntos finales".

Si no especifica ningún puerto, se utilizará el puerto por defecto "4840". Si utiliza otro
NOTA puerto, debe añadir ":" y el número de puerto.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 41
2 Ingeniería

2. Seleccione un punto final detectado con el que desee establecer una conexión.

Si quieres conectarte a puntos finales "Sign" o "SignAndEncrypt", el certificado del cliente


NOTA de ejemplo tiene que ser conocido por el servidor para poder aceptarlo (Capítulo 2.1.4).

3. Seleccione si desea conectarse de forma anónima o como usuario determinado en el


servidor. A continuación, haz clic en "Conectar con el servidor" para establecer la
conexión.
Siemens AG 2022 Todos los derechos
reservados

4. En el cuadro de diálogo que aparece a continuación, acepte el certificado del servidor.


Para ello, pulse el botón "Aceptar". Para aceptar permanentemente el certificado del
servidor, active la casilla "Aceptar certificado permanentemente" antes de hacer clic en el
botón "Aceptar".

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 42
2 Ingeniería

Si acepta el certificado de forma permanente, el certificado se almacenará en el almacén de


certificados de Windows. Para todas las demás conexiones al servidor con este certificado,
ya no aparecerá el cuadro de diálogo "Validación de certificado".

NOTA Para volver a rechazar el certificado más adelante, deberá eliminarlo del almacén de
certificados de Windows.
Dentro del almacén hay un certificado aceptado permanentemente en "Raíz de la consola >
Certificados - Usuario actual > Autoridades de certificación raíz de confianza >
Certificados".

5. El texto del botón "Conectarse al servidor" cambia a "Desconectarse del servidor", una vez
que se ha conectado correctamente con un servidor.
6. Puede volver a desconectar la sesión y la conexión con el servidor OPC UA mediante
el botón "Desconectar del servidor".

2.3.6 Exploración del espacio de direcciones del servidor OPC UA

Puede navegar a través de la pestaña "Examinar nodos" dentro del espacio de direcciones del
servidor OPC UA.
1. Conectar con un servidor OPC UA.
2. Vaya a la pestaña "Examinar nodos".
Siemens AG 2022 Todos los derechos

3. En la vista de árbol puede navegar por los nodos individuales en el espacio de


direcciones del servidor OPC UA. Cuando haga clic en un nodo del árbol, recibirá
información específica sobre el nodo seleccionado en la parte derecha de la vista de
datos. Haga clic en el botón "Copiar Id de Nodo" para copiar el ID del nodo
seleccionado en la vista de árbol.
reservados

La información de la vista de datos mostrada depende de la clase de nodo seleccionado


NOTA (objeto, etiqueta y tipo de datos).

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 43
2 Ingeniería

2.3.7 Lectura/escritura de etiquetas

El acceso a los datos de las etiquetas de un servidor OPC UA se realiza y se muestra en la


pestaña "Lectura/Escritura".
1. Conectar con un servidor OPC UA.
2. Vaya a la pestaña "Examinar nodos" y navegue hasta un nodo de etiqueta que desee leer o
escribir.
3. Haga clic en el nodo de la etiqueta, haga clic en el botón "Copiar Id de nodo" para copiar el
valor del "Id de nodo" en el portapapeles o copie el valor del campo "Id de nodo" de la vista
de datos con el botón
Combinación de botones <CTRL+C>.
4. Vaya a la pestaña "Lectura/Escritura".

Lectura de nodos de etiquetas escalares


1. Añada el ID de nodo copiado previamente con la combinación de teclas CTRL-V en el
campo superior "Id de nodo:" del área "Lectura/Escritura".
Siemens AG 2022 Todos los derechos

2. Haga clic en el botón "Leer". El valor leído aparece en el campo de texto "Valor leído:".
reservados

Escritura de nodos de etiquetas escalares


1. Añada el ID de nodo previamente copiado con la combinación de teclas CTRL-V en el
campo inferior "Id de nodo:" del área "Lectura/Escritura". Introduzca el valor a escribir en
el campo "Valores a escribir:" (en este ejemplo el valor booleano "False"). Pulse el botón
"Escribir".

2. La operación de escritura se ha realizado correctamente cuando aparece un cuadro


de mensaje con el texto "Valores escritos correctamente".
Cliente OPC 1500
Entrada-ID: 109737901, V1.5, 09/2022 44
2 Ingeniería
3. Puedes volver a leer la etiqueta para comprobarlo.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 45
2 Ingeniería

Lectura de nodos de etiquetas de matriz/array


1. Añada el ID de nodo copiado previamente con la combinación de teclas CTRL-V en el
campo superior "Id de nodo:" del área "Lectura/Escritura".

2. Pulse el botón "Leer". El valor leído se muestra en el campo de texto "Valor leído:". Si los
valores leídos son un array o una matriz, los valores individuales se separan mediante
punto y coma. Haga clic en el botón "..." para mostrar los valores en forma de tabla.
Siemens AG 2022 Todos los derechos
reservados

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 46
2 Ingeniería

Escritura de nodos de etiquetas de matriz/array


1. Añada el ID de nodo previamente copiado con la combinación de teclas CTRL-V en el
campo inferior "Id de nodo:" del área "Lectura/Escritura". Haga clic en la casilla de
verificación "Array/Matrix Checkbox" para abrir un formulario de ventana para introducir los
valores en forma de tabla.

2. Introduzca los valores que desea escribir en los campos correspondientes y pulse el
botón "Editar valores" para cerrar el formulario.
Siemens AG 2022 Todos los derechos
reservados

Todos los campos se escriben siempre. Si un campo no contiene ninguna entrada, se


NOTA escribe con el valor por defecto (normalmente "0" o "null").

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 47
2 Ingeniería

3. Haga clic en el botón "Escribir".

4. La operación de escritura se ha realizado correctamente cuando aparece un cuadro


de mensaje con el texto "Valores escritos correctamente".
5. Puedes volver a leer la etiqueta para comprobarlo.

Etiquetas de nodo escalar de lectura/escritura registradas


1. Añada el ID de nodo copiado previamente con la combinación de teclas CTRL-V en el
campo "Id de nodo:" del área "Lectura/Escritura registrada" y haga clic en el botón
"Registrar". El ID de nodo registrado u optimizado se muestra en el campo "ID de nodo
registrado:".
Siemens AG 2022 Todos los derechos
reservados

NOTA El ID del nodo registrado no difiere necesariamente del original.

2. Pulse el botón "Leer" para leer el ID del nodo registrado. El valor leído se muestra en el
campo "Valor leído:".
3. Introduzca un valor en el campo "Valores a escribir:". Pulse el botón "Escribir" para
escribir el valor introducido previamente en un nodo registrado.

4. La operación de escritura se ha realizado correctamente cuando aparece un cuadro


de mensaje con el texto "Valores escritos correctamente".
5. Puedes volver a leer la etiqueta para comprobarlo.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 48
2 Ingeniería
6. Haga clic en el botón "Anular registro" para liberar un ID de nodo registrado.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 49
2 Ingeniería

Etiquetas de nodo de matriz/array de lectura/escritura registradas


1. Añada el ID de nodo copiado previamente con la combinación de teclas CTRL-V en el
campo "Id de nodo:" del área "Lectura/Escritura registrada" y haga clic en el botón
"Registrar". El ID de nodo registrado u optimizado se muestra en el campo "ID de nodo
registrado:".

NOTA El ID del nodo registrado no difiere necesariamente del original.

2. Haga clic en el botón "Leer". El valor leído se muestra en el campo de texto "Valor leído:".
Si los valores leídos son un array o una matriz, los valores individuales se separan
Siemens AG 2022 Todos los derechos

mediante punto y coma. Haga clic en el botón "..." para mostrar los valores en forma de
tabla.
reservados

3. Haga clic en el botón "Editar valores" para abrir una ventana de introducción de valores
de matriz. Introduzca los valores a escribir en los campos correspondientes y confirme su
entrada haciendo clic en el botón "Editar valores".

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 50
2 Ingeniería
Siemens AG 2022 Todos los derechos
reservados

Todos los campos se escriben siempre. Si un campo no contiene ninguna entrada, se escribe
NOTA con el valor por defecto (normalmente "0" o "null").

4. Haga clic en el botón "Escribir" para escribir los valores confirmados en el identificador de
nodo.
5. La operación de escritura se ha realizado correctamente cuando aparece un cuadro
de mensaje con el texto "Valores escritos correctamente".
6. Puedes volver a leer la etiqueta para comprobarlo.
7. Haga clic en el botón "Anular registro" para liberar un ID de nodo registrado.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 51
2 Ingeniería

2.3.8 Suscripciones

Obtiene los cambios de valor o las actualizaciones de las etiquetas a través de una suscripción,
sin ordenar una lectura cíclica.
1. Conectar con un servidor OPC UA.
2. Vaya a la pestaña "Examinar nodos" y navegue hasta un nodo de etiquetas al que desee
suscribirse.
3. Haga clic en el nodo de la etiqueta, haga clic en el botón "Copiar Id de nodo" para copiar el
valor del "Id de nodo" en el portapapeles o copie el valor del campo "Id de nodo" de la vista
de datos con el botón
Combinación de botones <CTRL+C>.
4. Vaya a la pestaña "Suscribirse".
5. Añada el ID de nodo copiado anteriormente con la combinación de teclas CTRL-V en el
campo "Id de nodo:". Pulse el botón "Suscribir".
Siemens AG 2022 Todos los derechos

6. En el campo de texto "Valor notificado:" se muestran el valor, el estado, la fuente y


la marca de tiempo del servidor de los MonitoredItems.
reservados

En este ejemplo, el intervalo de publicación de la suscripción se establece en 1000ms y el


NOTA intervalo de muestreo de los MonitoredItems se establece en 1ms.

7. Haga clic en el botón "Cancelar suscripción" para finalizar la suscripción.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 52
2 Ingeniería

2.3.9 Estructuras de lectura y escritura/UDT

El acceso a los datos de las etiquetas que consisten en una estructura o una UDT
se le mostrará en la pestaña "Leer/Escribir Struct/UDT".
1. Conectar con un servidor OPC UA.
2. Vaya a la pestaña "Examinar nodos" y navegue hasta un nodo de etiqueta que desee leer
o escribir (el nodo debe tener introducido un ID de nodo en "Definición del tipo". Esto
mostrará que el nodo consiste en un tipo definido por el usuario o una estructura/a UDT).
3. Haga clic en el nodo de la etiqueta, haga clic en el botón "Copiar Id de nodo" para copiar el
valor del "Id de nodo" en el portapapeles o copie el valor del campo "Id de nodo" de la vista
de datos con el botón
Combinación de botones <CTRL+C>.
4. Vaya a la pestaña "Leer/Escribir Struct/UDT".
5. Añada el ID de nodo copiado anteriormente con la combinación de teclas CTRL-V en el
campo "Id de nodo:". Haz clic en el botón "Leer Struct/UDT".
Siemens AG 2022 Todos los derechos

6. Los nombres de las etiquetas, los valores y los tipos de datos de la estructura/UDT leída
se mostrarán en la vista de datos:
reservados

NOTA Los campos de color gris oscuro marcan el inicio y el final de una estructura/udt en la
estructura/udt padre.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 53
2 Ingeniería

7. Cambie uno o varios valores de la columna "Valor" y pulse el botón "Escribir


Struct/UDT".

8. La operación de escritura se ha realizado correctamente cuando aparece un cuadro


de mensaje con el texto "Valores escritos correctamente".
9. Puedes releer de nuevo la estructura/UDT para comprobarlo.
Siemens AG 2022 Todos los derechos

2.3.10 Métodos de llamada

Puede llamar a métodos OPC UA en la pestaña "Llamada a métodos".


1. Conectarse a un servidor OPC UA
2. Vaya a la pestaña "Examinar Nodos" y navegue hasta el nodo del método que desea
reservados

llamar. Haga clic en el nodo de la etiqueta, haga clic en el botón "Copiar Id de nodo" para
copiar el valor del "Id de nodo" en el portapapeles o copie el valor del campo "Id de nodo"
de la vista de datos con la combinación de teclas <CTRL+C>.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 54
2 Ingeniería

3. Vaya a la pestaña "Llamada al método".


4. Añada el ID de nodo copiado anteriormente con la combinación de teclas CTRL-V en el
campo "Id de nodo".

5. Haga clic en el botón "Obtener información del método" para obtener el


identificador del objeto y los argumentos de entrada y salida del método.
Siemens AG 2022 Todos los derechos
reservados

Para los números en coma flotante se utiliza la notación inglesa, por lo que al introducirlos
NOTA hay que utilizar ".".

6. Introduzca los valores que desea enviar al método en la columna "Valor" de la lista
"Argumentos de entrada".

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 55
2 Ingeniería

7. Haga clic en el botón "Llamar método" para llamar al método. Los valores de los
argumentos de salida se muestran en la lista "Argumentos de salida" una vez que el
método se ha llamado correctamente.
Siemens AG 2022 Todos los derechos
reservados

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 56
3 Información valiosa

3 Información valiosa
3.1 Conceptos básicos
3.1.1 Información general sobre OPC UA

Visión
general
En los últimos años, la Fundación OPC (un grupo de interés de conocidos fabricantes para la
definición de interfaces estándar) ha definido un gran número de interfaces de software para
estandarizar el flujo de información desde el nivel de proceso hasta el de gestión. En función de
los distintos requisitos de una aplicación industrial, en el pasado se han desarrollado diferentes
especificaciones OPC: Acceso a Datos (DA), Alarmas y Eventos (A&E), Acceso a Datos
Históricos (HDA) e Intercambio de Datos (DX). El acceso a los datos de proceso se describe en
la especificación DA, A&E describe una interfaz para información basada en eventos, incluido
el acuse de recibo, HDA describe funciones para datos archivados y DX define una
comunicación lateral de servidor a servidor.
Basándose en la experiencia con estas interfaces OPC clásicas, la Fundación OPC definió una
nueva plataforma, denominada Arquitectura Unificada OPC (UA). El objetivo de esta norma es
la descripción genérica y el acceso uniforme a toda la información que debe intercambiarse
entre sistemas o aplicaciones. Esto incluye la funcionalidad de todas las interfaces OPC
anteriores. Además, esto ha generado la opción de integrar de forma nativa la interfaz en el
sistema apropiado, independientemente del sistema operativo en el que se opere y del
lenguaje de programación en el que se haya creado el sistema.
Siemens AG 2022 Todos los derechos

Puede encontrar más información en la página de inicio o en la Fundación OPC (\4\).

¿Qué es el OPC?
En el pasado, OPC era una colección de interfaces de software para el intercambio de datos
entre aplicaciones de PC y dispositivos de proceso. Estas interfaces de software se han
definido según l a s reglas de Microsoft COM (Component Object Model) y, por tanto, pueden
reservados

integrarse fácilmente en los sistemas operativos de Microsoft. COM o DCOM (Distributed


COM) proporciona la funcionalidad de comunicación entre procesos y organiza el intercambio
de información entre aplicaciones, incluso a través de las fronteras de la red (DCOM).
Utilizando mecanismos del sistema operativo Microsoft, un cliente OPC (cliente COM) puede
utilizarlo para intercambiar información con un servidor OPC (servidor COM).
El servidor OPC proporciona información de proceso de un dispositivo en su interfaz. El cliente
OPC se conecta con el servidor OPC y puede acceder a los datos ofrecidos.
El uso de COM o DCOM hace que los servidores y clientes OPC se ejecuten sólo en un PC
Windows o en la red local y que la comunicación con el sistema de automatización respectivo
tenga que realizarse principalmente a través de protocolos propietarios. A menudo es
necesario utilizar herramientas de tunelización adicionales para la comunicación de red entre el
cliente y el servidor con el fin de atravesar cortafuegos o evitar la complicada configuración de
DCOM. Además, sólo se puede acceder a la interfaz de forma nativa con aplicaciones C++; las
aplicaciones .NET o JAVA sólo pueden acceder a través de una capa envolvente. En
situaciones reales, estas restricciones dan lugar a capas adicionales de comunicación y
software que aumentan la carga de trabajo de configuración y la complejidad.
Debido al uso generalizado de OPC, el estándar se utiliza cada vez más para la conexión
general de sistemas de automatización y ya no sólo para la aplicación original como interfaz de
controlador en sistemas HMI y SCADA para acceder a la información de proceso.
Para resolver las restricciones mencionadas en situaciones reales y cumplir los requisitos
adicionales, la Fundación OPC ha definido en los últimos 7 años una nueva plataforma,
denominada Arquitectura Unificada OPC, que ofrece una base uniforme para el intercambio de
información entre componentes y sistemas. OPC UA está disponible como norma IEC 62541
y, por tanto, también constituye la base de otras normas internacionales.
OPC UA ofrece las siguientes características:
• Resumen de todas las funciones e información OPC anteriores, como DA, A&E y
HDA, en una interfaz genérica.
Cliente OPC 1500
Entrada-ID: 109737901, V1.5, 09/2022 57
3 Información valiosa

• Uso de protocolos abiertos e independientes de la plataforma para la


comunicación entre procesos o redes.
• Acceso a Internet y comunicación mediante cortafuegos.
• Control de acceso integrado y mecanismos de seguridad a nivel de protocolo y aplicación.
• Amplias opciones de representación para modelos orientados a objetos; los objetos
pueden tener etiquetas y métodos y pueden disparar eventos.
• Sistema de tipos ampliable para objetos y tipos de datos complejos.
• Los mecanismos de transporte y las reglas de modelización constituyen la base de otras
normas.
• Escalabilidad desde pequeños sistemas integrados hasta aplicaciones empresariales
y desde simples espacios de direcciones DA hasta complejos modelos orientados a
objetos.

3.1.2 Espacio de direcciones OPC UA

Las siguientes descripciones explican el espacio de direcciones de un servidor OPC UA.

Nodos en el espacio de direcciones


Un nodo del espacio de direcciones de OPC UA es de un tipo determinado, como, por
ejemplo, objeto, etiqueta o método, y se describe mediante una lista de atributos. Todos los
nodos tienen atributos conjuntos como nombre o descripción y atributos específicos como, por
ejemplo, el valor de una etiqueta. La lista de atributos no puede ampliarse. Se puede añadir
Siemens AG 2022 Todos los derechos

información adicional sobre el nodo como propiedad. Las propiedades son un tipo especial de
etiqueta. Los nodos están interconectados con referencias. Las referencias están tipificadas.
Existen dos grupos principales: referencias jerárquicas, como, por ejemplo, HasComponent
para los componentes de un objeto o referencias no jerárquicas como, por ejemplo,
HasTypeDefinition para una conexión de una instancia de objeto a un tipo de objeto.
La siguiente figura muestra un ejemplo de nodos y las referencias de conexión:
reservados

Figura 3-1

Etiq
uet
Atributos
a
-Nombre
-Descripción
Objeto
Referencia
Atributos Etiq
-Nombre
uet
-Descripción Atributos
a
Referencia -Nombre
-HasComponent -Descripción
-HasComponent Referencia
-HasComponent
Tipo de
datos
Atributos
-Nombre
-Descripción

Referencia

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 58
3 Información valiosa

Tipos de nodos disponibles en el espacio de direcciones


La siguiente tabla muestra los tipos de nodos definidos en la norma:

Tabla 3-1
Tipo de nodo Descripción
Objeto Un objeto se utiliza como contenedor tipificado o carpeta para etiquetas, métodos y
eventos.
Etiqueta Las etiquetas representan los datos de los objetos o las propiedades de un nodo
como atributos.
Método Los métodos son componentes de los objetos y pueden tener una lista de
parámetros de entrada o de salida. Los parámetros se describen mediante atributos
definidos.
Ver Las vistas representan una parte del espacio de direcciones. El nodo se utiliza
como punto de acceso y como filtro al navegar.
Tipo de objeto Los tipos de objeto proporcionan información sobre la estructura o los componentes
de un objeto.
Tipo de etiqueta Los tipos de etiquetas suelen describir qué atributos o tipos de datos pueden
encontrarse en una instancia de una etiqueta.
Tipo de referencia Los tipos de referencia definen los posibles tipos de referencias entre nodos.
Tipo de datos Los tipos de datos describen el contenido del valor de una etiqueta.

Espacios de nombres e ID de nodos


Siemens AG 2022 Todos los derechos

Cada nodo en el espacio de direcciones OPC UA se identifica de forma única mediante un ID


de nodo. Este ID de nodo se compone de un espacio de nombres para distinguir códigos de
diferentes subsistemas y un código que puede ser un valor numérico, una cadena o un GUID.
Para el ID se suelen utilizar cadenas. Esto es análogo al Acceso a Datos OPC, donde el ID de
elemento como identificador también es una cadena. Los valores numéricos se utilizan para
espacios de nombres estadísticos como, por ejemplo, sistema de tipos. OPC UA define un
reservados

espacio de nombres con un índice de espacio de nombres asociado para los nodos definidos
por la Fundación OPC. Los servidores OPC UA definen adicionalmente uno o varios espacios
de nombres con índice. Los espacios de nombres definidos por los servidores son variables y
pueden cambiar. Por ello, se recomienda solicitar el espacio de nombres actual para el cliente
al establecer la sesión.
La siguiente figura explica la estructura de un ID de nodo:
Figura 3-2

ns=3; s= "DataStatic". "myBool"


1 2 3

Tabla 3-2
No. Descripción
1. Índice del espacio de nombres
2. Tipo de ID de nodo (s=String; i=Numeric: g=GUID)
3. ID

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 59
3 Información valiosa

Atributos de los nodos


En la tabla siguiente se explican los atributos más importantes de los nodos:
Tabla 3-3
Atributo Tipo de Descripción
nodo
ID de nodo Todos El ID de nodo único con índice de espacio de nombres
Índice del espacio de nombres Todos El índice del espacio de nombres que se asigna al nodo.
Identificador Tipo Todos El tipo de ID del nodo
Identificador Todos El ID único del nodo dentro del índice del espacio de
nombres
Buscar nombre Todos El nombre de navegación
Mostrar nombre Todos El nombre para mostrar
Clase de nodo Todos La clase de nodo (objeto, etiqueta, tipo de datos)
Descripción Todos Breve descripción del nodo
Definición del tipo Todos Referencia para la descripción del tipo de datos de la
etiqueta
Máscara de escritura Todos Derechos de escritura en los atributos de los nodos (0=no,
1=sí) sin tener en cuenta los grupos de usuarios
Máscara de escritura de Todos Derechos de escritura en los atributos de los nodos (0=no,
usuario 1=sí) sin tener en cuenta el usuario actual
Tipo de datos Etiqueta Tipo de datos de la etiqueta
Siemens AG 2022 Todos los derechos

Rango de valor Etiqueta Tipo de valor de la etiqueta (ninguno, escalar, vector,


matriz)
Dimensiones de la matriz Etiqueta Número de dimensiones de la matriz
Nivel de acceso Etiqueta Autorización de acceso (lectura, escritura, lectura/escritura)
al nodo
Intervalo mínimo de muestreo Etiqueta El menor intervalo de muestreo posible de la etiqueta en el
reservados

lado del servidor.


Historizar Etiqueta Curso del tiempo de la etiqueta disponible en el servidor (sí,
no)

3.1.3 Seguridad OPC UA

Las siguientes explicaciones resumen el concepto de seguridad de OPC UA.

Niveles de seguridad
La siguiente figura ofrece una visión general de las capas de seguridad de OPC UA:
Figura 3-3

Cliente OPC Servidor OPC UA


UA
Aplicación
Sesión Canal Aplicación

Pila UA seguro Nivel Pila UA

Capa de
de socket Capa de
transporte transporte

La autenticación del usuario se realiza a través de la Sesión. Se realiza, por ejemplo, mediante un
nombre de usuario y una contraseña o mediante certificados.
A través de un Canal Seguro, las aplicaciones se autentican mutuamente y se realiza una
seguridad de la comunicación basada en mensajes. Cada mensaje se firma y encripta para
Cliente OPC 1500
Entrada-ID: 109737901, V1.5, 09/2022 60
3 Información valiosa

garantizar su integridad y confidencialidad. La base de estos mecanismos son los certificados


(X509) que identifican unívocamente las aplicaciones basándose en un sistema de
Infraestructura de Clave Pública (PKI).

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 61
3 Información valiosa

A nivel de socket, se puede utilizar una seguridad orientada a la conexión del socket a través
de Secure Socket Layer (SSL) o a través de Virtual Private Network (VPN), además o como
alternativa al canal seguro.

Opciones de configuración de la seguridad


La siguiente tabla describe las diferentes opciones de configuración de los mecanismos de
seguridad:

Tabla 3-4
Opción Descripción
Política de seguridad Ninguno - En el canal seguro no se utiliza ningún tipo de seguridad.
Basic128Rsa15 - Conjunto de algoritmos de cifrado.
Basic256 - Conjunto de algoritmos de cifrado ampliables.
Modo de seguridad de Ninguno - Los mensajes no están protegidos.
mensajes Firmar - Los mensajes están firmados.
Firmar&Encriptar - Los mensajes se firman y encriptan.
Autenticación de usuarios Anónimo - No es necesaria la autenticación del usuario.
Contraseña de usuario - La autenticación de usuario se realiza mediante
nombres de usuario y contraseña.
Certificado - La autenticación del usuario se realiza mediante un certificado.

Intercambio de certificados entre cliente y servidor


Siemens AG 2022 Todos los derechos

Cuando todas las aplicaciones involucradas, implementan las directrices del OPC UA en
cuanto a la configuración de seguridad, sólo es necesario un paso manual (4) en el servidor
para el intercambio de certificados, ya que los certificados se intercambian automáticamente
entre las aplicaciones y los certificados sólo tienen que ser aceptados por un administrador.
La siguiente figura ilustra el intercambio de certificados entre el cliente y el servidor:
Figura 3-4
reservados

Cliente OPC Servidor OPC


UA Sesión.Crear UA

1
3

Servidor.d Cliente.d Cliente.d Servidor.d


er er er er
2 4

Tabla 3-5
No. Descripción
1. Al establecer una conexión con el servidor (Session.Create), el cliente recibe el certificado del
servidor a través del endpoint del servidor.
2. A continuación, el programa cliente puede decidir cómo trata el certificado: Rechazar o
aceptar.
3. En el mismo proceso, el cliente envía su certificado al servidor. El servidor rechaza el
certificado en un primer momento y luego lo almacena en una carpeta de rechazos.
4. Como resultado, el certificado del cliente tiene que ser aceptado manualmente por un
administrador en el servidor. En la mayoría de los casos, esto se hace copiando el
certificado de cliente de una carpeta de rechazo a una carpeta de confianza.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 62
3 Información valiosa

Para el servidor OPC UA del S7-1500, el certificado de cliente debe cargarse en el


NOTA controlador a través del portal TIA para que lo acepte.

3.1.4 Servidor OPC UA del S7-1500

En este capítulo se ofrece una visión general de algunos datos clave del servidor OPC UA del S7-
1500. Además, también se dan notas y consejos en el manejo del servidor.

Encontrará más información sobre el servidor OPC UA del S7-1500 en el "Manual de


NOTA funciones: S/-1500, ET 200MP, ET 200SP, ET 200AL, ET 200pro Comunicación" (\3\).

Servicios OPC UA soportados del acceso a datos del S7-1500


El servidor OPC UA del S7-1500 soporta actualmente los siguientes servicios para el acceso a
datos:
• Leer
• Escriba a
• Lectura/escritura registrada
• Suscripciones
Siemens AG 2022 Todos los derechos

Rendimiento al acceder a muchas etiquetas del servidor


Cuando desee leer o escribir muchos tags desde un S7-1500, puede aumentar
considerablemente el rendimiento estructurando los tags en el S7-1500. Para ello, utilice
arrays y estructuras, con el fin de declarar tags de lectura/escritura.
Consideradas individualmente, las matrices son las más eficaces. Son más rápidos por un
factor de 2 a 3 que las estructuras y son más rápidos por un factor de 10 a 100 que los
reservados

accesos individuales (por un número aproximado de 1000 etiquetas).


Utilice la "Lectura/escritura registrada" para los accesos recurrentes, con el fin de aumentar el
rendimiento.

Concepto de licencia
Tabla 3-6
Tipo de CPU ET 200SP CPU 1515 / 1517 /
hasta S7-1513(F) 1516(F) 1518(F)
Licencia requerida Pequeño Medio Grande

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 63
3 Información valiosa

3.2 Detalles del proyecto del Portal TIA


La siguiente explicación describe el proyecto TIA Portal incluido en este ejemplo de aplicación.

3.2.1 Configuración de S7-1500 y OPC UA

Los siguientes pasos de configuración del capítulo 2.1 "Configuración de los servidores OPC UA
del S7- 1500" ya se han realizado para usted en el proyecto TIA Portal de esta entrada.
• El servidor OPC UA está activado.
• La configuración de seguridad global está activada (Usuario: Usuario / contraseña Siemens.1).
• Los extremos del servidor están configurados.
• Los tags para la comunicación OPC UA están habilitados.
• Se habilita un acceso anónimo.
Únicamente los ajustes del capítulo 2.1.4 "Seguridad mediante gestión de certificados" son
opcionales y pueden ser realizados por usted, con el fin de aumentar adicionalmente la
seguridad en el proyecto.

3.2.2 Programa S7

El programa S7 del proyecto TIA consta del OB1, un bloque de usuario y dos bloques de datos.
Siemens AG 2022 Todos los derechos

Jerarquía de llamadas
La siguiente figura muestra la jerarquía de llamadas del programa de usuario S7.
Figura 3-5
reservados

Datos -
Princ Simulació
Simulación
ipal n

UaMethod
Añadir Dato
s
estáti
Ciclo OB1 Bloques de Bloques
cos de
usuario datos

Explicación de los bloques


En el programa de usuario cíclico sólo se llaman los bloques de funciones "Simulación" y
"UaMethodAdding". "Simulation" crea valores generados pseudoaleatoriamente y rellena con
ellos las etiquetas del bloque de datos "DataSimulation". "UaMethodAdding" implementa un
método OPC UA que suma dos valores de entrada y proporciona el resultado como salida. El
bloque de datos "DataStatic" incluye etiquetas predefinidas con valores estadísticos.

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 64
3 Información valiosa

3.3 Modelo de licencia para OPC UA .NET stack/SDK


La pila OPC UA .NET utilizada en este ejemplo fue creada por la Fundación OPC y continúa como
proyecto de código abierto. La comunidad de GitHub es responsable del desarrollo y la resolución
de problemas de la pila.
Dependiendo de su afiliación a la Fundación OPC, la pila está sujeta a dos modelos de licencia
diferentes:
1. A los miembros de la fundación OPC se les aplica el modelo "RCL".
2. Para los no miembros de la fundación OPC es válido el modelo "GPL 2.0".

Obtenga información sobre los respectivos modelos de licencia, en función de su afiliación a la


NOTA fundación OPC, antes de comenzar con el desarrollo de su propia aplicación.
Siemens AG 2022 Todos los derechos
reservados

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 65
4 Apéndice

4 Anexo
4.1 Servicio y asistencia
Asistencia en línea del sector
¿Tiene alguna pregunta o necesita ayuda?
Siemens Industry Online Support ofrece acceso ininterrumpido a toda nuestra gama de
servicios y asistencia técnica.
La asistencia en línea de Industria es la dirección central para obtener información sobre
nuestros productos, soluciones y servicios.
Información sobre productos, manuales, descargas, preguntas frecuentes, ejemplos de
aplicaciones y vídeos: toda la información está accesible con unos pocos clics de ratón:
soporte.industria.siemens.com

Asistencia técnica
El servicio de asistencia técnica de Siemens Industry le ofrece una asistencia rápida y
competente en todas las cuestiones técnicas con numerosas ofertas a medida.
- que van desde la asistencia básica hasta los contratos de asistencia individuales. Envíe sus
consultas al servicio de asistencia técnica a través del formulario web:
siemens.com/SolicitudDeSoporte
Siemens AG 2022 Todos los derechos

SITRAIN - Academia de la Industria Digital


Le apoyamos con nuestros cursos de formación para la industria disponibles en todo el mundo
con experiencia práctica, métodos de aprendizaje innovadores y un concepto adaptado a las
necesidades específicas del cliente.
Para más información sobre la oferta de formación y cursos, así como sus lugares y fechas,
reservados

consulte nuestra página web:


siemens.com/sitrain

Oferta de servicios
Nuestra gama de servicios incluye los siguientes:
• Servicios de datos de plantas
• Servicio de piezas de recambio
• Servicios de reparación
• Servicios in situ y de mantenimiento
• Servicios de retroadaptación y modernización
• Programas y contratos de servicios
Encontrará información detallada sobre nuestra gama de servicios en la página web del catálogo
de servicios: support.industry.siemens.com/cs/sc

Aplicación de asistencia en línea para la industria


Con la aplicación "Siemens Industry Online Support" recibirá una asistencia óptima esté donde
esté. La aplicación está disponible para iOS y Android:
support.industry.siemens.com/cs/ww/es/sc/2067

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 66
4 Apéndice

4.2 Enlaces y bibliografía


Tabla 4-1
No. Tema
\1\ Esta entrada en el Siemens Industry Online Support
https://support.industry.siemens.com/cs/ww/en/view/109737901
\2\ Descarga de la pila OPC UA .NET de la Fundación OPC
https://github.com/OPCFoundation/UA-.NETStandard/releases
\3\ Manual de funciones: SIMATIC S7-1500, ET 200MP, ET 200SP, ET 200AL, ET 200pro
Comunicación
https://support.industry.siemens.com/cs/ww/en/view/59192925
\4\ Página web de la Fundación OPC
https://opcfoundation.org/

4.3 Modificar la documentación


Tabla 4-2
Versión Fecha Modificación
V1.0 10/2016 Primera versión
V1.1 04/2017 • Ampliaciones para la autenticación de usuarios en el servidor
Siemens AG 2022 Todos los derechos

• Ampliaciones para lectura/escritura de


estructuras/UDT Solución de problemas varios
V1.2 02/2018 • Ampliación de los métodos de
llamada Solución de problemas
diversos
V1.3 06/2018 Ampliación de las operaciones del espacio de nombres
reservados


• Ampliación de los tipos de datos descodificables (UDT/Struct)
• Solución de problemas
varios Actualización a OPC
UA 1.4
V1.5 09/2022 • Actualización a OPC UA Stack 1.04.369
• Adaptación de las dependencias
• Adaptación de la creación de certificados
• Nuevo desarrollo de métodos de lectura y escritura de estructuras/UDT
• Diversas reestructuraciones y simplificación de
métodos Diversas soluciones de problemas

Cliente OPC 1500


Entrada-ID: 109737901, V1.5, 09/2022 67

También podría gustarte