Descargas
MicroLink MQTT es una suite transformadora de bloques de funciones definido por el usuario (UDFB) para controladores Micro800. Permite una comunicación MQTT perfecta con cualquier broker MQTT. Este paquete incluye tres bloques de funciones: uno para establecer conexiones, otro para suscribirse a temas específicos y otro para publicar datos. Ofrece una gran capacidad de personalizar la configuración para ID’s únicos en MQTT, direcciones IP de agente/servidor, nombres de usuario, contraseñas y la calidad de servicio (QoS) que se elija.
Diseñado para su uso con variadores de la serie PowerFlex 523 y 525 de Rockwell Automation.
Este código puede utilizarse con los siguientes equipos:
- PowerFlex 523
- PowerFlex 525
- Micro850
- Micro870
- PanelView 800
¿Para qué es esto?
MicroLink MQTT es una suite de UDFBs diseñada para una integración transparente con los controladores Micro800 de Rockwell Automation. Está pensado para mejorar las capacidades de estos controladores. Para ello, habilita la comunicación MQTT con cualquier agente MQTT.
Esta solución es útil más que nada para casos de uso de control remoto y en el campo industrial, donde el intercambio de datos y la eficacia de las comunicaciones son fundamentales. MicroLink MQTT proporciona tres bloques de funciones para establecer conexiones, suscribirse a temas específicos y publicar datos.
Con MicroLink MQTT, los usuarios pueden establecer fácilmente una conexión con un intermediario MQTT, suscribirse a los datos que necesiten y publicarlos en el intermediario. Ofrece opciones de alta personalización para la detección de intrusiones MQTT, las direcciones IP del agente/servidor, los nombres de usuario, las contraseñas y la calidad de servicio (QoS) elegida, lo que garantiza una comunicación de datos eficaz y segura.
Por ello, tanto si es un operador industrial que busca optimizar la comunicación de datos como si es un desarrollador que necesita integrar un intercambio de datos eficaz en sus aplicaciones, MicroLink MQTT puede ser la solución perfecta.
Características generales:
Nuestro paquete proporciona tres bloques de funciones definidas por el usuario:
- RA_MQTT_CONNECT_v2: Viaje al futuro con nuestro bloque de funciones de conexión. Permite que su controlador Micro800 establezca una conexión con un agente MQTT, lo que prepara el terreno para un intercambio de datos sólido.
- RA_MQTT_SUBSCRIBE_v2: Aproveche nuestro bloque de funciones de suscripción para mantenerse conectado con los datos que necesita. Adapte sus suscripciones a temas específicos desde el agente MQTT y haga que sus operaciones siempre tengan datos y estén actualizadas.
- RA_MQTT_PUBLISH_v2: Tome el control con nuestro bloque de funciones de publicación. Transmita datos con precisión mediante la publicación de temas en el agente MQTT. Esto convierte a sus operaciones basadas en datos en un punto de referencia para que otros las sigan.
Cada bloque de funciones es altamente personalizable, lo que le permite especificar detección de intrusiones MQTT únicos, direcciones IP de agente/servidor, nombres de usuario, contraseñas y su calidad de servicio (QoS) preferida. Con RA_MQTT v2, todos los aspectos de sus comunicaciones MQTT están en sus manos.
Limitaciones / desventajas
- Limitado a Micro820, Micro850 y Micro870
- Agente MQTT de terceros dependiente
¿Cómo puedo hacer que funcione?
La arquitectura implica el uso de hardware Micro820, Micro850 y Micro870. Y este es el software necesario:
- Workbench de componente conectado, versión 21 o superior.
- El firmware del equipo utilizado debe ser compatible con la versión del Workbench de componente conectado.
- Bloque de funciones definido por el usuario:
- RA_MQTT_CONNECT_v2
- RA_MQTT_SUBSCRIBE_v2
- RA_MQTT_PUBLISH_v2
Conocimientos previos:
Se recomienda tener conocimientos básicos de programación de lógica en escalera y configuración de sistemas mediante el software Workbench de componente conectado. Además, se valorará la familiaridad con los protocolos MQTT.
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 instalación
Paso 1:
Establecer la configuración de conexión para conectarse o desconectarse de un agente MQTT
Un agente MQTT sirve esencialmente como servidor para gestionar mensajes MQTT. Para conectar con un agente MQTT, debemos introducir la dirección IP y el número de puerto del agente en el UDFB RA_MQTT_CONNECT_v2. El agente podría estar alojado en su computadora (en cuyo caso necesitaría instalar y operar un agente MQTT compatible con su sistema operativo), o podría ser un servidor remoto, como los mencionados anteriormente.
1.1 Asigne la dirección IP y el número de puerto del agente MQTT a su UDFB RA_MQTT_CONNECT_v2
Este ejemplo es para conectarse al agente test.mosquitto.org en la nube. Una alternativa para introducir la dirección IP de forma directa es habilitar el Servicio de Nombres de Dominio (establecer 'EnableDNS' TRUE) después de introducir la URL del agente MQTT en 'MQTTBrokerName' y la dirección IP del servidor DNS local en 'DNSIPaddr' en el paso 2.
1.2 Introduzca un 'clientName' único, así como un 'userID' y un 'userPass' si su agente MQTT lo requiere. (Muchos agentes MQTT públicos no requieren nombre de usuario y contraseña, por lo que estos campos son opcionales y pueden dejarse en blanco si no son necesarios)
1.3 Establezca 'EnableMQTT' en TRUE para conectarse al agente MQTT.
Nota:
Hay que tener en cuenta algunas cosas para garantizar una conexión satisfactoria. El MQTTsocketSts debería mostrar, finalmente, un 9. Si muestra un 7 y luego vuelve a 0, podría implicar que su agente no se está ejecutando o no existe.
Los datos en resultData_Out son útiles para la resolución de problemas de diagnóstico. Por lo general, cuando se envía un comando de conexión al servidor, este responde con una confirmación. La confirmación se indica mediante el primer byte, que es "32" en este caso.
Otra respuesta frecuente que recibirá es una confirmación de recibo de ping, denotado por '208' en el 1.er byte de los datos devueltos. El comando ping se envía al agente remoto en intervalos de 50 segundos. Este intervalo está codificado en el UDFB, pero puede modificarse si es necesario.
Si los datos de retorno son algo distintos de 32 o 208 al conectarse, podría sugerir que el cliente se ha suscrito a un tema que se emitió mientras estaba desconectado. El mensaje se conserva y se envía al cliente cuando vuelve a estar en línea. Si se encuentra con esto, procese el mensaje y luego reinicie la conexión.
1.4 Si desea configurar para LWT, necesita acceder a estos parámetros en el UDFB:
322| willTopic := willTopic_In; 323| willData := willData_In;
‘willTopic_In' es donde se introduce el tema de Última Voluntad para la conexión.
'willData_In' es donde se introduce el testamento para la conexión.
El agente MQTT publicará el testamento a todos los clientes suscritos al tema Última Voluntad cuando el cliente se desconecte de manera repentina.
1.5 Si quiere desconectarse del servidor de forma sencilla (sin activar LWT), establezca 'disconnect_Cmd' a TRUE.
Se trata de un bit activado por periferia ascendente, por lo que puede reiniciarlo de forma inmediata.
Paso 2
Suscribirse o darse de baja de un tema
El protocolo MQTT intercambia datos mediante métodos de suscripción y publicación. Los clientes solo se comunican directamente con el agente MQTT. Los clientes suscritos a un tema recibirán un mensaje del agente cuando otro cliente publique en ese tema. Los clientes pueden ser de cualquier tipo siempre que tengan una aplicación cliente MQTT en ejecución. Por ejemplo, puede ser un software en un PC, un conector o API para el software, una aplicación en un teléfono o un código de aplicación en un PLC.
2.1. Introduzca el nombre del tema ('topicName_input') al que desea suscribirse o darse de baja.
2.2. Establezca la calidad del servicio ('subQoS') para la suscripción. Utiliza '0' de manera predeterminada ya que consume menos ancho de banda.
2.3. Establezca 'subscribe' o 'unsubscribe' a TRUE para suscribirse o darse de baja del tema.
2.4. Esos bits detectan la periferia ascendente, por lo que puede restablecerlos inmediatamente.
2.5. Observe que el resultData_Out de RA_MQTT_CONNECT_v2 también se copia en respondData_In.
Nota:
Se recomienda utilizar solo 1 instancia de cada UDFB.
Paso 3:
Publicar un tema
Cuando se publica un tema con datos en un agente MQTT, este los reenvía a todos los clientes suscritos a él. El cliente que publica el mensaje no sabe si algún nodo remoto recibe el tema, ya que esa responsabilidad recae en el agente según el nivel de calidad de servicio. Los temas pueden publicarse o suscribirse en cualquier nivel de calidad de servicio, pero solo se entregarán en el nivel de calidad de servicio más bajo.
3.1. Introduzca el tema a publicar en 'pubTopic_In'.
3.2. Introduzca los datos del tema en 'pubData_In'.
3.3. Configure la calidad del servicio en 'pubQoS'. Utiliza '0' de manera predeterminada ya que consume menos ancho de banda.
3.4. Establezca 'publish' a TRUE para publicar el tema con sus datos. Se restablecerá automáticamente a FALSE cuando 'publishDN' se pase a ser TRUE.
3.5. Observe que el resultData_Out de RA_MQTT_CONNECT_v2 también se copia en respondData_In.
Paso 4
Obtener mensajes de temas de suscripción
El agente MQTT gestiona todas las suscripciones a los temas. Envía los datos de cualquier tema publicado a los clientes que están suscritos a él. Cuando el cliente Micro800 MQTT recibe un tema, rellena las variables de matriz 'TopicName' y 'TopicData' en la UDFB RA_MQTT_CONNECT_v2. Los datos se almacenan por orden de llegada. Por ello, es crucial procesarlos antes de que se sobrescriban.
Paso 5
Suscribirse a una matriz de temas
MQTT_Subscriptions es un programa opcional de Texto Estructurado que funciona en conjunto con el programa MQTT_Client. Habilita que se suscriba a una matriz de 'Subscriptions' de temas preconfigurados. Ajuste la dimensión de la matriz de la variable global 'Subscriptions' al tamaño deseado y modifique el valor inicial de la variable local 'maxSubscriptions' para que coincida con el tamaño de la matriz (por defecto=10). 'Subscriptions' es una matriz de tipo de datos definidos por el usuario (UDT) que comprende el tema MQTT 'Name', el último tema 'Data', una marca de tiempo basada en el valor RTC cuando se recibió el último tema 'Data', y un indicador 'Suscribed'. Introduzca los nombres de tema deseados a los que suscribirse como valores iniciales de Subscriptions[i].Name antes de descargar el proyecto en el controlador.
La variable local 'enableSubcriptions' debe ser TRUE para activar esta funcionalidad.
Paso 6
Publicación automática de una matriz de temas
MQTT_Publications es un programa opcional de texto estructurado que funciona en conjunto con el programa MQTT_Client. Permite publicar toda una matriz de 'Publications' de temas preconfigurados. Ajuste la dimensión de la matriz de la variable global 'Publications' al tamaño deseado y modifique el valor inicial de la variable local 'maxPublicaciones' para que coincida con el tamaño de la matriz (por defecto=10). 'Publications' es una matriz de tipo de datos definidos por el usuario (UDT) que comprende el tema MQTT 'Name', el último tema 'Value', el valor del tema anterior 'Valorprev', y una marca de tiempo basada en el valor RTC cuando se publicó el último tema 'Valor'. Introduzca los nombres de los temas que desee publicar como valores iniciales de Publications[i].Name antes de descargar el proyecto en el controlador.
Establece la variable local 'ChangeOfState' a TRUE para publicar cualquier valor que cambie de forma excepcional. Establezca la variable local 'Interval' en TRUE e 'intervalTime' en un valor distinto de cero para publicar todos los valores actuales que no sean nulos ('') en un intervalo de tiempo. Por lo general, se elige 'ChangeOfState' o 'Interval' como método para publicar actualizaciones de temas. Para una actualización única, establezca la variable local 'OnDemand' en TRUE para publicar todos los valores actuales que no sean nulos (''). OnDemand' se establece en FALSE una vez que se haya publicado toda la matriz 'Publications'. La variable local 'enablePublications' debe tener el valor TRUE para activar esta funcionalidad del programa.