Archivo de la etiqueta: SNMP

Node-RED en la Industria

Node-RED puede ejecutarse en PLCs o en PLCs basados en Linux como p.e. los que tienen una Raspberry vistos en el punto anterior de “Raspberry Pi en la Industria”: https://aprendiendoarduino.wordpress.com/2020/03/01/raspberry-pi-en-la-industria/ 

Tanto Node-RED como Raspberry Pi en la industria se podría incluir en cualquiera de estas categorías funcionales:

  • PLC – automatizar procesos
  • PAC – PLC + PC con protocolos avanzados
  • IPC – Industrial PC
  • HMI – Dashboard Node-RED
  • Scada – Lógica programad + Dashboard

Un controlador lógico programable, más conocido por sus siglas en inglés PLC (Programmable Logic Controller) o por autómata programable, es una computadora utilizada en la ingeniería automática o automatización industrial, para automatizar procesos electromecánicos, electroneumáticos, electrohidráulicos, etc…

Un controlador de automatización programable, o PAC (del inglés Programmable Automation Controller), es una tecnología industrial orientada al control automatizado, al diseño de prototipos y a la medición. El PAC se refiere al conjunto formado por un controlador (una CPU típicamente), módulos de entradas y salidas, y uno o múltiples buses de datos que lo interconectan todo.

SCADA, acrónimo de Supervisory Control And Data Acquisition (Supervisión, Control y Adquisición de Datos) es un concepto que se emplea para realizar un software para ordenadores que permite controlar y supervisar procesos industriales a distancia. Facilita la retroalimentación en tiempo real con los dispositivos de campo (sensores y actuadores), y controla el proceso automáticamente.

IPC, acrónimo de PC industrial es una computadora destinada a fines industriales (producción de bienes y servicios), con un factor de forma entre una nettop y un rack de servidor. Las PC industriales tienen estándares más altos de confiabilidad y precisión, y generalmente son más caras que los productos electrónicos de consumo. A menudo utilizan conjuntos de instrucciones complejos, como x86, donde de otro modo se utilizarían conjuntos de instrucciones reducidos como ARM.

El Interfaz Hombre-Máquina (HMI) es el interfaz entre el proceso y los operario; se trata básicamente de un panel de instrumentos del operario. Es la principal herramienta utilizada por operarios y supervisores de línea para coordinar y controlar procesos industriales y de fabricación. El HMI traduce variables de procesos complejos en información útil y procesable.

La función de los HMI consiste en mostrar información operativa en tiempo real y casi en tiempo real. Proporcionan gráficos de procesos visuales que aportan significado y contexto al estado del motor y de la válvula, niveles de depósitos y otros parámetros del proceso. Suministran información operativa al proceso, y permiten el control y la optimización al regular los objetivos de producción y de proceso.

PAC podría equipararse al uso de un PC y un PLC conjuntamente. Los PAC están compuestos por varias aplicaciones informáticas, lo que hace que su programación sea más flexible. A diferencia de los PLC, pueden ejecutar multitareas fácilmente, trabajando en diferentes dominios como el movimiento, las aplicaciones discretas y el control de procesos.

Los PACs y PLCs tienen varias cosas en común. Internamente, ambos incluyen una fuente de potencia, un CPU, un plano trasero o dispositivo de E/S, y módulos. Tienen registros de memoria que reflejan los canales de E/S individuales en los módulos. Sin embargo, las siguientes diferencias resultan muy significativas. La 5 características principales en los PAC:

  • Funcionalidad de dominio múltiple, al menos dos de lógica, movimiento, control PID, y proceso en una sola plataforma.
  • Plataforma de desarrollo sencillo de disciplina múltiple incorporando etiquetas comunes y una base de datos sencilla para tener acceso a todos los parámetros y funciones.
  • Herramientas de software que permiten diseñar flujo del proceso a través de varias máquinas o unidades de proceso, junto con el IEC 61131-3, guía del usuario y administración de datos.
  • Arquitecturas modulares, abiertas que reflejan las aplicaciones industriales a partir de un despliegue de maquinaria en fábricas en plantas de proceso.
  • Uso de estándares de la industria para interfaces en red, lenguajes, etc., como búsquedas TCP/IP, OPC y XML, y SQL.

Una ventaja de los PAC al compararse con los PLCs, son la habilidad para procesar y desempeñar medidas complejas. Con esta característica, puede combinar diferentes sistemas de adquisición de datos como frecuencias, formas de onda, voltajes, corrientes, control de movimiento e incluso, adquisición de imágenes. Esto crea un nivel sin precedentes de manipulación y estandarización en términos del tipo de señales que pueden manipularse y procesarse. Los PACs ofrecen cientos de funciones para procesar, analizar y extraer información de estas señales.

