PLC32 CONTROL

Blog

Configuración de Broker MQTT (Mosquitto) en servidor. Parte II

Comunicación de un PLC con el bróker MQTT

Para enviar datos desde un PLC a un gestor de datos como por ejemplo Node-RED, estos deben ser publicados por el PLC y suscritos por Node-RED, pero en todos los casos deben pasar por el broker MQTT (Mosquitto), que debe estar escuchando las conexiones entrantes desde la red local.
Para ello realizaremos las siguientes comprobaciones:

Comprobaremos el punto 4 de la primera parte de MQTT donde se explicaba
como realizar la prueba básica de funcionamiento

Esta configuración hace que Mosquitto escuche conexiones desde cualquier equipo de la red local, pero solo permitirá el acceso a aquellos que se autentiquen correctamente. Además, el uso de ACL limita qué temas puede publicar o leer cada usuario. Para evitar accesos desde fuera de la red, el firewall (ufw) bloqueará el puerto 1883 para direcciones externas.

En la terminal del servidor teclearemos lo siguiente:

sudo ss -tulnp | grep 1883

y esperaremos algo como esto: LISTEN 0 128 0.0.0.0:1883...

Si no aparece lo anterior, significará que Mosquitto solo acepta conexiones locales desde el propio servidor, y por tanto no acepta conexiones desde otra IP (como por ejemplo un PLC). La solución a esto es preparar un archivo de configuración para que Mosquitto escuche en todos los equipos que se encuentren en la misma red que el servidor, sin exponer el puerto 1883 (el de MQTT) de manera insegura.

sudo nano /etc/mosquitto/conf.d/seguridad.conf

en el archivo generado hay que copiar lo siguiente:

Esto hará que nos pida un usuario y contraseña que añadiremos en el código de programación del PLC.

Como el archivo etc/mosquitto/passwd seguramente no existirá, lo que tendremos que hacer es crearlo de la siguiente manera:

sudo mosquitto_passwd -c /etc/mosquitto/passwd usuario1 
(En usuario1 poner el usuario del PLC, por ejemplo plc21)

Por supuesto también habrá que crear el archivo /etc/mosquitto/acl con:

sudo nano /etc/mosquitto/acl

y añadir en el contenido del archivo:

En la terminal del servidor teclearemos las siguientes instrucciones para comprobar que los archivos de contraseñas y ACL ya existen:

ls -l /etc/mosquitto/passwd
ls -l /etc/mosquitto/acl

Asignaremos los permisos correctos

sudo chown mosquitto: /etc/mosquitto/passwd /etc/mosquitto/acl
sudo chmod 600 /etc/mosquitto/passwd /etc/mosquitto/acl

Y reiniciaremos Mosquitto, verificando su estatus

sudo systemctl restart mosquitto
sudo systemctl status mosquitto

Una vez configurado, el usuario y contraseña que hemos introducido (en
nuestro caso tanto usuario como contraseña se llaman “plc21”), se introducirán
en el programa del PLC y en Node-RED.

Primera consulta sin compromiso.

Cuéntame qué equipo tienes y qué quieres controlar o medir.

Contactar Escribir por WhatsApp