INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Genaue Zeiterfassung und -speicherung zählergestützter Messungen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

10.02.2011, 23:38
Beitrag #1

homunculus87
Unregistered


 







Genaue Zeiterfassung und -speicherung zählergestützter Messungen
Guten Abend.

Benutze: Lv85_img

Ich bin ein LabVIEW-Frischling und habe mit folgender Problemstellung zu tun. LabVIEW ist ja prinzipiell in der Lage Zeitpunkte auf die µs genau zu speichern. Meine Frage ist nun, ob und wie es möglich ist
1) zu einem von LabVIEW erfassten Messwert den zugehörigen Messzeitpunkt auf die µs genau auszugeben und
2) das so schnell wie möglich abzuspeichern, sodass keine weiteren Input-Werte verloren gehen.

Für 2) hab ich mir überlegt, dass man die Zeit- und Messwerte in ein Array überträgt und das dann am Ende der Messung in ein File speichert. Aber vllt gibt's noch bessere Methoden.

Um 1) zu präzisieren, erkläre ich mal den Ablauf der geplanten Messung. Über ein NI BNC-2090 wird ein analoges Spannungssignal eingelesen, das die Form eines Rechteckimpulses mit zufällig erzeugten Impulsbreiten hat. Die Impulsperioden bewegen sich im Bereich von 10 µs bis 1 ms. Ziel ist es, dieses analoge Signal von den Störungen zu befreien und exakt zu rekonstruieren. Dazu wird das Signal an einen Counter-Eingang angeschlossen und zum Beispiel im DAQ-Assistent die "Erfassung der Impulsbreiten" gewählt. Wenn man nun die Breite der Impulse kennt zusammen mit dem genauen Erfassungszeitpunkt, dann kann man daraus den Impuls rekonstruieren, ohne die Störungen, sozusagen "wie mit dem Lineal gezogen". (Zusatz: Neben der Option "Impulsbreite" klingt auch die "Flankenzählung" ganz geeignet, wobei ich mich da noch etwas rumspielen müsste um auf eine praktikable Lösung zu kommen.)

Dazu muss man aber eben auf die µs genau den Messzeitpunkt der Impulsbreite kennen, und das möglichst schnell, damit man ja keinen Impuls auslässt. Die übliche Variante, den Output des DAQ-Assistenten direkt an den Write-Meas-File-Assistenten weiterzuleiten, gibt zwar eine hinreichend genaue Zeit, ist aber viel zu langsam und verliert viele Impulse. Und das Herumprobieren mit den Timing-Funktionen von LV hat auch nicht gefruchtet, weil die höchstens Millisekundengenauigkeit bieten.

Ich hab mir gedacht, man könnte von außen eine Zeit vorgeben und das Spannungs- und Zeitsignal gleichzeitig abtasten. Aber ich hab von Elektronik noch zu wenig Ahnung um mir vorstellen zu können, wie das konkret aussieht.

Ich wäre daher für jede Hilfe und Anregung sehr dankbar.

MfG,
homunculus
Diese Nachricht in einer Antwort zitieren to top
13.02.2011, 19:11
Beitrag #2

homunculus87
Unregistered


 







RE: Genaue Zeiterfassung und -speicherung zählergestützter Messungen
Hallo.

Ich versuch nochmal die bisherige Methode anders zu erläutern und meinen Ansatz, den ich ausprobiert habe, zu erklären. Da die Geräte und VIs anderorts gelagert sind, werde ich das deskriptiv machen. Verzeihung für den langen Text, aber es geht grad nicht anders.

Also, bisher war's so: Ich schließe einen Funktionsgenerator an, der mir ein Rechtecksignal simuliert, und stelle die Frequenz auf 100 kHz ein. Öffne den DAQ-Assistent und stelle die Optionen "Zählergestützte Erfassung --> Impulsbreite --> 1 Sample, Bereich: Max: 100 us, Min: 1 us" ein. Weiters sollen die Daten gespeichert werden, mit Hilfe des Assistenten "Messwerte in Datei schreiben", der das Ganze in eine LVM-Datei ohne Header und X- und Y-Spalte schreibt. Das alles umgebe ich mit einer While-Schleife und lasse es ein paar Sekunden laufen. Das Resultat ist in der angehängten Datei "counter_test_width.lvm" zu betrachten.

