LabVIEWForum.de - Zeitschleife läuft zu schnell oder zu langsam

LabVIEWForum.de

Normale Version: Zeitschleife läuft zu schnell oder zu langsam
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Vielen Dank für die ganzheitlichen Erläuterungen. Wieder was neues gelernt. Wieder ein Grund mich mal mit der Sync Palette anzufreunden; dies konnte ich bisher immer vermeiden.

Und der ursprüngliche Autor kann jetzt die Abwägung treffen, ob der lineare oder der flexiblere Weg für ihn der richtige ist.



Beste Grüße
' schrieb::yahoo:Mein Beitrag war war schneller. Yahoo

Ich gönne es Dir Big Grin
' schrieb:Ich versteh' da was nicht ...
Parallele While-Schleife zu was denn? Wenn er 20k Samples in 10 Sekunden haben will, warum stellt er nicht einfach den Modus auf endliche Anzahl, die Anzahl der Samples beim 'DAQTiming VI' auf 20k und beim 'DAQRead VI' auf z.B. 50 Samples und die Sampling-Rate auf 2kHz und fertig. Wozu braucht man jetzt 'ne Queue oder Melder?
Ich muss auch noch meinen "Senf" dazugeben. Entstanden ist der Hinweis mit parallele Schleifen/Queues etc. aus der anfangs unvollständigen Beschreibung des Thread-Starters. Da stand nur was von "Einlese-VI", das hätte sonstwas sein können, z.B. irgendein DLL-Aufruf für eine Nicht-NI-Hardware, wo man sich jeden Messwert einzeln abholen muss. Dann muss die Einlese-Loop natürlich "so schnell wie möglich" laufen. Aber dann sollte man nicht noch das Abspeichern der Werte in einem File in dieselbe Loop setzen, das kostest schließlich Zeit und bringt die beschriebene "Timed Loop" mglw. nur unnötig aus dem Takt. Wenn das Abspeichern auch noch schlecht programmiert ist, wird in jedem Schleifendurchlauf "File geöffnet -> Wert geschrieben -> File geschlossen". Alles so Anfängerfehler, die bei Verwendung von Express-VIs oder des High-Level-VI "Write To Spreadsheet-File" gerne gemacht werden.
Deshalb, DAQ und File-IO in diesem Fall lieber trennen.

Da wir inzwischen bei der Datenerfassung bei DAQmx sind, sieht die Sache wieder anders aus. Jetzt kann ich den Datenerfassungstakt der DAQ-Karte überlassen, das Aufsammeln der erfassten Daten dem DAQmx-Treiber, und mir immer Pakete von Daten holen. Wenn diese Abholschleife nur noch mit z.B. 10 Hz läuft, ist auch der gleichzeitige File-IO nicht mehr kritisch.

Gruß, Jens
Hallo LabVIEW Gemeinde,

erstmal vielen Dank für die zahlreichen und ausführlichen Comments :-)

Also ich habe mich für den linearen Programmiereinsatz entschieden, da das Programm nur für die einmalige Messwerterfassung für meine Diplomarbeit herhalten soll.

Ich versuche jetzt nochmal alles zusammenzufassen:

Erste While-Schleife:
Hier baue ich keine Zeittaktung ein. In der Schleife befindet sich "DaqTiming.vi"
Die Ablaufgeschwindigkeit der Schleife wird durch die Datenerfassungsfrequenz bestimmt, welche ich im Measurement und Automation Explorer Softwaregetaktet auf 10.000 Hz stelle.

Zweite While Schleife (Paralell zur ersten):
Hier eine Zeittaktung von 50ms. Darin befindet sich das "DaqRead.VI". Das schreiben in die Messwertdatei findet ebenfalls in dieser Schleife statt.


Hier noch 4 kurze Fragen:
1. Muss ich nun das "DaQTiming.Vi mit dem DaqRead.VI noch irgendwie verbinden oder reicht es den beiden die richtigen Task´s zuzuweisen?
2. Stimmen die Namen "DaQTiming.Vi" und "DaqRead.Vi" oder brauche ich andere, wenn ich meine Messung mit dem Ni USB 6211 mache?
3. Reicht das Softwaretiming für das USB 6211 oder brauche ich unbedingt Hardware Timing, weil das Hardwaretiming irgendwie nicht von der Karte unterstützt wird?
4. Kann der oben beschriebene Aufbau so funktionieren?

