LabVIEWForum.de - Verrauschtes Stromsignal

LabVIEWForum.de

Normale Version: Verrauschtes Stromsignal
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Pukito,

ich habe mir nur kurz "Hysteresemessung angeschaut":
- aufräumen (wer soll da denn durchblicken...)!
- in deiner FOR-Loop hast du 4 DAQmx-Aufrufe, die jeweils nur ein Sample abfragen/schreiben. Jeder Aufruf dürfte im ms-Bereich liegen, d.h. die Schleife wird nie schneller als im 5…10ms-Takt laufen...
- Windows wird sicherlich auch diesen 10ms-Takt zerhauen, wenn ein Virenscanner oder die Festplattendefragmentation sagt, dass sie jetzt arbeiten wollen...
- das ungebremste Ansammeln von Daten in diversen Arrays wird sich auch mit steigender Zeit für einen Schleifendurchlauf bemerkbar machen...
- ich sehe nirgends SampleRate-Definitionen...
- wenn du eine Samplerate definierst: frage nicht mehr Einzelwerte ab, sondern z.B. 10 Samples (ergibt bei einer Samplerate von 1kHz eine Wartezeit von 10ms)...
- versende in den Queues keine Einzelwerte, sondern auch gleich Arrays von Werten...
- ich würde auch nicht mit 5 Queues arbeiten, um Daten zu versenden: eine Queue, die Daten als Array oder in einem Cluster verpackt...

P.S.:
- wozu ArrayToCluster und Unbundle, wenn es auch IndexArray gibt?
- wozu eine FOR-Loop, die nur genau einmal durchläuft?
Hallo GerdW,

vielen dank für die Tipps.

Würde es evtl noch etwas bringen wenn ich von einem Einkernprozessor auf einen Quadcore hochrüste bzw. das ganze System aufrüste?

Grüße

Pukitu
Hallo Pukito,

Zitat:Würde es evtl noch etwas bringen wenn ich von einem Einkernprozessor auf einen Quadcore hochrüste bzw. das ganze System aufrüste?
Jein...
Du kannst dich natürlich an Symptomen abarbeiten - du solltest vorher aber die anderen Punkte oben erledigt haben...

- Windows wird dir weiterhin kein Schleifentiming unter 10ms (reproduzierbar) erlauben.
- MultiCore muss man auch in LabVIEW vernünftig unterstützen - mit (schlechter) DATAFLOW-Programmierung nagelt man sich schnell auf einen Kern fest...

Was hast du denn in der Zwischenzeit an deinem VI verbessert?
Hallo,

bin immer wieder fasziniert von den schnellen Antworten. TOP!

hab im VI aufgeräumt und versucht meine Messdaten als Array zu sammeln und über die Qeues auszugeben. Dies hat nicht funktioniert da die Qeues nicht mit dem erstellten Array arbeiten konnen. Confused

Deswegen habe ich das VI vom programmiertechnischen nicht weiter verändert.

Was meinst du mit :
- Windows wird dir weiterhin kein Schleifentiming unter 10ms (reproduzierbar) erlauben.
- MultiCore muss man auch in LabVIEW vernünftig unterstützen - mit (schlechter) DATAFLOW-Programmierung nagelt man sich schnell auf einen Kern fest...

Und sollte das Vi aussehen wenn ich 10 khz abtasten möchte?
Ich komme nicht damit zurecht wie ich das VI verändern muss dass ich eine höhere Abtastrate bekomme...

Vielen Dank schonmal.

Grüße
Hallo Pukito,

Zitat:Und sollte das Vi aussehen wenn ich 10 khz abtasten möchte?
Es gibt viele mit LabVIEW mitgelieferte Beispiele - auch solche, die zeigen wie man mit 10kHz abtastet. Einfach mal anschauen!
Man verwendet jedenfalls keine Einzelwert-Abfragen...

Zitat:- Windows wird dir weiterhin kein Schleifentiming unter 10ms (reproduzierbar) erlauben.
Windows entscheidet selbst, welcher Prozess wann wieviel Rechenzeit bekommt. Du kannst dir zwar 10ms Takt von einer Schleife wünschen - was Windows dir zugesteht, ist aber etwas ganz anderes...

Zitat:- MultiCore muss man auch in LabVIEW vernünftig unterstützen - mit (schlechter) DATAFLOW-Programmierung nagelt man sich schnell auf einen Kern fest...
LabVIEW unterstützt zwar von Haus MultiCore - aber bei ungünstiger Programmierung wird trotzdem nur ein Core ausgenutzt. Dies sollte man im Hinterkopf haben! (Der Rechner bleibt aber mit Multicore eher bedienbar, wenn man mal einen Core komplett auslastet...)
hmmm,


also ich bin mittlerweile am Verzweifeln. Hab jetzt alles was beschrieben wurde ausprobiert aber komme nicht auf unter 10 ms.
Mittlerweile glaube ich dass diese 10ms festgelegt werden wenn ich den Verlauf angebe.
Nur leider finde ich nichts dergleichen.
Denn eigentlich müsste sich ja eine Beschleunigung zeigen wenn ich nur einen Kanal abfrage tut es aber nicht Huh
Hallo Pukito,

was ist so schwer zu verstehen an:
Zitat:Es gibt viele mit LabVIEW mitgelieferte Beispiele - auch solche, die zeigen wie man mit 10kHz abtastet. Einfach mal anschauen!
Hast du das getan? Wenn ja, welches Beispiel ist dir noch unklar?
Hallo noch einmal,


ich habe mir die Beispiele unter DAQmx analoge Spannung erfassen angesehen.

mir ist gerade noch etwas aufgefallen: Mein Vorgänger bestimmt im UnterVI die Zeit in der die Daten eingeschrieben werden über die Schleifenzahl : 100.
Das ist doch eigentlich unsinn da die Dauer einer Schleife ja nicht direkt bestimmt wurde. Ist es richtig wenn ich die Zeit in meinem VI über die Prozessorzeit steuere? Wenn ja wie geht das?
Das übergeben der Werte in einem vorgegebenen Array über die Qeues bekomme ich auch nicht hin da ich nicht weis wie ich es erstellen kann.

Danke schonmal.

Grüße
Hallo Pukito,

Zitat:Mein Vorgänger bestimmt im UnterVI die Zeit in der die Daten eingeschrieben werden über die Schleifenzahl : 100.
Das ist doch eigentlich unsinn da die Dauer einer Schleife ja nicht direkt bestimmt wurde.
Nein, das ist kein (kompletter) Unsinn!
Du hast in der Schleife andere Funktionen, die die Ablaufzeit bestimmen: DAQmxRead!
Und zwar hast du eine Samplerate von 10kHz eingestellt und fragst in der Schleife 1000 Samples ab: Macht genau 100ms Iterationszeit.
Du musst also statt durch 100 nun durch 10 teilen, um auf deinen Zeitstempel zu kommen.

Anmerkung: diese simple Rechnung funktioniert natürlich nur, solange nicht andere Funktionen in der Schleife womöglich noch länger als DAQmxRead benötigen - und die Schleife deshalb verlangsamen...

Anmerkung 2: Du musst nicht unbedingt ein explizites Wait in der Schleife haben - solange du andere Funktionen nutzt, die ebenfalls warten. Dies kann DAQmxRead sein, aber auch beliebige andere Funktionen, die einen TimeOut unterstützen...
Seiten: 1 2
Referenz-URLs