LabVIEWForum.de - zwischen Pufferung

LabVIEWForum.de

Normale Version: zwischen Pufferung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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
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
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 Glas1 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...
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ß
Leider komme ich nicht weiter, bitte um ein Beispiel VI.

Gruß
Womit kommst du nicht weiter?
(22.09.2011 13:24 )ecper schrieb: [ -> ]Leider komme ich nicht weiter, bitte um ein Beispiel VI.

Gruß
Bitte darum deine Bemühungen als VI hochzuladen.
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???
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
Danke
und schönes WE

Ecper
Referenz-URLs