Un PAC permite conectarse a aplicaciones empresariales y almacenar datos en bases de datos o redes corporativas ODBC/SQL activadas. Además, puede utilizar OPC para integrarse y comunicarse con sistemas de software y hardware de terceros. Los PAC’s automáticamente publican sus datos de E/S a un servidor OPC localizado en la computadora tipo servidor usada para configurar el banco de E/S. La mayoría de los paquetes de software SCADA para Windows soportan OPC, y la mayoría de los proveedores de hardware de E/S industrial proporcionan servidores de OPC para su hardware. Esto hace más sencilla la integración de los PACs con una gran variedad de hardware de E/S industrial como lo son los controladores lógicos programables (PLCs) y otros dispositivos industriales. Usted puede utilizar un paquete SCADA de terceros o el Módulo de Registro de Datos y Control, inclusive se puede conectar a servicios en la nube o plataformas administrativas como SAP

Más información:

PACs y PLCs con Node-RED

Recientemente se está incorporando Node-RED en diversos PLCs para su programación.

Varios ejemplos de PLCs basados en Raspberry Pi donde puede usarse Node-RED en: https://aprendiendoarduino.wordpress.com/2020/03/01/raspberry-pi-en-la-industria/ 

PLC/PAC de industrial shield https://www.industrialshields.com/es_ES/industrial-plc-pac-raspberry-pi-202009 basados en Raspberry Pi que pueden ejecutar Node-RED.

Industrial Shields: https://www.industrialshields.com/es_ES/blog/nuestro-blog-1/post/an-introduction-to-node-red-39

Node-RED con Industrial Shields: https://www.industrialshields.com/es_ES/blog/nuestro-blog-1/post/create-your-own-framework-node-red-first-steps-6 

Paneles HMI/IPC basados en Raspberry PI: https://www.industrialshields.com/es_ES/hmi-industrial-panel-pc-10-based-on-raspberry-pi-202011-lp

Node Red se puede comunicar con PLCs usando Modbus o con los Scadas usando OPC u OPC-UA, pero existen nodos específicos:

PLCs con Node-RED integrado:

Node-RED para openWRT: https://github.com/dceejay/openwrt-node-red 

Curso IoT simatic (Siemens con Node red); http://www.infoplc.net/descargas/109-siemens/comunicaciones/2847-manual-simatic-iot2040-node-red 

Interesante proyecto para la industria integrando Automata de Siemens: https://riunet.upv.es/bitstream/handle/10251/110768/73657734G_TFM_1536705921392151385469958862519.pdf?sequence=1&isAllowed=y

Montar un servidor OPC-UA con Node-RED: 

Casos de Uso

Node-RED en la industria tiene muchos casos de uso

  • Scada
  • HMI
  • Mantenimiento predictivo
  • Predicción de fallos (mirando datos de sensores en tiempo real en streaming) aquí no vale big data, buscar patrones, analizar y generar alertas, ya que se necesita tiempo real e inmediatez.

Encuesta 2019 Node-RED: https://nodered.org/about/community/survey/2019/

Ejemplo de ABB con Node-RED: https://sesam-world.com/_pdf/sesam-138/06-ABB.pdf  

Node-RED en open energy monitor: https://guide.openenergymonitor.org/integrations/nodered/

Ejemplo de uso de Node-RED: https://sie.fer.es/esp/Servicios/Comunicacion/Sala_Prensa/Archivo_fotografico/Primera_plataforma_integrada_datos_desarrollada_JIG_Digital_junto_5_empresas_vitivinicolas/webDoc_28268.htm

Empresas que usan Node-RED

Obtenido de los planes de futuro de Node-RED publicado en https://nodered.org/blog/2020/10/13/future-plans 

Another group of users come from the companies who have integrated Node-RED into their own products and services. Hitachi, Siemens, Samsung, Particle and many others. They have a different set of needs. They want to integrate Node-RED into their existing platforms. They want to be able to offer a seamless experience to their end users – hiding away the details of how Node-RED is being run or where the flows are executed.

Whilst some of that will come from individuals, we want to increase the commercial adoption of Node-RED. This will help increase the commercial investment back into the project itself.

ModBus y Nodered

Usado el nodo https://flows.nodered.org/node/node-red-contrib-modbus

Github: https://github.com/BiancoRoyal/node-red-contrib-modbus 