Ich hoffe mal, dass die Fragen nicht allzu nervig sind. Aber als LabVIEW Neuling ist es doch recht schwer durchzusteigen ... Und da ich kein LabVIEW zuhause habe und im Labor kein Internetzugang, gestaltet sich das ausprobieren immer als ziemlich Zeitaufwendig ... Und ins Labor kann ich leider auch nicht immer Sad

Vielen Dank schonmal im Vorraus und einen schönen Sonntagnachmittag Smile

Beste Grüße
' schrieb:Und da ich kein LabVIEW zuhause habe und im Labor kein Internetzugang, gestaltet sich das ausprobieren immer als ziemlich Zeitaufwendig ... Und ins Labor kann ich leider auch nicht immer Sad
Nehm' dir das nächste Mal das VI mit und ladt's hoch.

Zitat:Also ich habe mich für den linearen Programmiereinsatz entschieden, da das Programm nur für die einmalige Messwerterfassung für meine Diplomarbeit herhalten soll.
Ich seh' hier keine Indikation für parallele Schleifen.
' schrieb:Nehm' dir das nächste Mal das VI mit und ladt's hoch.
Ich seh' hier keine Indikation für parallele Schleifen.

Also das mit dem hochladen ist so eine Sache, man unterschreibt ja auf der Arbeit, dass man diese selber verfasst hat und wenn dann teile daraus im Internet auftauchen, keine Ahnung wie das genau ist, möchte da halt ungern ein Risiko eingehen ...

Hmm, also ich bin mit den ganzen Begriffen leider nicht so vertraut, ich dachte eben linear bedeutet, dass man direkt aus der Messschleife die Werte in die Erfassungsschleife übernimmt. Sorry wenn ich da bissl für Verwirrung sorge Unsure

Grüße
Ich glaube, wenn du einfach nur mal eben eine kurze Messung (mit 2kHz Samplingrate) machen willst, kannst du Erfassung, Darstellung und das Schreiben in 'ne Messdatei alles in eine Schleife packen. Am besten mit einer State-Machine. Ein Case für's Init des DAQTasks und Datei öffnen, ein Case für die Erfassung und das Schreiben und ein Case um alles wieder zu schließen. Etwa so.
@MC_Garnickl:

Wieso trennst du DAQmx-Timing vom DAQmx-Read? Und das in 2 unterschiedlichen Schleifen?

DAQmx-Timung brauchst du nur einmal vor der DAQmx-Read-Loop...

Hast du dich schon mal bei den Beispielen im NI-Examplefinder umgeschaut? Das hier könnte z.B. passen:
[attachment=23015]
Oder schon mal hier geschaut:
http://www.LabVIEWforum.de/Getting-Started...Qmx-t12509.html

Und wenn du nicht dein gesamtes VI hochladen willst, dann mach ein reduziertes Bsp-VI. Ansonsten befürchte ich, dass die hier ein ewiges Ratespiel wird, was du nun genau programmiert hast.

Und gib das LVF in deiner Quellenliste deiner Diplom-Arbeit an. Denn du unterschreibst doch auch, dass du nur die in der Zitatliste aufgeführten Quellen verwendest hast. Und das LVF ist wohl inzwischen eine Quelle...Wink

Gruß, Jens
Abend zusammen,

ich glaube ich weiß jetzt wie es funktionieren soll.
Das mit dem Timing Vi ist auch irgendwie logisch, das man es nur einmal braucht.

Also ich habe mir jetzt ein Buch bestellt, bei dem auch die Studentenversion dabei ist, dann werde ich das ganze Problem hoffentlich etwas effektiver angehen können wenn es eintrifft und dann kann ich mir auch die Beispieldateien mal in Ruhe ansehen Smile

In der Quellenangabe landet das LVF auf jeden Fall, auch wenn ich hoffe, dass es sich jetzt dann erledigt hat mit meinen Wissenslücken Wink

Ich muss auch sagen, dass es so echt Spaß macht, mit LabVIEW zu arbeiten, aber wenn´s nicht so will und dann noch ein gewisser Zeitdruck ...

Nochmal dickes Danke an dich Jens und die anderen, dass ihr euch die Zeit genommen habt.

Dann einen guten Start in die neue Woche

Grüße
Seiten: 1 2
Referenz-URLs