Funktionsweise

Die Funktionsweise von AmsNAT soll anhand eines typischen Anwendungsfalls erläutert werden. In dem Anwendungsfall existieren ein TwinCAT-Engineering-System und zwei TwinCAT-Runtimes mit gleicher AmsNetId und IP-Adresse. Die Konfiguration ist in Abbildung 3 dargestellt. Von dem Engineering-System soll ein AdsRead-Befehl an die PLC 1 gesendet werden, von der eine entsprechende Antwort erwartet wird. Da beide Runtimes eine identische IP-Adresse besitzen, werden zusätzlich zwei IP NATs verwendet. Ihre Aufgabe ist es, eine eindeutige Adressierung zu realisieren. Dazu werden je nach Kommunikationsrichtung die ersten drei Stellen der lokalen/globalen IP-Adresse durch die ersten drei Stellen der globalen/lokalen IP-Adresse ersetzt.

Im ersten Schritt des Anwendungsbeispiels sendet das Engineering-System einen AdsRead-Befehl an die PLC 1. Da es sich bei dieser AmsNetId um eine virtuelle handelt, ersetzt der TwinCAT-System-Service mithilfe seiner Routing-Tabelle diese durch die Remote-AmsNetId 5.19.8.122.1.1. Dies ist die real auf dem System vorhandene AmsNetId. Sie wird in das Feld "AmsNetId Target" des AMS-Pakets eingetragen.

Funktionsweise 1:
Ablauf für das Senden eines AdsRead-Befehls unter Verwendung von AmsNAT

Der TwinCAT-System-Service von PLC 1 leitet das AMS-Paket unverändert weiter. Die PLC 1 führt den AdsRead-Befehl aus und sendet anschließend die entsprechende Rückantwort an das Engineering-System. Den Ablauf der Kommunikation für die Rückantwort zeigt Abbildung 4.

Funktionsweise 2:
Ablauf für das Senden der Rückantwort zum AdsRead-Befehl

Bei der Rückantwort leitet zunächst der TwinCAT-System-Service von PLC 1 das AMS-Paket unverändert weiter. Anschließend erreicht es den TwinCAT-System-Service vom Engineering System. Da in dem Feld "AmsNetId Source" des AMS-Pakets die reale AmsNetId von PLC 1 eingetragen ist, muss diese anhand der Routing-Tabelle durch die virtuelle AmsNetId ersetzt werden. Danach kann das Engineering-System die Rückantwort eindeutig zuordnen und verarbeiten.

Bei Verwendung der AmsNAT-Funktion werden die gesendeten Daten nicht verändert, lediglich der AMS-Header. Daher ist darauf zu achten, dass wenn Konfigurationsdaten die AmsNetId enthalten, dies dazu führen kann, dass die virtuelle AmsNetId verwendet wird. Eine Möglichkeit für das Engineering von I/O Devices ist die Verwendung von relativen AmsNetIds. Hier werden ausschließlich die letzten beiden Stellen der AmsNetId berücksichtigt und die ersten vier Stellen werden nicht betrachtet.