Bibliothek MQTT Client SL
MQTT (Message Queuing Telemetry Transport) ist ein offenes IoT-Protokoll, das die Übertragung von Telemetriedaten zwischen Geräten in Form von Nachrichten ermöglicht. Damit können Sie Nachrichten von einer CODESYS-Steuerung an einen MQTT Broker senden und Nachrichten basierend auf "Topics" abonnieren.
Die Kommunikation der Geräte erfolgt immer über einen MQTT Broker
Beispiel: Eclipses Mosquitto
Das Abonnieren und Senden von Nachrichten erfolgt auf Basis von "Topics". Ein "Topic" entspricht einem Pfad.
Beispiel:
device1/temperature
Das Abonnieren von Nachrichten erfolgt unter Angabe eines Topic-Filters. Dabei sind auch Wildcards erlaubt (
+
für eine Ebene,#
für mehrere Ebenen)Das Format einer Nachricht ist nicht festgelegt. Es kann ein JSON-String oder eine beliebige Datenstruktur übertragen werden.
MQTT Client SL
Bibliothek:Funktionsbaustein zum Herstellen einer MQTT Verbindung (
MQTTClient
)Funktionsbaustein zum Versenden einer Nachricht (
MQTTPublish
)Funktionsbaustein zum Abonnieren von Nachrichten (
MQTTSubscribe
)
Publish/Subscribe von Nachrichten auf Basis von MQTT V3.1.1 und MQTT V5.0
TLS Verschlüsselung
Unterstützung von Clientzertifikaten (Übergabe eines Zertifikat-Handle)
Unterstützung von "Qualitiy of Service‘":
0, 1 und 2 (QoS0, QoS1, QoS2) für "Last Will", Publisher und Subscriber
Datentyp von "Topics":
WSTRING
Maximale Größe eines Topics: 1024
Die maximale Packetgröße und Payloadgröße ist über eine Parameterliste konfigurierbar
Multitask- und Multicore-Unterstützung
MQTTClient, MQTTPublish und MQTTSubscribe können jeweils auf unterschiedlichen Tasks oder Prozessorkernen ausgeführt werden
"Last Will"-Nachrichten (
QoS0
,QoS1
,QoS2
)Wildcards (
#
und+
)MQTT oder WebSocket
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
Nachrichtendurchsatz
Der maximale Nachrichtendurchsatz (Anzahl Nachrichten/Sekunde, mps) hängt von der verwendeten Hardware, der Nachrichtengröße, den QoS Einstellungen und von der Konfiguration (Parameterliste MQTTParam, Zykluszeit) ab.
Konfiguration:
Lokaler Mosquitto Broker
Lokale CODESYS Control (1 Publisher)
Lokale CODESYS Control (1 Subscriber)
MQTTParam
(Standardeinstellungen)Nachrichtengröße: 1024 Byte
Zykluszeit: 1 ms
Ergebnis:
QoS0 => ca. 190 mps
QoS1 => ca. 130 mps
QoS2 => ca. 90 mps
Tipp
Sehen Sie hierzu das Beispiel Verwenden der Bibliothek MQTT Client SL.