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!
Ich habe mehrere Vi´s ständig laufen. Nach ein paar Stunden steigt die Prozessorauslastung stetig an - bis 100% Prozessorauslastung. Danach lassen sich die Vi´s auch nicht mehr ordentlich beenden und schließen. Ich benutze LabVIEW 7.0 und Windows XP Professional. Was muß ich an den Vi´s verändern?
Sammelst du vielleicht in deinen VI's irgendwelche Daten-Arrays? Dann wird es nach langer Laufzeit immer länger dauern, das Array zu dynamisch zu vergrößern. Und das braucht dann natürlich enorm Prozessor-Leistung.
Oder hast du While-Loops laufen, die dauernd versuchen, Frontpanel-Elemente abzufragen? Dann mußt du an diesen Stellen kleine Verzögerungen einbauen.
Ist aber alles nur ein Schuß ins Blaue. Dazu müßten wir deine VI's im Orignal sehen (oder Screenshots des Sourcecodes).
MfG, Jens</div>
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:Ich habe mehrere Vi´s ständig laufen. Nach ein paar Stunden steigt die Prozessorauslastung stetig an - bis 100% Prozessorauslastung. Danach lassen sich die Vi´s auch nicht mehr ordentlich beenden und schließen. Ich benutze LabVIEW 7.0 und Windows XP Professional. Was muß ich an den Vi´s verändern?
Hi,
Hast Du vielleicht etliche while-schleifen laufen?
Pack mal in jede Schleife ein 10ms warten rein, sollte helfen..
Gruß, Rob
Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.
N.B.: "Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Prozessorauslastung
An das mit der Verzögerung habe ich auch als erstes gedacht, aber mit den While-Schleifen ist der Prozessor doch normalerweise sofort überlastet. Das tritt aber komischerweise erst nach ein paar Stunden auf.
Das beste wäre, wenn man das VI mal sehen könnte.
Gruß Markus
' schrieb:Hi,
Hast Du vielleicht etliche while-schleifen laufen?
Pack mal in jede Schleife ein 10ms warten rein, sollte helfen..
Gruß, Rob
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
ich würde auch auf ein Array tippen, dass mit der Zeit immer größer wird. Wie sieht es denn mit der Speicherauslastung aus?
Starte doch mal den VI-Profiler, dann kannst du sehen, welches VI den Rechner in die Knie zwingt.
Gruß
sven
dem kann ich mich nur anschließen. Das klingt danach, dass das VI nach und nach immer mehr Speicher braucht - wahrscheinlich ein "build Array" mit schieberegistern in einer Schleife?!. Wenn der physikalische Speicher "verbraucht" ist, fängt LV an auszulagern. Je nach Größe des hauptspeichers dauert das ein Weilchen, wenn man dann in der Zwischenzeit immer wieder neuen Speicher anfordert hat man seinen Rechner quasi abgeschossen.
Bei Windows 98 gab das dann immer so ne schöne Bluescreen
Die Vi´s laufen alle zwischen 250 ms bis 1000ms. Ich habe mir ein Trend Vi gebaut - es läuft alle 60 Sekunden und schreibt 4 Temperaturen. Dies habe ich mit einem Express Vi realisiert. Ist das mein Problem? Wenn ja wie kann ich Temperaturen mitschreiben ohne diese Auswirkungen?
Gruß Markus
' schrieb:Die Vi´s laufen alle zwischen 250 ms bis 1000ms. Ich habe mir ein Trend Vi gebaut - es läuft alle 60 Sekunden und schreibt 4 Temperaturen. Dies habe ich mit einem Express Vi realisiert. Ist das mein Problem? Wenn ja wie kann ich Temperaturen mitschreiben ohne diese Auswirkungen?
Gruß Markus
ich kenn dein VI nicht, also kann ich nicht wirklich was dazu sagen - nur raten, aber wenn das das Problem ist, dann könnte man das lösen, in dem man die Daten z.B. in einen Ringspeicher schreibt, sprich ein Array, an das nicht immer wieder was angehängt wird, sondern bei dem - wenn eine bestimmte Länge überschritten / erreicht wurde - die ältesten Werte überschrieben werden.
Dabei muss man sich halt vorher überlegen, wieviel Daten man nun puffern will, dafür läuft der Speicher nicht mehr voll ...
Ich benutze das Express Vi "XY Graph erzeugen". Dort schreibe ich 4 Werte in Verbindung mit einem Zeitstempel. Hat jemand eine fertige Lösung für meine Anwendung? Ich möchte Temperaturen in Abhängigkeit von der Tageszeit mitschreiben und mindestens für 48 Stunden loggen. Es genügt die Temperaturen alle 5 Minuten zu erfassen.
Geau das ist es. Dein ExpressVI für XY Plot sammelt alle Daten und wird irgendwann voll. Ich habe gerade sowas ausprobiert mit diesem ExpressVI. Ich habe eine Stunde lang die Daten (nur zwei Punkte, also X und Y) mit 10 Hz zu sammeln. Die CPU-Auslastung ist innerhalb einer Stunde von 8% auf 15% gestiegen. Die Lösung wäre z.B. eine Queue(FIFO) oder Array, wo du die Daten ablegst und dafür sorgst, dass nur eine bestimmte Datenmenge dort abgespeichert wird. Aber na ja ein Sample pro 5 Minuten in 48 Stunden sollte eigentlich nicht so viel sein. Trotzdem kann das der Grund deines Problems sein.