• Skip to primary navigation
  • Skip to main content

ProgramaciónSiemens

Cursos online de automatización industrial con PLC Siemens

  • Cursos
  • Mi cuenta
    • Mi cuenta
    • Blog
    • Foros
    • Curso HMI con Python y Qt-Designer
    • Curso de AWL
    • Curso de iniciación a la Industria 4.0
    • Curso Express de TIA Portal
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso ViSnap7
    • Curso de TIA Portal para CPU 1200
    • Curso de Step 7 V5.x
    • Curso de comunicaciones IE y Profinet
  • Contacto & Faq

Cómo enviar mensajes MQTT en TIA Portal

Cómo enviar mensajes MQTT en TIA Portal

por Iñigo Gútiez · 28 Comments

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 en TIA Portal?

Contenido

  • 1 ¿Qué es MQTT?
  • 2 ¿Cómo enviar mensajes MQTT en TIA Portal?
    • 2.1 Ejemplo de enviar mensajes MQTT en TIA Portal con un S7-1200
  • 3 ¿Qué te ha parecido?

¿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)

  • Biblioteca
  • Documentación

MQTT sin cifrar (S7-1500, S7-1200, S7-300)

  • Biblioteca S7-1200 y S7-1500
  • Biblioteca S7-300
  • Documentación

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.

 

 

Iñigo Gútiez
Iñigo Gútiez

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.

Filed Under: blog

Reader Interactions

    Deja un comentario Cancelar

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    28 Comentarios

  1. Marco Viteri says

    16 abril, 2019 at 13:16

    Hola. Por favor podría explicar cómo leer los datos de un s1238 energy meter?
    Gracias Att.
    Marco Viteri
    mviterib@gmail.com

    Responder
    • Iñigo Gútiez says

      16 abril, 2019 at 13:20

      Lo siento, pero no tengo experiencia con este equipo

      Responder
  2. Hector says

    16 abril, 2019 at 19:11

    Excelente video, como siempre a la vanguardia.
    Gracias por tu tiempo.
    Saludos

    Responder
  3. Adrian Alvarez says

    22 abril, 2019 at 17:11

    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!

    Responder
    • Iñigo Gútiez says

      22 abril, 2019 at 17:50

      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.

      Responder
    • Iñigo Gútiez says

      18 junio, 2019 at 11:23

      Aún no los hemos probado. Tienen buena pinta especialmente en señales analógicas.

      Responder
  4. Javi says

    18 junio, 2019 at 11:15

    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

    Responder
    • Iñigo Gútiez says

      18 junio, 2019 at 11:22

      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).

      Responder
      • Javi says

        19 junio, 2019 at 14:26

        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

        Responder
        • Iñigo Gútiez says

          19 junio, 2019 at 14:32

          No no, los elementos que uses pueden ser cualquiera que soporte mqtt. No es obligatorio que sean de Siemens, ni mucho menos

          Responder
  5. Rodrigo Fernando Obregon Romero says

    2 diciembre, 2019 at 13:43

    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,

    Responder
    • Iñigo Gútiez says

      2 diciembre, 2019 at 19:47

      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.

      Responder
  6. 5361112214 says

    17 marzo, 2020 at 21:05

    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.

    Responder
  7. Adrian Iskow says

    11 mayo, 2020 at 0:56

    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.

    Responder
    • Iñigo Gútiez says

      11 mayo, 2020 at 1:01

      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.

      Responder
      • Adrian Iskow says

        11 mayo, 2020 at 1:11

        Muy amable, muchas gracias

        Responder
  8. DIEGO HERNANDO HIDALGO LLUMIQUINGA says

    3 junio, 2020 at 4:25

    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

    Responder
    • Iñigo Gútiez says

      3 junio, 2020 at 12:19

      Hola Diego, cualquier cuestión en el caso de que pueda ayudar, a través del formulario de contacto.
      Saludos

      Responder
  9. Guillermo Sepulveda says

    4 abril, 2021 at 0:51

    usando plcsim advanced es posible hacer funcionar la librería de tia v16? Cambia un poco respecto a esta.

    Responder
    • Iñigo Gútiez says

      6 abril, 2021 at 19:57

      Pues no lo sé. ¿Has probado?

      Responder
  10. Santiago Marinovich says

    29 abril, 2021 at 18:28

    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.

    Responder
    • Iñigo Gútiez says

      1 mayo, 2021 at 22:26

      No, si Siemens no lo ofrece, seguramente es porque no es posible.

      Responder
  11. Carlos Antonio Leon Arias says

    19 junio, 2021 at 19:48

    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?

    Responder
    • Iñigo Gútiez says

      19 junio, 2021 at 20:02

      Pues si te dice que el hombre es demasiado largo… Prueba a poner uno más corto, no?

      Responder
  12. Carlos Enrique says

    20 julio, 2021 at 17:00

    Saludos, disculpen tienen la librería del MQTT en la versión 16 del TIA Portal?

    Responder
    • Iñigo Gútiez says

      21 julio, 2021 at 22:28

      Puedes actualizar la de las versiones anteriores si en la web de Siemens no está la última.

      Responder
  13. Ing. Leonardo Depetris says

    30 noviembre, 2022 at 14:50

    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!

    Responder
    • Iñigo Gútiez says

      30 noviembre, 2022 at 18:06

      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.

      Responder
  • Aviso Legal y Política de Privacidad
  • Condiciones de Venta
  • Política de cookies
  • Contacto & Faq
  • Blog

Copyright © 2023 · Programación Siemens · Todos los derechos reservados

· ¿Quién soy? · Misión, Visión y valores