ADS-over-MQTT mit TLS und PSK

Neben der Verwendung von TLS mit Zertifikaten kann MQTT-over-ADS auch auf Basis von PSK (Pre Shared Key) konfiguriert werden. Für diesen Anwendungsfall soll ebenfalls ein kurzes Beispiel eingeführt werden, dass bei der Umsetzung unterstützen soll. Es sind folgende Schritte durchzuführen:

1. Zunächst erstellen Sie die Konfigurationsdatei des Mosquittos (mosquitto_PSK.conf) in dessen Installationsverzeichnis (Standardmäßig: C:\Program Files (x86)\mosquitto). Danach nehmen Sie in der Datei die folgenden Einträge vor:
auth_plugin C:\TwinCAT\AdsApi\TcMqttPlugin\TcMqttPlugin.dll
auth_opt_xml_file C:\TwinCAT\AdsApi\TcMqttPlugin\ACL.xml
port 8883
psk_hint something
use_identity_as_username true
2. Im nächsten Schritt führen Sie den Mosquitto Message Broker aus. Der entsprechende Befehl dazu lautet:
mosquitto –c mosquitto_PSK.conf –v
3. In die ACL.xml tragen Sie die Schlüssel für das TwinCAT XAR und XAE ein:
<?xml version="1.0" encoding="ISO-8859-1"?>
<TcMqttAclConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\TwinCAT\3.1\Config\Modules\TcMqttAclConfig.xsd">
<Psk>
    <Identity>TwinCAT_XAE</Identity>
    <Pwd>abcdef1234!</Pwd>
</Psk>
<Psk>
    <Identity>TwinCAT_XAR</Identity>
    <Pwd>ghijkl5678?</Pwd>
</Psk>
<Ams>
    <Topic>VirtualAmsNetwork1</Topic>
   <User>
       <Name>TwinCAT_XAE</Name>
   </User>
    <User>
       <Name>TwinCAT_XAR</Name>
       <Access>TwinCAT_XAE</Access>
   </User>
</Ams>
</TcMqttAclConfig>
4. Machen Sie die in der ACL.xml definierten Schlüssel ebenfalls dem TwinCAT XAR und XAE bekannt. Dazu passen Sie auf beiden Systemen die Routes.xml im Verzeichnis C:\TwinCAT\3.x\Target\Routes an bzw. erstellen Sie sie. Für das TwinCAT XAE sind die Einträge nachfolgend aufgeführt:
<?xml version="1.0" encoding="ISO-8859-1"?>
<TcConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2015/12/TcConfig">
<RemoteConnections>
    <Mqtt>
        <Address Port="8883">192.168.1.8</Address>
        <Topic>VirtualAmsNetwork1</Topic>
        <Psk>
            <Identity>TwinCAT_XAE</Identity>
            <Pwd>abcdef1234!</Pwd>
        </Psk>
    </Mqtt>
</RemoteConnections>
</TcConfig>
5. Die Einträge für das TwinCAT XAR sind fast identisch. Passen Sie lediglich die Werte der Felder <Identity> und <Pwd> entsprechend der Angaben in der ACL.xml an.
6. Nachdem auf beiden Systemen die Routes.xml fertig konfiguriert ist, initialisieren Sie jeweils den TwinCAT Router neu. Dazu schalten Sie vom RUN-Mode in den CONFIG-Mode oder vom CONFIG-Mode erneut in den CONFIG-Mode.
7. Abschließend prüfen Sie anhand der Ausgaben des Mosquitto Message Brokers, ob sich beide Systeme mit dem Broker verbinden können:
ADS-over-MQTT mit TLS und PSK 1:
Damit ist ADS-over-MQTT mit TLS auf Basis von PSK für TwinCAT XAE und XAR erfolgreich eingerichtet.