Schnellst mögliche Datenerfassung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: Schnellst mögliche Datenerfassung (/Thread-Schnellst-moegliche-Datenerfassung) |
Schnellst mögliche Datenerfassung - hyperactivist - 24.03.2011 19:58 Guten Abend liebe LabView-Gemeinde, bis jetzt habe ich bereits erfolgreich mit Hochsprachen wie VisualBasic, Delphi und Java programmiert. Seit neustem programmiere ich auch mit LabView (Version 9.0 / NI USB-6009) und musste leider feststellen, dass sie die Handhabung von dem bis jetzt kennengelernten stark unterscheidet. Nun zu meiner Aufgabenstellung: Ich möchte gerne die Zeitdifferenz zweier, dicht aufeinanderfolgender Impulse (Zeitdifferenz von Pik 1 zu Pik 2: 0-6,66 ms) möglichst genau messen. Jetzt das Problem dabei: - Ein Zeitstempel kann nur auf bis 1ms genau messen (oder???). - Meine Messbox hat mit einer Samplerate von 48ks/s, aufgeteilt auf 2 Kanäle, pro Kanal eine Auflösung von 0,042ms/Sample. Hab ich irgendwie die Möglichkeit die volle Geschwindigkeit meiner Messbox bei dieser speziellen Aufgabe auszunutzen? Ich hab mir schon überlegt alle Daten erst mal in ein Array zu schreiben, und dann die Indexnummern von dem Pik auszulesen und dann irgendwie Damit weiter zu arbeiten. Wäre das möglich? Wenn ja, wie bekomme ich die Daten von meinem DAQ-Assistent in ein Array, bei dem die einzelnen Samples quasi den Index bilden? Oder gibt es einen ganz anderen Ansatz zur Lösung des Problems? Ich danke Euch schonmal im Voraus für eure Hilfe! MfG, Hyperactivist RE: Schnells mögliche Datenerfassung - Achim - 24.03.2011 20:20 Hi, offenbar kommen die zwei Peaks auf unterschiedlichen Kanälen, richtig? Deine Karte hat aber nur einen ADC, somit bleibt dir nix anderes übrig, als nacheinander zu messen (macht die Karte ja automatisch). Je schneller die verwendete Karte, desto besser...aber es ist vermutlich wie immer, es darf nichts kosten und deswegen wird absolute LowCost-HW verwendet... Anyway: Mit deiner Karte tastest du dann eben so schnell wie es geht ab, damit kennst du das t0 und das dt von jedem der Kanäle! Damit kannst du den Zeitpunkt ta (Peak Kanal 1) und tb (Peak Kanal 2) rausfinden. In der Spezifikation deiner Karte steht außerdem noch irgendwo, wie lange die "interchannel delay time" (oder auch "settling time") ist. Wenn ich grade richtig denke, kannst du diese Zeit von allen Zeitstempeln des Kanal 2 abziehen und diesen Kanal damit zeitlich leicht verschieben, so dass er quasi zeitgleich mit Kanal 1 abgetastet wurde (näherungsweise!). Bitte korrigiert mich, wenn ich Blödsinn geschrieben haben. Gruß Achim RE: Schnells mögliche Datenerfassung - hyperactivist - 24.03.2011 20:35 Richtig, die Signale kommen von zwei unterschiedlichen Kanälen. Jedoch gehe ich gerade davon aus, dass die beiden Kanäle abwechselnd abgetastet werden... also: 1 Sample AI0 danach 1 Sample Ai1 und wieder von neu. Ist das korrekt? Das heist, ich hätte als Messfehler in meinem Fall den Versatz von einem halben Sample. (Was ich durchaus in Kauf nehmen würde ;-) ) Wenn ich jetzt in meinem DAQ-Assisten einstelle "Zu lesende Samples: 24k" und "Rate:24k/Hz" und mit diesen Einstellungen AI0 und AI1 betreibe, kann ich dann z.B. 2 Arrays (pro Kanal eins) erzeugen, die 24k Stellen groß sind? Also sozusagen alle Samples von einem Kanal enthalten. Oder wie ist die allgemeine Vorgehensweise bei einer solchen Signalanalyse? Danke, Hyperactivist RE: Schnells mögliche Datenerfassung - Lucki - 25.03.2011 09:27 (24.03.2011 20:35 )hyperactivist schrieb: Richtig, die Signale kommen von zwei unterschiedlichen Kanälen.Fast richtig. Den Versatz von einer halben Sample (d.h. äquidistante Summen-Abtastung) hast Du nur bei hoher Abtastrate. Bei geringer die Abtastrate gilt: Versatz des zweiten Kanales = 1/fmax + 10µs Beruhigungszeit. Die Größe das Versatzes kannst Du leicht bei Waveform-Ausgabe an den unterschiedlichen to der einzelnen Kanäle ablesen: [attachment=32940] (Meine Karte kann 250kS/s = 4µs, +10µs Beruhigunszeit = 14µs Versatz) Es gib übrigens das VI "Signalverläufe ausrichten", damit wird der Versatz mittels Interpolation korrigiert - was allerdings nicht bei jedem Problem anwendbar ist. Man kann mit etwas Pfiffigkeit auch bei mehreren Kanälen die volle Abtastrate wie bei einem einzelnen Kanal nutzen. Vorausgesetzt, es handelt sich nicht um einen einmaligen, nicht wiederholbaren Vorgang. Beispiel 2 Kanäle Task 1 = Erfassung Kanal 1, Task 2 = Erfassung Kanal 2 Man startet alternierend Task 1 /Task 2 und fasst die Daten dann zusammen. Mit der geringeren Update-Rate kann man in der Regel leben. RE: Schnells mögliche Datenerfassung - hyperactivist - 02.04.2011 14:17 Hallo zusammen, danke für die bisherige Hilfe. Jetzt hängt es nur noch an einem Problem: Was ist das für ein Baustein am Datenausgang von "Lesen"? Diesen Baustein hab ich nirgendswo gefunden! MfG, Hyperactivsit RE: Schnells mögliche Datenerfassung - Lucki - 02.04.2011 16:28 (02.04.2011 14:17 )hyperactivist schrieb: Was ist das für ein Baustein am Datenausgang von "Lesen"?Falls Du dich auf mich beziehst: das ist doch kein Baustein, sondern eine Anzeige "Array of Waveforms". Am Datenausgang des VI mit rechter Maustaste klicken: "Erstellen --> Anzeige". (In die Graphik habe ich unten eingeblendet, wie die Anzeige auf dem FP aussieht) |