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