MQTT_Disconnect-Baustein
Kurz-Information
Name |
MQTT_Disconnect |
→POE-Typ |
|
Kategorie |
Weitere Systembausteine, MQTT, Baustein mit interner Fehlerdiagnose |
Grafische Schnittstelle |
|
Verfügbar ab |
Version 2.0.17 (für Bibliothek System) und Version 4.5.0 des →Laufzeitsystems Dieser Baustein wird für die integrierte SPS und →Raspberry unterstützt. |
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 |
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 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.
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 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.