LabVIEWForum.de
Messwerterfassung und Speicherung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Messwerterfassung und Speicherung (/Thread-Messwerterfassung-und-Speicherung)

Seiten: 1 2


Messwerterfassung und Speicherung - bronko - 22.03.2011 11:20

Hallo Zusammen,
ich soll für meine Projektarbeit Messwerte aufnehmen, die eine Frequenz von bis zu 1kHz haben. Leider braucht die While-Schleife mind. 4ms um einmal durchzufaulen. Meine Frage ist nun:
Gibt es eine Möglichkeit die Messwerte aufzunehmen und als Datenpaket in die While-Schleife zu übergeben bzw. in dieser zu lesen? Bis jetzt wird immer nur ein einzelner Wert innerhalb der Schleife ausgewertet.
Das Problem ist, dass ich diese Werte auch gleich integrieren muss um ein Abbruchkriterium zu bekommen.
Bis jetzt habe ich das ganze so gelöst.
ist nur vereinfacht dargestellt.

ich benutzt eine plugin karte mit 500kS/s

Danke

Gruß
Bronko


Lv10


RE: Messwerterfassung und Speicherung - GerdW - 22.03.2011 13:17

Hallo Bronko,

Zitat:Gibt es eine Möglichkeit die Messwerte ... als Datenpaket in die While-Schleife zu übergeben
Machst du doch schon: du liest "1 Chan N Samples" ein: ein Datenpaket mit N Samples. Du stellst nur nirgends ein, wie groß N ist...

Zitat:Das Problem ist, dass ich diese Werte auch gleich integrieren muss um ein Abbruchkriterium zu bekommen.
Wo ist das Problem? Das Aufaddieren von Werten?

- Bei DAQmx stellt man kontinuierliche Messung mit der gewünschten Samplerate ein und holt regelmäßig die Messwerte ab. Geht das bei der UniversalLib auch? Dann solltest du das auch so machen...
- Hast du dir mal die Beispiele zu DAQmx angeschaut? Gibt es entsprechende Beispiele auch bei der UniversalLib?


RE: Messwerterfassung und Speicherung - bronko - 22.03.2011 15:43

das Datenpaket ist intern auf 1000 samples eingestellt.
das Integrieren hat wunderbar funktioniert.

Meine Frage ist, wie kann ich das Datenpaket auslesen? Im Moment bekomme ich immer nur einen Wert pro Schleifendurchlauf angezeigt.


RE: Messwerterfassung und Speicherung - GerdW - 22.03.2011 15:45

Hallo Bronko,

KA
Laut deinem Bild bekommst du (nach dem unnötigen Gebrauch eines ExpressVI) ein Messwerte-Array...


RE: Messwerterfassung und Speicherung - bronko - 22.03.2011 16:19

welches Express-VI ist denn überflüssig?

ich würde die aufgenommenen Werte gerne speichern.Leider laufen sehr schnell Werte an, sodass ich ein FIFO bzw. Queqeu benutzen würde. Leider komme ich damit noch nicht so ganz klar.

Ich glaube das Umwandeln der Messwerte und dann sofort das Einfügen in ein Array sind überflüssig. Leider kann ich die beiden nicht direkt verbinden.

Danke dir für deine Hilfe.


RE: Messwerterfassung und Speicherung - GerdW - 22.03.2011 16:22

Hallo,

Zitat:welches Express-VI ist denn überflüssig?
Convert From Dynamic Data - hier sollte man der Klarheit halber "Get Waveform Components" verwenden...

Zitat:sodass ich ein ... Queue benutzen würde
Wieder mal der Verweis auf die mitgelieferten Beispiel-VIs...


RE: Messwerterfassung und Speicherung - bronko - 23.03.2011 10:52

Hallo,
das mit den Queues sollte funktionieren.
Leider komme ich mit dem VI Get Waveform Component nicht ganz klar, bzw. ich bekomme die Werte nicht gespeichert.
Hier mal meine Idee wie ich die Werte speicher kann.
Ich würde auch gerne die Werte integrieren. Die Werte entsprechen einem Strom, was über die Zeit integriert die Ladung ergibt.

Gibt es da eine einfachere Möglichkeit?
Hab einiges ausprobiert, das hat aber leider alles nicht funktioniert.

Danke

Gruß
Bronko


RE: Messwerterfassung und Speicherung - GerdW - 23.03.2011 10:56

Hallo bronko,

Zitat:komme ich mit dem VI Get Waveform Component nicht ganz klar, bzw. ich bekomme die Werte nicht gespeichert.
Laut deinem Bild bekommst du doch Werte gespeichert...

Ladung = Strom * Zeit. In deinem Fall Q = Sum(Y-Werte)* dt (in s)!


RE: Messwerterfassung und Speicherung - bronko - 23.03.2011 13:34

Das Problem im Moment ist, dass ich jede ms einen Wert aufzeichne. Das soll später sogar noch schneller ablaufen. Leider bekomme ich nur alle 16-30ms einen Wert abgespeichert. D.h. für mich, dass nur jeden Schleifendurchlauf ein Wert gespeichert wird. Ich würde aber gerne N Werte speichern. Vor allem zählt die Zeit nur im ms Takt hoch. Kann man da auch Zwischenwerte einstellen?
Ich nehme ja eine Waveform auf, da müsste eigentlich ein Zeitstempel drin sein der klein Genug ist. Aber mit dem Get Waveform Component VI bekomme ich die Zeit auch nur in ms.

Danke für die Hilfe.
Mir fehlen da echt sehr viele Grundlagen.


RE: Messwerterfassung und Speicherung - GerdW - 23.03.2011 14:40

Hallo bronko,

Zitat:Vor allem zählt die Zeit nur im ms Takt hoch.
Was erwartest du denn unter Windows? Genauer als 1ms wirst du da nie...

Zitat:jede ms einen Wert aufzeichne
Das ist ineffektiv. Speicher doch jede Sekunde 1000 Werte (in einem Rutsch)! Schließlich kann eine Waveform ganze Datenarrays aufnehmen...