Ir al contenido

Conceptos básicos de MQTT: publicación/suscripción, topics, QoS y seguridad

Conceptos básicos de MQTT

MQTT (Message Queuing Telemetry Transport) es el protocolo de mensajería estándar de OASIS para aplicaciones IoT e IIoT, construido sobre TCP/IP. Es ligero, funciona bien en redes poco fiables o con recursos limitados y desacopla los dispositivos que producen datos de los que los consumen; por eso es la forma habitual de llevar los datos de las máquinas a un SCADA, un historian o una plataforma en la nube.

Publicar y suscribirse

Un dispositivo es el publisher (publicador) y envía datos; cualquier dispositivo que los quiera es un subscriber (suscriptor). Los datos se envían a un topic elegido por el publicador, y un suscriptor solo recibe los topics a los que se ha suscrito. Publicadores y suscriptores nunca interactúan entre sí: un broker recibe todos los mensajes y los distribuye a los destinos correctos.

Diagrama MQTT: publicadores y suscriptores conectados a través de un broker

Figura de mqtt.org.

Topics

Los topics son cadenas jerárquicas separadas por barras, por ejemplo plant1/line2/pump3/pressure. Los suscriptores pueden usar comodines: + sustituye un nivel (plant1/+/pump3/pressure) y # sustituye todos los niveles inferiores (plant1/line2/#). Una convención de nombres coherente desde el principio (planta, área, máquina, magnitud) ahorra mucho trabajo cuando crece el número de dispositivos.

Calidad de servicio, mensajes retenidos y last will

  • QoS 0: como máximo una vez. El mensaje se envía una vez sin confirmación; es rápido, pero se puede perder.
  • QoS 1: al menos una vez. El mensaje se confirma y puede llegar duplicado.
  • QoS 2: exactamente una vez. La opción más segura y la más lenta.
  • Mensaje retenido: el broker guarda el último mensaje de un topic y lo entrega a cada nuevo suscriptor, de modo que un dashboard conoce el último estado en cuanto se conecta.
  • Last will: un mensaje que el broker publica si un cliente se desconecta de forma inesperada. Es la forma estándar de detectar que una máquina se ha quedado sin conexión.

Seguridad

MQTT por sí mismo no cifra nada. MQTTS añade TLS (Transport Layer Security) para el cifrado y la autenticación del broker, sin cambiar el funcionamiento del protocolo. En una instalación industrial, exige usuario y contraseña (o certificados de cliente) en el broker, limita lo que cada cliente puede publicar o a lo que puede suscribirse con listas de control de acceso y usa TLS siempre que el tráfico salga de la red de máquinas.

Dónde encaja MQTT

  • IIoT: monitorización y control de maquinaria y recogida de datos de sensores en plantas de fabricación y de proceso.
  • Agricultura: humedad del suelo, meteorología y control del riego.
  • Automatización de edificios y domótica: sistemas de iluminación, climatización y seguridad con poco ancho de banda.
  • Sanidad: monitorización remota que envía datos de los dispositivos a los proveedores sanitarios.

El broker

El broker gestiona los clientes y los datos de un entorno MQTT. Existen varios brokers, como HiveMQ, EMQX o Eclipse Mosquitto, y la elección depende del número de mensajes que haya que gestionar, de las funciones de seguridad y de los recursos disponibles. En este curso usamos Eclipse Mosquitto, un broker de código abierto lo bastante ligero como para ejecutarse en el propio PLC.

Consulta la gama de PLC en www.industrialshields.com.

Calificación
0 0

No hay comentarios por ahora.

para ser el primero en comentar.

1. Un dashboard que se conecta después de que la máquina haya publicado su estado debe mostrar igualmente el último estado. ¿Qué usas?
2. ¿Cómo detectas que una máquina se ha quedado sin conexión de forma inesperada?