Loading
FT Optix | FT Vault | FT Hub | Logix

Intercambio de datos MQTT: tablero de datos directos y datos históricos

Revisión: A (11/10/2022) - Tiempo de implementación: 60 minutos |Esta guía detalla el uso de MQTT para un intercambio y visualización eficientes de datos directos y datos históricos entre aplicaciones.
Una mujer sentada en un escritorio frente a una computadora, escribiendo en el teclado
En esta página:
  • Descripción general
  • Guía de instalación
Página de inicio del Innovation Center

¿Para qué sirve?

Demo MQTT es un ejemplo que consta de dos proyectos: Field Application y Data Aggregator Application. El objetivo de esta demostración es simplemente mostrar un ejemplo de comunicación mediante el 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 tablero (Data Aggregator Application). Normalmente, esto se haría solo con la visualización de datos históricos (datos históricos), pero en este proyecto también quisimos mostrar un ejemplo de recepción de datos directos.

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

Características generales

MQTT para la comunicación en tiempo real entre aplicaciones de campo y de agregador 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 crear su aplicación. El ejemplo tal cual no se puede utilizar en una máquina real, sino que debe adaptarse para el propósito, respetando los más altos estándares de seguridad requeridos. En el proyecto se utiliza un broker MQTT público y de código abierto solo con fines de demostración, no está protegido y no se puede garantizar su tiempo productivo. Le recomendamos encarecidamente que cambie los nombres de los tópicos y servidores usando su proveedor antes de implementar la aplicación final.


¿Cómo iniciar el proyecto?

Para configurar la Field Application y/o resolver problemas de compilación/referencias perdidas, lea la documentación MQTT_Field.

Tenga en cuenta:

Esta aplicación funciona emparejada con la Field Application, mostrando los datos recibidos mediante el protocolo MQTT en forma de tablero de control. Esta aplicación se puede encontrar en el Innovation Center bajo el siguiente título: Real-Time Data Implementation and Visualization with MQTT in Optix.

Paso 1 - captura de pantalla

Descargas

Tenga en cuenta: Deberá aceptar los Términos & Conditions para cada descarga.

