ADS Write Assistant
Das ADS Write Assistant VI ist ebenso wie das ADS FlexDAQ ein LabVIEW™ Express VI, welches die Konfiguration von Übertragungsaufgaben vereinfacht. Mit dem ADS Write Assistant VI können Daten aus LabVIEW™ nach TwinCAT 3 geschrieben werden.
Das User-Interface des ADS Write Assistant VIs leitet Sie Schritt für Schritt durch die Konfiguration Ihrer Übertragungsaufgabe:
- Auswahl der zu schreibenden Datenpunkte (ADS-Symbole)
- Konfiguration der Loop-IDs
- Konfiguration von Start- und Endbedingung des Schreibvorgangs mit Hilfe des Übertragungsjob-Auswahl-Fensters
Nach dem Platzieren der ADS Write Assistant Instanz im LabVIEW™-Blockdiagramm oder per Doppelklick, öffnet sich das Konfigurationsfenster. Mit Hilfe der nachfolgend beschriebenen Auswahlfenster können die Konfigurationen vorgenommen werden. Nach Fertigstellung der Konfiguration erstellt die Instanz alle notwendigen Ressourcen für das Schreiben der Daten.
![]() | VI vor Nutzung des ADS Write Assistant VI speichern Das ADS Write Assistant VI speichert die Instanz-Konfiguration im Pfad des aktuellen Projekts. Daher ist es erforderlich, dass das Projekt zuvor gespeichert wurde. |
ADS Write Assistant VI beschleunigt öffnen
- Die Bibliothek muss vorkompiliert sein.
- 1. Öffnen Sie in den LabVIEW™ Einstellungen unter Tools > Advanced die Einstellungen für „Mass Compile“.
- 2. Wählen Sie den Ordner der Bibliothek des TwinCAT 3 Interfaces for LabVIEW™ aus, z. B. C:\Program Files\ National Instruments\LabVIEW 2024\user.lib\Beckhoff-LabVIEW-Interface.
- 3. Starten Sie „Mass Compile“.

Eingang/Ausgang | Bedeutung |
---|---|
[1] SumUp Handle | Das Handle auf den SumUp Writer |
[20] Handle | Das Handle auf den ADS-Client |
Symbol-Auswahl-Fenster
Das Symbol-Auswahl-Fenster beim ADS Write Assistant bietet die gleiche Funktionalität wie beim ADS FlexDAQ. Hier kann eine der Optionen ausgewählt werden, um eine neue Konfiguration zu starten oder die Einstellungen einer bestehenden Konfiguration zu übernehmen. Wenn Sie über Symbol Interface eine neue Konfiguration starten, gelangen Sie automatisch weiter zum nächsten Fenster.

Loop-ID-Fenster
In diesem Fenster wird den Symbolen eine eindeutige Loop-ID zugewiesen. Damit wird das Schreiben der Symbole auf verschiedene while-Schleifen verteilt. Wenn zwei Symbole die gleiche Loop-ID haben, haben beide Symbole die gleiche Schleife benutzt. Die Anzahl der Loop-IDs bestimmt die Anzahl der generierten while-Schleifen im LabVIEW™-Blockdiagramm.

Schreibvorgang-Konfigurator (Auswahl-Fenster)
In diesem Fenster kann die Start/Stopp-Bedingung für den Datentransport von LabVIEW™ nach TwinCAT 3 konfiguriert werden. Der Konfigurator verhält sich identisch zum ADS DAQ mit Ausnahme der Stopp-Bedingung.

Mit dem Bedienelement Stop Job konfigurieren Sie das Stoppen des Schreibvorgangs. Der Parameter Stop Condition beschreibt die Stopp-Bedingung.
- Die Optionen LabVIEW™ Abort und On Signal werden im ADS DAQ beschrieben.
- Duration: Wird Duration als Stopp-Bedingung gewählt, dann wird der Schreibvorgang nach einer Zeit bestimmt. Bei dieser Bedingung ist zusätzlich die Option „Transition Condition“ verfügbar. Damit kann die Schreibdauer durch einen Trigger beeinflusst werden. Das Bild unten zeigt die verschiedenen „Transition Condition“-Trigger.
- Single Trigger: Startet eine neue Schreibdauer nur, wenn kein anderer Schreibvorgang vorhanden ist.
- New Trigger: Startet immer einen neuen Schreibvorgang.
- Start-Stop Trigger: Startet einen Schreibvorgang, wenn kein anderer vorhanden ist, oder im Gegenteil, stoppt einen vorhandenen Schreibvorgang.

