Request

Request 1:

Diese Methode wird einmalig aufgerufen, um einen Request zum Broker zu versenden.

Mögliche Fehler werden an den Ausgängen bError und hrErrorCode der Bausteininstanz ausgegeben.

Syntax

METHOD Request : BOOL
VAR_IN_OUT
    sTopic              : STRING; // topic string (UTF-8) with any length (attend that MQTT topics are case sensitive)
    sResponseTopic      : STRING; // topic string (UTF-8) with any length (attend that MQTT topics are case sensitive)
END_VAR
VAR_INPUT
    pPayload            : PVOID;
    nPayloadSize        : UDINT;
    eQoS                : TcIotMqttQos; // quality of service between the publishing client and the broker
    bRetain             : BOOL; // if TRUE the broker stores the message in order to send it to new subscribers
    bQueue              : BOOL; // for future extension
    pProps              : POINTER TO MqttPublishProperties;
    pCorrelationData    : POINTER TO BYTE;
    nCorrelationDataSize: UINT;
END_VAR

Request 2: Rückgabewert

Name

Typ

Beschreibung

Request

BOOL

Bei erfolgreichem Aufruf liefert die Methode den Rückgabewert TRUE.

Request 3: Eingänge

Name

Typ

Beschreibung

pPayload

PVOID

Adresse zum Payload der MQTT-Nachricht

nPayloadSize

UDINT

Größe vom Payload in Bytes

eQoS

TcIotMqttQos

"Quality of Service"

bRetain

BOOL

Wenn bRetain TRUE ist, speichert der Broker die Nachricht, um sie später hinzukommenden Subscribern nachträglich zukommen zu lassen.

bQueue

BOOL

Reservierter Parameter, welcher immer mit FALSE belegt werden kann.

pProps

POINTER TO MqttPublishProperties

Pointer auf zu verschickende Publish Properties.

Der Parameter ist optional. Um Publish Properties anzugeben kann der FB_IotMqtt5PublishProperties zur Hilfe genommen werden.

pCorrelationData

POINTER TO BYTE

Pointer auf die zu verschickende CorrelationData. Hiermit kann bei einem Request/Response Verfahren eine Zuordnung von Request zu empfangener Response erfolgen.

nCorrelationDataSize

UINT

Größe der CorrelationData in Bytes

Request 4: Ein-/Ausgänge

Name

Typ

Beschreibung

sTopic

STRING

Topic der MQTT-Nachricht

sResponseTopic

STRING

Response-Topic auf dem der Request beantwortet werden soll.

Request 5:

Message-Payload-Formatierung

Beachten Sie, dass der Datentyp und die Formatierung des Inhalts der Sender- und Empfängerseite bekannt sein müssen, insbesondere beim Versand von Binärinformationen (Alignment) oder Strings (mit/ohne Nullterminierung).

Request 6:

Strings im UTF-8-Format

Die hier verwendeten Variablen vom Typ STRING nutzen das UTF-8-Format. Diese STRING-Formatierung ist üblich bei IoT/MQTT-Kommunikation sowie JSON-Dokumenten.

Um Sonderzeichen und Texte verschiedenster Sprachen empfangen zu können, wird der Zeichensatz in den Bibliotheken Tc3_IotBase und Tc3_JsonXml nicht auf den typischen Zeichensatz vom Datentyp STRING beschränkt. Stattdessen wird der Unicode-Zeichensatz als UTF-8-Format in Verbindung mit dem Datentyp STRING verwendet.

Bei Verwendung des ASCII-Zeichensatzes besteht kein Unterschied zwischen der typischen Formatierung in einem STRING und der UTF-8-Formatierung eines STRING.

Weitere Informationen zum UTF-8-STRING-Format sowie vorhandenen Anzeige- und Konvertierungsmöglichkeiten finden Sie in der Dokumentation der SPS-Bibliothek Tc2_Utilities.