TwinCAT ADS
Grundstruktur von ADS-Geräten und ADS-Symbolen
Automation Device Specification (ADS) bildet die Grundlage für das Interface for LabVIEW™. ADS beschreibt eine geräte- und feldbusunabhängige Schnittstelle und ermöglicht die Kommunikation zwischen ADS-Geräten.
Nachfolgend wird das ADS-Gerätekonzept sowie die Identifikation eines ADS-Geräts erläutert.
Die modulare Systemarchitektur von TwinCAT erlaubt es, die einzelnen Teile der Software (z. B. TwinCAT PLC, TwinCAT NC ...) als eigenständige Geräte zu betrachten: Für jede einzelne Aufgabe gibt es ein Softwaremodul. Die Server im System sind die ausführenden Geräte, welche bestimmte Dienste anbieten. Die Clients sind Programme, welche die Dienste der Server anfordern. Ein Client baut entsprechend initial eine Verbindung zum Server auf und fragt einen Dienst an: Zum Beispiel fragt er lesend den Wert einer Variablen an oder er fragt das Schreiben einer Variablen an.

Das Interface for LabVIEW™ stellt eine ADS-Client-Schnittstelle zur Verfügung, mit welcher ein Datenaustausch (schreibend und lesend) mit TwinCAT-Laufzeiten ermöglicht wird. Die TwinCAT-Laufzeit, bzw. ihre ADS-Geräte, stellen damit als ADS-Server ihre Dienste zur Verfügung und können aus LabVIEW™ heraus genutzt werden.
Der ADS-Datenaustausch zwischen ADS-Geräten findet über den ADS-Router statt. Wie im obigen Schaubild aufgezeigt, erfolgt der Datenaustausch von ADS-Geräten, welche auf demselben System realisiert sind, über den Systemspeicher. Sind zwei ADS-Geräte, z. B. LabVIEW™ und die TwinCAT-Laufzeit, auf unterschiedlichen Systemen vorhanden, kann eine Route zwischen zwei ADS-Routern erzeugt werden. Beim Erzeugen der ADS-Route kann der Transporttyp (i.d.R. TCP/IP) für die Kommunikation zwischen den beiden ADS-Routern definiert werden. Entsprechend identifiziert sich ein ADS-Gerät durch die AMS-NetId des ADS-Routers und durch eine Portnummer, welche dann das ADS-Gerät auf dem System spezifiziert. Beispielsweise ist der Port 851 der Default-Port für die erste PLC-Instanz in der TwinCAT-Laufzeit. ADS-Dienste eines ADS-Geräts werden dann durch zwei Parameter, den Index Group und den Index Offset, spezifiziert. Zum Beispiel ist eine SPS-Variable zum Lesen oder Schreiben unter einem bestimmten Index Group und Index Offset erreichbar.
Soll eine Anwendung erstellt werden, die auf mehreren Zielsystemen eingesetzt werden soll und bei der LabVIEWTM und TwinCAT auf demselben System laufen, kann die relative AMS NetId verwendet werden. Die relative AMS NetId deutet immer auf das lokale System. Hierfür wird 0.0.0.0.0.0 für die Adresse eingesetzt.
Zusammenfassung
- AMS NetId: Identifiziert den ADS-Router, also das System.
- ADS-Route: Spezifiziert die Verbindung zwischen zwei ADS-Routern.
- Port: Identifiziert ein ADS-Gerät.
- Index Group/Offset: Spezifiziert den ADS-Systemdienst, z. B. eine Variable zum Lesen und Schreiben.
Um die Adressierung von Variablen in einer TwinCAT-Laufzeit für den Anwender komfortabler zu gestalten, erstellt TwinCAT ADS-Symbole, welche z. B. mit dem Target Browser durchsucht werden können. Der Target Browser ist auch im Interface for LabVIEW™ im VI Symbol Interface integriert, sodass ADS-Symbole einfach und schnell selektiert werden können. Ein ADS-Symbol für eine Variable in TwinCAT enthält dann die oben genannten Informationen: AMS NetId, Port, Index Group und Index Offset und darüber hinaus die Bit Size sowie einen Symbolnamen und den Datentyp der Variablen.
Weitere Informationen zu ADS finden Sie unter folgenden Links:
- AMS NetId und Port: ADS device identification
- Index Group und Index Offset: Specification for ADS devices
- ADS-Routen
- Connecting Devices with same AMS NetId: AmsNAT
- Using MQTT and Message Broker with ADS: ADS-over-MQTT
- TLS encrypted ADS: Secure ADS
- Target Browser
- ADS Kommunikation aufzeichnen: ADS Monitor
Grundlegende ADS-Datenkommunikation
Grundlegend gibt es bei ADS drei unterschiedliche Möglichkeiten/Modi zur Datenkommunikation.
Synchrones Lesen oder Schreiben
- Der ADS-Client in LabVIEW™ wartet auf eine Antwort des ADS-Servers, bevor mit der Ausführung des Codes fortgefahren wird.
Asychrones Lesen oder Schreiben
- Der ADS-Client in LabVIEW™ sendet eine Lese- oder Schreibanfrage an den ADS Server, wartet aber nicht auf eine Antwort, sondern führt weitere Programmteile (z. B. Anfragen an andere Variablen) weiter aus.

Eventbasierte Kommunikation (nur Lesen)
- Es wird nur einmalig eine sogenannte ADS-Notification am Server angemeldet. Die Notification kann „on change“ oder „cyclic“ angemeldet werden. Nach der Anmeldung einer Notification am Server sendet dieser angeforderte Daten ohne weitere Anfragen des Clients an den Server.

Die VIs ADS Read und ADS Write sind polymorph. Der gewünschte Kommunikationsmodus, sync, async oder notification, kann dort selektiert werden. Die VIs bieten darüber hinaus noch Erweiterungen dieser Grundmodi an, die das LabVIEW™-seitige buffering von Daten und deren Weitergabe an den LabVIEW™-Prozess betreffen.