Archivos para descargar ›
Aviso legal Aceptación. ROCKWELL AUTOMATION PROPORCIONARÁ ACCESO A LOS PRODUCTOS DE ROCKWELL AUTOMATION (MEJORES PRÁCTICAS, APLICACIONES Y CONOCIMIENTOS) CON LA CONDICIÓN DE QUE USTED ACEPTE Y CUMPLA LOS SIGUIENTES TÉRMINOS Y CONDICIONES. USTED ACEPTA Y SE COMPROMETE A CUMPLIR LOS TÉRMINOS DE ESTE ACUERDO AL DESCARGAR, INSTALAR, COPIAR O UTILIZAR DE OTRO MODO LOS PRODUCTOS. SI USTED ACEPTA ESTOS TÉRMINOS EN NOMBRE DE OTRA PERSONA, EMPRESA U OTRA ENTIDAD LEGAL, USTED DECLARA Y GARANTIZA QUE TIENE PLENA AUTORIDAD PARA OBLIGAR A ESA PERSONA, EMPRESA O ENTIDAD LEGAL A ESTOS TÉRMINOS. SI NO ESTÁ DE ACUERDO CON ESTOS TÉRMINOS, NO DESCARGUE, INSTALE, COPIE, ACCEDA NI UTILICE LOS PRODUCTOS, EL SOFTWARE Y/O LOS SERVICIOS EN LA NUBE. 1. Rockwell Automation conserva la propiedad y el título completos de todos los Productos y la documentación relacionada. No se otorgan derechos ni licencias distintos a los establecidos en este Acuerdo. La Compañía otorga a Rockwell Automation una licencia no exclusiva, mundial, libre de regalías, perpetua y no revocable para utilizar cualquier retroalimentación que la Compañía proporcione con respecto a los Productos, incluso si la Compañía ha designado la retroalimentación como confidencial. Rockwell Automation tendrá derecho a utilizar la retroalimentación sin restricción ni compensación para la Compañía. 2. La Compañía no podrá arrendar, subarrendar, ceder, licenciar, sublicenciar ni transferir de otra manera ninguno de los Productos sin el consentimiento previo por escrito de Rockwell Automation. La Compañía no podrá ceder ni transferir de otra manera los derechos de acceso a los Productos sin el consentimiento previo por escrito de Rockwell Automation. Se prohíbe el ensamblaje inverso, la ingeniería inversa, la descompilación y la creación de obras derivadas basadas en los Productos por parte de la Compañía. 3. La Compañía reconoce que los Productos proporcionados en virtud de este Acuerdo son información de confidencialidad de Rockwell Automation y están cubiertos por derechos de autor, patentes, marcas comerciales y/o secretos comerciales vigentes o pendientes de Rockwell Automation, y la Compañía acepta mantener la confidencialidad al no divulgar los Productos ni la documentación a ningún tercero sin el consentimiento previo por escrito de Rockwell Automation y proteger la confidencialidad de los Productos como si fuera la información de confidencialidad propia de la Compañía. La Compañía acepta que su obligación de confidencialidad en virtud de este párrafo subsistirá tras la expiración o terminación de este Acuerdo. 4. La Compañía acepta que los Productos proporcionados en virtud de este Acuerdo son prototipos y ejemplos, y su aplicación y resultados pueden variar según las condiciones de cada cliente y proyecto. Rockwell Automation no otorga garantía de los mismos resultados. Este Acuerdo no se interpretará en modo alguno como un compromiso por parte de Rockwell Automation en ningún momento de fabricar y/o ofrecer Productos para la venta. No existe ningún acuerdo de 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 satisfagan los requisitos de la Compañía. La Compañía acepta utilizar todos los Productos únicamente 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 RECHAZA TODAS LAS GARANTÍAS, EXPRESAS, IMPLÍCITAS O LEGALES, INCLUIDAS, SIN LIMITACIÓN, CUALQUIER GARANTÍA DE COMERCIABILIDAD O ADECUACIÓN PARA UN PROPÓSITO PARTICULAR. ROCKWELL AUTOMATION RECHAZA EXPRESAMENTE 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 DE VULNERABILIDADES DE SEGURIDAD. EN NINGÚN CASO ROCKWELL AUTOMATION SERÁ RESPONSABLE DE (i) PÉRDIDA DE BENEFICIOS, PÉRDIDA DE AHORROS, TIEMPO IMPRODUCTIVO, DAÑOS ESPECIALES, INDIRECTOS O CONSECUENTES DE CUALQUIER TIPO, O (ii) CUALQUIER LESIÓN PERSONAL, DAÑOS A LA PROPIEDAD O DAÑOS AMBIENTALES QUE SURJAN DE O EN CONEXIÓN CON ESTE ACUERDO, YA SEA EN UNA ACCIÓN DE CONTRATO, RESPONSABILIDAD ESTRICTA O EN AGRAVIO, INCLUYENDO NEGLIGENCIA. 6. LA COMPAÑÍA ACEPTA INDEMNIZAR Y MANTENER A ROCKWELL AUTOMATION INDEMNE DE TODOS LOS COSTOS, PREMIOS, DAÑOS, GASTOS Y HONORARIOS (INCLUIDOS LOS HONORARIOS DE ABOGADOS) RESULTANTES DE O RELACIONADOS CON CUALQUIER RECLAMACIÓN DE TERCEROS (INCLUIDOS EMPLEADOS Y AGENTES DE LA COMPAÑÍA) CONTRA ROCKWELL AUTOMATION, SUS DISTRIBUIDORES, AGENTES, FUNCIONARIOS, DIRECTORES O EMPLEADOS POR LESIONES PERSONALES (INCLUIDA LA MUERTE), DAÑOS A LA PROPIEDAD O DAÑOS AMBIENTALES RELACIONADOS CON O RESULTANTES DEL USO DE LOS PRODUCTOS. 7. En caso de que se exporte un Producto, la Compañía acepta cumplir con todas las leyes y regulaciones de control de exportaciones de los Estados Unidos aplicables, así como con las leyes de control de exportaciones aplicables de otros países. Este Acuerdo se regirá por las leyes del estado de Wisconsin. Este Acuerdo constituye el acuerdo completo y exclusivo entre Rockwell Automation y la Compañía, y reemplaza todos los acuerdos anteriores, ya sean escritos u orales, relacionados con los Productos.

