Request
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
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
Request | BOOL | Bei erfolgreichem Aufruf liefert die Methode den Rückgabewert TRUE. |
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 |
Ein-/Ausgänge
Name | Typ | Beschreibung |
---|---|---|
sTopic | STRING | Topic der MQTT-Nachricht |
sResponseTopic | STRING | Response-Topic auf dem der Request beantwortet werden soll. |
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). |
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. |