12.05.2014, 13:16
Hi Gerd,
Zitat:- wenn du kontinuierlich lesen willst, musst du nur ganz ganz selten wirklich die Buffergröße über "Samples to read" am DAQmxCreateChannel festlegen. Das macht DAQmx schon selbst ganz gut.hab ich versucht, allerdings läuft mein VI dann nicht. Mit Buffer gehts. Sollte ja keine großen Nachteile bringen wen ich den Buffer vorgebe ?
Zitat:- wenn du Daten lesen willst, dann hat es sich bewährt, feste Blockgrößen abzufragen - und nicht wie du "aufwendige" QR-Rechnungen in Statemachines durchzuführen. Einfach Blöcke mit 40k Samples abfragen und gut ist!jup, gemacht.
Zitat:- Diese Blöcke dann in einer Producer-Consumer-Struktur an eine zweite Schleife zur Berechnung weiterrreichen.Producer-Consumer sagt mir nur im Zusammenhang mit Message Queue was. Ich hab die Berechnung jetzt in ne andere Schleife gepackt. Ist es das was du meintest? Funktioniert auf jedenfall jetzt noch besser wenn ich das so mache.
- Notfalls Queue-Größe überwachen und (falls deine Rechnung nicht hinterherkommt) überzählige Blöcke verwerfen…
Zitat:Du kannst alternativ auch dein Drucksignal zwischen den Pulsen interpolieren. Ist erheblich weniger Rechenaufwand und funktioniert auch mit jedem Drehgeber!Jap ist sicherlich auch eine gute Lösung. Das Problem dabei ist aber, wenn beispielsweise das Druckmaximum zwischen 2 Flanken liegt dann wird da einfach drüber interpoliert und ich bekomme keine Aussage darüber wie Hoch das wirklich Druckmaximum ist. Wenn ich den Druckverlauf zeitbasiert messe bekomme ich ein sehr genaues Abbild und nehme dafür nur eine gewisse unschärfe im Drehzahl- bzw Winkelverlauf zwischen 2 Flanken hin. Habs versucht mal kurz in nem Bild zu visualisieren. Rote Kurve ist der interpolierte Verlauf.
Wir verwenden an unserem Prüfstand einen Geber mit 360Pulsen/Umdr. Meine Software interpoliert von diesen 1°KW auf <0.1°KW…