LabVIEWForum.de - Wie soll ich meine Daten zwischenspeichern?

LabVIEWForum.de

Normale Version: Wie soll ich meine Daten zwischenspeichern?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich muss ein Testprogramm für Langzeittests schreiben.
Dabei werden zuerst Leerlaufspannungen sowie Temperaturen erfasst.
Anschließend werden verschiedene Lasten aufgeschalten. Spannungen und Temperaturen werden dabei in einer Wordvorlagen mit ActiveX gespeichert.
Am Ende des Programmes werden die Werte von verschiedenen Zeitpunkten nochmals für verschiedene Berechnungen benötigt.
Würdet ihr die Werte in einer Datei oder Array zwischenspeichern? Jede einzelne Leitung extra ziehen ist ja sicherlich keine schöne Lösung.

Ich hab noch nie ein größeres Programm erstellt, möchte aber von Anfang an eine saubere Linie einhalten.

Gruß Knochä
Hallo Knochä,

das hängt davon ab, was Du unter einem Langzeittest verstehst und wie groß das Datenvolumen ist.
Aber ich denke es ist bei einer längeren Laufzeit des Programms > 1h sicher besser die Daten von Zeit zu Zeit direkt in eine Datei zu sichern. Wenn irgendetwas passieren sollte sind die Daten jedenfalls noch vorhanden.
Wenn Du große Mengen an Daten erfaßt, ist es eh sinnvol das zu tun, da ein Array bei schlechter Programmierung das Programm in der Leistung einschränken kann.

Grüße
Andreas
Hallo zusammen!

Ich will die Frage nochmal aufgreifen und erweitern.

Mit meinem LabVIEW-Programm erfasse ich Daten von einem Sensor über RS232-Schnittstelle. Die Daten werden zum einen in Echtzeit ausgegeben und für ein Messprotokoll und zur Bearbeitung im Programm nach der Messung angesammelt. Das funktioniert schon alles ganz gut, aber nach einer Messzeit von ca. 150sec überlastet das Programm meinen Prozessor und stürzt ab.
Ich habe jetzt festgestellt, dass es an dem double-array, dass ich in einem Schieberegister ansammle das Problem ist. Es wird irgendwann einfach zu groß. (Der Sensor wird mit ca. 4,4kHz abgetastet und es soll bis zu 10 min am Stück gemessen werden können)

Jetzt meine Fragen: - Kann ich die Daten in eine Datei so alle 30sec zwischenspeichern und was für eine Datei soll ich wählen (Binär/
Messprotokoll?
- Ist es möglich in eine variable zwischen zu speichern (also ins RAM) um schreibzugriffe auf die Festplatte zu
vermeiden?

Es kommen immer ca. 50 Werte pro Schleifendurchgang an. Ich muss diese dann zu einem Array zusammenfügen.


Vielen Dank für die Mühe.
' schrieb:überlastet das Programm meinen Prozessor und stürzt ab.
Gehe ich richtig in der Annahme, dass du die Daten mit "Array erstellen", oder "In Array einfügen"/"An Array anhängen" speicherst?
Dieses Verfahren ist speichertechnisch gesehen aufwändig und führt zwangsläufig zu den von dir genannten "Nebeneffekten".
Besser ist es das Array vorzubesetzten und mit "In Array ersetzen" zu arbeiten.

Zitat:(Der Sensor wird mit ca. 4,4kHz abgetastet und es soll bis zu 10 min am Stück gemessen werden können)
Das ergäbe ca. 2.7Mio Daten, also maximal 22Mio Bytes - pro Kanal. Ich würde sagen, das ist am Stück möglich.

Zitat:Kann ich die Daten in eine Datei so alle 30sec zwischenspeichern und was für eine Datei soll ich wählen (Binär/Messprotokoll)?
Im Prinzip ja. Binärdatei wählen.

Zitat:Ist es möglich in eine variable zwischen zu speichern (also ins RAM) um schreibzugriffe auf die Festplatte zu vermeiden?
Im Prinzip ja. Aber: Ob 20 Variablen pro 30 Sekunden oder 1 Variable pro 10 Minuten - der Speicherverbrauch wäre eher gleich.

Ich würde vorerst vorschlagen, das double-Array mit der maximalen Länge (also für 10 Minuten) vorzubesetzten und die Daten darin zu "ersetzen".


Zitat:Es kommen immer ca. 50 Werte pro Schleifendurchgang an. Ich muss diese dann zu einem Array zusammenfügen.
Was heißt pro Schleifendurchgang? Pro Abtastung?
Referenz-URLs