Skip to main content

Biblioteca: MQTT Client SL

MQTT (Message Queuing Telemetry Transport) es un protocolo de IoT de código abierto que permite la transmisión de datos de telemetría como mensajes entre dispositivos. Como resultado, puede enviar mensajes desde un CODESYS controlador a un corredor de MQTT y suscribirse a mensajes basados en temas.

  • Los dispositivos siempre se comunican a través de un intermediario MQTT.

    Ejemplo: Eclipses Mosquito

  • Los mensajes se envían y se suscriben en función de los temas. Un tema corresponde a un camino.

    Ejemplo: device1/temperature

  • La suscripción a los mensajes se realiza especificando un filtro de tema. También se permiten comodines (+ para un nivel, # para varios niveles).

  • El formato de un mensaje no es fijo. Se puede transmitir una cadena JSON o cualquier estructura de datos.

. bloques de funciones de MQTT Client SL biblioteca:
  • Bloque de funciones para establecer un enlace MQTT (MQTTClient)

  • Bloque de funciones para enviar mensajes (MQTTPublish)

  • Bloque de funciones para suscribirse a mensajes (MQTTSubscribe)

. Funciones compatibles:
  • Publicación y suscripción de mensajes basados en MQTT V3.1.1 y MQTT V5.0

  • cifrado TLS

  • Soporte de certificados de cliente (transferencia de un identificador de certificado)

  • Soporte de "Calidad de Servicio":

    0, 1 y 2 (QoS0, QoS1, QoS2) para último testamento, publicador y suscriptor

  • Tipo de datos de los temas: WSTRING

  • Tamaño máximo de un tema: 1024

  • El tamaño máximo del paquete y el tamaño de la carga útil se pueden configurar mediante una lista de parámetros.

  • Soporte multitarea y multinúcleo

    MQTTClient, MQTTPublish y MQTTSubscribe pueden ejecutarse cada uno en diferentes tareas o núcleos de CPU.

  • Mensajes de "Última Voluntad" (QoS0, QoS1, QoS2)

  • Comodines (# y +)

  • MQTT o WebSocket

. Funciones MQTT V5 compatibles:
  • Session Expiry

  • Message Expiry

  • Reason Code on All ACKs

  • Server Disconnect

  • Payload Format and Content Type

  • Request / Response

  • Shared Subscriptions

  • Subscription ID

  • Topic Alias

  • Flow Control

  • User Properties

  • Maximum Packet Size

  • Optional Server Feature Availability

  • Enhanced Authentication

  • Subscription Options

  • Will Delay

  • Server Keep Alive

  • Assigned ClientID

  • Server Reference

Rendimiento de mensajes

El rendimiento máximo de mensajes (número de mensajes/segundo, mps) depende del hardware utilizado, el tamaño del mensaje, la configuración de QoS y la configuración (lista de parámetros MQTTParam, tiempo de ciclo).

ejemplo 1. Ejemplo de medidas

Configuración:

  • Corredor local de mosquitos

  • Local CODESYS Control (1 editor)

  • Local CODESYS Control (1 suscriptor)

  • MQTTParam (configuración por defecto)

  • Tamaño del mensaje: 1024 bytes

  • Tiempo de ciclo: 1ms

Resultado:

  • QoS0 => aprox. 190mps

  • QoS1 => aprox. 130mps

  • QoS2 => aprox. 90mps



Sugerencia

Vea el ejemplo: Uso de la biblioteca MQTT Client SL.