ADS DAQ
Das ADS DAQ (Data Acquisition) VI ist ein LabVIEW™ Express VI zum einfachen Konfigurieren von Messaufgaben mit TwinCAT 3, d. h. mit diesem VI können Sie lesend auf TwinCAT-Laufzeiten zugreifen.
Das User-Interface des ADS DAQ VIs leitet Sie Schritt für Schritt durch die Konfiguration Ihrer Messaufgabe:
- Auswahl der zu lesenden Datenpunkte (ADS-Symbole)
- Konfiguration des Lese-Modus (ADS-Notification)
- Konfiguration des Typ-Generators
- Konfiguration von Start- und Endbedingung der Messaufgabe
Nach dem Platzieren der ADS DAQ 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 Lesen der Daten.
![]() | VI vor Nutzung des ADS DAQ VI speichern Das ADS DAQ VI speichert die Konfiguration einer Instanz im Pfad des aktuellen Projekts/VI. Daher ist es erforderlich, dass das Projekt/VI zuvor gespeichert wird. |
ADS DAQ 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“.

Ausgang | Bedeutung |
---|---|
[20] Handle | Handle auf den ADS-Client |
[25] Loaded Types | Ein Array von LabVIEW™ Enums:
|
[26] Selection | LabVIEW™-Cluster bestehend aus zwei Elementen:
|
![]() | Anzahl von Symbolen Aktuell unterstützt der ADS DAQ Block das Lesen von maximal 10 ADS-Symbole pro Instanz. Nutzen Sie mehrere Instanzen oder das Upgrade ADS FlexDAQ, wenn Sie mehr als 10 ADS-Symbole lesen möchten. |
![]() | Generierung von TwinCAT-3-Datentypen Um alle Notification Modi zu unterstützen, werden alle generierten Typen in Arrays umgewandelt. So werden Notifications Buffered ebenso wie Notifications Single in gleicher Art und Weise unterstützt. |
Symbol-Auswahl-Fenster
In diesem Fenster werden die ADS-Symbole selektiert, die mit der ADS DAQ Instanz gelesen werden sollen. Das Fenster bietet drei verschiedene Wege, um die ADS-Symbole auszuwählen:
- Symbol Interface: Öffnet ein zusätzlich graphisches User-Interface zum Browsen von ADS-Symbolen.
- Browsen Sie in die verbundenen Targets.
- Selektieren Sie die gewünschten ADS-Symbole und ziehen Sie diese per Drag-and-drop in das rechte Feld.
- Optional können Sie im rechten Feld die ausgewählten ADS-Symbole als Liste exportieren und als XML-Datei speichern.
- Symbol File: Öffnet ein LabVIEW™-Datei-Dialogfeld, um die ADS-Symbole anhand einer aus dem Symbol Interface exportierten XML-Datei einzulesen.
- Liest nur die Symbole ein, beinhaltet jedoch nicht alle weiteren Einstellungen des ADS DAQ VI aus den weiteren Konfigurationsansichten.
- Load Previous Configuration: Lädt die letzte Konfiguration (falls existent), mit der die ADS DAQ Instanz bereits konfiguriert wurde.
- Die Konfiguration öffnet sich immer als leere Konfiguration. Wenn Sie die existierende Konfiguration anpassen möchten, wählen Sie Load Previous Configuration.

Nach Auswahl der ADS-Symbole, wählen Sie Next.
Wählen Sie zu jeder Zeit im Dialog Finish, um die Konfiguration zu speichern und zu schließen.
Notification-Auswahl-Fenster
In diesem Fenster wird der Notification Mode bei einzelnen ausgewählten ADS-Symbolen spezifiziert. Der Notification Mode beschreibt auf einer Seite die Art und Weise des Lesens (single/buffered) und auf der anderen Seite das Darstellen der gelesenen Daten in LabVIEW™ (control/queue). Default-Einstellung ist Buffered TypeResolved Queued.
Folgende Tabelle beschreibt die unterschiedlichen Eigenschaften:
| Single TypeResolved | Buffered TypeResolved |
---|---|---|
Control (Nur empfehlenswert, wenn die Daten nicht verarbeitet oder gespeichert werden müssen.) | Die einzelnen Notifications werden direkt in einem LabVIEW™ Control dargestellt. | Die Notifications werden zuerst in eine Puffer-Zwischenschicht geschrieben und in den LabVIEW™-Prozess übergeben, wenn der Puffer gefüllt ist. Die Daten werden in einem LabVIEW™ Control dargestellt. |
Queued (Empfehlenswert, wenn Daten verarbeitet, gespeichert, … werden sollen.) | Die einzelnen Notifications werden direkt in eine LabVIEW™ Queue eingefügt. | Die Notifications werden zuerst in eine Puffer-Zwischenschicht geschrieben und in den LabVIEW™-Prozess übergeben, wenn der Puffer gefüllt ist. Die Daten werden in eine LabVIEW™ Queue eingefügt. |
Weitere Informationen zu Single- und Buffered-Mode, siehe Kommunikations-Modi und Ereignisgesteuertes Lesen.

