Forum: Mikrocontroller und Digitale Elektronik Freies Format für Messadatenspeicherung


von pks (Gast)


Lesenswert?

Hallo,

kennt jemand eine, am liebsten lesbares, Dateiformat für die Speicherung 
von Messdaten mehrerer analoger/binärer Kanäle? Am liebsten eines, für 
das es ein freies Darstellungstool gibt. Notfalls würde ich das aber 
auch selbst implementieren. Nur das Dateiformat möchte ich eben nicht 
neu erfinden, denn über sowas haben sich bestimmt schon viele Leute 
Gedanken gemacht. Allerdings sollte es auch nicht zu aufgebläht sein.
Gefunden habe ich bisher das LabVIEW Measurement File (.lvm)...

von Christian R. (supachris)


Lesenswert?

Matlab Files sind auch gut, da gibts Libs zum Erstellen und Lesen. Aber 
so komplett frei ist wohl nur CSV, XML usw.

von Busbauer (Gast)


Lesenswert?

Was ist den der unterschied zwischen Messdaten die analog und binär 
gespeichert sind? Sobald es irgendwie auf dem Chip ist sind alle Werte 
binär sprich Digital

Enfach und schnell: CSV
Comma-separated values
1
Winkel,Temperatur,Ausgangsregister,Zeichenkette
2
3.1415,-15,0x23,'Mein Pferd ist eine Lasagne'
3
0,15,0xFA,'Mein Pferd ist ein Schimmel!'
Darstellbar mit so ziemlich allem was "Dateiimport" und "Graph zeichnen" 
kann, bei hexadezimalen Zahlen eventuell in dezimaler Schreibweise 
umwandeln

XML:
Extensible Markup Language
1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
<messreihe>
3
     <titel>Messdaten vom 13.03.13</titel>
4
     <eintrag>
5
          <winkel>3,1415</winkel>
6
          <temperatur>-15</temperatur>
7
          <ausgangsregister>0x23</ausgangsregister>
8
          <zeichenkette>Mein Pferd ist eine Lasagne</zeichenkette>
9
     </eintrag>
10
     <eintrag>
11
          .....
12
     </eintrag>
13
     .....
14
</messreihe>
 Können auch viele Programme, musst schauen wie die das haben wollen, 
vorteil ist das es viele Programme gibt die auch in einer Art SQL 
Messdaten sortieren abfragen filtern etc können.

von pks (Gast)


Lesenswert?

Naja, das mit dem freien Viewer ist nur ein nice-to-have. Ich hab eh 
Spaß daran sowas selbst zu coden. Wichtig wäre mir aber eben ein 
verbreitetes offenes Dateiformat, das ich nicht selbst definieren muss 
und ggf. auch mit anderen(auch kommerziellen) Tools öffnen kann.

von Busbauer (Gast)


Lesenswert?

Christian R. schrieb:
> Matlab Files sind auch gut, da gibts Libs zum Erstellen und Lesen. Aber
> so komplett frei ist wohl nur CSV, XML usw.

Ja bei Matlab muss man aber sagen das es Lesbar sein soll sonst klatscht 
der einem nur Binärdaten hin ;)

von pks (Gast)


Lesenswert?

Busbauer schrieb:
> Darstellbar mit so ziemlich allem was "Dateiimport" und "Graph zeichnen"
> kann,
Zum Beispiel? Von Excel mal abgesehen.

Busbauer schrieb:
> Was ist den der unterschied zwischen Messdaten die analog und binär
> gespeichert sind?
Ich meinte in diesem Fall mit Binär Statuswerte, also welche mit 1-Bit 
Information.

von Bussard (Gast)


Lesenswert?

Schau dir mal http://www.logview.info/vBulletin/ an, ist eigentlich zur 
Akkulade-/ Entladeprotokollierung entwickelt worden, kann aber durch 
sein offenen Format leicht an viele Zwecke angepaßt werden.

Gruß Bussard

von Busbauer (Gast)


Lesenswert?

pks schrieb:
> Zum Beispiel? Von Excel mal abgesehen.

