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?
Contenido
¿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 enlaces básicamente son estos:
MQTT cifrada (S7-1500)
MQTT sin cifrar (S7-1500, S7-1200, S7-300)
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.
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
28 Comentarios
Hola. Por favor podría explicar cómo leer los datos de un s1238 energy meter?
Gracias Att.
Marco Viteri
[email protected]
Lo siento, pero no tengo experiencia con este equipo
Excelente video, como siempre a la vanguardia.
Gracias por tu tiempo.
Saludos
Hola Iñigo, voy con una pregunta cortita y al pie, como se suele decir: ¿Qué opinión tienes de los sensores IO-Link y como de factible ves su implementación en la industria?
Un saludo!
De momento no los estamos implantando así que no sabria decirte. Por lo que he visto, donde más utilidad le veo es en las señales analógicas.
Se irá metiendo poco a poco, entiendo.
Pero no tengo más que una opinión como puede ser la tuya, vamos.
Aún no los hemos probado. Tienen buena pinta especialmente en señales analógicas.
buenos días Iñigo voy siguiendo tus cursos, últimamente lo deje un poco estancando ya que estoy liado con un máster ademas de industria 4.0, pero donde veo todo de forma mas genérica, te quería hacer una consulta a través del protocolo MQTT con un s7-1200 y la pasarela IOT2040 se pueden subir datos como hemos visto atraves de mosquitto y node red para visualizarlos, estos datos por este protocolo los podría subir también a la nube a una plataforma tipo AWS (amazon web server) o Azure microsoft.
un saludo
Javi
Si, de hecho hice pruebas a subir los datos a aws y sin problemas por Mqtt. El tema es que dominar aws es como una carrera de varios años porque madre mía la cantidad de aplicaciones que tiene.
Yo lo subí a una BD (Dynamo Db creo recordar).
buenos días de nuevo Iñigo.
una nueva consulta, siempre para poder estraer los datos del PLC S71200 por el protocolo Mqtt necesito tener la pasarela IOT 2040, o se puede realizar de alguna otra forma sin tener que tener esta pasarela.
un saludo
Javi
No no, los elementos que uses pueden ser cualquiera que soporte mqtt. No es obligatorio que sean de Siemens, ni mucho menos
Cordial Saludo! Se ve muy interesante el contenido de su curso de Industria 4.0
Tengo dos Preguntas, un poco confusas:
para establecer comunicación TCP o Mqtt en el S71200, sin autenticación (servidor Mosquitto sin pasword ni contraseña), de todas manera se requiere configurar un certificado de autenticación en el Tia Portal?
Se entiende que el puerto remoto por defecto del Mosquitto es el 1883 (se configura mqttPort = 1883). El puerto local que muchas veces es 2000, es el mismo puerto : «Local~PROFINET_interface_1~Port_1»?
Gracias,
No, si es todo abierto, no hace falta certificados. El puerto, pues es solamente el puerto por el que quieres salir, nada mas. La constante Local~Interfaz_PROFINET_1~Puerto_1 entiendo que hace refencia al puerto físico, no al puerto abierto por el que comunica. Si te fijas es de tipo Hw_Interface luego es una constante que hace referencia al hardware, no al puerto por el que comunicas.
Hola, ¿puede enviar la muestra mqtt como un correo electrónico?
Mi dispositivo plc es 1214c dc / dc / dc pero M10.x me muestra como FALSO.
Hola Iñigo nuevamente, como todas las veces es un placer oir tus explicaciones, he hecho ya varias cosas con tus guias, estaré apuntándome al curso de I4.0 cuando finalice los que tengo actualmente.
Ahora a la pregunta, mi CPU es 1214C xxxxx1AG31XXX por lo cual solo puede tener firm v3.0, por lo que creo según he investigado en la web queda fuera de la librería que necesita firm v4, crees posible que pueda hacerlo yo mismo creando los bloques? o estoy tirando opciones sobre algo que no puede realizarse? muchas gracias.
Efectivamente con versiones inferiores como la 3, no funciona. A partir de ahí, ya no sé que decirte. Entiendo que si se exige cierto nivel de firmware es porque por X razones no se puede hacer con fw inferiores.
Y suponiendo que se pudiera, vas a gastar más tiempo y dolores de cabeza, que cambiando la CPU por una más moderna.
Es algo que no te puedo ayudar, porque sinceramente a mi se me escapa.
Muy amable, muchas gracias
Envío de datos Arduino-MQTT-NodeRed-PLC estimado Iñigo quisiera pedirle ayuda en este tema, quisera contactarme con usted para hablar sobre este tema
Hola Diego, cualquier cuestión en el caso de que pueda ayudar, a través del formulario de contacto.
Saludos
usando plcsim advanced es posible hacer funcionar la librería de tia v16? Cambia un poco respecto a esta.
Pues no lo sé. ¿Has probado?
Hola, Iñigo!
Ante todo, sos un capo (asi decimos en argentia el que es un Crack) Me has salvado incontables veces con explicaciones super claras. Me gustaría saber si conoces alguna forma de aplicar esta funcionalidad de comunicación MQTT en version de tia V14 ya que las librerias sugeridas, son para V15 en adelante.
Gracias y abrazo.
No, si Siemens no lo ofrece, seguramente es porque no es posible.
hola, tengo un plc s7-300 pero al momento de de llamar la libreria, me sale error, segun el archivo tiene demasiado caracteres.
tienes alguna recomendación?
Pues si te dice que el hombre es demasiado largo… Prueba a poner uno más corto, no?
Saludos, disculpen tienen la librería del MQTT en la versión 16 del TIA Portal?
Puedes actualizar la de las versiones anteriores si en la web de Siemens no está la última.
Hola Iñigo. Primero que nada, agradecerte y felicitarte por este blog. Hace solo 2 meses que empecé con PLC, vengo del lado del Internet de las Cosas. Estoy en un proyecto de manejo secuencial de 20 bombas sumergibles, dependientes del valor analógico de llenado de una cisterna, con contabilización de horas de marcha por bomba y publicación en MQTT. Tus videos me resultaron muy didácticos, completos y me permitieron cumplir mis objetivos.
Mi pregunta puntual, ¿es posible suscribirse a MQTT? en este blog y con esta library parecería que solo es posible publicar. Pensaba la posibilidad de generar acciones en el SL1200, en función de datos que ya tengo en mi ecosistema de IoT.
Muchas gracias!
Saludos desde Argentina!
Sinceramente lo desconozco, ya que no lo he usado. Tendrás que googlear un poco para ver si puede funcionar como suscriptor. Si no, tendrás que poner un pequeño equipo que haga de suscriptor y luego de ahí al PLC.