Dentro del curso de IOT e Industria 4.0 hemos visto que el protocolo más usado es MQTT, por lo que ¿qué tal si mandamos mensajes MQTT con PLC Siemens en TIA Portal?
¿Qué es MQTT?
Una definición de andar por casa sería decir que MQTT no es mas que un protocolo de comunicaciones para los IOT.
Es tremendamente ligero y es de facto un estándar en el mundo IOT.
A grandes rasgos, hay tres actores en la comunicación:
- El publisher, que es quien envía el mensaje
- El broker, quien recibe el mensaje del publisher y lo reenvia al subscriber.
- El subscriber, quien recibe los mensajes de los temas a los que está suscrito.
Así, básicamente el mensaje tiene dos partes:
- El topic, o tema. Es un identificador que indica de qué se trata el mensaje enviado. Por ejemplo, podría ser "temperatura"
- El payload, que será el valor que se quiere transmitir, que digamos sea como ejemplo 21,3
La forma de trabaja es fácil.
El suscriber se suscribe al broker al tema "temperatura".
El publisher, enviará bajo el topic "temperatura" el valor de 21,3 al broker.
El broker, al recibir la información con ese topic, reenvía a todos los clientes que se hayan suscrito al tema en cuestión el mensaje recibido (en nuestro caso, el tema temperatura).
Espero que se haya entendido.
Como dice la propia documentación de Siemens, las características de MQTT son:
- Protocolo ligero con baja carga de transporte
- Requisito mínimo de ancho de banda de red gracias al mecanismo "push"
- Función para la reconexión después de una desconexión
- Reenvío de mensajes después de desconexión
- Mecanismo para la notificación a interlocutores interesados después de una desconexión imprevista de un client
- Uso y realización sencillos gracias a un juego pequeño de instrucciones
- Quality of Service (nivel QoS) con diferentes niveles de fiabilidad para el suministro del mensaje
- Encriptación opcional de los mensajes a través de SSL/TLS
- Autenticación de los editores y suscriptores a través de un nombre de usuario y contraseña
A lo largo del curso estamos viendo diferentes pasarelas, desde los IOT2040 de Siemens, o como comunicar un Arduino con los PLC de Siemens, pero ¿podemos enviar mensajes MQTT directamente desde un PLC de Siemens?
La respuesta es Sí.
Hay dos formas de hacerlo, usando certificados o sin certificar para la serie S7-1500.
En el caso de los S7-1200 y S7-300 solo es posible darle autentificación.
Mi recomendación es que comiences sin nada: sin cifrar, sin usuario y contraseña, y vayas subiendo el nivel hasta darle toda la seguridad que necesites.
El ejemplo que yo he realizado, es una cosa intermedia. No está cifrada, pero sí he usado autentificación con usuario y contraseña ya que uso un S7-1200.
¿Cómo enviar mensajes MQTT en TIA Portal?
Lo primero que tienes que hacer es entrar en esta página de Siemens y descargarte la documentación, y las bibliotecas necesarias.
Los archivos que necesitas (disponibles en esa página de la documentación oficial de Siemens, ID 109748872) son estos:
MQTT cifrada (S7-1500)
- Biblioteca (S7-1500, MQTT cifrada)
- Documentación (S7-1500, MQTT cifrada)
MQTT sin cifrar (S7-1500, S7-1200, S7-300)
- Biblioteca S7-1200 y S7-1500 (MQTT sin cifrar)
- Biblioteca S7-300 (MQTT sin cifrar)
- Documentación (S7-1500/1200/300, MQTT sin cifrar)
Luego, necesitarás configurar la comunicación TCP propiamente y los parámetros propios del MQTT según la documentación.
Ejemplo de enviar mensajes MQTT en TIA Portal con un S7-1200
Como otras veces, es más fácil verlo en funcionamiento, que contarlo por escrito, así que... ¡¡dentro video!!
Como ves, no es muy complicado de realizar.
Como ves, he usado el broker mosquitto que viene montado en el IOT2040. Por defecto, viene sin usuario y contraseña, si bien en el curso de Industria 4.0 vemos cómo se puede realizar la autentificación con usuario y contraseña.
Una vez seas capaz de realizar el envio/recepción mediante MQTT con sin autentificación, en el caso de la serie S7-1500 podrás realizar una autentificación con TLS.
¿Qué te ha parecido?
Como vemos en el en el curso de Industria 4.0 , hay otras formas de leer los datos del PLC desde el IOT2040, pero ahí queda como una alternativa más.
El objetivo solamente es que vieras que los PLC pueden trabajar como Publisher MQTT, que no está nada mal.
En el curso estamos viendo muchos más temas, y aprovecho para si estás realizando el curso de Industria 4.0, me des en los comentarios un poco de feedback de qué te está pareciendo hasta ahora.
Por último, este ejemplo lógicamente lo dejaré en el anexo del curso, como en otras ocasiones.




