Start

TwinCAT TIA
Netzwerk MQTT Client ActiveClients Ein Client

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

Parametriert den MQTT Client und stellt eine Verbindung zum angegebenen MQTT Broker her.

Parameter:

    PendingMessagesOverflowStrategy
    Legt das Verfahren fest, wenn die Anzahl der zu sendenden Nachrichten größer als der Puffer sind:
    DropOldestQueuedMessage(0): Verwerfe älteste Nachricht
    DropNewMessage(1): Verwerfe neuste Nachricht
    CleanSession
    Teilt dem Broker mit, ob bei Verbindungsunterbrechung Nachrichten für diesen Client zwischengespeichert werden. Die Nachrichten werden bei Herstellung der Verbindung übermittelt.
    WillMessage
    Setzt die Last Will Message für den MQTT Client. Diese Nachricht wird bei Abbruch des MQTT Clients allen anderen MQTT Clients vom Broker mitgeteilt.
    WillTopic
    Setzt das Last Will Topic für den MQTT Client. Diese Nachricht wird bei Abbruch des MQTT Clients allen anderen MQTT Clients vom Broker mitgeteilt.
    WillQualityOfService
    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.
    WillDelayIntervalInSeconds
    Zeitspanne in Sekunden, die nach einem Verbindungsverlust vom Broker gewartet wird, bis die Last Will Message gesendet wird.

Rückgabewert:

    Start
    Eine Variable vom Typ OpcMethodReturnValueVoid.

Beispiele:

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

Beckhoff Parameter:

    bMqttStart
    Eine boolesche Variable, über welche die Ausführung des Start-Befehls getriggert werden kann.
    OutputDataMqttStart
    Eine Instanz der ST_VoidOutputData Struktur, in welche der Rückgabewert der Start-Methode geschrieben wird.
    hrMqttStart
    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.
    PendingMessagesOverflowStrategy
    Ein Enum vom Typ "MqttPendingMessagesOverflowStrategy", welches festlegt, wie vorgegangen werden soll, wenn die Anzahl der zu sendenden Nachrichten größer als der Puffer ist.
    sClientName
    Eine String(255)-Variable, welche die Identifikation des MQTT Clients am Broker darstellt.
    bCleanSession
    Eine boolesche Variable,welche festlegt, ob der Broker bei Verbindungsverlust des MQTT Clients übermittelte Nachrichten von anderen Clients zwischenspeichert (Parameter = False) oder sie zwischenspeichert und nachträglich zustellt.
    ProtocolVersion
    Ein Enum vom Typ "MqttProtocolVersionSmart", welches die zu verwendende MQTT Protokoll Version festlegt.
    nKeepAlivePeriodInSeconds
    Eine DINT-Variable, welche das Zeitintervall in Sekunden definiert, nach dem eine IsAlive-Nachricht an den Broker gesendet werden soll.
    sWillMessage
    Eine String(255)-Variable, welche die Last Will Message für den MQTT Client darstellt.
    sWillTopic
    Eine String(255)-Variable, welche das Last Will Topic für den MQTT Client darstellt.
    WillQualityOfService
    Ein Enum vom Typ "MqttQualityOfServiceLevel", welches das Quality of Service Level der Übertragung festlegt.
    nWillDelayIntervalInSeconds
    Eine DINT-Variable, welche die Zeitspanne in Sekunden festlegt, die nach einem Verbindungsverlust vom Broker gewartet wird, bis die Last Will Message gesendet wird.
    bIgnoreCertificateChainErrors
    Eine boolesche Variable, welche festlegt, ob Fehler in der Zertifikatskette ignoriert werden sollen.
    bIgnoreCertificateRevocationErrors
    Eine boolesche Variable, welche festlegt, ob Fehler von der Zertifikatssperrliste ignoriert werden sollen.
    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
   bMqttStart           : BOOL;
   OutputDataMqttStart         : ST_VoidOutputData;
   hrMqttStart           : HRESULT;

   fbMqtt  : FB_Mqtt;
END_VAR

hrMqttStart := fbMqtt.Start(
     bExecute       := bMqttStart, 
     ConnectionHandle     := depragSmartConnection.ConnectionHandle, 
     PendingMessagesOverflowStrategy  := MqttPendingMessagesOverflowStrategy.DropOldestQueuedMessage, 
     sClientName       := 'SmartTest', 
     bCleanSession      := FALSE, 
     ProtocolVersion      := MqttProtocolVersionSmart.V311, 
     nKeepAlivePeriodInSeconds   := 5, 
     sWillMessage      := 'WillMessage', 
     sWillTopic       := 'WillTopic', 
     WillQualityOfService    := MqttQualityOfServiceLevel.ExactlyOnce, 
     nWillDelayIntervalInSeconds   := 5, 
     bIgnoreCertificateChainErrors  := TRUE, 
     bIgnoreCertificateRevocationErrors := TRUE, 
     sClientId       := '0', 
     OutputData       => OutputDataMqttStart);
IF hrMqttStart <> S_FALSE THEN 
    bMqttStart := 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.