02.02.2006, 09:35
Beitrag #2
|
Biks
LVF-Grünschnabel
Beiträge: 35
Registriert seit: Jul 2005
7.1
2002
kA
18106
Deutschland
|
CPU-Auslastung runterschrauben
ich kann mir deine VIs jetzt nicht anschauen, aber generell musst du darauf achten, dass die while schleifen nicht unendlich schnell laufen. ein einfaches "warten" oder "bis zum vielfachen warten" im millisekunden-bereich reicht oft schon aus.
was dein timing in bezug auf die kommunikation angeht kann ich dir so auch nicht weiterhelfen. reihenfolgen müssen halt eingehalten werden, warten bis sich puffer geleert oder gefüllt haben usw.
mal wieder nix genaues von mir, aber vielleicht bringt dich der denkanstoß auch schon weiter.
|
|
|
02.02.2006, 15:53
Beitrag #3
|
bemecha
LVF-Grünschnabel
Beiträge: 49
Registriert seit: Aug 2005
kA
|
CPU-Auslastung runterschrauben
Hi,
ich habs mal das auch schon ausprobiert, dass meine "Haupt-While-Schleife" immer mit einer 500ms-Verzögerung läuft, aber das bringt meine CPU-Auslastung nicht runter :(und ich hab schon hier einen 2,5GHz rechner stehen. Leider hat dieser nur 512MB RAM. Vielleicht bringt eine Erhöhung des RAMs etwas.
Danke für die anregung
Gruß
thomas
|
|
|
04.02.2006, 22:09
Beitrag #4
|
piktor
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Feb 2006
2014
2001
DE
88662
Deutschland
|
CPU-Auslastung runterschrauben
Hallo Thomas,
kennst Du den VI Profiler? Der hat mir schon oft bei solchen Problemen geholfen. [MenüToolsAdvancedProfile VIs]
Ich würde gerne mal einen Blick auf Deine VIs werfen, aber leider habe ich nur LabVIEW 7.0
Wenn du das für meine Version konvertierst, schau ich mir das mal an.
[MenüFileSave with OptionsSave for Previous x.x]
Für mich darf allerdings x.x maximal 7.0 sein
Gruß, Gunther
Wer nicht nur an der Oberfläche kratzt, bohrt hin und wieder eine Bauschaumdose an!
|
|
|
05.02.2006, 22:02
Beitrag #5
|
|
|
05.02.2006, 23:14
Beitrag #6
|
piktor
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Feb 2006
2014
2001
DE
88662
Deutschland
|
CPU-Auslastung runterschrauben
Moin Thomas,
das Konvertieren hat gut funktioniert, ich konnte das Programm laufen lassen. Ich habe jetzt auf die Schnelle natürlich nicht alles überprüfen können, das "Progrämmchen" ist ja nicht mehr ganz trivial,
aber durch Einfügen einer Wait (ms) Funktion in der Notaus/Alarm reset Schleife konnte ich die CPU last auf unter 5% drosseln.
Bedenke bitte, dass LabVIEW im Prinzip alle Schleifen, die nicht in einander verschachtelt sind, parallel bearbeitet, somit reicht eine Schleife ohne Wait um die Prozessorlast auf 100% zu erhöhen. Also immer alle Schleifen "ausbremsen" wenn volle Geschwindigkeit nicht benötigt wird.
Was mir noch "by the way" aufgefallen ist:
- die VISA Kommunikation wird nicht wieder geschlossen, also VISA close fehlt möglicherweise.
- die Schleife oben wird nicht beendet, sondern durch close Panel abgewürgt, ist vielleicht etwas sauberer sie über eine lokale Beenden Variable zu schließen.
Ich wünsche Dir noch viel Spaß und Erfolg beim Optimieren.
Gruß, Gunther
Wer nicht nur an der Oberfläche kratzt, bohrt hin und wieder eine Bauschaumdose an!
|
|
|
06.02.2006, 13:30
Beitrag #7
|
bemecha
LVF-Grünschnabel
Beiträge: 49
Registriert seit: Aug 2005
kA
|
CPU-Auslastung runterschrauben
Hi Gunter,
:DDanke vielmals - ich bin hin und weg - an diese Schleife hab ich garnicht gedacht - Danke - jetzt ist die Leistung runter - JUHU
Das mit dem trivial tut mir leid - stand ziemlich unter Zeitdruck, aber ich verbessere das zuletzt noch, natürlich .
Das mit VISA kommt auch zuletzt, wenn alles andere steht.
ähm sorry vielleicht für die dumme Frage, aber was meinst du mit "die Schleife oben wird nicht beendet, sondern durch close Panel abgewürgt, ist vielleicht etwas sauberer sie über eine lokale Beenden Variable zu schließen." Meinst du die Schleife mit einem eigenschaftsknoten oder ähnlichem zu Beenden oder wie?
Gruß
thomas
|
|
|
06.02.2006, 17:54
Beitrag #8
|
piktor
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Feb 2006
2014
2001
DE
88662
Deutschland
|
CPU-Auslastung runterschrauben
Hallo Thomas,
nein, so war das natürlich nicht gemeint. Mit "nicht trivial" meinte ich, dass ich das komplette Programm nicht durch einmal kurz draufschauen verstanden habe.
Freut mich auf jeden Fall, dass ich Dir helfen konnte.
Die Schleife oben ist die Notaus/Alarm reset While Loop, die immer läuft, da an ihre Abbruchbedingung eine Konstante angeschlossen ist. Wenn die Ausführung der Hauptschleife durch drücken von Beenden verlassen wird, dann würde das Programm Steuerungssoftware.vi weiterlaufen, da die Notaus/Alarm reset Schleife weiterläuft. Ihre Abbruchbedingung wird nie true. Ich vermute: momentan wird das gesamte Programm durch den Eigenschaftsknoten "Panel open"=false beendet, die Schleife läuft also rein theoretisch im Hintergrund weiter.
Nix für ungut, es läuft ja auch so, aber eine lokale Variable ist ja nicht die Pest.
Gruß, Gunther
Wer nicht nur an der Oberfläche kratzt, bohrt hin und wieder eine Bauschaumdose an!
|
|
|
| |