Neuparametrierung

In bestimmten Fällen kann eine Neuparametrierung des MQTT-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 MQTT-Brokers sein. Im Folgenden wird der notwendige Ablauf für eine Neuparametrierung eines verbundenen MQTT-Clients beschrieben.

Damit der TwinCAT-MQTT-Client mit einem Message Broker verbunden werden kann, muss im Hintergrund zyklisch die Execute-Methode aufgerufen werden (siehe FB_IotMqttClient). Bei einem Programmstart wird durch den Aufruf dieser Methode zunächst die Parametrierung der MQTT-Client-Instanz vorgenommen, nach deren Abschluss eine Verbindung zum Broker hergestellt wird. Um eine Neuparametrierung vorzunehmen, müssen der Aufruf der Execute-Methode negiert erfolgen, anschließend die Parameter neu gesetzt werden und der Aufruf dann wieder wie gewohnt stattfinden. Das folgende Code-Snippet zeigt eine einfache Neuparametrierung anhand eines Triggers.

fbMqttClient.Execute(bConnect);

IF bReset THEN
    bConnect:=FALSE;
    fbMqttClient.ClientId:= 'MyTcMqttClient35';
    fbMqttClient.sHostName:= '192.168.35.35';
    bReset:=FALSE;
ELSE
    bConnect:=TRUE;
END_IF

Durch die Trigger-Variable bReset wird der Aufruf der Execute-Methode negiert, sodass im Anschluss die Parameter für die Client-ID und den Hostnamen neu gesetzt werden können. Ist die Trigger-Variable wieder auf FALSE gesetzt, wird die Execute-Methode wieder zyklisch aufgerufen.