FB_IotMqttMessageQueue
Dieser Funktionsbaustein bietet eine Message Queue für MQTT-Nachrichten, welche mit dem Baustein FB_IotMqttClient verwendet werden kann. Hierzu wird eine Instanz deklariert und dem Eingang von FB_IotMqttClient übergeben. Der Funktionsbaustein arbeitet nach dem First-in-First-out-Prinzip (FiFo). Es ist möglich, dass mehrere MQTT-Nachrichten innerhalb eines SPS Zyklus empfangen und an der Message Queue bereit gestellt werden.
Im Programmablauf kann mit dem Property nQueuedMessages
geprüft werden, ob und wie viele Nachrichten in der Message Queue eingesammelt wurden. Diese Nachrichten werden mit der Methode Dequeue()
aus dem FiFo entnommen. Hierbei wird demnach die älteste Nachricht zuerst ausgegeben.
Größe der MQTT Message Queue Die Menge der maximal möglichen Nachrichten in der Queue lässt sich über den Paramater Die MQTT Message Queue allokiert für neue Nachrichten entsprechend der Topic- und Payload-Größe neuen Speicher. Standardmäßig ist die maximale Größe einer Nachricht auf 100 KB und die Größe einer MQTT Message Queue auf 1000 KB begrenzt. Dies kann für Sonderfälle ebenso in der Parameterliste angepasst werden. |
Eigenschaften
Name | Typ | Zugriff | Beschreibung |
---|---|---|---|
bOverwriteOldestEntry | BOOL | Get, Set | Hier kann parametriert werden, ob, wenn die Warteschlange voll ist, eine neu empfangene Nachricht die älteste Nachricht überschreiben soll. Wenn ja (TRUE), geht die älteste Nachricht verloren. Wenn nein (FALSE), geht die neueste Nachricht verloren. Eine volle Warteschlange ist ein unwahrscheinlicher Fall, wenn der Anwender für ein zügiges Auslesen der Queue mittels |
nQueuedMessages | UDINT | Get | Gibt die Anzahl der aktuell in der Queue gesammelten MQTT-Nachrichten aus. |
Methoden
Name | Beschreibung |
---|---|
Entnimmt der Warteschlange eine MQTT-Nachricht. | |
Löscht alle Nachrichten aus der Warteschlange. |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4022.0 | IPC oder CX (x86, x64, ARM) | Tc3_IotBase |