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 

Massendatenspeicherung



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!

29.01.2013, 22:05
Beitrag #1

Maximilian Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Dec 2008

8.5
2008
de

78224
Deutschland
Massendatenspeicherung
Hallo zusammen,

ich hätte da meine eine Frage zur Abspeicherung von Messdaten in großer Anzahl

Ich sollte über ein Wago-Modul ca. 60 Analogwerte und ca. 60 Binärsignale mit einer Zykluszeit von 10ms aufzeichnen und über einen Zeitraum von 24 Stunden ablegen und dies möglichst für mehrere Tage, Wochen, Monate.

Wie kann ich eine Masse von Daten am besten handeln. Welches Datenformat ist das geeigneste.

Ich habe ein Muster VI angehängt (LV8.5) ich der ich über TDMS files und über EXcel die Daten ablege. Genauso könnte die Speicherung über eine Datenbank zu realisieren sein

Gibt es aus eurer Erfahrung eine bessere kompaktere Lösung???

Über einen Tipp würde ich mich freuen

Gruß Max


Angehängte Datei(en)
8.5 .vi  Massendaten_speichern.vi (Größe: 33,04 KB / Downloads: 195)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.01.2013, 22:14
Beitrag #2

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Massendatenspeicherung
Hallo Max,

ein einfacher Weg wäre sicher ein Binärfile. Wenn du dir eine Datei erstellst und die Referenz offen lässt, dann kannst du die Daten sicher auch in dieser Zykluszeit schreiben.
Da du ja immer dieselbe Anzahl an Daten schreibst, kannst du später auch, gezielt durch vorheriges Setzen des Read-Pointers der Datei einzelne Datensätze auslesen.

Ich weiß nicht, ob man in Datenbanken überhaupt so schnell schreiben kann.

Gruß, marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2013, 22:25
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Massendatenspeicherung
Auch wenn es nur ein Bsp. ist, zum Einstieg ein paar Kritikpunkte:

Wieso die Race-Condition mit dem "Zähler"? Wieso dafür das Datenformat DBL?

Du erstellst keine Excel-Files, sondern csv-Files!

Die Datenmenge schreit geradezu nach einer Datenbank im Hintergrund. Bei entsprechend optimierten INSERT-Befehlen, z.B. gleich mehrere Datensätze pro INSERT-Befehl, sollte das kein Problem sein.
TDMS mag auch eine gute Idee sein, allerdings müsstest du noch einiges optimieren, wie z.B. ebenfalls immer wieder mal neue Files anlegen und nicht Einzelwerte wegschreiben - das bläht den File unnötig auf.

Gruß, Jens

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2013, 22:44
Beitrag #4

Maximilian Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Dec 2008

8.5
2008
de

78224
Deutschland
RE: Massendatenspeicherung
Danke für eure Antworten

Mit dem Binärfile kann ich nichts anfangen, kenn ich nicht. Gibt es dafür ein Beispiel??

Die Daten kann ich auch in einem Array sammeln und mehrer Datensätze übertragen, aber mein Problem ist auch das genaue Timeing der Abspeicherung der Messdaten. Desto größer das Array umsogrößer die Übertragungszeit. Sollte ich vielleicht mit zwei parallelen While schleifen arbeiten??
Ich sollte auch eine exakte Abspeichenrate hinbekommen. Wenn es mit 10ms nicht geht kann ich auch auf max. 50ms erhöhen.

Ich sollte parallel erfassen, aufzeichen und übertragen und das ohne Unterbrechungen.

Kennt dafür jemand ein Muster vi??
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2013, 22:44
Beitrag #5

Maximilian Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Dec 2008

8.5
2008
de

78224
Deutschland
RE: Massendatenspeicherung
Danke für eure Antworten

Mit dem Binärfile kann ich nichts anfangen, kenn ich nicht. Gibt es dafür ein Beispiel??

Die Daten kann ich auch in einem Array sammeln und mehrer Datensätze übertragen, aber mein Problem ist auch das genaue Timeing der Abspeicherung der Messdaten. Desto größer das Array umsogrößer die Übertragungszeit. Sollte ich vielleicht mit zwei parallelen While schleifen arbeiten??
Ich sollte auch eine exakte Abspeichenrate hinbekommen. Wenn es mit 10ms nicht geht kann ich auch auf max. 50ms erhöhen.

Ich sollte parallel erfassen, aufzeichen und übertragen und das ohne Unterbrechungen.

Kennt dafür jemand ein Muster vi??
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2013, 22:50 (Dieser Beitrag wurde zuletzt bearbeitet: 29.01.2013 22:56 von Trinitatis.)
Beitrag #6

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Massendatenspeicherung
Hallo Max,

die Idee mit parallelen Schleifen ist sicher keine schlechte.
Ich würde eine Schreibschleife, die in eine Queue schreibt und eine, die aus dieser wieder ausliest verwenden.
Dann kannst du noch hin und wieder den Füllstand der Queue prüfen und ggf. meckern.


Gruß, Marko

Edit:
Da du Zufallswerte zw 0 und 1 mit 255 multiplizierst, gehe ich von zu schreibenden bytes aus. Im Binärfile könnte man dann pro Wert ein Zeichen = 1 byte schreiben. Gegen die Tatsache, dass das file irgendwann vor Größe platzen würde sollte man sicher auch was tun, also hin und wieder ein neues anlegen - aber dieses Problem hast du sowieso.
Im Binärfile müsste man sich dann nur etwas für den Zeitstempel überlegen, dort also Low/High-Bytes bzw. eben dann noch mehrere Ebenen für den Zeitstempel generieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.01.2013, 09:47
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Massendatenspeicherung
Ein "selbstdefinierter" Binärfile hat eine Reihe von Nachteilen, für einen Langzeitversuch würde ich davon abraten.

1) Du kannst das nur mit deiner eigenen Software wieder auslesen.
2) Wenn nur 1 Byte falsch ist / verschoben wird / o.ä., kannst du deinen kompletten Datensatz ab dieser Stelle wegschmeißen.
3) Erweiterungen (z.B. mehr oder weniger Messkanäle) bedeuten immer eine Änderung des Fileformats.
etc. pp.

Gruß, Jens

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.01.2013, 11:08
Beitrag #8

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Massendatenspeicherung
Hallo Jens,

die Tatsache, dass das Auslesen nur mit eigener Software geht, ist sicher ein Nachteil. Ich bin nur wegen der nötigen Schreibgeschwindigkeit auf diese Idee gekommen.

Und die spätere Erweiterbarkeit ließe sich in Grenzen sicher durch das Schreiben von Füllbytes realisieren, was das file natürlich aufbläht.

Wenn es denn mit Datenbanken ginge, wäre dies sicher der bessere Weg.


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: