Kontinuierliche Datenerfassung - Daten speichern in geringerer Aufnahmefrequenz - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: Kontinuierliche Datenerfassung - Daten speichern in geringerer Aufnahmefrequenz (/Thread-Kontinuierliche-Datenerfassung-Daten-speichern-in-geringerer-Aufnahmefrequenz) |
Kontinuierliche Datenerfassung - Daten speichern in geringerer Aufnahmefrequenz - Mr.Niceguy - 19.07.2011 10:04 Hallo Leute, ich habe folgendes Problem, ich würde gerne mehrere Signale erfassen, welche mit 100Hz aufgenommen werden. Dabei möchte ich aber, dass nur 1 mal pro Minute die Daten gespeichert werden, damit das File nicht zu groß wird. Wenn ich jetzt die Aufnahmefrequenz herabsetze auf 0,0166 (1/60s), dann würde auch jede Änderung im Frontpanel nur einmal in der Minute verarbeitet werden. Außerdem sollten die Daten einen Tag lang gespeichert werden (24h) und dann automatisch ein neues File angelegt werden (mit dem aktuellen Datum). Das bedeutet, dass für jeden Sensor 1440 Messwerte/Tag in einem File gespeichert werden (1 x pro Minute -> 60*24 = 1440). Im Anhang findet Ihr das File zur Datenerfassung, wo momentan mit 100Hz abgetastet wird, und alle Daten in eine Datei geschrieben werden. RE: Kontinuierliche Datenerfassung - Daten speichern in geringerer Aufnahmefrequenz - GerdW - 19.07.2011 10:16 Hallo Niceguy, Zitat:mit 100Hz aufgenommen werden. Dabei möchte ich aber, dass nur 1 mal pro Minute die Daten gespeichert werdenDu willst also (bei 100Hz Samplerate) nur jede 60*100=6000ste Messung abspeichern. Dann mach das doch! (Tipp: Casestruktur um die Speicherfunktion und Modulo-Funktion benutzen...) Zitat:Außerdem sollten die Daten einen Tag lang gespeichert werden (24h) und dann automatisch ein neues File angelegt werden (mit dem aktuellen Datum).Diese Frage kommt so oft, dass sich eine schnelle Suche hier im Forum durchaus lohnen dürfte... RE: Kontinuierliche Datenerfassung - Daten speichern in geringerer Aufnahmefrequenz - Mr.Niceguy - 19.07.2011 12:08 Hallo GerdW, vielen Dank für die schnell Antwort. Mir ist leider nicht ganz klar was du mit Zitat:Tipp: Casestruktur um die Speicherfunktion und Modulo-Funktion benutzen...)meinst. Wo finde ich die Casestruktur mit der Speicherfunktion? Meinst du eine Ereignisstruktur? Wie kann ich Ihm dort einfach sagen, nimm jeden 6000 Wert und Speicher nur diesen in die Datei. Danke für deine Bemühungen. RE: Kontinuierliche Datenerfassung - Daten speichern in geringerer Aufnahmefrequenz - GerdW - 19.07.2011 12:17 Hallo Niceguy, ist das echt so schwierig? [attachment=34738] Eine CaseStruktur findet man in der Funktionspalette links oben... RE: Kontinuierliche Datenerfassung - Daten speichern in geringerer Aufnahmefrequenz - Lucki - 19.07.2011 13:15 Habe wenige Zeit, nur ganz kurze Antwort: Umgekehrt wirds richtig: An das Read-DAQ sollte Anzahl der aus dem Buffer zu lesenden Samples angeschlossen werden. Bei DAQ Sample-Takt sollte als Samplezahl nichts angeschlossen werden (Warum nicht? --> Hilfe zum VI genau lesen). Im Aliasing-Effekte zu vermeiden, ist es unbedingt zu empfehlen, mit höherer Abtastrate zu arbeiten ( hast Du ja auch vor -) und dann zur Datenreduktion Mittelwerte zu bilden. Also z.B von je 10000 Werten den Mittelwert nehmen statt jeden 10000sten Wert. Es könnte sein, daß das gewählte Format "Arrray von Signalverläufen" für diese Operationen eher lästig ist. Ich würde hier lieber 2D-Arrays nehmen. RE: Kontinuierliche Datenerfassung - Daten speichern in geringerer Aufnahmefrequenz - Mr.Niceguy - 19.07.2011 14:26 @GerdW Nein war nicht so schwer, jedoch trotzdem danke für das online stellen des Screenshots. @Lucki Zitat:An das Read-DAQ sollte Anzahl der aus dem Buffer zu lesenden Samples angeschlossen werden. Bei DAQ Sample-Takt sollte als Samplezahl nichts angeschlossen werden (Warum nicht? --> Hilfe zum VI genau lesen). Danke für den Tipp! Habe schon vorher bei Samplezahl (bei Sample Takt) den Anschluss entfernt, da ich damit Probleme hatte. Bevor ich an das Read-DAQ die Anzahl der aus dem Buffer zu lesenen Samples angeschlossen habe, musst ich feststellen dass die Schleife mit der Maximalen CPU Geschwindigkeit durchlaufen wird und nicht wie angenommen vom Sample - Takt vorgegeben. Die Lösung dafür hat folgendermaßen ausgesehen: [attachment=34741] Der Nachteil liegt an den Timer der dazu führt, dass die Abtastung nicht genau nach einer Minute erfolgt und der Fehler mit fortdauer größer wird: (60.23 s; 120.68s; 181.12s ....) Durch deinen Tipp, dass bei DAQmx Read die Anzahl der zu lesenden Samples eingegeben werden soll, konnte eine genauere Abtastung realisiert werden (60.00 s; 120.00s; 180.00 s...) [attachment=34742] Die Mittelwerte zu nehmen, anstatt jeden Xten Wert ist ein guter Vorschlag, jedoch habe ich das noch nicht zusammengebracht. Vil. kannst du mir da nochmal weiterhelfen. Im Anhang das aktuelle File. lg |