Wiki: https://github.com/BiancoRoyal/node-red-contrib-modbus/wiki 

Artículo: https://blog.ironchip.net/2019/01/18/instalacion-de-node-red-en-una-raspberry-pi/ 

Ejemplo: https://flows.nodered.org/flow/bf06a87e84395e4bce276714c6f5f884

SNMP y Nodered

SNMP: https://flows.nodered.org/node/node-red-node-snmp

Trap listener: https://flows.nodered.org/node/node-red-contrib-snmp-trap-listener

Código: https://github.com/node-red/node-red-nodes/tree/master/io/snmp

Node-RED y Fiware

Existen varios nodos de Fiware para Node-RED:

El nodo principal es https://flows.nodered.org/node/node-red-contrib-fiware_official y el repositorio es: https://github.com/FIWARE/node-red-contrib-FIWARE_official. Lo que hace es trabajar con el Orion context broker, realizando varias operaciones.

Fiware + Node-RED: https://m.riunet.upv.es/bitstream/handle/10251/114982/memoria_4632841.pdf

Simulador Fiware: https://www.fiware.org/wp-content/uploads/2017/01/Hands-on-FIWARE-Context-provider-Simulator.pdf

Interesante presentación de Telefónica: https://www.uma.es/smart-campus/navegador_de_ficheros/SmartUMA/descargar/Material%20Curso%20de%20formaci%C3%B3n%20para%20la%20red%20IoT%20Smart%20Cities/FORMACION%20SMART%20CITY%20UMA%20-%20FIWARE%20y%20Plataforma%20Thinking%20Cities.pdf

Node-RED y Domótica

En HA (Home Assistant) se usa Node-RED.

Nodos de HA:

Tutorial de HA y Node-RED: https://www.juanmtech.com/get-started-with-node-red-and-home-assistant/

Addon de Node-RED en HA: https://community.home-assistant.io/t/home-assistant-community-add-on-node-red/55023

Getting Started con HA y Node-RED: https://diyfuturism.com/index.php/2017/11/26/the-open-source-smart-home-getting-started-with-home-assistant-node-red/ 

Ejemplo de HA: https://www.thesmarthomebook.com/2020/07/28/the-elephant-in-the-room-presence-detection-in-home-assistant/ 

Home Assitant Websocket: https://flows.nodered.org/node/node-red-contrib-home-assistant-websocket 

Vídeo: https://www.youtube.com/watch?v=SuoSXVqjyfc&feature=youtu.be 

Más información: https://www.domoticaeconomica.com/node-red-en-hassio-o-home-assistant

Simular dispositivos HomeKit de apple con Node-RED: https://swifting.io/blog/2017/04/05/39-homekit-devices-simulator-using-node-red-raspberry-pi/ 

Ejemplo: Scada con Node-RED

Este proyecto consiste en hacer o renovar un scada partiendo de los datos de un Scada Antiguo y crear un sistema moderno, basado en web y que publique los datos para poder integrar con sistemas de terceros de forma sencilla o poder añadir funcionalidades al sistema sin tener que modificar el scada ni el PLC.

Partimos de un sistema con un PLC (Siemens, Rockwell, Schneider, etc…) con decenas de señales y control. Además este PLC es gestionado por un Scada de la misma marca con un HMI que habla OPC y guarda los datos en ficheros txt y desde el que se hacen ciertas operaciones y también tiene una programación para control y envío de alertas.

Es un sistema antiguo, cuyo coste de actualización es muy caro. Además está sobre una versión de Windows sin soporte, por lo que es vulnerable.

La propuesta es aislar por completo el sistema de PLC y Scada para proteger de posibles vulnerabilidades al ser sistemas no actualizables y solo exponer los datos mediante tecnologías actuales. Las tecnologías que se usen serán open source.

Propuesta:

  • Uso de python y/o Node-RED para recuperar los datos de las tablas en ficheros txt y guardar los datos en una BBDD.
  • Uso de openOPC + python para obtener resto de variables, estados, etc… que no se exportan en fichero txt y guardar BBDD todas las variables adicionales en un histórico
  • Publicar en MQTT esas variables para tener disponibilidad de ellas en tiempo real
  • Usar Node-RED para programación adicional necesaria.
  • Usar el Dashboard de Node-RED para hacer el sistema HMI con el que visualizar e interactuar.
  • Hacer gráficas más complejas y otros dashboards con grafana, en combinación con el Dashboard de Node-RED

Node-Red en la Industria

Recientemente se está incorporando Node-RED en diversos PLCs para su programación.

