Forum: PC Hard- und Software Messwerte mit Visual Basic 2008 in Datei speichern


von F. T. (acerpower)


Lesenswert?

Hallo an alle!
Ich möchte Messwerte aus einem AVR oder einer SPS, egal, mit VB2008 in 
einer Datei speichern. Das Programm soll alle 5 Min. 120 Messwerte mit 
Anlagennummer, Datum und Uhrzeit protokollieren. Dies lässt sich mit 
einem StreamWriter-Objekt auch tadellos erledigen. Die einzelnen Werte 
mit ";" trennem und in einer Textdatei angehängen. Pro Tag soll eine 
neue Datei angelegt werden. So weit, so gut.
Nun zu meiner Frage: Gibt es eine Dll oder hat sonst wer eine Idee, wie 
mann die Daten effizienter (weniger Speicherbedarf) und vor allem nicht 
für jeden lesbar speichern könnte. Wenn man sich die Archiv-Dateien von 
kommerziellen Programmen ansieht, gibt es nicht viel leserliches und 
diese sind für die enormen Datenmenge auch noch relativ klein.

Vielleicht hat sich diesbezüglich schon jemand einmal Gedanken gemacht, 
wie man sowas lösen könnte oder schon gelöst hat.

Bin für jede Info dankbar!

Freundliche Grüsse
Hermann Klotz

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nun, Du könntest komprimierende Dateifunktionen verwenden, wie sie ZIP 
und RAR anbieten. Beide sind sicherlich auch als DLL verfügbar, und die 
könntest Du auch aus Deinem VB-Programm heraus nutzen.

Den Speicherbedarf kannst Du aber auch auf Betriebssystemebene 
reduzieren, sofern NTFS als Dateisystem eingesetzt wird. Das nämlich 
kann transparent auf Dateiebene komprimieren und liefert bei 
Textdateien auch sehr gute Ergebnisse.

von thomas (Gast)


Lesenswert?

hi,
wenn du es platzsparend und nicht lesbar haben möchtest, dann würde ich 
es so machen:

Datei nach dem anlegen einfach zippen (mit passwort) und dann die 
Quelldatei löschen.

Zum Anfügen der Daten zipDatei wieder entpacken , daten anfügen und 
wieder packen. DIe zipdatei muss ja nicht .zip heißen.
Hier findest du die dll und samples zum packen auch für VB.Net
http://www.icsharpcode.net/opensource/sharpziplib/

von oszi40 (Gast)


Lesenswert?

Hallo Hermann,

wenn ich Messwerte lese, dann will ich diese später auch mal auswerten 
sonst könnte man sie gleich in den Papierkorb befördern? Dafür sollte 
man schon VOR dem zippen oder verschlüsseln ein sinvolles Suchsystem 
erfinden!

Beispiel Dateiname 2008_07_31_16.00_Zustand417.csv

Zippen und dann noch weitere zip anhängen würde ich vermeiden, da sich 
dann auch Datei-Fehler addieren könnten.

Außerdem frage ich mich im Zeitalter der 4GB-SD-Speicher ob man wirklich 
komprimieren muß. Meistens will man die Werte doch schnell suchen oder 
auswerten? Heute steht doch eher die Frage, ob man regelmäßig den Chip 
tauscht zur Datensicherung oder rollierend speichert.
Jedenfall sollte man wenn es die SIcherheit zulässt, ein einfaches 
System nehmen, was auch in ein paar Jahren noch funktioniert. Sonst sind 
die wertvollen Messdaten verloren.

Es ist natürlich nicht verboten, statt Buchstaben binäre Daten zu 
erzeugen.

von F. T. (acerpower)


Lesenswert?

Hallo an alle, einen Dank vorerst!

Nun das mit dem Zippen gefällt mich nicht sehr. Ich könnte mir höchstens 
ein Zippen nach Archivbeendigung vorstellen, also nach jedem Tag. Die 
Daten sollen   natürlich wieder eingelesen und verarbeitet werden. Und 
das können Daten von "heute" oder vor 11 Monaten sein. Die Daten werden 
dabei zuvor sinnvoll mit einer festen Länge und Position gespeichert. 
Nach dem Abrufen und Suchen im Stream werden sie dann mit z.B ZEDGRAPH 
in VB.Net zur Anzeige gebracht.

Könnte man nicht eine Verschlüsselung einsetzen?
Oder wie machen das Software-Entwickler für z.B. Logikanalyser oder mit 
dem PC verbundene Messgeräte, sobald sie Messdaten speichern?
Da steht nicht viel drinn und trotzdem sind es eine Menge Daten.

Freundliche Grüsse

Hermann Klotz

von thomas (Gast)


Lesenswert?

Dann schreibe doch die Daten in eine Datenbank.
der MSSQLExpress ist for free und läuft auch auf "schwächeren" PC.
Das hat den Vorteil, das du einfach alle Backup und 
Archivierungsfunktionen des SQL Servers verwenden kannst. Außerdem kann 
dann die Auswertesoftware übers Netzwerk auf die Daten zugreifen( 
Erfassung steht irgendwo in der Produktion, Meister im Büro kann Daten 
auswerten und auch drucken).

So jedenfalls machen wir das immer, und hat bis jetzt noch keine 
Nachteile oder Probleme aufgezeigt.

mfg
Thomas

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.