www.mikrocontroller.net

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


Autor: F. Tschurtschenthaler (acerpower)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: F. Tschurtschenthaler (acerpower)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.