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 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 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 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 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 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] Send | Send Flag, TRUE startet die ADS-Notification |
[9] user event | Referenz auf user event |
E-Noti Buffered
In dieser Betriebsart 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] Send | Send Flag, TRUE startet die ADS-Notification |
[9] user event | Referenz auf user event |
E-Noti. Multiple Symbols
Diese Betriebsart 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 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 | 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 | Handle auf den LVBuffer |
LVB-Noti. Multiple Symbols
Diese Betriebsart 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 |