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
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.
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/
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.