Pulsa ESC para cerrar · Ctrl+K para abrir

Cliente OPC UA Siemens S7-1500: lectura y escritura en TIA Portal

Configuración práctica de un S7-1500 como cliente OPC UA leyendo y escribiendo variables de otro PLC simulado.

Activación del cliente OPC UA en un PLC Siemens S7-1500

Objetivo y entorno

En este artículo vamos a configurar un PLC Siemens S7-1500 como cliente OPC UA. El cliente leerá variables de otro S7-1500 que ya actúa como servidor OPC UA y también escribirá una variable de prueba.

La prueba está hecha con TIA Portal y PLCSIM Advanced. Para mantener el ejemplo directo, la comunicación se deja en No security. Si necesitas trabajar con certificados, antes conviene revisar el artículo de seguridad OPC UA con Siemens S7-1500 y UA Expert.

Entorno usado:

  • PLC servidor OPC UA: 192.168.1.191.
  • PLC cliente OPC UA: 192.168.1.192.
  • PLC: CPU 1515-2 PN.
  • Simulación: PLCSIM Advanced.
Dos PLC simulados en PLCSIM Advanced para probar cliente y servidor OPC UA

PLC servidor OPC UA

El servidor OPC UA debe estar funcionando antes de configurar el cliente. En este caso partimos del mismo enfoque explicado en Servidor OPC UA Siemens S7-1500: TIA Portal V20 y PLCSIM: un DB con variables simuladas, una FC que cambia valores y una interfaz OPC UA que publica esas variables.

Para generar variables de prueba rápido, se puede preparar el DB y la FC desde una fuente externa. Siemens explica este flujo en la documentación de importación de external source files en TIA Portal. Así también podemos aprovechar herramientas de IA como Codex para generar bloques de prueba y ahorrar tiempo cuando solo necesitamos datos que cambien para validar la comunicación.

DB y FC de simulación de variables para el servidor OPC UA

Después publicamos las variables en la interfaz del servidor OPC UA. Estas serán las variables que el PLC cliente podrá descubrir, leer y escribir.

Variables publicadas en la interfaz del servidor OPC UA del PLC Siemens

PLC cliente OPC UA

Creamos otro CPU 1515-2 PN para usarlo como cliente. En PLCSIM Advanced le asignamos la IP preparada para este PLC cliente, en este ejemplo 192.168.1.192.

Asignación de IP al PLC cliente OPC UA en PLCSIM Advanced

Activamos el OPC Cliente desde la configuración del PLC. Este paso habilita la funcionalidad cliente dentro de la CPU.

Activar OPC Cliente desde la configuración del PLC Siemens S7-1500

Igual que ocurre con el servidor, necesitamos la licencia OPC UA correspondiente. Para una CPU 1515 se usa la licencia Medium.

Licencia OPC UA Medium para activar el cliente OPC UA en S7-1500

Interfaz y variables

Creamos una interfaz de cliente OPC UA. En ella indicamos la IP del PLC servidor, 192.168.1.191. El puerto OPC UA se mantiene por defecto.

Configuración de endpoint en la interfaz de cliente OPC UA

En la pestaña de seguridad lo dejamos en No security para la prueba. En una instalación real aquí se tratan las políticas de seguridad y certificados.

Configuración de seguridad No security en cliente OPC UA

Ahora nos conectamos online al servidor OPC UA para seleccionar las variables. Cambiamos el origen a Online y pulsamos Online Access.

Selección de Online Access para buscar variables OPC UA

En la ventana de conexión introducimos la IP del servidor OPC UA y buscamos el servidor. Cuando aparezca, seleccionamos la conexión sin seguridad para este ejemplo.

Búsqueda del servidor OPC UA desde TIA Portal

Si la conexión está bien, veremos el espacio de direcciones publicado por el PLC servidor. Desplegamos la interfaz del servidor y elegimos las variables que queremos usar.

Espacio de direcciones OPC UA publicado por el PLC servidor

Para leer variables creamos una lista de lectura. Si tenemos un DB completo, podemos añadirlo junto y después comprobar consistencia.

Lista de lectura OPC UA con variables del servidor

También podemos crear una lista de escritura. En este caso usamos una variable de prueba Cmd y volvemos a comprobar consistencia.

Lista de escritura OPC UA con variable Cmd

Al hacer Rebuild all, TIA Portal genera el DB de la interfaz con las variables de las listas. Es importante compilar completo para que esos DB queden bien generados.

DB generado por TIA Portal para la interfaz de cliente OPC UA

Bloques compactos

Con la interfaz preparada falta ejecutar las llamadas OPC UA desde el programa. Siemens proporciona varios bloques. Para este ejemplo usamos los bloques compactos, que simplifican la conexión y la lectura.

Bloques compactos OPC UA disponibles para cliente Siemens S7-1500

Insertamos OPC_UA_ReadList_C y lo configuramos con el asistente. Primero seleccionamos la interfaz de cliente creada.

Asistente de configuración del bloque OPC_UA_ReadList_C

En Data access seleccionamos la lista de lectura. Con eso TIA Portal rellena automáticamente el resto de campos necesarios para acceder a la lista.

Selección de lista de lectura en Data access para OPC_UA_ReadList_C

Para escribir el valor de Cmd, instanciamos el bloque de escritura siguiendo los mismos pasos que con la lectura: seleccionamos la interfaz de cliente OPC UA y parametrizamos Data access con la lista de escritura que hemos configurado antes.

Parametrización del bloque de escritura OPC UA con la interfaz cliente y la lista de escritura Cmd

Quedan dos señales clave:

  • REQ: petición de lectura. Cada flanco positivo actualiza los datos.
  • MaintainSession: mantenimiento de la sesión OPC UA.

Para una prueba basta con usar una marca o una señal de reloj. En una aplicación real hay que decidir la frecuencia de refresco según la carga y la necesidad del proceso.

Configuración de REQ y MaintainSession en bloque cliente OPC UA

Prueba final

Probamos la lectura online. Con un flanco positivo en REQ_OPC_UA, los valores del servidor se actualizan en el DB de la interfaz del cliente.

Prueba de lectura OPC UA actualizando valores en el DB cliente

Para la escritura, ponemos un valor en Cmd desde el PLC cliente y lo comprobamos en el PLC servidor con otra petición.

Prueba de escritura OPC UA desde PLC cliente hacia PLC servidor

La clave es mantener la consistencia entre las variables publicadas por el servidor y las listas configuradas en el cliente. Si cambias el DB del servidor, recompila bien, revisa las listas y vuelve a generar los DB de la interfaz antes de probar.

Artículos relacionados



¿Te ha servido este articulo?

Compartir en LinkedIn