¿Necesita ayuda?

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

Guía de implementación

Paso 1

Inicie la aplicación de campo.

Paso 2:

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

Paso 2 – captura de pantalla
Paso 2 – captura de pantalla

Paso 3:

Si la conexión con la aplicación de campo funciona, el LED “dato en tiempo real” estará verde.

Paso 3 - captura de pantalla
Paso 3 - captura de pantalla

Información detallada

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

Paso 4 - captura de pantalla
Paso 4 - captura de pantalla

Aplicación en campo

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

Paso 5 - captura de pantalla
Paso 5 - captura de pantalla

Aplicación agregadora de datos

Aquí, Runtime Netlogic funciona como Subscriber: al suscribirse a los topics en los que la aplicación de campo publica, muestra todos los datos en forma de dashboard.

Paso 6 - captura de pantalla
Paso 6 - captura de pantalla

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 instanciará el Broker.
  • Port: número del puerto en el que el Broker está escuchando
  • UseSSL: habilita el uso de certificados.
  • Certificate
  • CertificatePassword
  • AutoStart DEJAR EN TRUE
  • UserAuthentication: si es verdadero, solo los usuarios especificados pueden acceder
  • AuthorizedUsers
  • IsRunning: estado del servidor
  • IsDebuggingMode NO SE USA
  • MaxNumberOfConnections: número máximo de clientes que pueden conectarse al Broker
  • NumberOfConnections: número de conexiones activas
Paso 7 – captura de pantalla
Paso 7 – captura de pantalla

MQTT Client

Siempre debe estar activo (TRUE) porque es la conexión con el Broker al que se publica o al que se suscribe. Si desea conectar dos aplicaciones, debe configurar el mismo broker y el mismo puerto en ambos proyectos. En cambio, el parámetro ClientID debe ser diferente (único) en cada aplicación.

Parámetros:

  • IPAddress: dirección del broker (test.mosquitto.org), que podría ser externa como en este caso, o interna si la aplicación funciona como broker (por ejemplo, MQTTBrokerLogic.MQTTServer.IPAddress)
  • Port: puerto del broker (1883 para test.mosquitto.org)
  • UseSSL: Cambie a TRUE si el broker requiere certificados
    • CaCertificate
    • ClientCertificate
    • ClientCertificatePassword
    • AllowUntrustedCertificates
  • UserAuthentication: Cambie a TRUE si el broker requiere usuarios autorizados.
    • AuthorizedUsers: arreglo de cadenas que contiene usuarios Uniqo (User1; User2; User […]);
  • IsRunning NO USADO
  • IsDebuggingMode NO USADO
  • ClientId: este es el Id único, diferente para cada aplicación que desea participar en el intercambio de datos
  • Connected: estado de conexión con el broker
  • SentPackages STATS
  • ReceivedPackages STATS
Paso 8 - captura de pantalla
Paso 8 - captura de pantalla

Suscriptor

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

Parámetros:

  • LiveTags: TRUE = recibir datos directos
    • LiveTagsFolder: esta carpeta/nodo contiene una copia del parámetro Publisher LiveTagsFolder, en el que Netlogic copiará los valores leídos del broker.
    • LiveTagsTopic: en este parámetro se debe especificar el tópico al que está suscrito y del que desea recibir valores de variables/tags datos directos.
    • LastPackageTimestamp: marca de tiempo del último paquete publicado
  • StoreTables: TRUE = recibir datos históricos
    • Store: DataStore en el que se guardan los datos recibidos. Las tablas deben renombrarse con el parámetro “TablesPrefix”, más el nombre de las tablas de la aplicación del Publisher. A continuación, un ejemplo:
      • Nombres de tablas DataStore de la aplicación Publisher: Datalogger, AlarmsEventLogger
      • Parámetro “TablesPrefix” del Publisher: Station1
      • Nombres de tablas DataStore de la aplicación Suscriptor: Station1_DataLogger, Station1_EventLogger. Verifique que tengan las mismas columnas que la aplicación del Publisher.
    • StoreTablesTopic: en este parámetro se debe especificar el tópico al que está suscrito y del que desea recibir valores de variables/tags datos históricos.
  • CustomPayload: mensaje personalizado sin formato predefinido
    • CustomPayloadMessage: mensaje de texto personalizado de CustomPayloadTopic
    • CustomPayloadTopic: en este parámetro se debe especificar el tópico al que está suscrito y del que desea recibir mensajes personalizados.
