LabVIEWForum.de - CPU Last zu hoch

LabVIEWForum.de

Normale Version: CPU Last zu hoch
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.

Katagia

Hi

Ich habe ein kleines Programm geschrieben, mit dem Messdaten vom
Line-In verarbeitet werden sollen.
Ausserdem sollen Messdaten auch geladen/gespeichert werden können.
Prinzipiell funktioniert das ganze. Leider ist die CPU Last (1,73GHz Pentium M)
viel zu hoch.
wenn ich eine Datei lade, liegt die Last bei 66%. Vom Line-In bei 100%.

Welche Tips könnt ihr mir geben?
Ich habe das Programm angehängt.

Ich vermute das Problem ist, wie ich die Echtzeitdarstellung realisiert habe.
In der rechten While-Schleife wird bei jedem Durchlauf ein Abtastwert zur Anzeige
hinzugrfügt und die Schleifendauer auf 1/Abtastrate gesetzt. Meine Vermutung ist,
dass Programm kommt bei hohen Abtastraten nicht mehr hinterher.

Vielen Dank,

Tilo
Hi,

ne Anmerkung: Ganz schön chaotisch programmiert...

1. Versuch mal, GERADE Verbindungslinien zu ziehen!
2. Nicht größer als z.b. 1280x1024 programmieren
3. An die Case-Struktur kannst du auch direkt das Ring Control anschließen (Modusauswahl)
4. Versuch mal, Sub-VI's zu erstellen (spart Platz).
5. Die Wartezeit in ner Schleife hat eigentlich die Aufgabe, CPU-Zeit für andere Aufgaben des PC zu reservieren. Wenn z.b. gar keine Wartezeit in der Schleife realisiert ist, wird die volle CPU-Kapazität dieser einen Schleife zur Verfügung gestellt! Hier sollte am besten eine feste Zeit von z.b. 50 ms eingefügt werden. Schau dir mal die Beispiele in LV an, da wird gezeigt, wie man Messdaten "online" darstellt!
6. Lass dir Bedien/Anzeigeelemente im Blockdiagramm nicht als Symbole anzeigen (Rechtsklick...), das spart jede Meng Platz und ist auch nicht weniger informativ!
7. Versuch mal, sauber von links nach rechts zu coden!

Gruss
Achim

Katagia

Mit dem Chaos hast du auf jeden Fall recht. Ich mache gerade meine ersten Schritte. Ich würde das im Moment nicht Programmieren sondern eher
"Try & Error" nennenSmile
An vielen Stellen weiß ich noch nicht, ob LabVIEW automatisch die
Datentypen korrigiert.

Hast du ein Schlagwort für mich, wo ich Beispiele für Messdatenerfassung in LV finde?
Die Hilfe in LV und vor allem die Beispiele sind sehr hilfreich, ich finde mich nur noch nicht so richtig zurecht.

Vielen Dank,

Tilo
Hi,

LV >> Hilfe >> Beispiele suchen >> Signalerfassung/ausgabe mit HW >> Continuous Sound Input

...so heißt das jedenfalls in LV8, in früheren Versionen gibts aber garantiert was ähnliches!

Gruss
Achim

Katagia

Hab meinen Code aufgeräumt und SubVis verwendet.
Ich gebe jetzt eine Schleifendauer vor und übertrage jedesmal
alle Abtastwerte die in dieser Zeit angezeigt werden sollen.

Wenn ich eine Datei mit einem Testsignal bei 360Hz lade, funktioniert das ganz gut.

Leider funktioniert es nicht, wenn ich Signale über den Line-In verarbeiten will. Zum einen ist die CPU Last wieder bei knapp 60% ohne Filter.
Wenn ich aus einer Datei lade, ist die Last bei weniger als 10%.
Was aber noch schlimmer ist, dass Messwerte verloren gehen.
Das Signal hat relevante Anteile im Bereich von 0-150Hz.

In der Hilfe von LV 7.1 habe ich nichts zu "Continuous Sound Input" gefunden.
Ich habe nur ein Beispiel gefunden, wie ich den Line-In verwenden kann.

Auf der Webseite von NI habe ich nur etwas für LV8 gefunden.
Sieht so aus, als ob sich die VIs für Audio ziemlich geändert haben.

Ich habe ein Bild von dem SubVI angehängt, mit dem ich die Daten einlese.
Denke damit erkennt man mehr als mit der kompletten Schaltung vorherSmile
Referenz-URLs