Curso IoT simatic (Siemens con Node red); http://www.infoplc.net/descargas/109-siemens/comunicaciones/2847-manual-simatic-iot2040-node-red 

OpenOPC UA: http://www.openopcua.org/ 

Nodo para interactuar con PLCs S7: https://flows.nodered.org/node/node-red-contrib-s7

Industrial Shields: https://www.industrialshields.com/es_ES/blog/nuestro-blog-1/post/an-introduction-to-node-red-39

Encuesta 2019 Node-RED: https://nodered.org/about/community/survey/2019/

Dispositivo PLC, entre otro muchos, que usa Node-RED: https://nube-io.com/

Node-RED y PLCs

Node Red se puede comunicar con PLCs usando Modbus o con los Scadas usando OPC u OPC-UA.

Pero existen nodos específicos:

PLCs con Node-RED integrado:

Montar un servidor OPC-UA con Node-RED: 

ModBus y Nodered

Usado el nodo https://flows.nodered.org/node/node-red-contrib-modbus

Github: https://github.com/BiancoRoyal/node-red-contrib-modbus 

Wiki: https://github.com/BiancoRoyal/node-red-contrib-modbus/wiki 

Ejemplo: https://flows.nodered.org/flow/bf06a87e84395e4bce276714c6f5f884

SNMP y Nodered

SNMP: https://flows.nodered.org/node/node-red-node-snmp

Trap listener: https://flows.nodered.org/node/node-red-contrib-snmp-trap-listener

Código: https://github.com/node-red/node-red-nodes/tree/master/io/snmp

Node-RED y Fiware

Existen varios nodos de Fiware para Node-RED:

El nodo principal es https://flows.nodered.org/node/node-red-contrib-fiware_official y el repositorio es: https://github.com/FIWARE/node-red-contrib-FIWARE_official. Lo que hace es trabajar con el Orion context broker, realizando varias operaciones.

Fiware + Node-RED: https://m.riunet.upv.es/bitstream/handle/10251/114982/memoria_4632841.pdf

Simulador Fiware: https://www.fiware.org/wp-content/uploads/2017/01/Hands-on-FIWARE-Context-provider-Simulator.pdf

Interesante presentación de Telefónica: https://www.uma.es/smart-campus/navegador_de_ficheros/SmartUMA/descargar/Material%20Curso%20de%20formaci%C3%B3n%20para%20la%20red%20IoT%20Smart%20Cities/FORMACION%20SMART%20CITY%20UMA%20-%20FIWARE%20y%20Plataforma%20Thinking%20Cities.pdf

Node-RED y Domótica

En HA (Home Assistant) se usa Node-RED.

Nodos de HA:

Tutorial de HA y Node-RED: https://www.juanmtech.com/get-started-with-node-red-and-home-assistant/

Addon de Node-RED en HA: https://community.home-assistant.io/t/home-assistant-community-add-on-node-red/55023

Más información: https://www.domoticaeconomica.com/node-red-en-hassio-o-home-assistant

Protocolos IoT Capa Aplicación

En informática y telecomunicación, un protocolo de comunicaciones es un sistema de reglas que permiten que dos o más entidades de un sistema de comunicación se comuniquen entre ellas para transmitir información por medio de cualquier tipo de variación de una magnitud física. Se trata de las reglas o el estándar que define la sintaxis, semántica y sincronización de la comunicación, así como también los posibles métodos de recuperación de errores. Los protocolos pueden ser implementados por hardware, por software, o por una combinación de ambos.

Los sistemas de comunicación utilizan formatos bien definidos (protocolo) para intercambiar mensajes. Cada mensaje tiene un significado exacto destinado a obtener una respuesta de un rango de posibles respuestas predeterminadas para esa situación en particular. Normalmente, el comportamiento especificado es independiente de cómo se va a implementar. Los protocolos de comunicación tienen que estar acordados por las partes involucradas.

Ejemplos de protocolos de red (wikipedia)

Algunos Protocolos de comunicación IoT de capa de aplicación, con los que comunicar el HW con el SW

  • MQTT
  • API REST/HTTP
  • SNMP
  • CoAp
  • Websockets
  • Buses de campo industriales, modbus, etc…

Más información: https://es.wikipedia.org/wiki/Protocolo_de_comunicaciones

El protocolo de red MQ Telemetry Transport (MQTT) sería una buena opción para monitorizar y controlar los paneles solares. MQTT es un protocolo de publicación/suscripción con corredores de mensajes centrales. Cada panel solar puede contener un nodo IoT que publique mensajes de tensión, corriente y temperatura.