Paso 9 - captura de pantalla
Paso 9 - captura de pantalla

Publisher

Debe estar activo (TRUE) si su aplicación necesita publicar datos al broker.

Parámetros:

  • LiveTags: TRUE = publicar datos directos
    • LiveTagsPeriod: Frecuencia de envío (si 0000:00:00.000 envía datos al cambiar el valor).
    • LiveTagsFolder: carpeta (o nodo) que contiene los datos que se enviarán
    • LiveTagsTopic: /UniqoFieldHmiLiveTopic es el tópico en el que enviamos/publicamos datos
    • QoS: MQTT Quality of Service (0,1,2)
    • Retain: Retener el mensaje en el tópico incluso después de leerlo
  • StoreTables: TRUE = publicar datos históricos
    • Store: DataStore en el que guardamos nuestros datos
    • TableNames: Tablas del Store que se enviarán
      • Table1: Datalogger
      • Table2: AlarmsEventLogger
      • Se puede agregar oeliminar la Table (…)
    • PreserveData NO USADO
    • MaximumItemsPerPacket: define cuántas filas por paquete se envían
    • MaximumPublishTime: Tiempo máximo de espera antes de publicar datos, incluso si no se alcanza el valor de MaximumItemsPerPacket.
    • MinimumPublishTime: Tiempo mínimo de espera antes de publicar datos cuando se alcanza el valor de MaximumItemsPerPacket.
    • StoreTablesTopic: /UniqoFieldHmiDataLoggerTopic es el tópico en el que enviamos/publicamos datos
    • QoS: MQTT Quality of Service (0,1,2)
    • Retain: Retener el mensaje en el tópico incluso después de leerlo
    • TablesPrefix: Una variable modelo que contiene el nombre hipotético de diferentes sitios de producción, en este caso, será “Station1”. En el paquete enviado aparecerá la tabla enviada con el prefijo único correspondiente a la máquina/sitio correcto desde el cual llega el paquete (Station1_AlarmsEventLogger). Esto es útil cuando tenemos más de un modelo de máquina/ más de una configuración de planta y necesitamos distinguir de qué máquina/planta llegan los datos.
  • AllRows: Cuando es TRUE, publica todos los datos ya presentes en las Store Tables. Establezca 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 el CustomPayloadTopic
    • CustomPayloadTopic: El tópico en el que se publicará el mensaje.
    • CustomPayloadPeriod: Frecuencia de envío del mensaje personalizado (si 0000:00:00.000 envía datos al cambiar el valor)
    • QoS: MQTT Quality of Service (0,1,2)
    • Retain: Retener el mensaje en el tópico incluso después de leerlo
Step 10 - screenshot
Step 10 - screenshot
¿Tiene una consulta general?

Rockwell Automation y nuestros socios ofrecen conocimientos excepcionales de la industria para ayudar a diseñar, implementar y respaldar su inversión en automatización.

Contacte a Rockwell Automation
  1. Chevron LeftChevron Left Página principal de Rockwell Automation
  2. Chevron LeftChevron Left Asi...
  3. Chevron LeftChevron Left Pro...
  4. Chevron LeftChevron Left Descargas
  5. Chevron LeftChevron Left Centro de innovación
  6. Chevron LeftChevron Left Intercambio de datos MQTT: tablero de datos directos y datos históricos
El contenido de este sitio ha sido traducido mediante inteligencia artificial (IA) sin revisión humana o ediciones. El contenido podría contener errores o inexactitudes, y se proporciona “tal cual” sin ninguna garantía. El texto oficial es la versión en inglés del contenido.
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