Ya hemos terminado el curso de Industria 4.0.
A mis queridos alumnos les he pedido un poco de feedback del curso y algunos de ellos ¡¡quieren más!!
¡Están locos estos romanos! que diría Astérix.
Especialmente dos de ellos, me han pedido cómo se podría compaginar Node-red con OPC-UA.
La verdad es que no me lo había planteado, pero he estado investigando, y creo que puede ser una buena idea.
Lo primero que te quiero decir, es que no lo he hecho nunca.
Pero si te parece, podemos probarlo juntos poco a poco.
Pensando un poco en el tema, creo que puede ser una buena idea tener una pasarela estilo Siemens IOT2040 para dar a este PLC las prestaciones del OPC UA que de serie no tiene.
Por ejemplo, la series S7-1200 o 300, no puedes configurarlas como servidores OPC-UA.
La gracia por tanto sería el poder leer datos del PLC y pasarselos a la pasarela, y que esta sea el servidor OPC que conecte con los clientes.
Contenido
Cómo montar un servidor OPC UA con Node-Red
Lo primero que tendrás que saber es que es Node-Red y cómo funciona.
Si necesitas adentrarte en este mundillo, tienes el curso, o bien puedes formarte por tu cuenta en Node-Red.
Lo que aquí te voy a ir contando es como poner en práctica lo aprendido en el curso, tanto por la parte de Node-Red, como de OPC-UA.
Por otra parte, seguramente montar un servidor OPC-UA con Node-Red no sea lo más eficiente, pero es una forma razonablemente sencilla que nos permite una primera aproximación a este mundo sin tener un máster en OPC-UA.
Seguro que el servidor es mejor montarlo en C, Python u otros lenguajes, pero se trata de crear un servidor de una forma razonablemente sencilla y probar su funcionamiento para personas que no tengan grandes conocimientos en programación.
Si la aplicación es muy exigente por volumen o criticidad, seguro que hay métodos más adecuados que no vamos a tratar aquí.
El fundamento de este post, y el de otros que veremos más adelante, es profundizar en Node-Red, y ya de paso, aprender algo más de OPC-UA.
Aclarado esto, vamos con los ingredientes:
- Un PLC
- Una pasarela con Node-Red
- Un cliente OPC-UA con el que conectarnos y ver si lo que vamos haciendo, funciona o no. Yo estoy haciendo las pruebas con este que es gratuito de Unified Automation
- Nodos de Node-Red que nos permitan montar un servidor OPC UA.
El PLC
Yo voy a usar un S7-1212, que es el que tengo para realizar, pero puede ser de cualquier serie (S7-300, S7-1200, s7-1500…) que tenga conexión ethernet.
Recordar que los S7-1500 tienen servidor OPC-UA por lo que se puede acceder a la información de estos PLC directamente y no haría falta la pasarela.
La pasarela
Yo voy a realizar las prácticas con un Odroid HC1 , ya que es lo que tengo libre en estos momentos para hacer las pruebas.
Lo ideal sería hacerlo con el IOT2040 de Siemens, pero la potencia de este es más bien escasa, y si bien he logrado instalar los nodos y hacerlo funcionar, tarda mucho en compilar entre pruebas, por lo que he cambiado de idea y me he ido a algo con mayores prestaciones en ese sentido.
Ojo, que el IOT2040 tiene muchas bondades, (poder montar dos redes diferenciadas es una grandísima ventaja) pero tiene el inconveniente de que tiene menos potencia que una Raspberry, por ejemplo.
No obstante, las ventajas superan ampliamente las desventajas para un entorno industrial, por lo que cuando termine las pruebas, intentaré replicarlo todo en el IOT2040 de Siemens.
Ya veré si funciona o no en su momento.
Los nodos adecuados para montar un servidor OPC UA en Node-Red
He probado varias alternativas de los nodos disponibles en el repositorio para montar un servidor OPC UA
Tras algunas pruebas no muy profundas (pero creo que suficientes), para mi el más adecuado por el desempeño que ofrece es: node-red-contrib-iiot-opcua
Puedes instalarlo usando el interfaz gráfico, o bien usar la línea de comandos como marca su web de ayuda.
El primer ejemplo.
Una vez todo instalado, hay un ejemplo muy completo que te muestro en el siguiente vídeo.
Siguientes pasos.
Con este ejemplo, sacamos un poco la idea de cómo debemos crear la estructura de nuestro servidor OPC.
En siguientes pasos, habrá que leer los datos del PLC y ponerlos a disposición del PLC para que cualquier cliente pueda leer los datos del PLC.
Posteriormente, habrá que implementar las políticas de seguridad para que la comunicación cliente-servidor sea segura.
Como ves, es un camino que no acaba aquí y habrá que ir dando pasos.
Como otras veces, el código los alumnos lo tenéis disponible para la descarga en el Anexo del curso de IOT.
¿Cómo lo ves?
Espero que te haya picado el gusanillo y empieces a investigar.
Independientemente de la forma en la que se monte el servidor OPC-UA, creo que es una gran herramienta para intercambio de datos entre PLC y otros equipos, sean PLC o no.
¡Espero tus comentarios!
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
1 Comentario
Hola Iñigo
la verdad es que como dices pica el gusanillo, yo tengo en mente hacer algo de coger datos de un plc S7-1200 y poderlos subirlos a la nube a través del protocolo mqtt y lo que comentas me parece interesante. Quiero acabar el curso que empece contigo de industria 4.0 pero seria una buena forma de continuar.
Si te lías con algo de esto, casi seguro que colaborare con la causa.