Wählen Sie Modify, um das Symbol Interface zu öffnen und Änderungen an den zu lesenden ADS-Symbolen vorzunehmen.
Wählen Sie Next, um zur nächsten Konfigurationsseite zu gelangen.
Typ-Generation-Auswahl-Fenster
In diesem Fenster kann ausgewählt werden, ob der jeweilige Datentyp des zu lesenden ADS-Symbols als LabVIEW™-Konstante oder als Bedien-/Anzeigeelement generiert werden soll. Sowohl Konstanten als auch Bedien-/Anzeigeelemente werden im Blockdiagramm des VI automatisch generiert, wo ebenfalls die ADS DAQ Instanz liegt. Default-Einstellung ist Control/Indicator.

Mess-Job-Konfigurator
In diesem Fenster kann die ADS DAQ Instanz mit zusätzlichen Start-/Stop-/Aufnahme- Bedingungen konfiguriert werden.
Default-Einstellung ist bei Start: LabVIEW run und bei Stop: LabVIEW Abort, kein Record.

Start Job
Das Bedienelement Start Job konfiguriert das Starten des Lesevorgangs. Der Parameter Start Condition beschreibt die Art und Weise des Startens.
- LabVIEW™ Run: Die ADS-Notifications werden nach Starten des VI sowohl automatisch registriert als auch gestartet.
- On Signal: Die ADS-Notifications werden in diesem Fall nicht automatisch gestartet. Die ADS DAQ Instanz wartet auf einen bestimmten Trigger aus LabVIEW™ oder TwinCAT.
- Trigger on LabVIEW™ Event: Mit dieser Auswahl generiert die ADS DAQ Instanz eine separate Event-Logik, um die ADS-Notifications von LabVIEW™ ausgehend zu starten.
- TwinCAT-Signal: Die DAQ Instanz wird durch ein (zusätzliches) TwinCAT-Signal getriggert und startet daher die ADS-Notifications nicht automatisch. Die Schaltfläche Browse Target öffnet das Symbol Interface. Ziehen Sie ein ADS-Symbol nach rechts auf die „Lesen“-Fläche. Dabei sind alle Primärdatentypen erlaubt. Des Weiteren ist eine Signalbedingung zu definieren, auf die das ADS DAQ VI getriggert werden soll.
Die untenstehende Tabelle beschreibt den Übergang (Letzter Wert ➔ Neuer Wert) von verschiedenen TwinCAT-Typen mit der hier verwendeten Definition von Rising und Falling Edge.
TwinCAT-Typ | Rising Edge | Falling Edge | ||
---|---|---|---|---|
| Letzter Wert | Neuer Wert | Letzter Wert | Neuer Wert |
Boolescher Typ | 0 | 1 | 1 | 0 |
Numerischer ganzzahliger Typ (i8, i16, i32, i64, u8, u16, u32, u64) | < Threshold | = Threshold | > Threshold | = Threshold |
Numerischer rationaler Typ (float32, float64) Epsilon: 1.0 e-7 | < Threshold | = Threshold | > Threshold | = Threshold |
Stop Job
Das Bedienelement Stop Job konfiguriert das Stoppen von ADS-Notifications, also den Stopp des Lesevorgangs. Der Parameter Stop Condition beschreibt die Art und Weise des Stoppens.
- LabVIEW™ Abort: Die ADS-Notifications werden nach Stoppen des VIs automatisch unregistriert als auch gestoppt.
- Measurement Duration: Die ADS-Notifications stoppen automatisch nach Ablauf der Mess-Zeit.
- On Signal: Diese Option verhält sich identisch wie die Auswahl On Signal in Start Job (s.o.).
- Wählen Sie Copy from Start Signal, um die Start-Bedingung von Start- zu Stop Job zu kopieren (gilt nur für das TwinCAT-Signal).
Record Job
Die Aufnahme von ADS DAQ Messdaten kann mit dem Bedienelement Record Job konfiguriert werden. Nach der Konfiguration und dem Klicken von Finish, generiert die ADS DAQ Instanz einen zusätzlichen Block To TDMS, um die empfangenen Daten unter dem angegebenen Dateinamen und Pfad als LabVIEW™-TDMS-Datei zu speichern.

Wählen Sie Finish, um die Einstellungen zu speichern. Die automatische Code-Generierung für Ihre Konfiguration startet.
Automatisch generierter Code im Blockdiagramm
Nachfolgend werden exemplarisch zwei Varianten des automatisch generierten Codes erläutert.
Im ersten Beispiel wird das ADS DAQ VI mit Default-Einstellungen generiert, d. h. Buffered Type Resolved Queue, Control/Indicator, Start mit LabVIEW™ Run, Stop mit LabVIEW™ Stop. Gelesen wird ein ADS-Symbol MAIN.aBuffer.

