ADS-Read
Der ADS-Read- Block ist ein polymorphes VI und unterstützt folgende ADS-Kommunikations-Modi, um Daten aus TwinCAT auszulesen:
- Sync Single
- Async Single
- Noti. Single
- Noti. Buffered
- E-Noti. Sinlge
- E-Noti Buffered
- E-Noti. Multiple Symbols
- LVB-Noti. Single Symbol
- LVB-Noti. Multiple Symbols
Alle Modi nutzen im Hintergrund die Low-Level Read-Blöcke, um:
- 1. Den ADS Reader zu initialisieren.
- 2. Die ADS Anfrage zu schicken.
- 3. Auf Antwort zu warten und
- 4. abschließend den Reader aus dem Speicher freizugeben.
Der Abschnitt Kommunikations-Modi bietet weiterführende Informationen sowie praktische Anwendungsempfehlungen. Im Kapitel Beispiele finden Sie exemplarische Umsetzungen in LabVIEW™.
Je nach ausgewähltem Kommunikations-Modus werden die im Symbol Interface konfigurierten Parameter genutzt oder bleiben ungenutzt. Die jeweils relevanten Parameter werden im Folgenden benannt.
Sync Single
In dieser Betriebsart des ADS Read.vi sendet der ADS-Client (LabVIEW™) eine Anfrage an den ADS-Server (TwinCAT) und wartet im Programmablauf auf eine Antwort des Servers.
Relevanter Parameter: Timeout

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[5] [6] SymbolName | Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:
Beispiele für den Symbol-Namen:
|
[8] Read status? | Lese-Status |
[10] Ads Read Data | ADS-Rohdaten |
Async Single
In dieser Betriebsart des ADS Read.vi sendet der ADS-Client (LabVIEW™) eine Anfrage an den ADS-Server (TwinCAT) und wartet im Programmablauf nicht auf eine Antwort des Servers.
Relevanter Parameter: Timeout

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[5] [6] SymbolName | Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:
Beispiele für den Symbol-Namen:
|
[8] Read Status | Lese-Status |
[10] ReadHdl | Handle auf den ADS-Reader |
Noti. Single
In dieser Betriebsart des ADS Read.vi werden ADS-Notifications auf die betreffenden ADS-Symbole in TwinCAT registriert. Es ist nur eine Registrierung „on change“ möglich. Sobald die erste „on change“-Benachrichtigung in LabVIEW™ eingeht, wird die ADS-Notification am ADS-Server wieder abgemeldet.
Relevante Parameter: Timeout, Transmode (= on change)

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[5] [6] SymbolName | Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:
Beispiele für den Symbol-Namen:
|
[7] Send | Send Flag, TRUE registriert die ADS-Notification |
[8] Read Status | Lese-Status |
[10] Ads Read Data | ADS-Rohdaten (Array aus zwei Einträgen, vorheriger Wert und aktueller Wert) |
Noti. Buffered
In diesem Kommunikations-Modus des ADS Read.vi werden ADS-Notifications auf den betreffenden ADS-Symbolen in TwinCAT registriert. Der ADS-Client in LabVIEW™ nutzt zudem einen Pufferspeicher, welcher erst vollständig mit Rückmeldungen aus TwinCAT gefüllt wird, bevor der gesamte Pufferspeicher an LabVIEW™ übergeben wird. Nach Übergabe der gepufferten Daten an LabVIEW™ wird die ADS-Notification vom Server wieder abgemeldet. Es werden sowohl ADS-Notifications “on change” sowie “cyclic” unterstützt.
Relevante Parameter: Timeout, Transmode, SampleTime, LVBufferSize, TCBufferSize
Bei Transmode = “on change” ist die SampleTime sowie die TCBufferSize nicht relevant.

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[5] [6] SymbolName | Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:
Beispiele für den Symbol-Namen:
|
[7] Send | Send Flag, TRUE registriert die ADS-Notification |
[8] Read Status | Lese-Status |
[10] Ads Read Data | Gepufferte ADS-Rohdaten |
E-Noti. Single
In dieser Betriebsart des ADS Read.vi werden ADS-Notifications auf den betreffenden ADS-Symbolen in TwinCAT registriert und danach kontinuierlich als LabVIEW™-Event an LabVIEW™ übertragen. Die ADS-Notification meldet sich nach einer definierten Zeit, wenn ElapseTimeMs größer Null ist, oder bleibt bestehen, bis sie aktiv abgemeldet wird. Für die Verwendung von user events in LabVIEW™, siehe Dokumentation von LabVIEW™. Im Gegensatz zu E-Noti. Buffered (siehe unten) wird hier kein LabVIEW™-seitiger Pufferspeicher genutzt.
Relevante Parameter: Timeout, Transmode, SampleTime, TCBufferSize
Bei Transmode = “on change” ist die SampleTime sowie die TCBufferSize nicht relevant.

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[1] ElapseTimeMs | Messdauer in Millisekunden:
|
[5] [6] SymbolName | Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:
Beispiele für den Symbol-Namen:
|
[7] Start Notifications | Send Flag, TRUE startet die ADS-Notification |
[9] Noti. E-Single Event Ref | Referenz auf user event |
E-Noti Buffered
In dieser Betriebsart des ADS Read.vi werden ADS-Notifications auf den betreffenden ADS-Symbolen in TwinCAT registriert und danach kontinuierlich als LabVIEW™-Event an LabVIEW™ übertragen. Die ADS-Notification meldet sich nach einer definierten Zeit, wenn ElapseTimeMs größer Null ist, oder bleibt bestehen, bis sie aktiv abgemeldet wird. Für die Verwendung von user events in LabVIEW™, siehe Dokumentation von LabVIEW™. Im Gegensatz zu E-Noti. Single (siehe oben) wird hier ein LabVIEW™-seitiger Pufferspeicher der Größe LVBufferSize verwendet. Nachdem der Puffer vollständig gefüllt ist, werden die gesammelten Daten per Event an LabVIEW™ übergeben.
Relevante Parameter: Timeout, Transmode, SampleTime, TCBufferSize, LVBufferSize
Bei Transmode = “on change” ist die SampleTime sowie die TCBufferSize nicht relevant.

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[1] ElapseTimeMs | Messdauer in Millisekunden:
|
[5] [6] SymbolName | Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:
Beispiele für den Symbol-Namen:
|
[7] Start Notifications | Send Flag, TRUE startet die ADS-Notification |
[9] Noti. E-Single Event Ref | Referenz auf user event |
E-Noti. Multiple Symbols
Diese Betriebsart des ADS Read.vi funktioniert wie E-Noti. Buffered, mit der Ausnahme, dass dieses VI für mehrere ADS-Symbole gleichzeitig genutzt werden kann.
Relevante Parameter: Timeout, Transmode, SampleTime, TCBufferSize, LVBufferSize
Bei Transmode = “on change” ist die SampleTime sowie die TCBufferSize nicht relevant.

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[1] ElapseTimeMs | Ein Array von U32 bestehend aus Messdauer in Millisekunden:
|
[5] [6] Symbols | Ein Array von LabVIEW™-Zeichenketten, das die ADS-Symbole spezifiziert. Ein Symbol wird durch folgende Elemente benannt:
Beispiele für den Symbol-Namen:
|
[9] Noti. E-Buffered Event Refs | Ein Array von Referenzen auf user event |
LVB-Noti. Single Symbol
Diese Betriebsart des ADS Read.vi funktioniert wie E-Noti. Buffered, mit der Ausnahme, dass dieses VI statt über LabVIEW™-Events einen direkten Zugriff auf LVBuffer ermöglicht. Infolgedessen werden auch keine LabVIEW™-Events benötigt, um die Notifications zu lesen.
Relevante Parameter: Timeout, Transmode, SampleTime, LVBufferSize, TCBufferSize
Bei Transmode = “on change” ist die SampleTime sowie die TCBufferSize nicht relevant.

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[1] ElapseTimeMs | Ein Array von U32 bestehend aus Messdauer in Millisekunden:
|
[5] [6] SymbolName | Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:
Beispiele für den Symbol-Namen:
|
[9] LVBuffer Handle | Ein Array von U32 bestehend aus Handle auf LVBuffer |
LVB-Noti. Multiple Symbols
Diese Betriebsart des ADS Read.vi funktioniert genau wie LVB-Noti. Single Symbol, mit dem Unterschied, dass dieses VI für mehrere ADS-Symbole gleichzeitig genutzt werden kann.
Relevante Parameter: Timeout, Transmode, SampleTime, LVBufferSize, TCBufferSize
Bei Transmode = “on change” ist die SampleTime sowie die TCBufferSize nicht relevant.

Eingang/Ausgang | Bedeutung |
|---|---|
[0] [4] Handle | Handle auf den ADS-Client |
[1] ElapseTimeMs | Ein Array von U32 bestehend aus Messdauer in Millisekunden:
|
[5] [6] Symbols | Ein Array von LabVIEW™-Zeichenketten, das die ADS-Symbole spezifiziert. Ein Symbol wird durch folgende Elemente benannt:
Beispiele für den Symbol-Namen:
|
[9] LVBuffer Handle | Ein Array von U32 bestehend aus Handle auf LVBuffer |