Das heißt, die Schleife einfach nur ums WriteToSpreadsheetFile? Oder reicht es, wenn das das Speichern einfach in der WhileLoop läuft? Also ohne extra Schleife?
Hallo Wiltrud,
Zitat:Oder reicht es, wenn das das Speichern einfach in der WhileLoop läuft? Also ohne extra Schleife?
Wie schon gesagt: die FOR-Loop ist unnötig…
[
attachment=51935]
In deiner Schleife hängst du immer einen Zeilentitel vor deine Messwerte. Dies kann man auch mit dem kompletten Array machen:
Eine komplette Spalte mit dem Zeilentitel erstellen und als neue Spalte vor das Array packen. Dann speichern…
Wobei immer noch nicht geklärt ist, wie sinnvoll das Ganze ist. Es bringt halt nichts (sinnvolles), wenn man in jeder Iteration das komplette Datenarray erneut speichert. Ressourcenschonender ist es jedenfalls, wenn man nur die neuen Messdaten speichert…
Meine Idee beim Ganzen war, dass das Programm die Daten in der Datei speichert, die ich am Anfang vorgebe und dass diese dann jedes Mal mit den aktualisierten Messwerten überschrieben wird.
Hallo Wiltrud,
dass du dafür mit ständig anwachsenden Arrays arbeiten musst, ist dir klar? Und auch die Konsequenzen, die sich daraus ergeben?
(22.01.2015 19:46 )Lucki schrieb: [ -> ]Weitere Einsparmöglichkeiten sind:
- Die Daten in SGL-Fomat konvertieren. Für 16 bit-Daten ist das mehr als ausreichend.
- die Daten im SGL-Format zwischenspeichem, ohne sie in Stringdaten zu konvertieren. Diese Daten kann man dann auch ohne vorherige Konvertiereung als Stringdatei abspeichern.
Hallo Gerd,
ich habe Deine Änderungen übernommen -Dein PNG war nur ein Beispiel um zu zeigen, dass die FOR-Loop weggelassen werden kann und nicht für den Teil den Du dadrunter geschrieben hast, richtig?- und wie von Lucki vorgeschlagen die Werte in SGL konvertiert.
Um auf Deinen Kommentar zurückzukommen: Ich sehe schon, dass das Ganze zu sehr großen Dateien führt. Wie genau funktioniert denn das, wenn man nur die neuen Messdaten speichert?
Und wieso dauert es jetzt ca. 5-10s, bis die mein FrontPanel beim Start der Messung etwas anzeigt (Tabelle etc.)?
Hallo Wiltrud,
Zitat:nicht für den Teil den Du dadrunter geschrieben hast, richtig?
Richtig.
Zitat:Wie genau funktioniert denn das, wenn man nur die neuen Messdaten speichert?
Indem man nicht das komplette Array speichert, sondern eben nur die neuen Messwerte der aktuellen Iteration.
Und man öffnet die Datei
vor der Messschleife, schreibt den Header
vor der Messschleife und
in der Messschleife schreibt man nur die Datenzeilen.
Nach der Schleife schreibt man einen (evtl. gewünschten) Footer und schließt die Datei…
(30.01.2015 10:53 )GerdW schrieb: [ -> ]Indem man nicht das komplette Array speichert, sondern eben nur die neuen Messwerte der aktuellen Iteration.
Und man öffnet die Datei vor der Messschleife, schreibt den Header vor der Messschleife und in der Messschleife schreibt man nur die Datenzeilen. Nach der Schleife schreibt man einen (evtl. gewünschten) Footer und schließt die Datei…
Hallo Gerd,
ich weiß leider nicht wie das funktioniert mit der aktuellen Iteration. Das mit dem Header haeb ich hinbekommen, den packt er in der Ausgabedatei nur noch vor die einzelnen "time ch1 ch2..."-Titel. Du wirst mich in diesem Falle wieder für einen Vollidioten halten, was in Hinsicht auf Labview auf ein wenig zutreffen mag.
Trotzdem danke und ein angenehmes Wochenende, Wiltrud
Hallo Wiltrud,
probiere mal dieses abgespeckte Beispiel aus.
Ich behaupte nicht, dass es perfekt wäre. Man könnte z.B. mit Waveforms arbeiten, die haben die Zeitinformation schon "embedded"…
Vielen lieben Dank Gerd!
Das hat mich n gutes Stück weitergebracht. Ein kleines Problem gibt es aber noch: Und zwar dass immer nur der aktuell Wert in der Tabelle angezeigt wird, und nicht alle Werte zusammen. Wenn ich das wieder über ein Schieberegister mache, wird mir in der Tabelle nach jeder Messwertzeile die Array-Konstante mit "time ch1 ch2..." angezeigt. Außerdem wird ja dann wieder alles im Schieberegister zwischengespeichert, richtig?
Kann man das vllt über einen Knoten oä lösen?
Hallo Wiltrud,
Zitat:Ein kleines Problem gibt es aber noch: Und zwar dass immer nur der aktuell Wert in der Tabelle angezeigt wird, und nicht alle Werte zusammen.
Dann hast du das Problem nicht richtig angegangen!
Ich habe nie gesagt, dass du in der Tabelle nur die aktuellen Werte anzeigen sollst.
Ich habe immer gesagt, du sollst nur die aktuellen Werte in deiner Datei speichern!
Anzeige und Speicherung muss nicht notwendigerweise kombiniert werden!
Ansonsten: Wenn dein VI nicht (richtig) funktioniert, solltest du uns immer den aktuellen Stand zeigen…