- 1a: Von der Instanz des ADS DAQ VI geht ein Handle von Queue 1 auf die darunterliegenden Queue-Blöcke. Die Queue des ADS DAQ VI beinhaltet bereits Type-Resolved-Datenpakete. Jedes Datenpaket ist von der Größe LvBufferSize (vgl. Einstellungen in den Symbol Properties), da Buffered Type Resolved Queue konfiguriert wurde.
- 2a: Initialisierung der Queue mit einem LabVIEW™ Variant Array als Datentyp.
- 2b: While-Schleife mit Startbedingung „LabVIEW™ Run“ und Endbedingung „Timeout oder Fehler aufgetreten“.
- 2b.1: Dequeue-Element: Wartet auf empfangene Datenpakete mit spezifiziertem Timeout von 5 Sekunden (anpassbar).
- 2b.2: For-Schleife: Entnimmt die einzelnen Elemente des Variant Arrays und konvertiert den Datentyp in den entsprechenden LabVIEW™-Datentyp. Hier kann der Nutzer beispielsweise direkt auf den umgewandelten Typ zugreifen und damit weiterarbeiten.
- 2b.3: Überprüft den aktuellen Zustand der Queue, z. B., ob die Queue stetig wächst. Wenn dies der Fall ist, kommen die Daten schneller von ADS DAQ VI an als sie in den LabVIEW™-Datentyp konvertiert werden können. Optional kann der Nutzer hier ein Anzeigeelement oder Ähnliches einfügen, um die Queue zu überwachen.
- 2c: Gibt den Queue-Speicher frei. Danach wird die Queue aus dem LV-Speicher freigegeben. Optional kann der Nutzer nach diesen Schritten das ADS-Client-Handle aus dem Speicher freigeben.
Im zweiten Beispiel wird die Startbedingung von LabVIEW™-Run auf Trigger on LabVIEW™-Event geändert und das recording in eine TDMS-Datei aktiviert.

- Die bereits im ersten Beispiel beschriebenen Blöcke bleiben in ihrer Funktion identisch. Nur der Timeout wurde in diesem Fall zu -1 gesetzt (unendlich lange warten), da der Start der Messung durch LabVIEW™ getriggert wird.
- 2b.4: Der TDMS-Block wird automatisch generiert aufgrund der Einstellung, dass ein recording stattfinden soll. Der Nutzer muss die zu speichernden Daten manuell mit dem To Variant-Block verknüpfen. Sollten die empfangenen Daten einem LabVIEW™-Signal entsprechen, können diese vor dem To Variant in eine LabVIEW™-Waveform umgewandelt werden. Der Nutzer kann dazu die automatisch generierte Konstante dt nutzen, welche dem zeitlichen Abstand zweier Datenpunkte entspricht (Abtastperiodendauer).
- 3a: Die ADS Reader-Handle werden bei jeder neuen Konfiguration des ADS DAQ VI neu generiert. Die obsoleten Reader-Handle werden automatisch aus dem Speicher freigegeben.
- 3b: Es wird eine Logik erstellt, die bei einer boolschen Werteänderung ein Trigger-Event generiert. Dieses wird genutzt, um die ADS-Notifications zu starten.
- 3b.1: Startet die ADS-Notification für die angemeldeten ADS-Symbole.
Hinweise zum „To TDMS“ im Blockdiagramm
Der Block To TDMS ermöglicht das Speichern von ADS DAQ Instanz Daten in einer LabVIEW™-TDMS-Datei (Das NI-TDMS Dateiformat). Dieser Block wird von der ADS DAQ Instanz automatisch generiert, allerdings nur dann, wenn als Notification-Mode Queued gewählt wurde, vgl. ADS DAQ.
Das TDMS-Dateiformat bietet TDMS-Objekte und TDMS-Kanäle, um Daten bzw. Eigenschaften (Name, Datum, …) unter TDMS-Objekten hierarchisch zu ordnen. Mit den Eingängen Property-/Data Objects können sowohl Eigenschaften als auch Daten referenziert bzw. eingeordnet werden. Die Eingänge Property-/Data Values helfen dabei, Messwerte unter TDMS-Objekten und -Kanälen einzugeben.

Eingang/Ausgang | Bedeutung |
---|---|
[0] Path In | Der Pfad zur TDMS-Datei |
[1] Property Objects | Ein Array einer LabVIEW™-Zeichenkette:
Beispiel: Property Object[0]=ObjektABC/ChannelXYZ:Name,Author,Datum TDMS Objekt=ObjektABC TDMS Channel=ChannelXYZ Eingenschaft[0]=Name (Zeichenkette) Eingenschaft[1]=Author (Zeichenkette) Eingenschaft[2]=Datum (Zeitstempel) |
[2] Property Values | Ein Array von LabVIEW™ Variants:
|
[3] Transpose Data? | Flag zum Transponieren der eingegebenen 2D- der 3D-Arrays. |
[5] Data Objects | Ein Array einer LabVIEW™ Zeichenkette:
Für das Referenzieren wird das folgende Format genutzt:
Beispiel: Data Object[0]=ObjektABC/ChannelXYZ |
[7] Data Values | Ein Array von LabVIEW™ Variants mit folgenden unterstützten LabVIEW™-Typen:
|
[4] Path Out | Der Pfad der TDMS-Datei |
Folgende Grafik zeigt exemplarisch den To TDMS -Block im Einsatz.