MQTT de un vistazo

  • Ancho de banda muy bajo
  • TCP/IP
  • Publicar/suscribir transferencia de mensajes
  • Topología de muchos a muchos a través de un broker central
  • Sin metadatos
  • Tres niveles de QoS
  • Última Voluntad y Testamento revela nodos desconectados

Para los nodos IoT de los aerogeneradores, preferiría una interfaz más basada en API. El Protocolo de aplicación restringida (Constrained application protocol – CoAP) utiliza el conocido patrón de diseño REST, en el que los servidores ponen recursos a disposición en una URI y los clientes acceden a los recursos utilizando métodos como GET, PUT, POST y DELETE. Los estándares publicados facilitan la interpretación de los formatos de contenido: por ejemplo, XML (ID=41) o JSON (ID=50).

CoAP es un protocolo del IETF (Internet Engineering Task Force) que se ha diseñado para proporcionar aplicaciones RESTful modeladas en la semántica de HTTP, pero más pequeño y binario a diferencia del basado en texto. CoAP es un enfoque tradicional de cliente-servidor en comparación al de brokers, diseñado para correr sobre UDP.

Las turbinas podrían consultarse entre sí para optimizar el rendimiento de la matriz. Por ejemplo, una turbina podría consultar a la turbina adyacente para determinar si el viento estaba aumentando o disminuyendo. El vecino podría a su vez consultar a su vecino y así sucesivamente. Esta simple regla podría permitir a una turbina anticiparse a los cambios de viento y prepararse en consecuencia. Si todo el array tiene acceso a la web (vía HTTP) y un servidor DNS, es fácil traducir el URI a: http:// turbine20.domain.tld/speed y monitorizar el campo remotamente.

El CoAP de un vistazo

  • Transferencia de documentos cliente/servidor REST
  • Fácil de traducir a HTTP para la integración web
  • Topología uno a uno con conexiones directas
  • Metadatos para diferenciar clases de documentos
  • UDP
  • Seguridad a través de DTLS

En entornos industriales OPC UA (Unified Architecture, ‘arquitectura unificada’) es el estándar de nueva generación que le sigue a OPC Foundation. OPC clásico es bien conocido en la industria y provee una interfaz estándar para comunicarse con los PLC (Programmable Logic Controller, ‘controlador lógico programable’). OPC UA pretende expandir la compatibilidad de OPC al nivel de los dispositivos y de las empresas.

OPC UA es un protocolo cliente/servidor. Los clientes se conectan, navegan, leen y escriben al equipamiento industrial. UA define la comunicación desde la aplicación hacia la capa de transporte, lo que lo hace muy compatible entre vendedores. También es muy seguro, y usa mensajes bidireccionales firmados y encriptación de transporte.

OPC UA tiene una amplia base instalada en el mundo industrial. Es una buena solución para conectar información de sensores y PLC en aplicaciones industriales ya existentes como sistemas MES (Manufacturing Execution System, ‘sistema de ejecución de manufactura’) y SCADA (Supervisry Control and Data Acquisition, ‘supervisión, control y adquisición de datos’), en donde la conectividad OPC y OPC UA ya estén disponibles.

Sin embargo, OPC UA es nuevo para las tecnologías de información. Algunas personas de TIC (tecnologías de la información y comunicación) se asustan ante la complejidad de UA en comparación con otros protocolos TIC. Bastante de esta complejidad reside en el hecho de que OPC UA sea un protocolo industrial, pero esta percepción ha llevado a ralentizar su adopción para plataformas IoT y la comunidad de código abierto.

Pero la cosa están cambiando: hace muy poco, OPC Foundation abrió el código del estándar OPC UA para hacerlo más accesible y colaborar a que se incremente su adopción.

Más información:

Comparativa de protocolos IoT:

Conclusión

OPC UA, HTTP, MQTT, CoAP, DDS, AMQP, etc.. todos tienen lugar en IoT. Cuál de estos protocolos tiene la mayor parte del mercado no está claro, pero cada uno tiene sus pros y sus contras. Es importante elegir el protocolo que mejor se adapte a sus necesidades, y seleccionar los socios tecnológicos que se puedan adaptar a tales protocolos. Esto asegurará el éxito para sus aplicaciones IoT y lo protegerá de las guerras de protocolos.

Muy buen resumen de protocolos de IoT: https://www.postscapes.com/internet-of-things-protocols/

Otro Buen resumen de protocolos IoT de la capa de aplicación: https://www.14core.com/the-iot-protocols-the-base-of-internet-of-things-ecosystem/