LabVIEWForum.de
Daten vor dem engültigen Speichern Puffern / Temp. Verzeichniss ohne die CPU zu überlasten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Daten vor dem engültigen Speichern Puffern / Temp. Verzeichniss ohne die CPU zu überlasten (/Thread-Daten-vor-dem-engueltigen-Speichern-Puffern-Temp-Verzeichniss-ohne-die-CPU-zu-ueberlasten)



Daten vor dem engültigen Speichern Puffern / Temp. Verzeichniss ohne die CPU zu überlasten - Alex M - 20.04.2009 08:07

Hallo, nachdem ich dachte, ich hätte nun alle Probleme in meinem Programm gelöst, wurde ich heute mal wieder auf den Boden der Tatsachen zurückgeholt.

Mein Programm liest in einer Timed Strukture While- Loop alle 100ms die Daten aus einem cFP 1808 aus, skaliert und parametriert sie, und übergibt sie per Melder an die Hauptschleife des Programms. Neben dem Datenerfassungs- Vi und der Hauptschleife läuft parallel noch eine Schleife mit Event- Struktur, in der die Bedienelemete des Frontpannels ausgewertet werden, dienstprogramme gestartet werden, usw. In der Hauptschleife befindet sich ein Waveform- Chart, die dem Benutzer die Kennlinien der aufgenommenen Messwerte visualisiert.

Der Benutzer soll, nach eingabe aller Daten (Materialnummer, Serialnummer, etc) eine Messung starten können, und wenn alles passt, diese Messdaten als Protokoll abspeichern könnnen. Falls es fehler gibt, kann er die Messung abbrechen, da Protokolle nur für iO- Teile benötigt werden.

Dateiformat ist TDMS, da *.xml bzw. ecel- files schnell zu gross geworden sind.

Ich hatte nun die data- History des Waveform- Charts auf so viele Werte geändert, das ich ca 2h Messung abdecken konnte, bei "Messung Start" den Chart auf 0 gesetzt, während der Messung als Puffer verwendet, und bei "Messung specihern" die Data Hisotry per PropertyNode in die *.tdms- File geschrieben.

Nach ca 10min glüht nun aber die CPU, weil das Chart eine riesige History hat, und das neuzeichnen extrem viel Leistung frisst.

Wenn ich die Daten syncron zum einlesen in eine tdms- File schreibe, habe ich das Problem natürlich nicht, allerdings wird immer eine Datei angelegt, und bei "niO"- Messungen, die abgebrochen werden, mülle ich mir die Datenbank zu. Die eine überlgung ist nun, die Daten im Arbeitsspeicher zu puffern (außerhalb des Charts), hierzu konnt eich bisher allerdings noch nichts finden. (werder in der Help, noch im Forum). Oder aber, ich speichere die Daten in einer art Cache- Bereich wie zb. die Temprary internet Files, und wenn sie "gespeichert" werden sollen, kopiere ich sie mir in den "festen" Dateipfad, wenn das Programm beendet wird, lasse ich das Temp- verzeichniss löschen. Allerdings habe ich keine Ahnung, wie ich sowas in LV realisieren sollte, das einzige, das mir einfällt, wäre eine Lösung mit der cmd- Zeilen funktion.

Und das stelle ich mir recht komplex vor Wink.

Oder gibt es einen komplett anderen Lösungsansatz, den ich noch nicht gesehen habe?

Grüße Alex


Daten vor dem engültigen Speichern Puffern / Temp. Verzeichniss ohne die CPU zu überlasten - Alex M - 20.04.2009 11:27

Hallo, ich habe nun wieder mal einige sinnlose Stunden vor dem PC zugebracht.

Ich bin izwischen zu der Variante gekommen, das es das effizienteste ist, die Daten direkt in die *.tdms- File zu streamen.

Allerdings habe ich probleme, diese File aus dem LV heraus zu löschen, falls sie verworfen werden soll.

Ich habe nun schon ewig mit dem exec.vi experimentiert, ich kann jede exe am ganzen PC damit starten, egal wo sie ist... aber DOS- Befehle bekomme ich einfach nicht ausgeführt. Das cmd- Fenster geht zwar auf, aber das war es auch schon.

Wenn ich einfach nur" cmd /c" eingebe, bekomme ich ganrnichts zurück...

bei cmd /d interessanter weise den Pfad,unter dem das vi gespeichert ist (d:... etc).


Daten vor dem engültigen Speichern Puffern / Temp. Verzeichniss ohne die CPU zu überlasten - jg - 20.04.2009 11:50

File Delete gibt's hier:
[attachment=17916]
Gruß, Jens


Daten vor dem engültigen Speichern Puffern / Temp. Verzeichniss ohne die CPU zu überlasten - schrotti - 20.04.2009 11:53

Du musst nur beachten, *.tdms_index ebenfalls zu löschen. Einfach die Dateierweiterung austauschen.


Daten vor dem engültigen Speichern Puffern / Temp. Verzeichniss ohne die CPU zu überlasten - Alex M - 20.04.2009 13:51

Hallo,
super Sache das mit den advanced file IO`s Top1 muss man nur erstmal finden...

Der Tip mit der *.tdms_index war auch gut, die hätte ich nämlich sicher erstmal vergessen. Im nachinein... oh was hab ich mich mit dem exec.vi herumgequält. Dafür bin jezt am überlegen, ob ich mir einen "Solitär-Spielen"- Button mit einbaue Big Grin, der natürlich nur visible ist, wenn man als "Admin" angemeldet ist Rolleyes