Introducción a las Interfaces Hombre-Máquina virtuales

Guía general para implantar HMIs virtuales basadas en tecnología web
14 de junio de 2023 por
Introducción a las Interfaces Hombre-Máquina virtuales
Boot & Work Corp. S.L., Joan Vilardaga Castro

Introducción

Introducción a las HMIs virtuales

En un mundo cada vez más interconectado, en el que máquinas y sistemas desempeñan papeles vitales en diversas industrias, la necesidad de una interacción hombre-máquina eficiente y sin fisuras se ha hecho imperiosa.

Tradicionalmente, las interfaces hombre-máquina (HMI) han sido interfaces físicas que permiten a los usuarios controlar y supervisar las máquinas. Sin embargo, con la llegada de las tecnologías avanzadas y la creciente demanda de operaciones remotas, las HMI virtuales han surgido como un cambio de juego.

Las HMI virtuales están transformando las interacciones hombre-máquina al aprovechar las interfaces digitales, que ofrecen una comodidad, accesibilidad y flexibilidad sin precedentes. Entre estas interfaces, las plataformas basadas en la web están desempeñando un papel fundamental en la reconfiguración del modo en que los seres humanos interactúan con las máquinas. En esta entrada del blog, profundizaremos en los distintos enfoques que permiten la supervisión remota y la interacción con las máquinas específicamente a través de plataformas basadas en web.

HMIs basadas en web

Las HMI basadas en web son IHM virtuales desarrolladas con tecnología web. Una de las principales ventajas de este enfoque es su independencia de la plataforma. Los usuarios pueden acceder a la HMI a través de un navegador web en diversos dispositivos, como ordenadores, smartphones y tabletas. Esta flexibilidad permite a ingenieros, operarios y profesionales supervisar y controlar máquinas a distancia, independientemente de su ubicación física o del tipo de dispositivo que tengan a mano.

Además, las HMI basadas en web eliminan la necesidad de instalar software especializado. Los usuarios sólo tienen que acceder a la HMI introduciendo la dirección web designada, lo que elimina los problemas de compatibilidad y actualización del software. Esta comodidad permite una conectividad perfecta y garantiza que los usuarios dispongan de la última versión de la HMI.

HMIs basadas en web

Dado que este blog se centra en las HMIs basadas en web, hablaremos de HTML5, CSS y JavaScript, la principal tecnología en la que se basa todo el desarrollo web actual. HTML5 permite estructurar y organizar el contenido, mientras que CSS aporta estilo y mejoras visuales. JavaScript es un versátil lenguaje de scripting que permite crear elementos dinámicos e interactivos dentro de las aplicaciones web. Juntos, estos lenguajes forman la base del desarrollo web moderno, y pueden utilizarse tanto para desarrollar páginas web como aplicaciones web y aplicaciones nativas. Para ello, existen múltiples formas de utilizar estos lenguajes:

Plataformas de desarrollo rápido / CSM

Estas plataformas están diseñadas para ser fáciles de usar por principiantes y requieren pocos conocimientos de programación. Las interfaces visuales y la funcionalidad de arrastrar y soltar hacen que sea relativamente fácil para los usuarios crear páginas y aplicaciones web sin escribir código, aunque para interactuar con una API externa o crearla se necesitan algunos conocimientos de codificación. Ejemplos de este tipo de plataformas son Bubble y Wordpress.

El método "tradicional"

Este método suele implicar escribir código desde cero utilizando lenguajes de programación como HTML, CSS y JavaScript. Los desarrolladores tienen pleno control sobre el código y pueden personalizar cada aspecto de la aplicación web según sus necesidades. Aunque requiere más conocimientos y experiencia en codificación, este método proporciona flexibilidad y permite funcionalidades más avanzadas. Los desarrolladores pueden aprovechar sus habilidades para crear soluciones únicas y a medida que satisfagan requisitos específicos. Sin embargo, es importante tener en cuenta que este enfoque puede requerir más tiempo y esfuerzo en comparación con el uso de plataformas de bajo código o marcos preconstruidos.

Marcos CSS

Los frameworks CSS como W3.CSS proporcionan estilos y componentes prediseñados que pueden incorporarse fácilmente a las páginas web. Ofrecen una gama de diseños, tipografía y elementos de interfaz de usuario predefinidos, lo que acelera significativamente el proceso de desarrollo, y también suelen proporcionar diseños responsivos desde el principio, garantizando una mejor compatibilidad en múltiples dispositivos.

CSS/Marcos JS

Los frameworks CSS/JS como Bootstrap y Tailwind CSS combinan las ventajas de los frameworks CSS con funciones adicionales de JavaScript. Suelen ofrecer amplias opciones de personalización a través de archivos de configuración, lo que permite a los desarrolladores crear diseños únicos sin dejar de beneficiarse de la comodidad de los componentes preconstruidos. Sin embargo, trabajar con marcos CSS/JS requiere una mayor curva de aprendizaje que con marcos CSS independientes.

Marcos avanzados

Frameworks avanzados como SvelteKit y React ofrecen potentes herramientas y funciones para crear aplicaciones web complejas. Siguen un enfoque basado en componentes, lo que permite a los desarrolladores dividir la interfaz de usuario en partes reutilizables y manejables. También proporcionan ecosistemas robustos con una amplia gama de bibliotecas y extensiones desarrolladas por la comunidad. Sin embargo, trabajar con frameworks avanzados requiere una curva de aprendizaje más pronunciada y puede introducir pasos de compilación y sobrecarga adicionales.

Estas interfaces, sin embargo, necesitan algún tipo de mecanismo de comunicación con la máquina para poder interactuar con ella (si están separadas físicamente). Algunas formas de lograrlo son:

APIs RESTful

La transferencia de estado representacional es un estilo arquitectónico que facilita la comunicación entre distintos sistemas de software. Las API RESTful proporcionan un enfoque estandarizado para exponer y consumir datos y funcionalidades. La implementación de una API RESTful permite una integración perfecta entre la HMI basada en web y otros sistemas o servicios back-end, permitiendo la recuperación de datos y comandos de control.

WebSockets

WebSockets es un protocolo de comunicación que proporciona una comunicación bidireccional full-duplex entre un cliente y un servidor. Permite el intercambio de datos en tiempo real, por lo que es ideal para HMI basadas en web que requieren actualizaciones continuas e interacciones sincronizadas entre el usuario y el servidor de HMI, por ejemplo si necesita una supervisión continua y fiable.

Node-RED

Otra opción para crear una HMI basada en web es utilizar Node-RED con el plugin Dashboard. Node-RED es una herramienta de programación basada en flujos que permite a los usuarios crear y desplegar aplicaciones de forma visual mediante la conexión de nodos. Node-RED Dashboard proporciona un conjunto de componentes de interfaz de usuario prediseñados que pueden personalizarse y organizarse fácilmente para crear una HMI virtual. Estos componentes incluyen botones, controles deslizantes, indicadores, gráficos, entradas de texto y mucho más. La interfaz de arrastrar y soltar de Node-RED hace que sea fácil de usar y accesible para desarrolladores con distintos niveles de experiencia.

Permite la visualización y el control de datos en tiempo real, lo que permite a los usuarios supervisar e interactuar con dispositivos o sistemas conectados. Conectando los nodos de entrada y salida necesarios en el editor de flujos, los datos de sensores, máquinas o dispositivos IoT pueden visualizarse y controlarse a través de la interfaz Dashboard.

La seguridad de las HMIs basadas en web

La seguridad de las HMIs basadas en web

Cuestiones de seguridad

Sea cual sea el enfoque elegido, las HMI virtuales viajan a través de las redes, ya sean locales, de área extensa o incluso de Internet. Para proteger los datos confidenciales e impedir el acceso no autorizado a las máquinas, es esencial adoptar medidas de seguridad estrictas. Al acceder a una HMI basada en web, la comunicación entre el dispositivo del usuario y el servidor de la HMI se produce a través de una conexión de red, lo que puede introducir vulnerabilidades potenciales si no se protege adecuadamente:

Cifrado y autenticación del servidor

El empleo de protocolos de cifrado potentes, como TLS, garantiza que la comunicación entre el dispositivo del usuario y el servidor HMI esté cifrada y autenticada por el servidor. Este cifrado impide que personas no autorizadas intercepten la información confidencial transmitida entre los dos extremos y accedan a ella. Y la autenticación del servidor verifica que el dispositivo del usuario se está conectando al servidor previsto, lo que reduce el riesgo de conectarse a un servidor fraudulento o malicioso.

Autenticación de usuarios y control de acceso

Estos protocolos también deben implementar mecanismos sólidos de autenticación de usuarios, como combinaciones de nombre de usuario y contraseña o autenticación multifactor. Esto garantiza que sólo los usuarios autorizados puedan acceder a la HMI y realizar operaciones o ver datos confidenciales. Además, la adición de controles de acceso detallados ayudará a restringir los privilegios y derechos de acceso de los usuarios dentro de la HMI. Se pueden definir diferentes roles de usuario con permisos específicos, lo que garantiza que cada usuario sólo pueda realizar acciones autorizadas y acceder a la información relevante.

Cortafuegos y sistemas de detección de intrusos

El despliegue de cortafuegos y sistemas IDS a nivel de red puede proporcionar una capa adicional de defensa. Los cortafuegos ayudan a filtrar el tráfico de red entrante y saliente, mientras que los sistemas IDS supervisan la actividad de la red en busca de comportamientos sospechosos, alertando rápidamente a los administradores de posibles amenazas a la seguridad.

Segmentación de la red

La segmentación de la red puede aislar la HMI de otros recursos de la red, limitando así los posibles vectores de ataque. Al segregar la red y emplear controles de acceso adecuados, se puede minimizar el impacto de una brecha de seguridad.

Actualizaciones y parches periódicos

Mantener el software de HMI y la infraestructura de servidor subyacente al día con los últimos parches de seguridad es crucial. La actualización periódica del sistema ayuda a abordar cualquier vulnerabilidad conocida y garantiza que las medidas de seguridad sigan siendo eficaces frente a las amenazas cambiantes.

Uso de redes privadas virtuales

Uso de redes privadas virtuales

Cuando te conectas a una interfaz hombre-máquina (HMI) basada en web, hay varios métodos disponibles para garantizar una comunicación segura y eficiente. Estos métodos incluyen el alojamiento de la aplicación web directamente en la propia máquina, el uso de redes privadas virtuales (VPN) para conexiones seguras, el empleo de proxies inversos para mejorar la seguridad, el alojamiento únicamente de un servidor REST API para interacciones ligeras o el uso de un servidor de alojamiento para recopilar y gestionar datos. Cada enfoque ofrece ventajas únicas en términos de velocidad, seguridad y facilidad de despliegue.

Alojamiento directo de la aplicación web en la máquina

Para las HMIs virtuales que requieren una rápida recopilación de datos y garantizan la interacción en tiempo real, un enfoque viable es alojar la aplicación web directamente en la propia máquina. Al alojar la aplicación web en la máquina, los datos pueden recopilarse rápidamente y procesarse localmente, minimizando la latencia y la dependencia de redes externas o servicios de alojamiento. Pero para acceder a ella a distancia, es esencial asegurar las conexiones con el servidor. Si la aplicación web no admite directamente conexiones seguras, necesitarás otras formas de protegerla:

Uso de redes privadas virtuales
Uso de redes privadas virtuales

Mediante el uso de la tecnología VPN, los usuarios pueden establecer conexiones seguras directamente con el servidor que aloja la HMI. Las VPN crean una conexión de red privada a través de una red pública, como Internet, garantizando que la comunicación entre el dispositivo del usuario y el servidor web permanezca segura y protegida de posibles escuchas o interceptaciones. Protocolos como Wireguard u OpenVPN admiten métodos de cifrado potentes y control de acceso de usuarios. Ten en cuenta que con este método se recomienda utilizar otra capa de seguridad, como TLS, para la comunicación entre el servidor VPN y el servidor HMI.

Utilizar proxies inversos
Utilizar proxies inversos

Siguiendo la misma idea de las VPN, los proxies inversos actúan como intermediarios entre los usuarios y el servidor que aloja la IHM. Reciben las peticiones de los usuarios, realizan comprobaciones de seguridad y las reenvían al servidor. Esto ayuda a proteger el servidor HMI ocultando su identidad y filtrando el tráfico potencialmente malicioso. Los proxies inversos pueden ofrecer funciones de seguridad adicionales, como la terminación TLS y el control de acceso de usuarios.

Alojar sólo un servidor API REST en la máquina

Si necesitas que el servidor HMI sea ligero, en lugar de servir una aplicación web completa puedes implementar una API REST en él. A continuación, una interfaz web (local o alojada en otro lugar) puede acceder a la API REST para comunicarse con la máquina, lo que permite enviar comandos, recuperar datos y supervisar el estado de la máquina. Si vas a utilizar este método, ten en cuenta que para proteger la API REST, tendrás que configurar métodos como la autenticación JWT y el cifrado TLS. Puedes implementar esto manualmente (con librerías), o también puedes usar los métodos que mencionamos antes, como VPNs y proxies inversos.

Utilizar un servidor de alojamiento para recopilar datos

Otra opción que permite un servidor HMI ligero es que el HMI virtual recopile y procese datos de máquinas o sistemas y los transmita de forma segura a un servicio de alojamiento designado. El servicio de alojamiento actúa como repositorio central, almacenando y gestionando los datos recopilados. Mediante un protocolo de acceso bien definido, las IHM virtuales pueden recuperar los datos almacenados en el servicio de alojamiento según sea necesario. Este método tiene la ventaja de que no es necesario configurar el servidor de HMI, las VPN o los proxies inversos, ya que el proveedor de alojamiento proporcionará métodos seguros.

Es importante señalar que todos los enfoques analizados en esta entrada de blog pueden disponer de la interfaz de aplicación HMI en el propio servidor o instalada localmente en el dispositivo utilizado para mostrar la HMI virtual. Esta flexibilidad permite a los usuarios elegir la configuración más adecuada en función de sus necesidades y preferencias específicas.

Posibles implementaciones con PLC de Industrial Shields

Familia M-Duino

Los dispositivos M-Duino de Industrial Shields ofrecen diversas capacidades para manejar una amplia gama de cargas de trabajo, incluidas las aplicaciones web. Aunque puede haber ciertas consideraciones a tener en cuenta, como las limitaciones de recursos y los requisitos de seguridad, estos dispositivos pueden alojar eficazmente aplicaciones web ligeras dentro de sus capacidades.

Cuando se trata de alojar aplicaciones web, es importante evaluar las necesidades y limitaciones específicas del proyecto. Para aplicaciones que estén dentro de las limitaciones de recursos del dispositivo y no requieran conexiones seguras, el M-Duino puede alojar directamente la aplicación web.

M-Duino PLC

Sin embargo, para aplicaciones que requieren conexiones seguras, se recomienda implementar un enfoque de API REST. Mediante el uso de un proxy inverso o VPN, se puede garantizar un acceso seguro. Este enfoque permite una comunicación segura entre el dispositivo M-Duino y los servidores o clientes externos.

En situaciones en las que se utiliza un servicio de alojamiento, es posible establecer una conexión segura entre el dispositivo M-Duino y el servidor de alojamiento a través de un intermediario, como un proxy inverso. Esta configuración permite una comunicación segura y garantiza que la conexión permanezca protegida.

Por esta razón, no recomendamos M-Duino para conexiones seguras a través de Ethernet, ya que la familia de productos ESP32 PLC y Raspberry PLC permiten esta funcionalidad sin necesidad de un intermediario externo.

En definitiva, los dispositivos M-Duino ofrecen flexibilidad a la hora de alojar aplicaciones web y, dados los requisitos específicos del proyecto, pueden aplicarse los enfoques adecuados para alcanzar los objetivos deseados.

Know more >>

Familia ESP32

ESP32 PLC

En contraste con las limitaciones de los dispositivos M-Duino, los dispositivos ESP32 ofrecen un sólido soporte para conexiones seguras. Con aceleradores de hardware dedicados y el uso de BearSSL (una implementación segura de SSL/TLS diseñada específicamente para dispositivos integrados), estos dispositivos pueden gestionar fácilmente conexiones seguras.

Esta flexibilidad permite a los dispositivos ESP32 utilizar todos los métodos anteriores para implementar HMI basadas en web. Ya se trate de alojar la aplicación web directamente en el dispositivo o de implementar una API REST, los dispositivos ESP32 pueden gestionarla de forma más eficiente que los M-Duinos. Además, la conexión a un servicio de alojamiento puede realizarse sin necesidad de un intermediario.

Esta versatilidad y las funciones de seguridad integradas de los dispositivos ESP32 los hacen muy adecuados para una gran variedad de aplicaciones HMI virtuales. Tanto si decide alojar la aplicación web como implementar una API REST, o incluso utilizar un servicio de alojamiento, los dispositivos ESP32 proporcionan una base fiable y segura para HMI basada en web sin necesidad de capas adicionales de complejidad.


Know more >>

 

Familia Raspberry Pi

Por último, la familia Raspberry Pi es similar al ESP32 en que también pueden soportar conexiones seguras y proporcionar características de seguridad robustas. Puede utilizar cualquier otra implementación TLS siempre que sea compatible con el ecosistema Linux-ARM. Además, va un paso más allá al ofrecer la posibilidad de alojar VPN y actuar como proxy inverso (por ejemplo, para hacer de puente entre Internet y los PLC M-Duino).

El PLC Raspberry Pi puede alojar aplicaciones web complejas directamente en el dispositivo (con capacidades adicionales como la renderización del lado del servidor) o implementar una API REST más amplia. Y, por supuesto, también puede soportar cualquier tipo de comunicación para conectarse a un servidor de alojamiento y recopilar datos.

Raspberry Pi PLC

Buscar en nuestro blog

Introducción a las Interfaces Hombre-Máquina virtuales
Boot & Work Corp. S.L., Joan Vilardaga Castro 14 de junio de 2023
Compartir

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Industrial PLC comparison >>>