INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Wie soll ich meine Daten zwischenspeichern?



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!

07.02.2008, 10:29
Beitrag #1

knochä Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Aug 2007

8.5
2007
kA

78147
Deutschland
Wie soll ich meine Daten zwischenspeichern?
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ä
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.02.2008, 19:23
Beitrag #2

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
Wie soll ich meine Daten zwischenspeichern?
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

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.04.2008, 18:53
Beitrag #3

Atomos Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Apr 2008

9.00
2007
de

91522
Deutschland
Wie soll ich meine Daten zwischenspeichern?
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.04.2008, 20:37
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Wie soll ich meine Daten zwischenspeichern?
' 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?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Wert Zwischenspeichern in Subvi Labview User 6 4.983 03.08.2016 15:03
Letzter Beitrag: Lucki
  Daten zwischenspeichern??? Spearmint 15 13.135 02.04.2014 10:36
Letzter Beitrag: JoeCain
  String zwischenspeichern floeteee 7 6.333 03.03.2014 11:02
Letzter Beitrag: Kiesch
  Dialogfeld soll zur Eingabe von Daten aufrufen Knarrre 4 7.143 06.03.2012 12:17
Letzter Beitrag: Knarrre
  VI Package Manager kennt meine LV Vision nicht! gangli1975h 5 5.149 28.11.2011 15:24
Letzter Beitrag: Y-P
  Datensatz mit der Queue-Funktion zwischenspeichern? LV-Fred 4 5.560 17.08.2011 07:31
Letzter Beitrag: LV-Fred

Gehe zu: