MQTT_Publish-Baustein

Kurz-Information

Name

MQTT_Publish

→POE-Typ

→Funktion

Kategorie

Weitere Systembausteine, MQTT

Grafische Schnittstelle

images/download/thumbnails/414780466/MQTT_Publish-version-1-modificationdate-1534501361612-api-v2.png

Verfügbar ab

  • Version 1.28.0 (für logi.CAD 3) und Version 2.3.1301 des →Laufzeitsystems – Anfangsvariante

  • Version 1.108.0 (für logi.CAD 3) und Version 3.18.0 des →Laufzeitsystems – Eweiterung: Datentyp STRING für bestehenden Eingang topic (statt STRING[255]); Datentyp MQTT_RC für Ausgang rc (statt DINT)

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

Funktionalität

Der Baustein publiziert eine Nachricht zu einem bestimmten Thema über die Verbindung, die durch den Verbindungshandler spezifiziert ist. Die Nachrichten werden asynchron versendet.

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 die Nachricht

payload

REF_TO BYTE

Nutzdaten der Nachricht

len

DINT

Länge der zu publizierenden Nutzdaten

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.

Beispiel für Verwendung im ST-Editor

Programm mit ausgewählten Aufrufen von MQTT-Bausteinen
PROGRAM Program1
VAR
ioImageLocal : ARRAY[0..1023] OF BYTE;
ioImageLocalLen : DINT := 2;
ch : DINT := -1;
cnt : DINT := 0;
rc : MQTT_RC;
state : MQTT_SUBSCRIBER_STATE := MQTT_SUBSCRIBER_STATE#INVALID;
END_VAR
state := MQTT_GetState(ch := ch, rc => rc, ENO => ENO);
/* make sure MQTT connection is established and messages are received */
IF state <> MQTT_SUBSCRIBER_STATE#CONNECTING AND state <> MQTT_SUBSCRIBER_STATE#CONNECTED THEN
ch := MQTT_Connect(address := '192.168.1.107', clientId := 'RTS1', rc => rc, ENO => ENO);
END_IF;
IF ENO AND state = MQTT_SUBSCRIBER_STATE#CONNECTED THEN
/* prepare data to be transferred over MQTT */
ioImageLocal[0] := 16#CA;
ioImageLocal[1] := 16#FE;
/* send updated io image to remote */
MQTT_Publish(ch := ch, topic := 'sample_topic',
payload := REF(ioImageLocal[0]),
len := ioImageLocalLen,
rc => rc);
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.