-> Hier kostenlos registrieren
Hallo allerseits!
Ich habe eine CX9000 von Beckhoff, auf der neben meinem Steuerungsprogramm auch ein selbstgeschriebenes (C#) HMI läuft.
Das HMI dient auch gleichzeitig als Datenlogger und speichert jede Sekunde diverse Prozess- und Anlagenzustände in ein Logfile.
(ca. 86000 Datensätze pro Tag und Datei, die Daten sind bitcodiert und damit recht sparsam im Speicherplatz (ca. 900kB pro Datei))
Derzeit ist es so, dass ich die Daten direkt sekündlich in die aktuelle Logdatei auf einen USB-Stick schreibe, der in der CX9000 steckt. Da mir vor einiger Zeit dieser Stick verreckt ist, habe ich mir so meine Gedanken über dieses Problem gemacht (Stichwort: begrenzte Schreibzyklen auf Flashspeicher).
Ich habe einige Lösungsansätze zwischen denen ich mich nicht so recht entscheiden kann. Vieleicht hat jemand von euch eine Idee welche Lösung die beste ist, oder einen anderen Vorschlag....
1. Statt auf einen USB-Stick kann ich die Daten auch einem Server im Netzwerk schieben.
2. a) Daten sofort schreiben <--> b) Daten im RAM sammeln und nur ein oder zweimal am Tag speichern.
a) hat den Vorteil das die Daten gleich sicher sind, auch wenn die Steuerung mal ausfällt (hab keine USV), aber den Nachteil der vielen Schreibzugriffe.
b) hier schreibe ich große Blöcke am Stück (wenig schreibzugriffe), dafür sind die letzten Daten weg, wenn die SPS mal abschmiert.
Macht es eigentlich einen Unterschied auf für die Alterung von Flashspeicher ob man die Daten in vielen kleinen Blöcken oder in wenigen großen Blöcken speichert?
Wenn ich weiterhin die Daten sofort schreibe, was ist da besser: Datei öffnen -> Schreiben -> Datei schließen -> Datei öffnen -> Schreiben ......
oder Datei öffnen -> schreiben -> schreiben -> schreiben -> Datei schließen
Momentan überlege ich einfach alles sofort auf den Stick zu schreiben (wie gehabt) und dann ein mal am Tag ein Backup auf den Server zu kopieren.
Für Anregungen/Vorschläge/Meinungen wäre ich sehr dankbar!
Ich habe eine CX9000 von Beckhoff, auf der neben meinem Steuerungsprogramm auch ein selbstgeschriebenes (C#) HMI läuft.
Das HMI dient auch gleichzeitig als Datenlogger und speichert jede Sekunde diverse Prozess- und Anlagenzustände in ein Logfile.
(ca. 86000 Datensätze pro Tag und Datei, die Daten sind bitcodiert und damit recht sparsam im Speicherplatz (ca. 900kB pro Datei))
Derzeit ist es so, dass ich die Daten direkt sekündlich in die aktuelle Logdatei auf einen USB-Stick schreibe, der in der CX9000 steckt. Da mir vor einiger Zeit dieser Stick verreckt ist, habe ich mir so meine Gedanken über dieses Problem gemacht (Stichwort: begrenzte Schreibzyklen auf Flashspeicher).
Ich habe einige Lösungsansätze zwischen denen ich mich nicht so recht entscheiden kann. Vieleicht hat jemand von euch eine Idee welche Lösung die beste ist, oder einen anderen Vorschlag....
1. Statt auf einen USB-Stick kann ich die Daten auch einem Server im Netzwerk schieben.
2. a) Daten sofort schreiben <--> b) Daten im RAM sammeln und nur ein oder zweimal am Tag speichern.
a) hat den Vorteil das die Daten gleich sicher sind, auch wenn die Steuerung mal ausfällt (hab keine USV), aber den Nachteil der vielen Schreibzugriffe.
b) hier schreibe ich große Blöcke am Stück (wenig schreibzugriffe), dafür sind die letzten Daten weg, wenn die SPS mal abschmiert.
Macht es eigentlich einen Unterschied auf für die Alterung von Flashspeicher ob man die Daten in vielen kleinen Blöcken oder in wenigen großen Blöcken speichert?
Wenn ich weiterhin die Daten sofort schreibe, was ist da besser: Datei öffnen -> Schreiben -> Datei schließen -> Datei öffnen -> Schreiben ......
oder Datei öffnen -> schreiben -> schreiben -> schreiben -> Datei schließen
Momentan überlege ich einfach alles sofort auf den Stick zu schreiben (wie gehabt) und dann ein mal am Tag ein Backup auf den Server zu kopieren.
Für Anregungen/Vorschläge/Meinungen wäre ich sehr dankbar!