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.