Automatisch generierter Code im Blockdiagramm
Nachfolgend werden exemplarisch zwei Varianten des automatisch generierten Codes erläutert.
Im ersten Beispiel wird das ADS Write Assistant VI mit Default-Einstellungen generiert, d. h. Start mit LabVIEW™ Run, Stopp mit LabVIEW™ Stop. Geschrieben wird ein ADS-Symbol MAIN.aSine. Ein Sinus-Signal, das von LabVIEW™ generiert wird und in die TwinCAT 3 Runtime übertragen wird.

- 1: Das ADS Writer SumUp Handle wird initialisiert und das Flag bAutosend? auf True gesetzt. Damit wird jedes neue Paket automatisch von LabVIEW™ zur TwinCAT 3 Runtime transportiert.
- 2: Vom ADS Write Assistant geht ein Handle auf die darunterliegenden Queue-Blöcke. Die Queue leitet jedes neue Datenpaket an den ADS Write Assistant weiter. Bis dahin beinhaltet das Datenpaket nur Rohdaten, die danach vom ADS Write Assistant automatisch mit dem TypeResolver in einen TwinCAT-3-Datentyp umgewandelt werden und dann mit dem ADS SumUp nach TwinCAT übertragen werden.
- 3a: Die Queue wird mit einem LabVIEW™ Variant als Datentyp initialisiert.
- 3b: While-Schleife mit Startbedingung „LabVIEW™ Run“ ohne Endbedingung.
- 3b.1: Der ADS Write Assistant generiert für jedes selektierte Symbol einen Ereignis-Case mit der Eigenschaft „Wertänderung“. Nur bei Wertänderungen werden diese dem SumUp Handle zur Verfügung gestellt. Das Bild unten zeigt ein Beispiel, wie die neuen Daten generiert werden können. Hier geht es um die sogenannten LabVIEW™-Block-Diagramm-Ereignisse.
- 4: Das ADS Symbol MAIN.aSine ist in diesem Fall einen LREAL Array von 20 Elementen. Das generierte Sinus-Signal beinhaltet daher auch nur 20 Datenpunkte.
- 3b.2: Enqueue-Element: Wartet auf neue Datenpakete und fügt jedes neues Datenpaket in die Warteschleife ein.
- 3c und 3d: Gibt den Queue-Speicher frei. Danach wird die Queue aus dem LabVIEW™-Speicher freigegeben. Optional kann der Nutzer nach diesen Schritten den ADS-Client-Handle aus dem Speicher freigeben.

Im zweiten Beispiel werden die Start-/Stopp-Bedingungen auf Trigger on LabVIEW™ Event gesetzt. Zusätzlich werden hier zwei Symbole mit dem SumUp Handle geschrieben: MAIN.aSquare und MAIN.aSine. Den beiden Symbolen ist die gleiche Loop-ID zugewiesen. Somit nutzen beide Symbole eine while-Schleife und dieselbe Ereignis-Struktur.

- Die bereits im ersten Beispiel beschrieben Blöcke 2, 3b, 3b.1, 3b.2, 3c und 3d bleiben in ihrer Funktion identisch.
- 1a: Der ADS Writer SumUp Handle wird initialisiert und das Flag bAutosend? auf False gesetzt. Das neue Paket muss explizit an TwinCAT 3 geschickt werden. Im Bespiel wird dies von dem separaten Event „Send SumUp“ gemacht.
- 1b: Es wird eine Logik erstellt, die bei einer boolschen Wertänderung ein Trigger-Event generiert. Die Wertänderung startet den Schreibvorgang.
- 1b.2: Ein Schreibvorgang wird mit Hilfe eines SumUp Handles gestartet.
- 3a: Die Queue wird mit einem LabVIEW™ Cluster als Datentyp mit den folgenden Member Variablen initialisiert:
- SymbolName: Identifiziert das zu schreibende Datenpaket.
- Write Package: Enthält das zu übertragende Datenpaket.