Aktivieren/Deaktivieren
Sie können eine ADS-over-MQTT Route zur Laufzeit aktivieren oder deaktivieren, ohne das TwinCAT-System neu starten zu müssen. Dies erlaubt es Ihnen zum Beispiel, die Route nur im Servicefall zu aktivieren und diese Funktion auf einen Schlüsselschalter zu legen oder mit Benutzereingaben über das HMI zu verknüpfen.
Die Aktivierung/Deaktivierung erfolgt über ein ADS-Interface im TwinCAT System Service. Über ein spezielles Attribut in der Routen-Konfigurationsdatei können Sie einen Default-Status festlegen, welchen die Route nach einem TwinCAT-Start haben soll.
Routen-Konfigurationsdatei
In der Konfigurationsdatei einer ADS-over-MQTT Route können Sie einen Default-Status angeben, welchen die Route nach einem TwinCAT-Start haben soll. Dieses Attribut („Disabled“) wird am <Mqtt> Knoten angegeben. Bei Belegung mit dem Wert „true“, wird die ADS-over-MQTT Route nach dem Start von TwinCAT nicht automatisch aufgebaut und muss über das ADS-Interface etabliert werden.
<?xml version="1.0"?>
<TcConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2015/12/TcConfig">
<RemoteConnections>
<Mqtt Disabled="true">
<Name>MyBroker</Name>
<Address Port="1883">myMessageBrokerAddress</Address>
<Topic>VirtualAmsNetwork1</Topic>
</Mqtt>
</RemoteConnections>
</TcConfig>
ADS-Interface
Das ADS-Interface ist wie folgt definiert.
ADS-Kommando: AdsWriteRequest
ADS-Port: 10000
IndexGroup: 808
IndexOffset: siehe unten
Data: Identifizierung der Route, siehe unten
Der IndexOffset gibt hierbei an, ob Sie eine Route permanent oder temporär aktivieren/deaktivieren möchten. „Permanent“ bedeutet in diesem Fall, dass die Aktivierung/Deaktivierung auch nach einem TwinCAT-Neustart erhalten bleibt. Die folgenden Optionen stehen zur Verfügung:
IndexOffset | Name | Beschreibung |
---|---|---|
1 | ADS_ROUTE_DISABLE | Deaktiviert die Route permanent. |
2 | ADS_ROUTE_ENABLE | Aktiviert die Route permanent. |
3 | ADS_ROUTE_DISABLE_TMP | Deaktiviert die Route temporär. |
4 | ADS_ROUTE_ENABLE_TMP | Aktiviert die Route temporär. |
Der Data-Bereich des AdsWriteRequests gibt an, welche ADS-over-MQTT Route angesprochen werden soll. Dies erfolgt über Definition in einem String. Das Format ist hierbei wie folgt und entspricht einer Zusammensetzung aus dem <Address> und <Topic> Knoten der Konfigurationsdatei. Das Schlüsselwort „MQTT“ ist hierbei fix.
MQTT:<Address>:<Topic>
Alternativ können Sie auch die Konfigurationsdatei um einen <Name> Knoten erweitern, welchen Sie dann zur Referenzierung verwenden. Der hier verwendete Name muss eindeutig über alle ADS-Routen hinweg sein. In dem obigen Beispiel würden Sie dann folgenden String im Data-Bereich des AdsWriteRequests verwenden:
MQTT:MyBroker
SPS-Beispiel
Ein entsprechendes Beispiel steht als Download zur Verfügung.