MQTT_Unsubscribe-Baustein

Kurz-Information

Name

MQTT_Unsubscribe

→POE-Typ

→Funktion

Kategorie

Weitere Systembausteine, MQTT,, Baustein mit interner Fehlerdiagnose

Grafische Schnittstelle

images/download/attachments/443058791/MQTT_Unsubscribe-version-1-modificationdate-1589783744069-api-v2.png

Verfügbar ab

Version 2.0.17 (für Bibliothek System) und Version 4.5.0 des →Laufzeitsystems

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/warning.svg Dieser Baustein wird für die integrierte SPS und →Raspberry unterstützt.

Funktionalität

Der Baustein meldet eine bestehende Verbindung von einem bestimmten Thema ab. Diese Verbindung wird durch einen Verbindungshandler definiert.

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/information.svg Die Übertragung der Daten erfolgt mit Hilfe eines bereits vorhandenen MQTT-Brokers

(siehe "Datenübertragung via MQTT vorbereiten/durchführen")
.

Eingänge, Ausgänge


Bezeichner

→Datentyp

Beschreibung

Eingänge:

ch

DINT

Verbindungshandler, wie vom MQTT_Connect-Baustein erhalten

topic

STRING

Thema, für das abgemeldet wird

Ausgänge:

rc

MQTT_RC

Ergebniscode der beteiligten MQTT-Funktionen, wie im Datentyp MQTT_RC definiert

Der Eingang EN und der Ausgang ENO sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.

Informieren Sie sich unter:

Interne Fehlerdiagnose für Baustein

Der Baustein prüft folgende Fehlerfälle und setzt – bei Auftreten dieser Fehlerfälle – den Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung):

  • Während des Sendens einer Benachrichtigung an das →Laufzeitsystem ist ein interner Fehler aufgetreten.

  • Die Funktionalität des Bausteins konnte nicht ausgeführt werden.

Beispiel für Verwendung im ST-Editor

PROGRAM MQTTSubscribeUnsubscribeExample
VAR
connection_handler : DINT := -1;
return_code : MQTT_RC;
subscriber_state : MQTT_SUBSCRIBER_STATE := MQTT_SUBSCRIBER_STATE#INVALID;
subscribed_to_topic : BOOL := FALSE;
subscribe_flag : BOOL := FALSE;
END_VAR
subscriber_state := MQTT_GetState(ch := connection_handler, rc => return_code, ENO => ENO);
/* Establish a MQTT connection to a broker */
IF subscriber_state <> MQTT_SUBSCRIBER_STATE#CONNECTING AND subscriber_state <> MQTT_SUBSCRIBER_STATE#CONNECTED THEN
connection_handler := MQTT_Connect(address := 'tcp://192.168.1.100:1883', clientId := 'RTS1', rc => return_code, ENO => ENO);
END_IF;
/* Check if the client is connected to the broker */
IF subscriber_state = MQTT_SUBSCRIBER_STATE#CONNECTED THEN
/* If the subscribe flag is set... */
IF subscribe_flag THEN
/* ...make sure the client is subscribed to a specific topic... */
IF NOT(subscribed_to_topic) THEN
MQTT_Subscribe(ch := connection_handler, topic := 'example-topic', rc => return_code, ENO => ENO);
subscribed_to_topic := return_code = MQTT_RC#OK;
ELSE
/* ...and publish or receive messages over MQTT inside this block */
END_IF;
/* If the subscribe flag is NOT set... */
ELSE
/* ...and the client is subscribed to a specific topic... */
IF subscribed_to_topic THEN
/* ...unsubscribe the client from this topic */
MQTT_Unsubscribe(ch := connection_handler, topic := 'example-topic', rc => return_code, ENO => ENO);
subscribed_to_topic := NOT(return_code = MQTT_RC#OK);
END_IF;
END_IF;
END_IF;
 
END_PROGRAM


Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.