Descargas
¿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.
Tenga en cuenta: deberá aceptar los Términos y Condiciones para cada descarga.
¿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:
Paso 3:
Informaciones detalladas
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
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
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.
- 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:
- 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.
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