01.12.2006, 11:46
Beitrag #1
|
a-sl
LVF-Gelegenheitsschreiber
Beiträge: 51
Registriert seit: Nov 2006
8.2
2005
kA
71034
Deutschland
|
CPU Auslastung 98%
Hallo,
ich weiss, das Thema wurde hier schon x-mal durchgekaut.
Ich habe auch die Suche benutzt und sämtliche Beiträge dazu durchgekaut, trotzdem war keine Lösung dabei.
Mein Fall: Ich messe Temperaturen mit Thermoelementen, die an einer PXI-4351-Karte angeschlossen sind.
Die Karte ist von Natur aus sehr langsam, max. 50 S/s, bei Benutzung mehrerer Kanäle unter 10S/s.
Das Messen erfolgt in einer while-Schleife und dauert, wegen der langsamen Karte, schon recht lange (Sekunden-Bereich).
Ich habe die while-Schleife mit einer Wartefunktion (1...1000ms durchprobiert) ergänzt, das brachte keinen Unterschied, denn ich habe immer eine CPU-Auslastung von 98...99%.
Woran kann das noch liegen?
Die Karte läuft übrigens mit Traditional DAQ.
Anbei ein Screenshot und das VI (Version 8.2).
Danke.
Gruss André
061107_pxi4351_main.vi (Größe: 97,62 KB / Downloads: 296)
4351_initialisierung__SubVI_.vi (Größe: 77,93 KB / Downloads: 319)
4351_kan_le_w_hlen__subvi_.vi (Größe: 49,16 KB / Downloads: 292)
|
|
|
01.12.2006, 12:05
Beitrag #2
|
Usen6521
LVF-Neueinsteiger
Beiträge: 6
Registriert seit: Dec 2006
8.2
2006
kA
Deutschland
|
CPU Auslastung 98%
' schrieb:Hallo,
ich weiss, das Thema wurde hier schon x-mal durchgekaut.
Ich habe auch die Suche benutzt und sämtliche Beiträge dazu durchgekaut, trotzdem war keine Lösung dabei.
Mein Fall: Ich messe Temperaturen mit Thermoelementen, die an einer PXI-4351-Karte angeschlossen sind.
Die Karte ist von Natur aus sehr langsam, max. 50 S/s, bei Benutzung mehrerer Kanäle unter 10S/s.
Das Messen erfolgt in einer while-Schleife und dauert, wegen der langsamen Karte, schon recht lange (Sekunden-Bereich).
Ich habe die while-Schleife mit einer Wartefunktion (1...1000ms durchprobiert) ergänzt, das brachte keinen Unterschied, denn ich habe immer eine CPU-Auslastung von 98...99%.
Woran kann das noch liegen?
Die Karte läuft übrigens mit Traditional DAQ.
Anbei ein Screenshot und das VI (Version 8.2).
Danke.
Gruss André
[attachment=30372:attachment]
[attachment=30373:attachment][attachment=30374:attachment][attachment=30375:atta
hment]
versuch es doch mal damit:
- Überprüfungslämpchen ausmachen (kostet dich das dreifache an arbeitsspeicher oder so)
- diese "wait until" funktion einfach auf das vi ziehen und konstante anhängen
ich weiß nich ob dir dass hilft
ansonsten könnte das natürlich an deiner karte liegen
|
|
|
01.12.2006, 12:16
Beitrag #3
|
|
|
01.12.2006, 12:55
(Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2006 12:58 von Michael5.)
Beitrag #4
|
Michael5
LVF-Anwender
Beiträge: 45
Registriert seit: Jul 2006
7.0 bis Developer Suite 2012 DS2
2003
DE
72074
Deutschland
|
CPU Auslastung 98%
Du hast eine While Schleife programmiert ohne Verzögerungszeit.
Ich denke die läuft mit annähernd 100% Rechenzeit.
Wenn doch deine Messkarte langsam ist, dann kannst du in deiner While Schleife einen Timer mit ca. 100ms einbauen. Die Timer liegen bei den VI's Timing.
Ich denke dann wirst du wieder freie Rechenzeit haben und deine Aplikation wird sich nicht merkenswert verändern.
|
|
|
01.12.2006, 13:09
Beitrag #5
|
|
|
01.12.2006, 13:10
Beitrag #6
|
Usen6521
LVF-Neueinsteiger
Beiträge: 6
Registriert seit: Dec 2006
8.2
2006
kA
Deutschland
|
CPU Auslastung 98%
' schrieb:Hallo,
welches Lämpchen?
die wait until funktion hat keinen einfluss gehabt.
das programm läuft später endlos in der while-schleife, die vorigen programmteile (initialisierung, kanäle wählen, etc. werden nur zu beginn des prg. einmal abgearbeitet.
"highlight execution" neben dem pause-botton
sollte man bei der überprüfung auslassen (wie gasagt zieht rechner leistung ohne ende)
|
|
|
01.12.2006, 13:13
Beitrag #7
|
|
|
01.12.2006, 13:23
Beitrag #8
|
Michael5
LVF-Anwender
Beiträge: 45
Registriert seit: Jul 2006
7.0 bis Developer Suite 2012 DS2
2003
DE
72074
Deutschland
|
CPU Auslastung 98%
' schrieb:Hallo Michael, ich habe ja oben schon geschrieben, dass eine wait-funktion in der while-schleife keine verbesserung brachte.
habe jedoch gerade noch eine wait-funktion im sub-vi kanäle_wählen eingebaut. da hat es was gebracht. das sub-vi wird aber nur einmal aufgerufen, und sobald das prg. in der while schleife ist und nur noch die werte der karte lesen soll (auch die speichern-funktion ist ja momentan deaktiviert, das prog. macht dann nix mehr anderes als daten auslesen) geht die auslastung auf nahezu 100% hoch.
Habe gerade mal eine Wartezeit von 500ms eingebaut, da hatte ich eine auslastung von 3%, also ok.
Habe allerdings nur mit einem kanal gemessen, wenn ich im extremfall alle 15 kanäle messen möchte, so habe ich wieder eine auslastung von 100%.
weitere vorschläge??
Wandle Deine Whileschleife in eine Zeitgesteuert Schleife um.
Dann werden wir sehen was geschieht.
Mit der Zeitgesteuerten Messschleife kannst du einmal die Pausen zwischen den einzelnen Durchläufen einstellen und die Priorität von 1 - 100% vorgeben. 100% volle Priorität.
Stelle bei der Zeit die minimale Zeit ein die du zwischen zwei Messungen warten kannst und die Prio unter 50%. Dann sollte dein Rechner Luft bekommen.
Leider kann ich deine VI nicht anschauen, da ich 8.20 noch nicht installiert habe.
Gruß
|
|
|
01.12.2006, 13:36
Beitrag #9
|
|
|
01.12.2006, 13:59
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
CPU Auslastung 98%
<div align="left">Hallo, André,
habe mir jetzt nur kurz den Screenshot angesehen, gehe aber einfach mal davon aus, dass dein Icon "gemessene Kanäle" eine grafische Darstellung der Daten ist (z.B. Waveform-Graph).
Wie oft datest du diesen Graphen ab? Das kostet nämlich ziemlich Rechenleistung.
Hatte hierüber erst gestern eine Diskussion mit Eugen darüber:
Hier der entsprechende Link.
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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
| |