13.01.2016, 13:51
Halle allesamt,
Habe ein Problem mit der Geschwindigkeit meiner Datenerfassung.
Die Messbox mit der ich über die VISA Schnittstelle kommuniziere, ist die U2351A von Keysight Technology.
Ich benutze die IVI-Gerätetreiber und habe in meinem LabVIEW-Programm, die Treiber-VIs benutzt, um die Messbox anzusteuern.
Die Zyklusdauer meiner Mainschleife, welche die Datenerfassung abwickelt ist schnellstens 100ms lang.
Sampingrate - Aquisition Points - Zyklusdauer
1k - 1k - 1000ms
10k - 1k - 100ms
100k - 1k - 3/4ms, es werden keine Messwerte gelesen
10k - 100 - 100ms; Daten häufen sich im Buffer an, das Programm kommt wohl nicht nach mit auslesen
100k - 10k -
Die zu erwartende Zyklusdauer wäre doch: Aquisition Points / Samplingrate
Bzw. die Updatefrequenz wäre: Samplingrate / Aquisition Points
Warum ist das so langsam? Ist es sinnvoller die normalen VISA OPEN/CLOSE/WRITE/READ-VIs zu benutzen als die im Treiber mitgelieferten polymorphen VIs?
So, hier der Rest an VI's.
Hab die nötigen VIs mal in eine Zip-Datei gepackt.
Laut Datenblatt liegt die max. Samplingrate bei: 250 kSa/s (When multiple channels are used, the sampling rate of each channel is the maximum sampling rate divided by the number of channels used.)
Bei 3 AI-Channel, macht das eine Samplingrate von um die 83 kSa/s.
80 kSa/s bei 8 kSa/Update führen zu einer Zykluszeit von 100ms.
80 kSa/s bei 4 kSa/Update führen auch zu einer Zykluszeit von 100ms. Hier scheint LabVIEW wohl zu langsam zu sein.
80 kSA/s bei 16 kSa/Update führen zu einer Zykluszeit von 200ms.
Leider komme ich nicht auf die unter 100ms zwischen den Updates.
Eine Plausiprüfung ist eigentlich für alle 40ms ausgelegt. Außerdem wird die Regelung ungenauer, wenn mein RK nur alle 100ms Feedback von der Maschine bekommt.
Edit: Nach ein paar Minuten erhöht sich die Zykluszeit deutlich. Jetzt ist sie gerade von 100ms mit der Zeit auf 10s hoch.
Liegt das an dem Waveform-Chart, der die Werte (in diesem VI testweise) anzeigen soll und dafür die stetig wachsende History speichert?
Habe ein Problem mit der Geschwindigkeit meiner Datenerfassung.
Die Messbox mit der ich über die VISA Schnittstelle kommuniziere, ist die U2351A von Keysight Technology.
Ich benutze die IVI-Gerätetreiber und habe in meinem LabVIEW-Programm, die Treiber-VIs benutzt, um die Messbox anzusteuern.
Die Zyklusdauer meiner Mainschleife, welche die Datenerfassung abwickelt ist schnellstens 100ms lang.
Sampingrate - Aquisition Points - Zyklusdauer
1k - 1k - 1000ms
10k - 1k - 100ms
100k - 1k - 3/4ms, es werden keine Messwerte gelesen
10k - 100 - 100ms; Daten häufen sich im Buffer an, das Programm kommt wohl nicht nach mit auslesen
100k - 10k -
Die zu erwartende Zyklusdauer wäre doch: Aquisition Points / Samplingrate
Bzw. die Updatefrequenz wäre: Samplingrate / Aquisition Points
Warum ist das so langsam? Ist es sinnvoller die normalen VISA OPEN/CLOSE/WRITE/READ-VIs zu benutzen als die im Treiber mitgelieferten polymorphen VIs?
So, hier der Rest an VI's.
Hab die nötigen VIs mal in eine Zip-Datei gepackt.
Laut Datenblatt liegt die max. Samplingrate bei: 250 kSa/s (When multiple channels are used, the sampling rate of each channel is the maximum sampling rate divided by the number of channels used.)
Bei 3 AI-Channel, macht das eine Samplingrate von um die 83 kSa/s.
80 kSa/s bei 8 kSa/Update führen zu einer Zykluszeit von 100ms.
80 kSa/s bei 4 kSa/Update führen auch zu einer Zykluszeit von 100ms. Hier scheint LabVIEW wohl zu langsam zu sein.
80 kSA/s bei 16 kSa/Update führen zu einer Zykluszeit von 200ms.
Leider komme ich nicht auf die unter 100ms zwischen den Updates.
Eine Plausiprüfung ist eigentlich für alle 40ms ausgelegt. Außerdem wird die Regelung ungenauer, wenn mein RK nur alle 100ms Feedback von der Maschine bekommt.
Edit: Nach ein paar Minuten erhöht sich die Zykluszeit deutlich. Jetzt ist sie gerade von 100ms mit der Zeit auf 10s hoch.
Liegt das an dem Waveform-Chart, der die Werte (in diesem VI testweise) anzeigen soll und dafür die stetig wachsende History speichert?