PublishString

TwinCAT TIA
Netzwerk MQTT Client ActiveClients Ein Client

ns=2;s=DEPRAG Smart/Network/MQTT/ActiveClients/0/PublishString

Der Befehl sendet eine Nachricht mit dazugehörigem Topic an den MQTT Broker.

Parameter:

    QualityOfServiceLevel
    Konfiguriert das Quality of Service Level der Übertragung:
    AtMostOnce(0): Die Nachricht wird genau einmal gepublished und es wird auf keine Empfangsbestätigung vom Broker gewartet.
    AtLeastOnce(1): Die Nachricht wird solange gesendet, bis der Client eine Empfangsbestätigung vom MQTT Broker erhält. So ist sichergestellt, dass die Nachricht mindestens einmal beim Empfänger angekommen ist.
    ExactlyOnce(2): Die Nachricht wird genau einmal vom Client an den Broker übertragen.
    WithRetainFlag
    Markiert das Retain Flag in der MQTT Nachricht. Der Broker wird damit angewiesen die letzte gesendete Nachricht zu dem Topic zwischenspeichern. Clients die sich zu einem späteren Zeitpunkt am Broker verbinden bekommen diese Nachricht zugestellt.

Rückgabewert:

Beispiele:

Neben den bereits erläuterten Parametern sind für die Implementierung in TwinCAT 3 nachfolgende Variablen anzulegen / zu übergeben:

Beckhoff Parameter:

    bMqttPublishString
    Eine boolesche Variable, über welche die Ausführung des PublishString-Befehls getriggert werden kann.
    OutputDataMqttPublishString
    Eine Instanz der ST_VoidOutputData Struktur, in welche der Rückgabewert der PublishString-Methode geschrieben wird.
    hrMqttPublishString
    Hiermit kann die Ausführung des Befehls überwacht werden. Fehler-Codes haben den Typ HRESULT.
    fbMqtt
    Eine Instanz des, mit der DEPRAG Smart-Bibliothek gelieferten, "FB_Mqtt" Funktionsbausteins.
    sTopic
    Eine String(255)-Variable, welche das Topic der MQTT Nachricht darstellt.
    sMessageData
    Eine String(255)-Variable, welche den Inhalt der zu übermittelnden Nachricht darstellt.
    QualityOfServiceLevel
    Ein Enum vom Typ "MqttQualityOfServiceLevel", welches das Quality of Service Level der Übertragung festlegt.
    bWithRetainFlag
    Eine boolesche Variable, welche das Retain Flag in der MQTT Nachricht setzt.
    sClientId
    Eine String(255)-Variable, welche den Client spezifiziert, der den Befehl ausführen soll.
    ConnectionHandle
    Beim Verbindungsaufbau zwischen DEPRAG Smart Server und Ihrem OPC UA Client erhaltenes "ConnectionHandle".


VAR
   bMqttPublishString         : BOOL;
   OutputDataMqttPublishString       : ST_VoidOutputData;
   hrMqttPublishString         : HRESULT;

   fbMqtt  : FB_Mqtt;
END_VAR

hrMqttPublishString := fbMqtt.PublishString(
     bExecute        := bMqttPublishString, 
     ConnectionHandle      := depragSmartConnection.ConnectionHandle, 
     sTopic         := 'TestSmartTwinCat', 
     sMessageData       := 'TestSmartTwinCatContent', 
     QualityOfServiceLevel     := MqttQualityOfServiceLevel.ExactlyOnce, 
     bWithRetainFlag       := FALSE, 
     sClientId        := '0', 
     OutputData        => OutputDataMqttPublishString);
IF hrMqttPublishString <> S_FALSE THEN 
    bMqttPublishString := FALSE;
END_IF
                                                    

Für Beispiele und Erklärungen bezüglich der Aufrufe von Knoten via Siemens TIA Portal sei an dieser Stelle auf den Unterpunkt "Siemens TIA Portal" in Abschnitt "Erste Schritte" verwiesen.