OpenOffice Calc (free
Matlab (kostet "etwas")
Scilab (free)
GNUplot (free)

sicherlich noch 1000 andere Programme

von Kmmmm (Gast)


Lesenswert?


von Der Rächer der Transistormorde (Gast)


Lesenswert?

pks schrieb:
> Hallo,
>
> kennt jemand eine, am liebsten lesbares, Dateiformat für die Speicherung
> von Messdaten mehrerer analoger/binärer Kanäle? Am liebsten eines, für
> das es ein freies Darstellungstool gibt.

.csv Das können fast alle lesen und schreiben. Ob nun Linux Windows oder 
...
Die Dateien sind per Texteditor lesbar und einen Header mit 
Feldbezeichnungen können die meisten Tools auch verarbeiten.

Falls es auch um die Übertragung geht. Da kann man logview für nehmen.
Gesicherte oder ungesicherte Übertragung und direkte grafischer Online 
Darstellung. Das Protokoll nennt sich openformat (s. post weiter oben). 
Das kann  auch als csv speichern.

von Fabian O. (xfr)


Lesenswert?

+1 zum csv-Format. Was noch nicht explizit gesagt wurde: In der ersten 
Spalte speichert man üblicherweise den Zeitstempel, in den folgenden 
Spalten je einen Messwert zu diesem Zeitpunkt.

Datensatz schreiben geht in C einfach mit fprintf(), lesen und 
verarbeiten wie schon gesagt mit so ziemlich allen Programmen.

von Sven B. (scummos)


Lesenswert?

CSV. XML ist ein Scheiß für sowas (hust wie für das meiste hust) 
weil man einfach fünfzig mal so viel Speicherplatz braucht.
Den CSV-Kram kann eigentlich jedes Programm lesen, und ist auch gut von 
Hand anzuschauen.

Gnuplot kann das auch in null komma nix plotten, zum Beispiel.

von gk (Gast)


Lesenswert?

csv und xml sind allenfalls "Container" für Messdaten, aber keine 
Dateiformate für Messdaten. Dazu bedarf es schon einer Vorschrift, wie, 
z.B. in welcher Reihenfolge die Messdaten stehen und welcher 
physikalischer Einheit sie entsprechen. Sowie Zusatzinformationen.
Die Konvention, z.B. die erste Spalte als Zeitreihe und die ersten 
beiden Zeilen als Bezeichner und phys. Einheit zu benutzen, hat nichts 
mit dem csv-Format zu tun.
gk

von Busbauer (Gast)


Lesenswert?

Naja das kannst du mit XML schon lösten indem du Atribute vergibst oder 
coole Templates.
Aber das ist doch für 99% aller Anwendungen zu viel.

von (prx) A. K. (prx)


Lesenswert?

Vielleicht passt es, vielleicht nicht: Oetikers RRDtool.

von gk (Gast)


Lesenswert?

Busbauer schrieb:
> Naja das kannst du mit XML schon lösten

Natürlich kannst Du das, dann hast Du aber Dein eigenes Dateiformat 
kreiert, mit dem Container XML. Und das wollte der TO erstmal nicht, 
sondern hat gefragt, ob es einen freien Standard gibt.

Mir fällt da höchstens ASAM ein.  http://www.asam.net/

gk

von pks (Gast)


Lesenswert?

Danke erstmal für die Antworten. Ich habs jetzt mal Probeweise als 
simples CSV geschrieben und mit SciLab geplottet. Allerdings bin ich mit 
dem Flow nicht besonders zufrieden und SciLab ist im Handling irgendwie 
schleppend langsam. Für tatsächliche Messdaten fände ich das noch ok, 
allerdings möchte ich auch Daten aus SW-Simulationen darstellen, wo ich 
zig Durchläufe mache und es schön wäre das Ergebnis direkt zu sehen.
Ich werd mir wohl eine kleine Bibliothek implementieren, die Datensätze 
speichert und neben eine Export/Import-Funktion für verschiedene Formate 
auch eine eigene Plotfunktion bietet.

von Kevin K. (nemon) Benutzerseite


Lesenswert?

Sehr viele Messgeräte speihern ihre Daten in Formaten, die eigentlich 
CSV sind. Öfters sind die Dateiendungen einfach anders, aber wenn man 
die dann mit einem Texteditor öffnet, sieht man dann eine geordnete 
Struktur, wie man es eben als CSV kennt. Häufiger habe ich auch den 
Tabulator als Trennzeichen gesehen. Unser Massenspektrometer 
beispielsweise speichert .msdat Dateien, die aber reinen ASCII-Text 
enthalten. Ebenso ein EEG-Gerät, welches als .bis speichert, da muss man 
sich eben für beispielsweise Matlab oder Origin einen kleinen 
Importfilter schreiben und dann kommt man schnell an die Daten ran. Du 
solltest dir für ein eigenes Format auch überlegen, ob du als 
Dezimaltrennzeichen das Komma oder den Punkt verwendest.

von Gregor B. (Gast)


Lesenswert?

Eine Möglichkeit wäre HDF5

http://www.hdfgroup.org/

SciLab unterstützt das Format.

von Sven B. (scummos)


Lesenswert?

Gnuplot ist sehr schnell im plotten von CSV-Daten.

von Strubi (Gast)


Lesenswert?

Warum hat noch keiner das .vcd-Format (Value Change Dump) genannt? Kann 
man sehr schnell selbst programmieren, ansonsten gibts ne Menge 
Code-Beispiele.

Kritisch wird's allerdings, wenn riesige Datenmengen anfallen.
Da gibts diverse komprimierte Formate. Siehe GTKwave-Dokumentation.
Läuft auch alles unter Windows.

von Frank M. (frank_m35)


Lesenswert?

Gnuplot mittels Skripte ist, sofern man es mal kann, schnell und 
einfach. Gnuplot macht aber erst so richtig Spaß unter Linux mit der 
Shell.
Ansonsten kannst du dir auch mal http://kst-plot.kde.org/ für die 
Visualisierung anschauen.

Zur Speicherung genügt ein Textdokument mit einem Eindeutigen 
Trennzeichen für die Spalten, Zeilen durch neue Zeile. JEDES 
Visualisierungsprogramm unterstützt dies und so ein Textdokument enthält 
alle Information die du messen kannst.
Ein proprietäres Dateiformat kommt erst durch die Visualisierungsoftware 
zustande, in dem dann die Daten aufbereitet werden und Formatierung etc. 
gespeichert werden. (in Gnuplot in Form eines Skripts, bei anderen 
Programmen eben ein spezielles Dateiformat)
Für reine Messwerte ist ein CSV aber das einzige Format das du nehmen 
solltest.

Einarbeiten musst du dich aber in jedes Visualisierungs-Programm, da 
jedes ein bisschen anders bedient wird. Auf Anhieb von alleine klappt 
das nicht.
Desto umfangreicher die Software, desto länger die Einarbeitungsphase 
und desto unwahrscheinlich, dass es kostenlos ist.

Also kommt es stark auch drauf an wie komplex deine Messwerte sind und 
wie komplex deine Diagramme später sein sollen.

von Strubi (Gast)


Lesenswert?

Gnuplot ist zwar eine gute Idee, aber für alignierte zeitgenaue 
Mehrkanaldarstellung von ganz unterschiedlichen Messdaten (analog, 
digital, States, etc.) nur bedingt zu gebrauchen.
Wird auch wie angeklungen fürchterlich langsam, wenn man z.B. in 
Mehrkanalmesswerten im Bereich von 20'000 Samples und mehr herumzoomen 
will. Das Problem hat GTKwave weniger, allerdings gibt es beim 
VCD-Format irgendwann overflows.

von Arc N. (arc)


Lesenswert?

Wo sind die Fragen...

Wie viele Daten und in welcher Zeit?
Wie muss auf die Daten zugegriffen werden können (optimiert für 
wahlfreien Zugriff vs. optimiert für sequentiellen etc.)?
Was davon muss in welcher Zeit wieder dargestellt/umgewandelt werden?
Welche und wie viele Zusatzinformationen werden/sollen mitgespeichert 
werden?

von Timo S. (kaffeetas)


Lesenswert?

Gregor B. schrieb:
> Eine Möglichkeit wäre HDF5
>
> http://www.hdfgroup.org/

Eventuell kommt auch eine ältere Version (3.6 o.ä) von NetCDF [1] in 
Frage. Da ist der Aufwand dann etwas geringer. Es gibt gute 
Dokumentation und viele unterstützte Programmiersprachen.
Ab Version 4 wird auch das o.g. HDF5 Datenformat unterstützt!

[1] http://www.unidata.ucar.edu/software/netcdf/

von pks (Gast)


Lesenswert?

Was das Plotten angeht hab ich mir jetzt selbst was mit Qt/Qwt 
gebastelt, da bin ich auch mit der Performance zufrieden :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.