LabVIEWForum.de
Bufferüberlauf bei Kraftmessung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Bufferüberlauf bei Kraftmessung (/Thread-Bufferueberlauf-bei-Kraftmessung)

Seiten: 1 2


Bufferüberlauf bei Kraftmessung - Golan - 05.03.2012 09:43

Hallo,

ich hab ein Problem bei meiner Kraftmessung. Ich messe mit einem Sensor der eine Vollbrückenschaltung enthält die Kraft und lese diese mit dem cDAQ und der NI 9237 Messkarte ein.

Nun sind in kurzer Zeit mehr Samples zur Verfügung als abgearbeitet werden. Dies kommt zu stande, da immer auf die nächsten 10 ms gewartet wird (dies ist für eine andere Anwendung für später nötig), denn sobald ich diese Wartezeit entferne, hab ich dieses Problem nicht mehr.

Gibt es eine Möglichkeit dieses Problem zu lösen ohne mehr Samples auf einmal einzulesen? (die jeweiligen Kraftwerte müssen zu anderen Werten später zusammen gebracht werden, und während ich 1 z.B. Drehzahlwert hab hätte ich damit 1000 Kraftwerte)

Ich hab auch schon versucht diese 1000 Kraftwerte zu mitteln, und würde auch ansich klappen wenn nicht zwischendrin immer Lücken auftauchen würden. (das 2. Bild)

Vielen Dank schon einmal für die Hilfe

Grüße
Christian


RE: Bufferüberlauf bei Kraftmessung - jg - 05.03.2012 09:49

Denk mal genau nach, was du da gerade programmiert hast...

Angeforderte Hardware-Taktrate der Datenerfassung: 1000 Hz!

Ausleserate aus dem Speicher: 100 Hz, denn du wartest ja immer 10 ms, und liest dann immer nur 1 Wert aus dem FIFO-Speicher aus.

Und da wunderst du dich, dass der Buffer voll läuft? Ich nicht.

Gruß, Jens


RE: Bufferüberlauf bei Kraftmessung - eb - 05.03.2012 09:52

Hallo

Ein fast perfekter Hilfegesuch! Nur das das VI anhängen und es wär perfekt gefragt...

Nun aber zum Problem:
Sehe ich das richtig, dass du mit 1kHz erfässt, aber alle 10 immer nur 1 Wert ausliest? Dass kann nicht klappen, der Puffer wirsd überlaufen, da du nur 100Werte/s abholst, aber eben 1000Werte/s misst.

ups, minimal zu langsam...

Gruß


RE: Bufferüberlauf bei Kraftmessung - Golan - 05.03.2012 10:01

Selbst wenn ich die Taktrate auf 100 runtersetze läuft der Buffer genauso schnell über als wenn da 1000 steht, deshalb hab ich das nicht erwähnt gehabt tut mir leid.

Hier noch das VI.

Danke für die schnellen antworten.
Ah ich weiss wieso, die Messkarte hat eine mindest Samplerate von 1,6 kS/s.

Nun kann ich mir überlegen wie es nun auf 100 Hz runterbekomme ... vielleicht über eine For-Schleife.


RE: Bufferüberlauf bei Kraftmessung - eb - 05.03.2012 10:21

Hallo,

mir ist noch nicht klar, wieso du explizit nur genau 1 Wert abfragen darfst pro Schleifendurchlauf... 100Werte pro Aufruf klingt ganz vernünftig, oder eben 160 bei 1,6KHz.


Gruß


RE: Bufferüberlauf bei Kraftmessung - Golan - 05.03.2012 10:32

Bei dem ganzen Aufbau geb ich eine Spannung von 0-10 Volt aus um einen Frequenzumrichter anzusteuern und lese die Drehzahl des Motors ein der durch den FU angetrieben wird. Der Motor treibt ne größere Maschine an bei der im am Schluss am Prüfling eine Kraft messen soll. Später soll man nun zu dem jeweiligen Kraftwert die jeweilige Drehzahl sehen können (bei der Dokumentation).
Ich bin mir hierbei bei z.b. 160 Werten unsicher wie ich sie zu verarbeiten habe. Während des Versuchs soll man ja die aktuellen Drehzahl und Kraftwerte sehen können.
Mit einem Array von 160 Werten tu ich mich da derzeit irgendwie schwer (wahrscheinlich steh ich da grad einfach aufm Schlauch).

Grüße
Christian


RE: Bufferüberlauf bei Kraftmessung - eb - 05.03.2012 11:06

Hallo nochmal,

bin mir nicht ganz sicher, wo genau du festhängst.
Hier mal eine kleine Idee: Du erfässt 2 analoge Kanäle (Kraft und Drehzahl) und speicherst sie mit der kompletten Samplerate ab. Allerdings nicht "immer einzeln", sondern eben "100 am Stück".
Schau die mal das leicht erweiterte VI an.
[attachment=38931]
Und schau dir die Beispiele im ExampleFinder an zu kontinuierlicher Datenerfassung.

Gruß


RE: Bufferüberlauf bei Kraftmessung - Golan - 05.03.2012 12:35

Danke dafür.

Jetzt hab ich noch eine Frage zu dem VI "Bis zum nächsten Vielfachen von ms warten".

Ist es möglich bei diesem VI 0,5 anzugeben bzw 1:2, oder rundet dann LabVIEW auf 1 auf bzw auf 0 ab?
Denn damit müsst ich bei meinem Gesamtprogramm nur ein Unter-Vi verändern.

Grüße
Christian


RE: Bufferüberlauf bei Kraftmessung - Lucki - 05.03.2012 12:55

(05.03.2012 12:35 )Golan schrieb:  Jetzt hab ich noch eine Frage zu dem VI "Bis zum nächsten Vielfachen von ms warten".
Die Frage scheint darauf hinzudeuten, daß Du immer noch mit dem Gedanken spielst, in der Schleife für Read eine Wartefunktion unterzubringen. Das sollte man überhaupt nicht tun. Erik hat in seinem VI gezeigt, wie man genau die gewünschten 10ms Schleifen-Umlaufszeit (100Hz) ohne Verwendung der Wartefunktion erzielt. So und nicht anders sollte man es machen. Ansonsten kann immer Buffer-Überlauf drohen.


RE: Bufferüberlauf bei Kraftmessung - Golan - 05.03.2012 13:33

Naja im Core-1 Kurs hieß es man sollte dieses VI immer hinzufügen, zudem möchte ich zu bestimmten Zeitpunkten an den Frequenzumrichter einen bestimmten Wert übergeben (später sollen hier Drehzahlkennlinien abgefahren werden).