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 

Kontinuierlich Messwerte in *.mat file schreiben



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!

13.06.2008, 13:30
Beitrag #1

4ling Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jun 2008

7 & 8
2008
en

91054
Deutschland
Kontinuierlich Messwerte in *.mat file schreiben
Hallo an Alle,

ich arbeite zur Zeit an meiner Projektarbeit. Bei einem Klimakammerversuch lese ich per DAQ 72 analoge Kanäle ein. Soweit sogut. Zur Auswertung und Analyse soll Matlab verwendet werden.
Nun gehts also um die Speicherung der Daten in LabVIEW und einlesen in Matlab.

Es gibt ja mehrere Möglichkeiten:[list]
[*]ASCII-Textfile
Hier natürlich das Problem der Dateigröße da der Versuch zw. 1-5 Wochen laufen und man mit 10-100 Herz abtastet geht das schnell in die mehreren Gigabyte.<>
[*]NI-proprietäres TDM/TDX Format
Braucht man ein Addon für Matlab zum Auslesen. Damit komm ich aber garnicht zurecht.<>
[*]Matlab eigenes *.mat Format
Eignet sich meiner Meinung am besten da man binär speichert (Platzoptimal) und man in Matlab mit einem simplen "load xyz.mat" alle Daten bereit hat.<>
[st]Also hab ich mit dem *.mat Format herumexperimentiert. Dazu gibts ein VI auf der Hilfeseite:
http://digital.ni.com/public.nsf/websearch...BA?OpenDocument

   

Im Prinzip funktioniert das auch super. Das Problem ist nur dass ich kontinuierlich Datenaufzeichnen muss. Sprich ich speicher nicht einmal etwas in eine *.mat Datei sondern die Datei wird einmal geöffnet und dann für die Dauer des Versuchs die Daten reingeschrieben - am Ende natürlich wieder geschlossen. Siehe mein Anhang wie es im moment läuft speichert es nur jeweils 100Samples pro Schleifeniteration in der Matfile. Aber ich bräuchte eben alle...

Es müsste also sowas wie "Matfile Append" geben und nicht nur write. In einen LabVIEW internen Puffer schreiben ist auch keine Möglichkeit da das ja im Arbeitsspeicher gespeichert werden würde und somit zu groß wird.

Kennt sich jemand mit dem Speichern von großen Datenmengen und dem Export/Import mit Matlab aus?

Vielen Dank für Eure Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2008, 16:31
Beitrag #2

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
Kontinuierlich Messwerte in *.mat file schreiben
Wenn Du matlab auf dem gleichen Rechner wie LV hast, würde ich das per Matlab-Knoten versuchen.

Ansonsten würde ich, auch aus Datensicherheitsgründen, alle 12 oder 24h ne neue Datei mit Datum& Uhrezit im Dateinamen anlegen.

Oder gleich in ne Datenbank schreiben..

Oder ist sichergestellt, dass der PC nicht abstürzt und keiner auf den Notaus haut oder den Stecker zieht?

Gruß,
Rob

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2008, 17:11
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Kontinuierlich Messwerte in *.mat file schreiben
Statt "create or replace" beim File Öffnen "open or create" verwenden und dann den "File Marker" vor dem Schreiben ans Ende des bestehenden Files setzen. Vergleiche hier.

Ausserdem, das in deinem Hinweis verlinkte zip-Archiv enthält doch auch ein Beispiel "SaveAsMatFile", in dem der FileMarker gesetzt werden kann.

MfG, 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
14.06.2008, 11:34 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2008 11:42 von 4ling.)
Beitrag #4

4ling Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jun 2008

7 & 8
2008
en

91054
Deutschland
Kontinuierlich Messwerte in *.mat file schreiben
Hoi,

vielen Dank erstmal an Euch beide für die Tips.

@dc6xs: Das mit der neuen Datei ist auf jedenfall ein guter Hinweiß - wollten wir eh so machen. Was meinst du eigentlich mit Datenbank? Daran hatte ich schon gedacht á la SQL. Kann LabVIEW in solch eine Datenbank schreiben und Matlab daraus lesen? Wie aufwändig ist die Implementierung in LabVIEW und Matlab?
Datenbank ist ja für große Datenmengen gedacht - und bei mir würden ca. 435.456.000 Messwerte pro Woche anfallen (Double mit Format "0.099676"). Ist diese Menge an Daten Matlab zur Auswertung eigentlich gewachsen?


@Jens G: Ich hab das nun mal mit dem FileMarker probiert. Im Prinzip funktioniert es dass die Datei immer größer wird. Das Problem ist aber anscheinend das Format der Mat-File. Ich kann diese nach einem "Append" nichtmehr öffnen. Das Format einer Matfile ist hier erläutert:
www.zdv.uni-tuebingen.de/static/hard/zrsinfo/matlab/R14/help/pdf_doc/matlab/matfile_format.pdf
Wie z.B. auf Seite 15 sieht man dass man immer das Format und die Länge der Daten angeben muss. Das Problem ist ja nun dass bei mir durch die kontinuierliche speicherung die Länge immer weiter anwächst!

Konkrete Datenmengen kann ich super in einer *.mat File speichern. Ich häng aber immernoch daran kontinuierlich Daten einzutragen:
- Datei öffnen
- MatFile Header schreiben
- Daten Header schreiben
- kontinuierlich Daten eintragen
- Datei schließen

So müsste es ja prinzipiell gehen - nur keine Ahnung ob dafür das MatFile Format das richtige ist.

Vielleicht ist ja doch die Idee mit der Datenbank die Beste?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.06.2008, 18:14
Beitrag #5

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
Kontinuierlich Messwerte in *.mat file schreiben
' schrieb:Hoi,

vielen Dank erstmal an Euch beide für die Tips.

@dc6xs: Das mit der neuen Datei ist auf jedenfall ein guter Hinweiß - wollten wir eh so machen. Was meinst du eigentlich mit Datenbank? Daran hatte ich schon gedacht á la SQL. Kann LabVIEW in solch eine Datenbank schreiben und Matlab daraus lesen? Wie aufwändig ist die Implementierung in LabVIEW und Matlab?
Datenbank ist ja für große Datenmengen gedacht - und bei mir würden ca. 435.456.000 Messwerte pro Woche anfallen (Double mit Format "0.099676"). Ist diese Menge an Daten Matlab zur Auswertung eigentlich gewachsen?
(...)

Ja hatte an eine SQL-Datenbank (ambesten auf einem extra Server mit Backup-lösung) gedacht.
SQL war hier oft genug Thema, da sollte die Forensuche was zu ausspucken.
Matlab kann bestimmt auch aus einer SQL-DB lesen, vondaher sehe ich keine Probleme.

500Millionen Messwerte a 4 byte für double macht ca. 2GB, sollte Matlab hinbekommen, ansonsten vllt mal in der Doku lesen, wo da das Limit liegt.

Brauchste denn wirklich soviele Messwerte? Und was willste denn damit nachher anfangen?

Ansonsten ist vielleicht auch Origin für die Datenaufarbeitung ein tipp für Dich. Da gibs glaube ich sogar ne Studenten/Eval-Version zum testen.

Gruß,
Robert

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.06.2008, 17:44
Beitrag #6

4ling Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jun 2008

7 & 8
2008
en

91054
Deutschland
Kontinuierlich Messwerte in *.mat file schreiben
Hi dc6xs,

ja, über Datenbankanbindung hab ich schon einiges gefunden. Muss mich da noch bisschen einarbeitenSmile

Zu dem Thema ob ich alle Messwerte brauche: Das Problem ist dass wir eine Messung mit 72 Leiterplatten fahren welche nach der Klimakammer unbrauchbar sind. Das heißt wir haben einen Versuch um die Daten zu gewinnen und mit ihnen zu arbeiten. Deshalb ist es mir fast am liebsten alles aufzuzeichnen. Im Nachhinein löschen ist ja immernoch möglichSmile
Andererseits werden wir wohl eine ganze Menge Nullen aufschreiben bevor sich durch Korrosions bzw. Migrationseffekte Spannungsausschläge abzeichnen werden ->

Dafür hatte ich die Funktion "Trigger und Gate" gefunden welche eigentlich absolut alles hat was ich bräuchte um die Daten zu filtern:
   

Das große Problem an dieser Funktion ist jedoch dass man immer nur einen Triggerkanal benutzten kann!
Entweder bau ich das 72x in mein LabVIEW File rein oder wie sonst?

Wenn es hierfür eine einfache Möglichkeit gibt wäre das perfekt. Dann könnte ich wohl auch in Textfiles speichern da die Datenmenge drastisch reduziert wäre.
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
  Messwerte in TXT schreiben MarcoN 6 5.750 07.06.2019 06:36
Letzter Beitrag: MarcoN
  Config File schreiben oe-ms1 5 5.843 03.05.2018 12:00
Letzter Beitrag: jg
  String in INI File schreiben galilio 4 6.805 08.02.2016 13:37
Letzter Beitrag: galilio
  Messwerte in Excel schreiben heaster 5 7.712 24.07.2015 07:38
Letzter Beitrag: GerdW
  Messwerte in Datei schreiben lola2014 1 4.850 14.11.2014 13:47
Letzter Beitrag: Y-P
  Werte aus FIFO kontinuierlich in csv Datei schreiben Stefan_r 6 6.244 19.12.2013 11:01
Letzter Beitrag: Stefan_r

Gehe zu: