Loading
FT Optix | FT Vault | FT Hub | Logix

Intercambio de datos MQTT: tiempo real y datos históricos

Revisión: A (11/10/2022) - Tiempo de Implementación: 60 minutos | Detalle del uso de MQTT para el intercambio eficiente de datos en tiempo real e históricos, así como la visualización entre aplicaciones.
Una mujer sentada en un escritorio frente a una computadora, escribiendo en el teclado
En esta página:
  • Visión general
  • Guía de instalación
Innovation Center Home Page

¿Para qué es esto?

Demo MQTT es un ejemplo que consta de dos proyectos: Aplicación de campo y Aplicación de agregador de datos. El objetivo de esta demostración es simplemente mostrar un ejemplo de comunicación a través del protocolo MQTT entre una aplicación hipotética que se ejecuta en una máquina/planta (Field Application) y una aplicación que recopila los datos enviados por la máquina, mostrándolos en forma de panel de control (Data Aggregator Application). Normalmente, se haría solo con la visualización de datos históricos (cold data) pero en este proyecto, también hemos querido mostrar un ejemplo de recepción de datos en vivo.

Utilice MQTT para la visualización de datos en tiempo real y la comunicación entre aplicaciones, haciendo hincapié en la seguridad y la implementación práctica utilizando FT Optix.

Características generales

MQTT para la comunicación en tiempo real entre aplicaciones de campo y agregadores de datos, con un enfoque en la configuración práctica y la seguridad. 


Limitaciones / desventajas

El ejemplo se proporciona tal cual y puede ser una referencia útil para construir tu aplicación. El ejemplo tal como está no se puede usar en una máquina real, sino que debe adaptarse para el propósito, respetando los más altos estándares de seguridad requeridos. Se utiliza un broker MQTT público y de código abierto en el proyecto únicamente con fines de demostración; no está asegurado y no se puede garantizar su tiempo de actividad. Te recomendamos encarecidamente cambiar los nombres de los temas y del servidor utilizando tu proveedor antes de implementar la aplicación final.


¿Cómo puedo hacer que funcione?

Para configurar la aplicación de campo y/o para resolver problemas de compilación/referencias perdidas, lea la documentación MQTT_Field.

Para tener en cuenta:

Esta aplicación funciona emparejada con la aplicación de campo, mostrando los datos recibidos a través del protocolo MQTT en forma de panel de control. Esta aplicación la puedes encontrar en el Centro de Innovación, bajo el siguiente título: Implementación y visualización de datos en tiempo real con MQTT en Optix.

Step 1 - screenshot

Descargas

Tenga en cuenta: deberá aceptar los Términos y Condiciones para cada descarga.

Archivo descargable ›
Términos y condiciones Aceptación. ROCKWELL AUTOMATION PROPORCIONARÁ ACCESO A LOS PRODUCTOS DE ROCKWELL (BUENAS PRÁCTICAS, APLICACIONES Y CONOCIMIENTOS) CON LA CONDICIÓN DE QUE USTED ACEPTE Y CUMPLA LOS SIGUIENTES TÉRMINOS Y CONDICIONES. USTED ACEPTA ESTAR OBLIGADO POR LOS TÉRMINOS DE ESTE ACUERDO DESCARGANDO, INSTALANDO, COPIANDO O UTILIZANDO PRODUCTOS. SI ACEPTA ESTOS TÉRMINOS EN NOMBRE DE OTRA PERSONA, EMPRESA U OTRA ENTIDAD LEGAL, USTED REPRESENTA Y GARANTIZA QUE TIENE AUTORIDAD COMPLETA PARA OBLIGAR A ESA PERSONA, EMPRESA O ENTIDAD LEGAL A ESTOS TÉRMINOS. SI NO ACEPTA ESTOS TÉRMINOS, NO DESCARGUE, INSTALE, COPIE, ACCEDA NI UTILICE EL SOFTWARE Y/O LOS PRODUCTOS Y SERVICIOS EN LA NUBE. 1. Rockwell Automation conserva la propiedad intelectual de todos los Productos y la documentación relacionada. No se otorgan derechos ni licencias distintos de los establecidos en este Acuerdo. La Empresa otorga a Rockwell Automation una licencia no exclusiva, mundial, libre de regalías, perpetua y no revocable para utilizar cualquier comentario que la Empresa proporcione con respecto a los Productos, incluso si la Empresa ha designado los comentarios como confidenciales. Rockwell Automation tendrá derecho a utilizar los comentarios sin restricción ni compensación para la Empresa. 2. La empresa no puede subarrendar, ceder, otorgar licencias, sublicenciar o transferir de otro modo ninguno de los Productos sin el consentimiento previo por escrito de Rockwell Automation. La empresa no puede asignar ni transferir de ninguna manera los derechos de acceso a los Productos sin el consentimiento previo por escrito de Rockwell Automation. Se prohíbe cualquier ensamblaje inverso, ingeniería inversa, des compilación y creación de trabajos derivados basados en los Productos por parte de la Empresa. 3. La Empresa reconoce que los Productos proporcionados en virtud de este Acuerdo son Información confidencial de Rockwell Automation y están protegidos por derechos de autor, patentes, marcas registradas y/o secretos comerciales vigentes o pendientes de Rockwell Automation, y la Empresa acepta mantener la confidencialidad al no divulgar los Productos o la documentación a terceros sin el consentimiento previo por escrito de Rockwell Automation y para proteger la confidencialidad de los Productos como lo haría con la información confidencial de ella misma. La Empresa acepta que su obligación de confidencialidad en virtud de este párrafo sobrevivirá a la expiración o terminación de este Acuerdo. 4. La Empresa acepta que los Productos provistos bajo este Acuerdo son modelos y ejemplos y su aplicación y resultados pueden variar dependiendo de las condiciones de cada cliente y proyecto. Rockwell Automation no garantiza los mismos resultados en cada caso. Este Acuerdo no se interpretará de ninguna manera como un compromiso por parte de Rockwell Automation en ningún momento para fabricar y/u ofrecer Productos para la venta. No existe un acuerdo a nivel de servicio explícito o implícito asociado con el uso de los Productos. Rockwell Automation no garantiza que las funciones contenidas en los Productos cumplan con los requisitos de la Empresa. La Empresa acepta usar todos los Productos solo de acuerdo con las instrucciones y solo para los usos previstos identificados en la documentación. 5. EXCLUSIÓN DE GARANTÍAS Y LIMITACIÓN DE RESPONSABILIDAD. LOS PRODUCTOS SE PROPORCIONAN "TAL CUAL". ROCKWELL AUTOMATION RENUNCIA A TODAS LAS GARANTÍAS, EXPLÍCITAS, IMPLÍCITAS O LEGALES, INCLUYENDO SIN LIMITACIÓN CUALQUIER GARANTÍA DE COMERCIABILIDAD O IDONEIDAD PARA UN PROPÓSITO EN PARTICULAR. ROCKWELL AUTOMATION NIEGA EXPLÍCITAMENTE TODAS LAS GARANTÍAS DE NO INFRACCIÓN Y NO GARANTIZA EXPRESAMENTE QUE LOS PRODUCTOS, EN SU TOTALIDAD O EN PARTE, ESTARÁN LIBRES DE ERRORES O VULNERABILIDADES DE SEGURIDAD. EN NINGÚN CASO, ROCKWELL AUTOMATION SERÁ RESPONSABLE DE (i) LA PÉRDIDA DE BENEFICIOS, LA PÉRDIDA DE AHORROS, EL TIEMPO DE INACTIVIDAD, LOS DAÑOS ESPECIALES, INDIRECTOS O CONSECUENTES DE CUALQUIER TIPO, O (ii) CUALQUIER LESIÓN PERSONAL, DAÑO A LA PROPIEDAD O DAÑO AL MEDIO AMBIENTE QUE SURJA DE O EN RELACIÓN CON ESTE ACUERDO, YA SEA EN UNA ACCIÓN CONTRACTUAL, DE RESPONSABILIDAD ESTRICTA O DE AGRAVIO, INCLUYENDO NEGLIGENCIA. 6. LA EMPRESA ACUERDA INDEMNIZAR Y EXIMIR A ROCKWELL AUTOMATION DE TODOS LOS COSTOS, PREMIOS, DAÑOS, GASTOS Y HONORARIOS (INCLUIDOS LOS HONORARIOS DE LOS ABOGADOS) RESULTANTES O RELACIONADOS CON CUALQUIER RECLAMACIÓN DE TERCEROS (INCLUYENDO EMPLEADOS Y AGENTES DE LA EMPRESA) CONTRA ROCKWELL AUTOMATION, SUS DISTRIBUIDORES, AGENTES, FUNCIONARIOS, DIRECTORES O EMPLEADOS POR LESIONES PERSONALES (INCLUYENDO LA MUERTE), DAÑOS A LA PROPIEDAD O DAÑOS AMBIENTALES RELACIONADOS O RESULTANTES DEL USO DE LOS PRODUCTOS. 7. En caso de que se exporte un Producto, la Empresa acepta cumplir con todas las Leyes y Reglamentos de Control de Exportaciones de los Estados Unidos aplicables, y las leyes de control de exportaciones aplicables de otros países. Este Acuerdo se regirá por las leyes del estado de Wisconsin. Este Acuerdo es el Acuerdo completo y exclusivo entre Rockwell Automation y la Empresa, y reemplaza todos los acuerdos anteriores, ya sean escritos u orales, relacionados con estos Productos.

¿Necesita ayuda?

Si necesita ayuda con alguna aplicación o tiene comentarios acerca del Innovation Center, por favor contáctenos.

Guía de implementación

Paso 1

Iniciar la aplicación de campo.

Paso 2:

Después de eso, abra este proyecto en otra ventana de FT Optix y ejecute la aplicación con FT Optix Emulator.

Step 2 - screenshot
Step 2 - screenshot

Paso 3:

Si la conexión con la aplicación de campo está funcionando, el LED "Live Data" será verde.

Step 3 - screenshot
Step 3 - screenshot

Informaciones detalladas

El intercambio de datos se basa en un Runtime Netlogic que se puede encontrar en la carpeta Netlogic. Netlogic MQTTBrokerLogic está presente en ambas aplicaciones, pero está configurado de manera diferente.

Step 4 - screenshot
Step 4 - screenshot

Aplicación de campo

Aquí el Runtime Netlogic actúa como Publisher, de esta manera publica datos sobre ciertos temas, dirigidos a un broker MQTT.

Step 5 - screenshot
Step 5 - screenshot

Aplicación de agregador de datos

Aquí el Runtime Netlogic funciona como Subscriber: suscribiéndose a los temas sobre los que publica la Aplicación de Campo, muestra todos los datos en forma de tablero.

Step 6 - screenshot
Step 6 - screenshot

MQTT BrokerLogic

Servidor MQTT

Debe activarse (TRUE) solo si desea utilizar su aplicación Uniqo como Broker (por lo tanto, no usar un broker MQTT existente, en este ejemplo test.mosquitto.org).

Parámetros:

  • IPAddress: dirección IP donde se creará la instancia del Broker
  • Port: número del puerto en el que el broker está escuchando
  • UseSSL: permite el uso de certificados
  • Certificate
  • CertificatePassword (Contraseña de certificado)
  • Inicio automático LEAVE TRUE
  • UserAuthentication: si es true, solo los usuarios especificados pueden acceder
  • AuthorizedUsers
  • IsRunning: Estado del servidor
  • IsDebuggingMode NO USADO
  • MaxNumberOfConnections: número máximo de clientes que pueden conectarse al Broker
  • NumberOfConnections: número de conexiones activas
Step 7 - screenshot
Step 7 - screenshot

Cliente MQTT

Debe estar siempre activo (TRUE) porque es la conexión con el Broker al que publicas o al que te suscribes. Si desea conectar dos aplicaciones, debe establecer el mismo agente y puerto en ambos proyectos. En su lugar, el parámetro ClientID debe ser diferente (único) en cada aplicación.

Parámetros:

  • IPAddress: la dirección del agente (test.mosquitto.org) puede ser externa como en este caso, o interna si la aplicación funciona como un agente (por ejemplo, MQTTBrokerLogic.MQTTServer.IPAddress)
  • Puerto: puerto de corredor (1883 para test.mosquitto.org)
  • UseSSL: Cambie a TRUE si el intermediario requiere certificados
    • CaCertificate
    • Certificado de cliente
    • ClientCertificatePassword
    • AllowUntrustedCertificates (Permitir certificados no confiables)

 

  • UserAuthentication: Cambie a TRUE si el intermediario requiere usuarios autorizados.
    • AuthorizedUsers: matriz de cadenas que contiene usuarios de Uniqo (User1; Usuario2; Usuario [...]);
  • IsRunning NO USADO
  • IsDebuggingMode NO USADO
  • ClientId: este es el ID único, diferente para cada aplicación que quiera participar en el uso compartido/intercambio de datos
  • Connected: estado de conexión con el broker
  • SentPackages STATS
  • Estadísticas de ReceivedPackages
Step 8 - screenshot
Step 8 - screenshot

Suscriptor

Debe estar activo (TRUE) si la aplicación necesita recibir datos publicados en el agente.

Parámetros:

  • LiveTags: TRUE = recibir DATOS EN VIVO
    • LiveTagsFolder: esta carpeta/nodo contiene una copia del parámetro LiveTagsFolder del editor, en el que Netlogic copiará los valores leídos del broker.
    • LiveTagsTopic: en este parámetro se debe especificar el tema en el que está suscrito y desea recibir valores de variables/etiquetas en vivo.
    • LastPackageTimestamp: Marca de tiempo del último paquete publicado.

 

  • StoreTables: TRUE = recibir DATOS HISTÓRICOS
    • Store: DataStore en el que guardamos los datos recibidos. Se debe cambiar el nombre de las tablas del almacén con el parámetro "TablesPrefix", además del nombre de las tablas de la aplicación del editor. A continuación se muestra un ejemplo:
      • Nombres de tabla de DataStore de la aplicación Publisher: Datalogger, AlarmsEventLogger
      • Parámetro "TablesPrefix" del editor: Station1
      • Nombres de tabla de DataStore de la aplicación de suscriptor: Station1_DataLogger, Station1_EventLogger Compruebe que tiene las mismas columnas que tiene en la aplicación Publisher
    • StoreTablesTopic: en este parámetro debe especificarse el tema en el que está suscrito y desea recibir valores históricos de variables/etiquetas.

 

  • CustomPayload: Mensaje personalizado sin formato predefinido
    • CustomPayloadMessage: mensaje de texto personalizado de CustomPayloadTopic
    • CustomPayloadTopic: En este parámetro debe especificarse el tema en el que está suscrito y desea recibir mensajes personalizados.
Step 9 - screenshot
Step 9 - screenshot

Editor

Debe estar activo (TRUE) si la aplicación necesita publicar datos en el agente.

Parámetros:

  • LiveTags: TRUE = publicar DATOS EN VIVO
    • LiveTagsPeriod: Frecuencia de envío (si 0000:00:00.000 envía datos sobre el cambio de valor).
    • LiveTagsFolder: carpeta (o nodo) que contiene los datos que se van a enviar
    • LiveTagsTopic: /UniqoFieldHmiLiveTopic es el tema sobre el que estamos enviando/publicando datos
    • QoS: Calidad de servicio MQTT (0,1,2)
    • Retain: Conservar el mensaje sobre el tema incluso después de leerlo

 

  • StoreTables: TRUE = publicar DATOS HISTÓRICOS
    • Store: DataStore en el que estamos guardando nuestros datos
    • TableNames: Almacenar las tablas que se van a enviar
      • Tabla 1: Registrador de datos
      • Tabla 2: AlarmsEventLogger
      • Tabla (...) podría agregarse o eliminarse
    • PreserveData NO UTILIZADO
    • MaximumItemsPerPacket: define el número de filas por paquete que se van a enviar
    • MaximumPublishTime: tiempo máximo de espera antes de publicar datos, incluso si no se alcanza el valor de MaximumItemsPerPacket.
    • MinimumPublishTime: tiempo de espera mínimo antes de publicar datos cuando se alcanza el valor de MaximumItemsPerPacket.
    • StoreTablesTopic : /UniqoFieldHmiDataLoggerTopic es el tema sobre el que estamos enviando o publicando datos
    • QoS: Calidad de servicio MQTT (0,1,2)
    • Retain: Conservar el mensaje sobre el tema incluso después de leerlo
    • TablesPrefix: Una variable del modelo que contiene el nombre hipotético de diferentes sitios de producción, en este caso, será "Stación1". En el paquete enviado aparecerá la tabla enviada con el prefijo único correspondiente a la máquina/sitio correcto desde el que llega el paquete (Station1_AlarmsEventLogger). Esto es útil cuando tenemos más de un mismo modelo de máquina/más de una de las mismas configuraciones de planta y necesitamos distinguir de qué máquina/planta llegan los datos.

 

  • AllRows: cuando es TRUE, publica todos los datos que ya están presentes en las tablas de la tienda. Establézcalo en FALSE para publicar solo los datos almacenados después de la implementación de MQTTBrokerLogic.
  • CustomPayload: Mensaje personalizado sin formato predefinido
    • CustomPayloadMessage: mensaje de texto personalizado publicado en CustomPayloadTopic
    • CustomPayloadTopic: el tema en el que se publicará el mensaje
    • CustomPayloadPeriod: frecuencia de envío del mensaje personalizado (si 0000:00:00.000 envía datos sobre el cambio de valor)
    • QoS: Calidad de servicio MQTT (0,1,2)
    • Retener: Conservar el mensaje sobre el tema incluso después de leerlo
Step 10 - screenshot
Step 10 - screenshot
¡Suscríbase!

Reciba directamente en su correo nuevos lanzamientos de aplicaciones y otras novedades del Innovation Center

Quiero suscribirme
  1. Chevron LeftChevron Left Página principal de Rockwell Automation Chevron RightChevron Right
  2. Chevron LeftChevron Left Asi... Chevron RightChevron Right
  3. Chevron LeftChevron Left Pro... Chevron RightChevron Right
  4. Chevron LeftChevron Left Downloads Chevron RightChevron Right
  5. Chevron LeftChevron Left Innovation Center Chevron RightChevron Right
  6. Chevron LeftChevron Left Intercambio de datos MQTT: tiempo real y datos históricos Chevron RightChevron Right
Actualice sus preferencias de cookies para continuar.
Esta función requiere cookies para mejorar su experiencia. Actualice sus preferencias para permitir estas cookies.:
  • Cookies de Redes Sociales
  • Cookies Funcionales
  • Cookies de Performance
  • Cookies de Marketing
  • Todas las cookies
Puede actualizar sus preferencias en cualquier momento. Para más información, vea nuestro {0} Política de Privacidad
CloseClose