Objetivo y herramientas
El objetivo es preparar un PLC Siemens para servir variables por OPC UA, simularlo con PLCSIM Advanced y comprobar la conexión desde UA Expert.
Para el ejemplo uso una CPU 1515-2 PN, la interfaz de red 1 y una IP de proyecto 192.168.1.188. La idea es mantener el proyecto sencillo: un DB con variables, una FC que las va cambiando y el servidor OPC UA del propio PLC publicando esos datos.
Herramientas utilizadas:
Activación OPC UA
Dentro de las propiedades de la CPU activamos la funcionalidad de servidor OPC UA y la asociamos a la interfaz de red que vamos a utilizar. Siemens mantiene documentación específica para usar el S7-1500 como servidor OPC UA en TIA Portal. En este caso trabajamos con la interfaz 1 de la CPU.
Con esto dejamos preparado el punto de entrada del servidor. Todavía faltan dos partes importantes antes de descargar: la licencia OPC UA y los permisos de acceso.
Licencia OPC UA
Para usar esta funcionalidad hace falta la licencia OPC UA correspondiente al tipo de CPU. En la página oficial de OPC UA de Siemens se resume el enfoque de Siemens para comunicaciones OPC UA en automatización industrial. En TIA Portal la licencia se separa por tamaño de controlador:
- Small: CPUs de entrada, como 1511, 1512C, 1513 y controladores distribuidos ET 200SP.
- Medium: gama media, como 1515 y 1516. Es la licencia que aplica a este ejemplo.
- Large: CPUs de más rendimiento, como 1517 y 1518.
Permisos de usuario
Al compilar, TIA Portal puede avisar de que faltan permisos de usuario para OPC UA. La solución es crear un rol específico, habilitar el Runtime right correspondiente en el PLC y asignar ese rol al usuario que vaya a acceder al servidor OPC UA.
Primero creamos el rol para OPC UA.
Después creamos el Runtime right en el PLC y lo dejamos disponible para ese rol.
Por último asignamos el rol a los usuarios que nos interesen. En este caso lo asignamos al usuario admin, para que la conexión OPC UA pida usuario y contraseña y quede protegida por credenciales.
Este usuario debe estar creado previamente con una contraseña. Esa misma contraseña será la que después introduciremos en el cliente OPC UA al establecer la conexión contra el PLC.
FC y DB de simulación
Para tener datos que cambien en el cliente OPC UA, creo un pequeño programa de simulación. La base es un DB con variables y una FC en SCL que va modificando sus valores.
Primero creo las variables que quiero simular.
Después habilito marcas de reloj para poder usar pulsos internos y cambiar valores de forma sencilla.
La FC de simulación la preparo en SCL con ayuda de Codex, para generar rápidamente un comportamiento de prueba.
Simulación del PLC
Con el programa listo, habilito la simulación en el proyecto y preparo la instancia en PLCSIM Advanced.
En PLCSIM Advanced uso SingleAdapter y asigno la IP del proyecto: 192.168.1.188. De este modo el cliente OPC UA podrá conectar contra esa dirección.
Interfaz del servidor OPC UA
Una vez creadas las variables, configuramos una interfaz de servidor OPC UA en el proyecto.
Después añadimos las variables que queremos servir. Para ello basta con arrastrar el DB o las variables a la interfaz OPC UA. Cuando esté todo listo, descargamos el PLC simulado.
Comprobación con UA Expert
Para validar el servidor uso UA Expert, el cliente OPC UA de Unified Automation. La URL del endpoint en esta prueba es:
opc.tcp://192.168.1.188:4840
En este artículo dejamos la seguridad de canal de la comunicación OPC UA en No security (None). Es decir, usamos usuario y contraseña para el acceso, pero no activamos todavía firmado ni cifrado del canal. La parte de conexión autenticada con políticas de seguridad y cifrado la desarrollaremos en un artículo específico.
Después de descubrir el servidor y seleccionar la conexión, UA Expert solicita las credenciales. Aquí introducimos el usuario admin y la contraseña configurada previamente en TIA Portal.
Al conectar, entramos en la carpeta ServerInterfaces y allí aparece el DB publicado desde TIA Portal.
Con esto queda validado el recorrido completo: PLC simulado, servidor OPC UA activo, variables servidas y cliente externo leyendo la estructura publicada.