AddClient

TwinCAT
Netzwerk MQTT Client

ns=2;s=DEPRAG Smart/Network/MQTT/AddClient

Erstellt einen neuen, vollständig parametrierten MQTT Client. Der MQTT Client kann über einen nullbasierten Index aus der Liste ActiveClients abgerufen werden.

Parameter:

    BrokerPort
    Port des MQTT Brokers. Standardmäßig verwendet MQTT den Port 1833 für unverschlüsselte Verbindungen und den Port 8883 für verschlüsselte Verbindungen.
    Username
    Benutzername, mit dem sich beim angegebenen MQTT Broker authentifiziert wird.
    Password
    Passwort, mit dem sich beim angegebenen MQTT Broker authentifiziert wird.
    AcceptSelfSignedCertificates
    Legt fest, ob unsignierte Zertifikate akzeptiert werden. Wird dieser Wert auf ja gesetzt kann sich die Anwendung zu MQTT Brokern mit selbstsignierten Zertifikaten verbinden.
    EnableSsl
    Legt fest, ob die Verbindung zum MQTT Server über das SSL Protokoll durchgeführt wird.
    ConnectionTimeoutInMilliseconds
    Maximale Zeit in Millisekunden für den Verbindungsaufbau zum MQTT Server. Kann innerhalb des Zeitintervalls keine Verbindung aufgebaut werden wird ein Fehler ausgegeben.

Rückgabewert:

    AddClient
    Eine Variable vom Typ OpcMethodReturnValueInt32. In der Eigenschaft Result sind die befehlsspezifischen Rückgabewerte enthalten.
      Result
      Eindeutiger nullbasierter Index, mit dem der MQTT Client aus dem Array ActiveClients abgerufen werden kann.

Beispiele:

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

Beckhoff Parameter:

    bMqttAddClient
    Eine boolesche Variable, über welche die Ausführung des AddClient-Befehls getriggert werden kann.
    OutputDataMqttAddClient
    Eine Instanz der ST_Int32OutputData Struktur, in welche der Rückgabewert der AddClient-Methode geschrieben wird.
    hrMqttAddClient
    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.
    sBrokerUrl
    Eine String(255)-Variable, welche die IP oder DNS Adresse des MQTT Brokers darstellt, mit dem sich verbunden werden soll.
    nBrokerPort
    Eine DINT-Variable, welche den Port des MQTT Brokers darstellt. Standardmäßig verwendet MQTT den Port 1833 für unverschlüsselte Verbindungen und den Port 8883 für verschlüsselte Verbindungen.
    sUsername
    Eine String(255)-Variable, welche den Benutzernamen darstellt, mit dem sich bei dem angegebenen MQTT Broker authentifiziert wird.
    sPassword
    Eine String(255)-Variable, welche das Passwort darstellt, mit dem sich bei dem angegebenen MQTT Broker authentifiziert wird.
    bAcceptSelfSignedCertificates
    Eine boolesche Variable, über welche festgelegt wird ob selbstsignierte Zertifikate akzeptiert werden. Wird dieser Wert auf ja gesetzt, kann sich die Anwendung zu MQTT Brokern mit selbstsignierten Zertifikaten verbinden.
    bEnableSsl
    Eine boolesche Variable, über welche festgelegt wird, ob die Verbindung zum MQTT Broker über das SSL Protokoll durchgeführt wird.
    nConnectionTimeoutInMilliseconds
    Eine DINT-Variable, welche die maximale Zeit in Millisekunden für den Verbindungsaufbau zum MQTT Broker festlegt. Kann innerhalb des Zeitintervalls keine Verbindung aufgebaut werden wird ein Fehler ausgegeben.
    ConnectionHandle
    Beim Verbindungsaufbau zwischen DEPRAG Smart Server und Ihrem OPC UA Client erhaltenes "ConnectionHandle".


VAR
  bMqttAddClient          : BOOL;
  OutputDataMqttAddClient        : ST_Int32OutputData;
  hrMqttAddClient          : HRESULT;

  fbMqtt  : FB_Mqtt;
END_VAR

hrMqttAddClient := fbMqtt.AddClient(
     bExecute        := bMqttAddClient, 
     ConnectionHandle      := depragSmartConnection.ConnectionHandle, 
     sBrokerUrl        := '10.10.222.101', 
     nBrokerPort        := 8883, 
     sUsername        := 'default', 
     sPassword        := '0000', 
     bAcceptSelfSignedCertificates   := TRUE, 
     bEnableSsl        := TRUE, 
     nConnectionTimeoutInMilliseconds  := 5000, 
     OutputData        => OutputDataMqttAddClient);
IF hrMqttAddClient <> S_FALSE THEN 
    bMqttAddClient := 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.