Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
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?
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Zwischenspeicherung von Daten
Kommt darauf an, was Du programmiert hast.
Lad' mal Dein VI hoch.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(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
16.10.2014, 13:22 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2014 13:24 von Nordvestlys.)
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: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 )