Neuparametrierung

In bestimmten Fällen kann eine Neuparametrierung des HTTP-Clients während des laufenden Betriebes durch einen Online-Change notwendig sein. Dabei kann diese Neuparametrierung entweder automatisch im Programmablauf erfolgen oder bei Bedarf manuell getriggert werden. Dies ist aber von der Implementierung abhängig.

Beispielhafte Anwendungsfälle für eine Neuparametrierung können der Austausch eines in Kürze ablaufenden Tokens, zu erneuernde Zertifikate oder eine geänderte IP-Adresse des HTTP-Servers sein. Im Folgenden wird der notwendige Ablauf für eine Neuparametrierung eines bereits parametrierten HTTP-Clients beschrieben.

Für die zyklische Hintergrundkommunikation eines HTTP-Client-Bausteins mit dem TwinCAT-Treiber muss im Hintergrund zyklisch die Execute-Methode aufgerufen werden (siehe FB_IotHttpClient). Bei einem Programmstart wird durch den Aufruf dieser Methode zunächst die Parametrierung der HTTP-Client-Instanz vorgenommen, nach deren Abschluss das Senden von HTTP-Requests möglich ist. Der Abschluss dieser Parametrierung kann durch die Variable bConfigured erkannt werden. Sobald die Variable den Wert TRUE hat, ist der HTTP-Client vollständig konfiguriert.

Um eine Neuparametrierung vorzunehmen, muss der Aufruf der Execute-Methode ausgesetzt und die Disconnect-Methode aufgerufen werden. Dabei ist es wichtig zu beachten, dass zum Zeitpunkt des Aufrufs keine HTTP-Requests mehr abgesendet werden. Durch den Aufruf der Disconnect-Methode wird bConfigured auf FALSE gesetzt. Anschließend werden die Parameter neu gesetzt und die Execute-Methode dann wieder wie gewohnt aufgerufen. Das folgende Code-Snippet zeigt eine einfache Neuparametrierung anhand eines Triggers.

IF bReset THEN
    fbHttpClient.Disconnect();
    IF fbHttpClient.bConfigured=FALSE THEN
        fbHttpClient.sHostName:='postman-echo.com';
        fbHttpClient.stTLS.sCA:='C:\TwinCAT\3.1\Config\Certificates\caCERT.cer';
        bReset:=FALSE;
    END_IF
ELSE
    fbHttpClient.Execute();
END_IF

Durch die Trigger-Variable bReset wird der Aufruf der Execute-Methode ausgesetzt und die Disconnect-Methode aufgerufen. Sobald bConfigured am HTTP-Client-Baustein auf FALSE gesetzt ist, werden die Parameter für den Hostnamen und das CA-Zertifikat neu gesetzt. Anschließend wird bReset wieder zurückgesetzt und somit die Excute-Methode wieder aufgerufen.