Zugriff über MQTT
Wenn der Zugriff auf das JSON Data Interface über MQTT erfolgen soll, muss die Verbindung vom TwinCAT System Service mit einem MQTT-Broker konfiguriert werden. Dafür muss die StaticRoutes.xml bearbeitet werden. Diese befindet sich auf einem TwinCAT-System hinter folgendem Pfaden:
Windows: C:\TwinCAT\3.1\Target.
TC/BSD: /usr/local/etc/TwinCAT/3.1/Target
Setzen der Einstellungen ohne TLS
<?xml version="1.0" encoding="UTF-8"?>
<TcConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RemoteConnections>
<Json>
<Name>SampleConnection</Name>
<Address>18.157.241.86</Address>
<Topic>topic</Topic>
</Json>
</RemoteConnections>
</TcConfig>
Für das Setzen der Einstellungen ohne TLS muss der StaticRoutes.xml eine RemoteConnection vom Typ Json hinzugefügt werden. Innerhalb dieser RemoteConnection werden dann ein Name für die Verbindung, die IP-Adresse des MQTT-Brokers und das Haupttopic angegeben.
Setzen der Einstellungen mit Zertifikaten
<?xml version="1.0" encoding="UTF-8"?>
<TcConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RemoteConnections>
<Json>
<Name>SampleConnection</Name>
<Address>18.157.241.86</Address>
<Topic>topic</Topic>
<Tls>
<Ca>C:\Users\Administrator\Certificate\rootCA.pem</Ca>
<Cert>C:\Users\Administrator\Certificate\TF6020.pem</Cert>
<Key>C:\Users\Administrator\Certificate\TF6020.key</Key>
<Crl>C:\Users\Administrator\Certificate\SampleCRL.der</Crl>
</Tls>
</Json>
</RemoteConnections>
</TcConfig>
Wenn TLS verwendet werden soll, gibt es zusätzlich die Möglichkeit, Zertifikate zu referenzieren. Das CA-Zertifikat, das Client-Zertifikat und der private Schlüssel des Clients können entweder DER- oder PEM-codiert oder mittels eines Dateipfads angegeben werden. Im gleichen Format kann auch eine Certificate Revocation List (CRL) angegeben werden.
Setzen von Benutzernamen und Passwort
<?xml version="1.0" encoding="UTF-8"?>
<TcConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RemoteConnections>
<Json>
<Name>SampleConnection</Name>
<Address>18.157.241.86</Address>
<Topic>topic</Topic>
<User>Beckhoff</User>
<Pwd>8c3nfd3"!4c</Pwd>
<Tls>
<Ca>C:\Users\Administrator\Certificate\rootCA.pem</Ca>
<Cert>C:\Users\Administrator\Certificate\TF6020.pem</Cert>
<Key>C:\Users\Administrator\Certificate\TF6020.key</Key>
<Crl>C:\Users\Administrator\Certificate\SampleCRL.der</Crl>
</Tls>
</Json>
</RemoteConnections>
</TcConfig>
Wird der Zugriff auf einen Broker verwendet, der keine anonymen Zugriffe zulässt, wird die Konfiguration von Benutzernamen und Passwort nötig. Dazu werden Benutzername und Passwort an den passenden Stellen in der Konfigurationsdatei hinterlegt.