Speicher- / CPU-Auslastung beim File-abspeichern und einlesen
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
24.10.2012, 12:09 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2012 16:31 von jg.)
Speicher- / CPU-Auslastung beim File-abspeichern und einlesen
Hallo zusammen!
Folgendes Problem:
Ich generiere mir am cRIO Messdaten und im Falle einer fehlerhaften Kommunikation mit dem PC speichere ich diese auf der Festplatte des cRIO in verschiedenen Speicherfiles. (Es gibt je nach Prüflos ein Speicherfile mit Los1.txt, Los2.txt usw.) Soweit so gut.
Wenn für ein paar Tage meine Kommunikation nicht stattfindet, dann kann es schon mal vorkommen, dass eine einzelne Datei ziemlich groß wird (ca. 2-5MB).
Problem 1: Kann es sein, dass meine Messwertspeicherung beim Aufruf der großen Datei und Anfügen einer einzelnen Zeile, CPU-Auslastungen bis ca. 95% verursacht? Im Normalbetrieb erreiche ich so ca. 65%.
Problem 2: Beim Auslesen der Daten kommt es ebenfalls zu derart hohen Auslastungen, die ich mir aber selber dadurch erklären kann, da ja das gesamte File auf einmal ausgelesen wird. Liege ich da richtig?
Im Anhang der Aufbau meiner Abspeicherung bzw. der Auslesung.
RE: Speicher- / CPU-Auslatung beim File-abspeichern und einlesen
Es sind maximal 12 Files. Kann das wirklich zum Problem werden, oder liegt es an etwas anderem?
Kann man meinen Aufbau irgendwie verbessern? Der ganze gezeigte Screenshot wird zyklisch aufgerufen!?
RE: Speicher- / CPU-Auslatung beim File-abspeichern und einlesen
Hallo,
Zum Schreiben:
Wie schnell wird denn zyklisch das gezeigte Snippet ausgeführt?
Wenn es sehr häufig ausgeführt wird pro Los, dann kann man die Referenz auf die Datei in einem Schieberegister halten und die beiden DateiOperationen Öffnen und Schließen je 1mal ausführen und das Schreiben neuer Daten Xmal.
Alternativ ist vielleicht auch ein Streaming-Dateiformat möglich? Sowas wie *.tdms braucht vielleicht weniger Leistung beim Schreibvorgang...Da würde ich gerne hören, was die cRIO-Experten aus dem Forum hier sagen.
Zum Lesen:
So wie es aussieht liest du das gesamte File ein. Vielleicht könnte man das absichtlich etwas bremsen indem man die FilePosition und die zu lesende Menge vorgibt und die Position "gemächlich" weiterschiebt. Das wäre dann aber eben noch langsamer als ohnehin schon.