MQTT_Disconnect-Baustein
Kurz-Information
Name | MQTT_Disconnect |
---|---|
→POE-Typ | →Funktion |
Kategorie | Weitere Systembausteine, MQTT, Baustein mit interner Fehlerdiagnose |
Grafische Schnittstelle |
|
Verfügbar ab | Version 2.0.17 (für Bibliothek
|
Funktionalität
Der Baustein trennt die Verbindung zu einem →MQTT-Broker. Dafür wird der Verbindungshandler verwendet, der zuvor beim Aufruf des MQTT_Connect-Bausteins erhalten wurde.
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 |
Ausgänge: | rc | MQTT_RC | Ergebniscode der beteiligten MQTT-Funktionen, wie im Datentyp |
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
.
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 logi.RTS ist ein interner Fehler aufgetreten.
- Die Funktionalität des Bausteins konnte nicht ausgeführt werden.
Beispiel für Verwendung im ST-Editor
PROGRAM MQTTConnectDisconnectExample VAR connection_handler : DINT := -1; return_code : MQTT_RC; subscriber_state : MQTT_SUBSCRIBER_STATE := MQTT_SUBSCRIBER_STATE#INVALID; connect_flag : BOOL := FALSE; END_VAR subscriber_state := MQTT_GetState(ch := connection_handler, rc => return_code, ENO => ENO); /* If the connect flag is set... */ IF connect_flag THEN /* ...make sure the client is connected 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; /* ...and if it is connected... */ IF subscriber_state = MQTT_SUBSCRIBER_STATE#CONNECTED THEN /* ...deal with MQTT topics and messages inside this block */ END_IF; /* If the connect flag is NOT set... */ ELSE /* ...and the client is connected to a broker... */ IF subscriber_state = MQTT_SUBSCRIBER_STATE#CONNECTED THEN /* ...disconnect the client from this broker */ MQTT_Disconnect(ch := connection_handler, rc => return_code, ENO => ENO); 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.