LabVIEWForum.de - Zwischenspeicherung von Daten

LabVIEWForum.de

Normale Version: Zwischenspeicherung von Daten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Liebes LV-Forum!

Ich arbeite an einem Messprogramm, welches die Messwerte in einer Tabelle darstellt und am Ende in einer Datei abspeichert. Meine Frage ist, was mit den Messwerten passiert, bevor ich sie speichere. Werden diese irgendwo zwischengespeichert? Wenn ja, wo?

Vielen Dank, Wiltrud
Kommt darauf an, was Du programmiert hast.
Lad' mal Dein VI hoch.

Gruß Markus
Hier bitte schön!
Hi

da wird nichts zwischengespeichert. Soweit ich weiß schreibt die Funktion "write to spreadsheet file" direkt in das angegebene File...

Warum ist das interessant?

T
Hallo Wiltrud,

Zitat:Werden diese irgendwo zwischengespeichert? Wenn ja, wo?
Sie werden zwischengespeichert: im Schieberegister!
Besonders sicher (hinsichtlich PC-Absturz, ungeplanter Programmabbruch, etc.) ist das aber nicht!

Tipp:
Wenn du PNG-Bilder statt BMP speicherst, kannst du eine Menge Speicherplatz sparen…
Ein ganz schöner Misch-Masch in deinem VI.

Ich fasse zusammen, was du programmiert hast:
- Du erfasst in einer Schleife immer einen Block das AI-Daten (N Kanäle, N Samples / Zeilen...).
- Von diesem Block nimmst du immer nur den ersten Datensatz und hängst ihn immer wieder an ein 2D-String Array ran.
- Die erfassten Daten zeigst du ihn einem Chart an.
- Bei Beendigung der Schleife gibst du den letzten kompletten AI-Block an ein Express-Speicher-VI weiter.

Somit landen (laut Dataflow) am Ende in deinem File:
- der letzte AI Block
- die erste Zeile jedes AI-Blocks

Der Rest ist dann weg.

Gruß, Jens

EDIT: Wie Marko nach mir schreibt, wenn du deine Erfassungsschleife zu lange laufen lässt, dann ist irgendwann mal der RAM des PC voll, und dann ist ALLES weg.
(16.10.2014 13:10 )toaran_ schrieb: [ -> ]Warum ist das interessant?

T

So ganz uninteressant ist das Speicherverhalten eines erstellten VIs nie, erst Recht nicht, wenn man mit vielen Datenmengen hantiert. Wenn so eine Datenaufzeichnung über Tage im ms-Takt läuft und man dazu noch mit Variablen unterwegs ist, kann das Speichermanagement über Top oder Flop der Applikation entscheiden. Die meisten Kunden werden komisch bei out of memory-Meldungen.

Gruß, Marko
Mit einem Doppelklick auf die Tabelle im Frontpanel (das VI darf dabei nicht laufen), springt Labview zum Pendant im Blockdiagramm. Wenn Du einen Dreifach-Klick auf die rosa Leitung von "Messwert-Tabelle" machst, siehst Du alle anderen Elemente die sonst noch an dieser Leitung hängen. Alternativ kann man auch die Symbole solange verschieben, bis alles schön übersichtlich ist.
Grundsätzlich gilt (wie fast überall in der Digitaltechnik) dass es normalerweise genau eine Signalquelle gibt. Alle anderen Elemente an einer Leitung sind also in der Regel "Empfänger".

Wenn Du also mit Dreifachklick die Leitung markierst/hervorhebst, siehst Du "oben" noch ein paar Berechnungen. Am Schleifenrand rechts ist einmal ein Schieberegister (das Symbol mit dem Pfeil) hier werden die Werte für den nächsten Schleifendurchgang zwischengespeichert. So werden die alten Zeilen der Tabelle immer wieder in die nächste Runde kopiert.

Das kleine Quadrat ein Stückchen höher (ein sogenannter Tunnel) übergibt nach Ende der Schleife den letzten Wert (also die ganze Tabelle) an nachfolgende Prozesse. Konkret ist es das Icon mit dem Stift, das nach Schleifenende die Messdatei als csv-Datei speichert.

Generell funktioniert das "Zwischenspeichern" bei Labview "in" den Leitungen. Du kannst jede Leitung also in etwa mit den Variablen in anderen Programmiersprachen vergleichen. Das schöne ist, man kann hier auf einen Blick erkennen was alles davon abhängt, und wann die Leitung/Variable/Zwischenspeicher nicht mehr benötigt wird.
(16.10.2014 13:16 )GerdW schrieb: [ -> ]Hallo Wiltrud,

Zitat:Werden diese irgendwo zwischengespeichert? Wenn ja, wo?
Sie werden zwischengespeichert: im Schieberegister!
Besonders sicher (hinsichtlich PC-Absturz, ungeplanter Programmabbruch, etc.) ist das aber nicht!

Tipp:
Wenn du PNG-Bilder statt BMP speicherst, kannst du eine Menge Speicherplatz sparen…

Oh stimmt das Schieberegister hatte ich übersehen...

T
(16.10.2014 13:25 )toaran_ schrieb: [ -> ]Oh stimmt das Schieberegister hatte ich übersehen...
Nicht nur das: Die Daten werden natürlich auch in der Tabelle selbst gespeichert. Man kann sich das Schieberegister sogar sparen, wenn man die alten Daten mit einer lokalen Variable immer wieder aus der Tabelle rausholt und daran die neuen Daten anhängt. Damit spart man Speicherplatz. Zu sehen z.B. im Express-VI "XY-Graph". (Proteste über die Verwendung von lokalen Variablen bitte direkt an NI, nicht an mich Big Grin)
Seiten: 1 2 3 4
Referenz-URLs