ADS-Read

Der ADS-Read- Block ist ein polymorphes VI und unterstützt folgende ADS-Kommunikations-Modi, um Daten aus TwinCAT auszulesen:

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

ADS-Read 1:

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:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol-Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol-Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[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

ADS-Read 2:

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:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol-Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol-Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[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)

ADS-Read 3:

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:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol-Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol-Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[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.

ADS-Read 4:

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:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol-Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol-Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[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.

ADS-Read 5:

Eingang/Ausgang

Bedeutung

[0] [4] Handle

Handle auf den ADS-Client

[1] ElapseTimeMs

Messdauer in Millisekunden:

  • ElapseTimeMs > 0: Die Notifications stoppen nach dem Ablauf der Zeit.
  • ElapseTimeMs = 0: Die Notifications müssen von außen gestoppt werden.

[5] [6] SymbolName

Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol Bezeichnung:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol-Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol-Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[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.

ADS-Read 6:

Eingang/Ausgang

Bedeutung

[0] [4] Handle

Handle auf den ADS-Client

[1] ElapseTimeMs

Messdauer in Millisekunden:

  • ElapseTimeMs > 0: Die Notifications stoppen nach dem Ablauf der Zeit.
  • ElapseTimeMs = 0: Die Notifications müssen von außen gestoppt werden.

[5] [6] SymbolName

Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol-Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[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.

ADS-Read 7:

Eingang/Ausgang

Bedeutung

[0] [4] Handle

Handle auf den ADS-Client

[1] ElapseTimeMs

Ein Array von U32 bestehend aus Messdauer in Millisekunden:

  • Element von ElapseTimeMs > 0: Die Notifications stoppen nach dem Ablauf der Zeit.
  • Element von ElapseTimeMs = 0: Die Notifications müssen von außen gestoppt werden.

[5] [6] Symbols

Ein Array von LabVIEW™-Zeichenketten, das die ADS-Symbole spezifiziert. Ein Symbol wird durch folgende Elemente benannt:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol-Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol-Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[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.

ADS-Read 8:

Eingang/Ausgang

Bedeutung

[0] [4] Handle

Handle auf den ADS-Client

[1] ElapseTimeMs

Messdauer in Millisekunden:

  • ElapseTimeMs > 0: Die Notifications stoppen nach dem Ablauf der Zeit.
  • ElapseTimeMs = 0: Die Notifications müssen von außen gestoppt werden.

[5] [6] SymbolName

Beschreibt ein ADS-Symbol bestehend aus AMS-Adresse und Symbol-Bezeichnung:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol-Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol-Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[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.

ADS-Read 9:

Eingang/Ausgang

Bedeutung

[0] [4] Handle

Handle auf den ADS-Client

[1] ElapseTimeMs

Ein Array von U32 bestehend aus Messdauer in Millisekunden:

  • Element von ElapseTimeMs > 0: Die Notifications stoppen nach dem Ablauf der Zeit.
  • Element von ElapseTimeMs = 0: Die Notifications müssen von außen gestoppt werden.

[5] [6] Symbols

Ein Array von LabVIEW™-Zeichenketten, das die ADS-Symbole spezifiziert. Ein Symbol wird durch folgende Elemente benannt:

  • AMS-Adresse: Ist eine Zusammenstellung von AMS NetId und AMS-Port.
  • Symbol-Bezeichnung: Symbol-Name oder Index-Group/Offset

Beispiele für den Symbol-Namen:

  • AMS-Adresse und Symbol Name: 127.0.0.0.1.1:851::MAIN.Var
  • AMS-Adresse und Index-Group/Offset: 127.0.0.0.1.1:851::0x1234/0x12345

[9] LVBuffer Handle

Ein Array von U32 bestehend aus Handle auf LVBuffer