19.01.2016, 15:13
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2016 15:30 von m.werle.)
|
|
|
19.01.2016, 15:37
|
m.werle
LVF-Grünschnabel
Beiträge: 40
Registriert seit: Sep 2015
2010
2015
EN
Deutschland
|
RE: Geschwindigkeitsproblem, VISA Kommunikation mit Messbox U2351A Keysight
Also...
zwei Optionen wegen dem Waveformchart:
Offset am Anfang bestimmen, dann dürfen die Waveform-Daten später aber keinen t0 (Timestamp), sondern nur ein dt besitzen und über die Anzahl der Updates und die dt Zeitabstände dazwischen wird ausgehend vom Offset am Anfang die aktuelle Zeit berechnet?
Ist auf lange Zeit vielleicht ungenau?
Offset am Anfang weglassen, und nur die Timestamps der Waveform-Daten benutzen. (Klingt gut)
|
|
|
25.01.2016, 16:35
(Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2016 16:42 von m.werle.)
|
m.werle
LVF-Grünschnabel
Beiträge: 40
Registriert seit: Sep 2015
2010
2015
EN
Deutschland
|
RE: Geschwindigkeitsproblem, VISA Kommunikation mit Messbox U2351A Keysight
Je nach eingestellter Samplingrate und eingestellten Aquisition Points, kann es dazu kommen,
dass mein Programm nicht schnell genug nachkommt, alle Daten aus der Messbox auszulesen.
Wie kann ich diesen Fehler ausfindig machen, bevor der Bufferspeicher der Messbox überläuft?
Würde gerne eine Plausiprüfung einbauen, die mir bestätigt, dass das Programm gerade schnell genug arbeitet.
Sonst verwertet die Steuerung veraltete Messdaten und reagiert immer langsamer, da erst die ältesten Messsamples aus dem Buffer ausgelesen werden.
Lösungsansätze:
1. Löse ich das über einen Vergleich der erwarteten Anzahl an Samples und der verwerteten Anzahl an Samples?
2. Oder bestimmen, wie viele Samples noch im Buffer sind, und dafür einen Grenzwert festlegen?
" Programming guide and Syntax Guide for the U2300A Series"
WAVeform:DATA? -> Spuckt mir auch gleich aus, wie viele Bytes an Messsamples von den AI-Eingängen der Messbox so im Buffer gespeichert sind.
3. Oder den Bufferspeicher einfach entsprechend klein gestalten, dass sich dort nichts groß anhäufen kann und Notfalls die "zu alten" Samples einfach rausgelöscht werden?
Ich tendiere zu Lösung 2.
Falls bis morgen kein Kommentar dazu kommt, werde ich versuchen, den Lösungsansatz umzusetzen..
|
|
|
25.01.2016, 16:55
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Geschwindigkeitsproblem, VISA Kommunikation mit Messbox U2351A Keysight
Hallo m.,
ich würde eigentlich immer versuchen, die Daten schnell genug auszulesen!
Producer-Consumer-Schema und so weiter…
|
|
|
26.01.2016, 08:39
(Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2016 08:40 von m.werle.)
|
m.werle
LVF-Grünschnabel
Beiträge: 40
Registriert seit: Sep 2015
2010
2015
EN
Deutschland
|
RE: Geschwindigkeitsproblem, VISA Kommunikation mit Messbox U2351A Keysight
Heißt das, ich müsste einzelne Messabfragen an die Messbox stellen und diese direkt auslesen?
Aktuell stelle ich ja eine feste Samplingrate ein, sowie die Anzahl der Samples pro Update. Die Samples werden dann mit einer eingestellten Rate erfasst und im Buffer hinterlegt. Beim Auslesen der Daten wird eine Anfrage gestellt, ob bereits Daten im Bufferspeicher vorhanden sind, wenn ja wie viele.
|
|
|
26.01.2016, 10:01
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Geschwindigkeitsproblem, VISA Kommunikation mit Messbox U2351A Keysight
Hallo m.,
Zitat:Heißt das, ich müsste einzelne Messabfragen an die Messbox stellen und diese direkt auslesen?
, da musst du im Manual zu deiner Messhardware und deren Treiber nachlesen!
Zitat:Aktuell stelle ich ja eine feste Samplingrate ein, sowie die Anzahl der Samples pro Update. Die Samples werden dann mit einer eingestellten Rate erfasst und im Buffer hinterlegt.
So macht man das bei DAQmx auch.
Zitat:Beim Auslesen der Daten wird eine Anfrage gestellt, ob bereits Daten im Bufferspeicher vorhanden sind, wenn ja wie viele.
Das benötigt man bei DAQmx nicht: man fragt einfach die gewünschte Anzahl Samples ab und die Read-Funktion wartet von allein, bis die Daten vorhanden sind…
Das Producer-Consumer-Schema hatte ich dir (neben anderen Dingen) schon vor zwei Wochen empfohlen - hattest du inzwischen Zeit und Muße, das auszuprobieren?
|
|
|
26.01.2016, 11:00
|
m.werle
LVF-Grünschnabel
Beiträge: 40
Registriert seit: Sep 2015
2010
2015
EN
Deutschland
|
RE: Geschwindigkeitsproblem, VISA Kommunikation mit Messbox U2351A Keysight
Producer-Consumer-Modell habe ich angewandt.
Ein VI liest die Daten, sendet diese per Notifier weiter an ein anderes VI, wo sie dann weiterverarbeitet werden, Plausiprüfungen eingebaut werden, angezeigt werden, etc.
Mein Einlese-VI übernimmt allerdings auch die Aufgabe mit der Datenversendung, damit immer abwechselnd eingelesen und anschließend ausgegeben wird. Andernfalls kommen sich die Messboxabfragen für's Daten Einlesen und Ausgeben in die Quere.
Da das VI zum Einlesen und Ausgeben trotzdem so langsam ist, dachte ich mir, ich könnte das eventuell beschleunigen.
Continous AI-Erfassung dauert bereits 60ms pro Update, selbst wenn das Update nur 1 Sample enthält und die Messbox eine vieeel schnellere Samplingrate hat und eifrig weiter Messamples bereit stellt. Schneller als 60ms wird man damit nicht. Dafür hat man bei der Continous Erfassung die Möglichkeit Pro Update mehrere Messsamples auszuwerten.
(Samplingrate: Gesamtzahl der Samples pro Channel pro Sekunde
Aquisition Points: Anzahl der Samples pro Update pro Channel)
Bei der Singleshot AI-Erfassung dauert eine einzelne Messung nur 20ms, also 40ms schneller, dafür habe ich hier nur ein einzelnes Messsample pro Update.
Werde vielleicht einfach anzeigen lassen, wie schnell die Kommunikation (Einlesen+Ausgeben) funktioniert. (Anzeige der Zyklusdauer) und gleichzeitig anzeigen lassen, wie hoch die Zyklusdauer bei eingestellter Samplingrate und eingestellten Aquisition Points sein müsste.
|
|
|
26.01.2016, 11:06
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Geschwindigkeitsproblem, VISA Kommunikation mit Messbox U2351A Keysight
Hallo m.,
Zitat:Continous AI-Erfassung dauert bereits 60ms pro Update, selbst wenn das Update nur 1 Sample enthält und die Messbox eine vieeel schnellere Samplingrate hat und eifrig weiter Messamples bereit stellt. Schneller als 60ms wird man damit nicht. Dafür hat man bei der Continous Erfassung die Möglichkeit Pro Update mehrere Messsamples auszuwerten.
Schlußfolgerung: sobald man bei 1kHz Samplerate pro Abfrage 100 Samples (pro Kanal) abfragt, erfolgt die Abfrage schneller als die Karte Daten liefert. Problem gelöst…
|
|
|
| |