Wie man sieht, speichert LabVIEW in der X-Spalte die Zeit und in der Y-Spalte die entsprechende Impulsbreite. Doch macht es das im Abstand von ca. 30 ms, was für meine Belange 3000 mal zu langsam ist.

Nun, hab ich versucht, die Daten in einen Buffer zu schreiben und erst am Schluss der Datenerfassung auf die Festplatte speichern zu lassen. Dazu habe ich wie vorher mit dem DAQ-Assistenten die Messmethode, aber diesmal "N Samples; N=100k" eingestellt (While-Schleife wird entfernt). Ich habe mir das Blockdiagramm des erzeugten Express-VIs angesehen und erkannt, dass es die Daten als Waveform ausgibt. Daher hab ich mir gedacht, ich benutze das VI "Signalverlauf in XY-Paare konvertieren" und würde so Paare (Messzeitpunkt, Impulsbreite) erhalten. Nun schließe ich den "Daten"-Ausgang des DAQ an den "Signalverlauf"-Eingang des XY-VIs an. Theoretisch sollte ich ja dann, ein 1D-Array von Clustern der Größe 2 erhalten. Wie ich das weiterverarbeite, weiss ich noch nicht, ich will zuerst mal sehen, wie ich Messzeitpunkt und Breite bekomme. Um zu testen, ob diese Verbindung überhaupt funktioniert, starte ich eine Messung und sofort erscheint die Meldung, dass der Output vom DAQ nicht mit dem Eingang vom XY-VI kompatibel ist. Woran es genau liegt, wird nicht beschrieben.

Und jetzt stehe ich wieder an, weiss nicht, wie der Fehler genau zu beheben ist oder wie man generell Messzeitpunkt und Impulsbreite in einen Buffer speichern kann.

Wäre für jede Lösungshilfe dankbar. Vielleicht mag ja jemand das beschriebene VI nachbauen und testen.

Mfg,
homunculus

EDIT: hab wieder Zugang zu den VIs und hänge diese nun an. Das "measure_width_simple.vi" ist jenes VI, bei dem nach jedem Messpunkt direkt auf die Festplatte gespeichert wird und das "get_XY.vi" ist das VI, wo versucht wird, die XY-Werte der Messung zwischenzuspeichern.


Angehängte Datei(en)
8.5 .lvm  counter_test_width.lvm (Größe: 2,66 KB / Downloads: 444)

8.5 .vi  measure_width_simple.vi (Größe: 116,94 KB / Downloads: 436)

8.5 .vi  get_XY.vi (Größe: 64,02 KB / Downloads: 364)
Diese Nachricht in einer Antwort zitieren to top
14.02.2011, 22:26
Beitrag #3

homunculus87
Unregistered


 







RE: Genaue Zeiterfassung und -speicherung zählergestützter Messungen

Akzeptierte Lösung

Prinzipiell habe ich eine Lösung gefunden, nur ist diese auf meinen Fall nicht anwendbar, weil meine Hardware (NI PCI 6036E) die Arm-Start-Trigger-Funktion nicht unterstützt. Anbei ist die Lösung und ein wenig Zusatzinfo für andere Antwortsuchende.

Lösung:
Correlation of time with counter measurments
Auswahl an Hardware, welche den Arm Start Trigger unterstützen, steht in folgendem Beispiel:
Counter Input Start Trigger
Für Neulinge, Unterscheidung von Arm Start und Start Trigger:
Difference between arm start trigger und start trigger

Mfg,
homunculus
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Motoransteuerung und Messungen Darktias 3 3.489 30.03.2020 21:01
Letzter Beitrag: GerdW
  LabVIEW-DAQ-Assistent-Zeiterfassung behrangc 9 6.898 24.06.2019 06:40
Letzter Beitrag: GerdW
  DAQ-Anzeige in seperatem VI und Speicherung in TDMS Format m.werle 30 18.865 07.12.2015 12:47
Letzter Beitrag: m.werle
  Mehrere Messungen Hintereinander Darstellen. LV_Vladi 20 13.846 06.12.2015 10:57
Letzter Beitrag: LV_Vladi
  Signal-Speicherung mit definierter Messdauer gifo 27 16.108 25.11.2015 14:03
Letzter Beitrag: gifo
  Synchronisation von Messungen auf 2 Rechnern dave1 13 12.899 20.04.2015 10:41
Letzter Beitrag: GerdW

Gehe zu: