SubscribeFullyParameterized

TwinCAT TIA
Netzwerk MQTT Client ActiveClients Ein Client

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

Abonniert ein MQTT Topic vom MQTT Broker. Die Methode erlaubt alle Eigenschaften eines MQTT Abonnements zu setzen.

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.
    NoLocal
    Legt fest, ob der Subscriber seine eigens gepublishten Nachrichten empfängt.
    RetainHandling
    Legt das Retain Handling fest:
    SendAtSubscribe(0): Sendet bei der Subscribtion
    SendAtSubscribeIfNewSubscriptionOnly(1): Sendet bei der Subscribtion (nur bei neuer Subscribtion)
    DoNotSendOnSubscribe(2): Sendet nicht bei der Subscribtion

Rückgabewert:

Beispiele:

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

Beckhoff Parameter:

    bMqttSubscribeFullyParameterized
    Eine boolesche Variable, über welche die Ausführung des SubscribeFullyParameterized-Befehls getriggert werden kann.
    OutputDataMqttSubscribeFullyParameterized
    Eine Instanz der ST_VoidOutputData Struktur, in welche der Rückgabewert der SubscribeFullyParameterized-Methode geschrieben wird.
    hrMqttSubscribeFullyParameterized
    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 zu abonnierende Topic spezifiziert.
    QualityOfServiceLevel
    Ein Enum vom Typ "MqttQualityOfServiceLevel", welches das Quality of Service Level der Übertragung festlegt.
    bNoLocal
    Eine boolesche Variable, ob der Subscriber seine eigens gepublishten Nachrichten empfängt.
    bRetainAsPublished
    Eine boolesche Variable, ob Nachrichten als gepublished beibehalten werden.
    RetainHandling
    Ein Enum vom Typ "MqttRetainHandling", welches das Retain Handling festlegt.
    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
   bMqttSubscribeFullyParameterized     : BOOL;
   OutputDataMqttSubscribeFullyParameterized   : ST_VoidOutputData;
   hrMqttSubscribeFullyParameterized     : HRESULT;

   fbMqtt  : FB_Mqtt;
END_VAR

hrMqttSubscribeFullyParameterized := fbMqtt.SubscribeFullyParameterized(
     bExecute    := bMqttSubscribeFullyParameterized, 
     ConnectionHandle  := depragSmartConnection.ConnectionHandle, 
     sTopic     := 'testSmart/test', 
     QualityOfServiceLevel := MqttQualityOfServiceLevel.ExactlyOnce, 
     bNoLocal    := FALSE, 
     bRetainAsPublished  := FALSE, 
     RetainHandling   := MqttRetainHandling.DoNotSendOnSubscribe, 
     sClientId    := '0', 
     OutputData    => OutputDataMqttSubscribeWithQualityOfServiceLevel);
IF hrMqttSubscribeFullyParameterized <> S_FALSE THEN 
    bMqttSubscribeFullyParameterized := 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.