zwischen Pufferung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: zwischen Pufferung (/Thread-zwischen-Pufferung) |
zwischen Pufferung - ecper - 20.09.2011 13:03 Hallo zusammen! Da ich kein Experte bin, möchte ich eure Hilfe in anspruch nehmen: Mein Programm soll 12 Tage lang mit einer 10ms-Datenerfassung dauerhaft laufen (mehrere Messwerte), eine Speicherung aller 10ms würde eine riesige Datei bedeuten. (Datenerfassung: cDAQ-System mit NI9205 Modulen) Deshalb würde ich gerne jeweils 5 min. lang datenerfassen (Rate 10ms) und zwischen speichern bzw. puffern, wenn alles ok dann puffer erneut schreiben, wenn nicht, Grenzwert Überschreitung, dann die Werte in eine seperate Datei speichern! Dadurch würde ich eine Messwertspeicherung für ein 5minutige Fehlerbereich bekommen, und eine kleinere Datei. Hat jemand eine Idee wie ich dieses Problem mit Labview 2010 umsetzen könnte? Vielen Dank und Gruß aus Berl RE: zwischen Pufferung - kaiman - 20.09.2011 14:58 Hallo ecper, was willst du mit den Daten machen? Willst du alle 5 min die letzten 5 min überschreiben, oder willst du die Daten einfach nur im 5 min Takt wegschreiben. Ich würde zwei Schleifen parallel abarbeiten lassen, eine die im 10 ms Takt die Daten abruft, und eine zweite die im 5 min Takt die Daten sammelt und dann die tausenden Werte verarbeitet/speichert. Die Daten kannst du per Queue von der einen in die andere Schleife schieben. Nach 5 min leerst du die Queue einfach - natürlich nachdem du die Daten verarbeitet/gespeichert hast. Gruß, Kai RE: zwischen Pufferung - ecper - 21.09.2011 08:33 Hallo Kaiman, es geht um eine permanente Drehzahl überwachung über 12 Tage, dabei soll alle 10ms die Drehzahl erfasst und gespeichert werden, um eine riesen große Datei zu vermeiden: -Soll für ein Zeitraum von 5 min. die aktuelle Werte zwischen gespeichert/gepuffert o.ä. werden -Wenn kein Fehler auftritt, dann soll diese überschrieben (5 min. Takt überschreiben) werden -Beim Fehlerfall soll allerdings diese letzten 5min. in einer Datei gespeichert werden Vielen Dank für deine Antwort und Gruß ecper RE: zwischen Pufferung - kaiman - 21.09.2011 08:49 Moin, wie äußert sich denn der Fehlerfall? Voller Absturz der Software, oder stellst du mit der Datenanalyse fest, das was faul ist? Ich würde es wie beschrieben machen und die Daten per Queue in die zweite Schleife übertragen, dort die Daten analysieren und dann im Fehlerfall in eine txt hacken. Je nachdem, wie und in welcher Form der Fehler auftritt, musst du deine Software dazu bringen die Daten zu speichern... Für mehr reicht meine nicht. Lad doch mal ein VI oder ein Screenshot vom BD hoch wenn du noch weitere Hilfe brauchst... Gruß, Kai P.S.: Im Examplefinder gibts Beispiele für Queues... RE: zwischen Pufferung - ecper - 21.09.2011 10:15 Moin Moin, der Fehlerfall wird durch die Softwareanalyse festgestellt, d.h. es gibt min/max-Grenzen wenn die verletzt werden, dann soll die letzte 5min. gespeichert werden. Leider fehlt mir die Erfahrung mit Queue, aber ich werds mal ausprobieren. Danke+Gruß RE: zwischen Pufferung - ecper - 22.09.2011 13:24 Leider komme ich nicht weiter, bitte um ein Beispiel VI. Gruß RE: zwischen Pufferung - kaiman - 22.09.2011 13:50 Womit kommst du nicht weiter? (22.09.2011 13:24 )ecper schrieb: Leider komme ich nicht weiter, bitte um ein Beispiel VI.Bitte darum deine Bemühungen als VI hochzuladen. RE: zwischen Pufferung - ecper - 23.09.2011 11:00 hallo, die obige Bedingung versuche ich an das Programm (s.u.) anzubinden. Speicherung beginnt nur dann, wenn Mittelwert überschreitung von 10% auftritt. Gruß ecper PS: Eine andere Idee ist, ich speichere alle 5min. in eine andere Datei, aber wie kann ich dabei die Dateinnamen hochzählen, damit eine neue Datei erzeugen werden kann??? RE: zwischen Pufferung - kaiman - 23.09.2011 12:03 Moin, da ich nicht so wirklich den Plan von DAQmx hab und auch einige VIs in deinem Upload fehlen, hab ich dir mal ein Beispiel für Queues und Notifier gebaut, vllt. wird's dadurch ein bisschen klarer. In der unteren Schleife werden die Daten in einer Datei gespeichert. Wenn du die nicht jedesmal überschreiben willst, musst du einfach einen neuen Dateinamen generieren. Das kannst du mit den standard String/Pfad-Funktionen(z.B. Strings verbinden, String zu Pfad etc.). Und du must dann ggf. noch eine Abfrage für das Speichern nur im Fehlerfall umsetzen. Viel Spaß und Erfolg, Kai RE: zwischen Pufferung - ecper - 23.09.2011 12:21 Danke und schönes WE Ecper |