LabVIEWForum.de
Verlangsammung des Programms durch Abspeichern von Messdaten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Verlangsammung des Programms durch Abspeichern von Messdaten (/Thread-Verlangsammung-des-Programms-durch-Abspeichern-von-Messdaten)

Seiten: 1 2


Verlangsammung des Programms durch Abspeichern von Messdaten - Phil Unglert - 13.05.2016 09:49

Hallo zusammen,

ich versuche derzeit mit Labview 2014 Messdaten abzuspeichern, wofür ich im Wesentlichen das VI "Write to Measurement File2.vi" verwende:

[attachment=55888]

Grundsätzlich funktioniert das oben gezeigte Beispiel gut, allerdings fällt mir auf, dass das Abspeichern nach einiger Zeit sehr lange dauert. Meiner Meinung nach liegt das daran, dass der Aufwand die Messdatei (in meinem Fall ist dies eine Excel-Datei) zu öffnen, zur letzten Zeile zu springen, die Daten einzutragen und die Messdatei im Anschluss daran wieder zu speichern mit zunehmender Anzahl der Daten (stark) wächst.

Diese Tatsache führt dazu, dass das Abspeichern der Daten einen massiven Flaschenhals verursacht der die Geschwindigkeit meines gesamten Programms verlangsamt.

Ich würde mich sehr freuen wenn ihr mir hierzu ein paar Tipps geben könntet um dieses Problem zu umgehen!

Beste Grüße
Phil

Edit jg: Externer Bildlink gelöscht


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - wladimir s - 13.05.2016 09:59

Die Daten über die Queue an eine parallele Schleife schicken und dort dann die Daten abspeichern.


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - jg - 13.05.2016 10:38

Offtopic2
Anhänge (auch Bilder) in Zukunft bitte hier im Forum hochladen (vgl. LVF-Regeln).

Danke, Jens


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - jg - 13.05.2016 10:56

Ergänzung zum Hinweis von wladimir:
Daten nicht per Express-VI (und vor allem nicht im Excel-xlsx-Format) speichern. Das kannst du ganz zum Schluss machen, aber nicht für "Live-Streams".
Alternativen: TDMS oder csv. Dabei den File nur zu Beginn der Messung 1x öffnen, File geöffnet halten und immer wieder hinzufügen, und nur am Ende der Messung 1x schließen.

Gruß, Jens


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - Phil Unglert - 13.05.2016 11:20

Danke für eure Kommentare!

@
Zitat:Ergänzung zum Hinweis von wladimir:
Daten nicht per Express-VI (und vor allem nicht im Excel-xlsx-Format) speichern. Das kannst du ganz zum Schluss machen, aber nicht für "Live-Streams".
Alternativen: TDMS oder csv. Dabei den File nur zu Beginn der Messung 1x öffnen, File geöffnet halten und immer wieder hinzufügen, und nur am Ende der Messung 1x schließen.

Gruß, Jens

Könnt ihr mir einen Link o.ä schicken (oder ein kleines Beispiel posten) wie man so etwas realisiert?

Beste Grüße
Phil


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - jg - 13.05.2016 17:27

Es gibt massig Beispiele im NI Example Finder. Oder auch hier im Forum. Einfach mal suchen...

Gruß, Jens


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - Phil Unglert - 15.05.2016 20:56

Hallo,

leider komme ich bei meiner Suche nicht wirklich weiter. Ich bin nach wie vor auf der Suche nach einer Möglichkeit, (Mess)daten in einem festen Intravall, von mir festgelegten Intervall mit einem Zeitstempel abzuspeichern. Irgendwann möchte ich die Daten gerne mit Excel weiterverarbeiten, ob LabView die Daten in Form eines Excel-, Text-, CSV- oder irgendeinem mir bis dato unbekannten Format abspeichert ist dabei eigentlich egal.

Kann jemand einen Link teilen?

Beste Grüße
Phil


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - Trinitatis - 16.05.2016 10:22

Hallo Phil,

hier mal eine Inspiration...


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - Phil Unglert - 16.05.2016 13:45

Hallo Trinitatis,

besten Dank für dein Beispiel. Soweit ich die Anmerkungen hier in diesem Thread und auch bei meiner eigenen Recherche verstanden habe sollte man doch beim Speichern von Daten das Producer-Consumer-Konstrukt anwenden. Genau hierzu finde ich aber kein gutes Beispiel, vielleicht könnt ihr mir noch einmal helfen.

Beste Grüße
Phil


RE: Verlangsammung des Programms durch Abspeichern von Messdaten - Phil Unglert - 16.05.2016 15:56

Hallo zusammen,

ich habe hier ein Beispiel gefunden, dass ich entsprechend meinen Bedürfnissen etwas umgebaut habe (s. Bild anbei). Das Ganze funktioniert soweit ganz gut, aber:
  • Wenn ich es richtig verstehe, wird die Messdatei erst dann erzeugt / geschrieben, wenn das Programm aus der While-Schleife "ausbrechen" kann, also wie in diesem Beispiel gezeigt durch Beenden des Programms. Bedeutet dies dass somit alle bis dahin entstandenen Daten in den Zwischenspeicher gepuffert werden? Wird das nicht irgendwann zum Problem, wenn ich Daten im Sekundentakt über mehrere Tage hinweg speichern möchte?
  • Im Beispiel beeinflusst ja das Speicherintervall die Laufzeit des gesamten Programms. Wenn ich z.B. ein Speicherintervall von 1s definiere, der Code selbst aber eine Programmlaufzeit von 3s besitzt (z.B. weil sehr viele Messwerte abgefragt werden müssen), summiert sich die Gesamtlaufzeit ja auf 4s. Was ich jedoch eigentlich möchte ist ja dass ich unabhängig von der Programmlaufzeit in dem von mir definierten Intervall abspeichere. Leider bin ratlos wie ich das realisieren kann und würde mich hier über eure Anregungen freuen!

Ich würde mich sehr freuen wenn ihr mir bei meinem Problem weiterhelfen könntet!

Beste Grüße
Phil