Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
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!
01.02.2016, 15:02 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2016 15:03 von Domi_Ingrimmsch.)
Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
Hallo liebe LabVIEW Gemeinde,
erst mal vielen Dank für eure hilfreiche Arbeit, bin hier schon oft auf die Lösung eines meiner Probleme gestoßen.
Nun zu meinem Problem, ich verwende derzeit 2 LabView Geräte ein NI-USB9211 A und ein USB 6210. Für jedes Gerät wird ein virtueller Kanal erzeugt. Ich möchte nun alle Messwerte in eine Datei speichern, was das Programm ja schon tut. Das Problem ist, dass die Zeit nicht mitgespeichert wird wie das z.B. das ExpressVI tut, sprich ich brauche zu jedem Messwert die entsprechende Zeit. Das schwierige daran ist das die Spannungsmessung mit über 1000 Hz laufen muss, mein anderes Gerät für die Temperatur (USB9211 A) allerdings nicht mal 10 Hz schafft. D. h. ich muss mehrmals den gleichen Temperaturwert den Spannungswerten zuordnen und zusätzlich die aktuelle Zeit (optimal wäre Uhrzeit, absolut Zeit seit Start der Messung geht auch). Wie kann ich das bewerkstelligen?
RE: Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
Hallo Domi,
Zitat: ich muss mehrmals den gleichen Temperaturwert den Spannungswerten zuordnen und zusätzlich die aktuelle Zeit (optimal wäre Uhrzeit, absolut Zeit seit Start der Messung geht auch).
Ich würde die beiden Geräte/Task in parallelen Schleifen abfragen und die Daten per Queue zu einer Schleife schicken, die sich um das Speichern kümmert. Dann am besten Sampleraten einstellen, die ganzzahlige Vielfache voneinander sind, also z.B. 1000Hz und 8Hz: dann einfach jeden Temperaturmesswert 125mal speichern, um wieder auf 1000 Werte pro Sekunde zu kommen…
- Ich halte es für ungünstig, beide DAQmxTask mit "-1" Samples zu lesen: einen Task mit fester Samplezahl und den anderen dann mit "-1". Also einen Temperaturwert abfragen und alle dazu gehörenden Spannungswerte…
- Ich halte es für extrem unsinnig, "schöne" Waveform-Werte in DDT umzuwandeln - nur weil man kein IndexArray verwenden mag…
- wenn du mit Waveforms arbeitest, bekommst du (eigentlich) auch eine Zeitspalte in TDMS-Dateien…
RE: Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
Hallo Gerd,
schonmal vielen Dank für den Tip mit der Queue. Jetzt werden immer genauso viele Temperatur wie Spannungswerte gespeichert.
Ich habe nun alles in Wafeform geändert aber die Zeit tauch immer noch nirgends auf. Wenn ich die .tdms in DIAdem öffne erscheint auf der X-Achse immer NoValue egal für welchen Kanal. Mit einzeln in die Queue übergeben anstatt mit "Array 1" funktioniert es auch nicht, mit der Funktion "Signalverlauf erstellen" ebenfalls nicht.
Wie kann ich da eine Zeit zuordnen oder einen zugehörigen Zeitkanal erstellen wie es das ExpressVI "Messwerte in Datei speichern" automatisch macht?
Liebe Grüße,
Domi
02.02.2016, 17:08 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2016 17:09 von GerdW.)
RE: Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
Hallo Domi,
wenn ich eine simple TDMS-Datei mit einer Waveform erzeuge und dann mit Excel öffne, erhalte ich ein Sheet mit den Zeitangaben (Startzeit, dt) und eines mit den Messdaten! Zu Diadem kann ich nichts sagen…
RE: Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
Hallo an Alle,
ok ich bin jetzt soweit, dass ich wenn ich eine Zeit X-Achse mit zugeordneten Messwerten haben möchte das Express-VI "Messwerte in Datei schreiben", das sehr schön macht. Meine Frage: kann ich auch Elemente mehrfach in eine Queue schreiben und dann abrufen? Wenn ja was mache ich falsch?
RE: Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
OK dachte ich könnte Datenmüll auf euren Servern vermeiden
Wie gesagt ich möchte gerne das Express-VI zum speichern verwenden und ich muss den Temperaturwert verfielfachen, deswegen 1000mal die Queue. Nun lasse ich mir ja die Schleifendurchgänge meiner beiden While_Schleifen anzeigen. Wird die Schleife der Temperatur 30 mal durchgeführt, sollten nach meiner Vorstellung 30000 Werte (30 verschiedene*1000) in meiner Datei auftauchen, es tauchen aber nur die 30 Werte auf.
Liebe Grüße,
Domi
08.02.2016, 14:55 (Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2016 14:56 von GerdW.)
RE: Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
Hallo Domi,
ich liebe ja VIs, die ein aufgeräumtes BD besitzen und die man auf einer Bildschirmseite (FullHD) komplett darstellen kann…
Zitat:Wird die Schleife der Temperatur 30 mal durchgeführt, sollten nach meiner Vorstellung 30000 Werte (30 verschiedene*1000) in meiner Datei auftauchen, es tauchen aber nur die 30 Werte auf.
Warum tauchen wohl nur 30 Werte im Messschrieb auf? Weil du nur 30 in die Datei schreibst!
Es ist zwar löblich, wenn du 30000 Elemente in deine Queue schiebst - aber abfragen musst du die dann auch. So, wie du 1000 Elemente in die Queue schiebst, müsstest du auch wieder 1000 Elemente auslesen. Wirklich sinnvoll (oder gar schön) wird das so aber nicht.
Ich würde statt 1000× ein Element lieber 1× 1000Elemente in die Queue schreiben, also deine Waveform von 1Sample auf 1000Samples aufblasen:
(Nicht von den kaputten Drähten verwirren lassen, das ist nur ein Ausschnitt aus deinem VI und zwar die Temperaturmessschleife…)
RE: Daten mit zugehöriger Zeit speicher + fehlende Werte auffüllen
(08.02.2016 14:55 )GerdW schrieb: ich liebe ja VIs, die ein aufgeräumtes BD besitzen und die man auf einer Bildschirmseite (FullHD) komplett darstellen kann…
Ich auch, und wenn das ausnahmsweise mal nicht geht, nicht sinnvoll oder zu umständlich ist, dann gilt Styling-Regel #2: Die Ausdehnung über den Bildschirm hinaus sollte in einer Richtung erfolgen, in Höhe oder in Breite, nicht aber in beiden Richtungen zugleich.