LabVIEWForum.de - Abbruchbedingung While Schleife

LabVIEWForum.de

Normale Version: Abbruchbedingung While Schleife
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Kurz zu meinem VI: Ich lese mit den beiden CLF-Knoten die Channels meines angeschlossenen Oszilloskop (PSCU 1000, Velleman) aus und schreibe sie in eine Tabellenkalkulationsdatei. Die Abtastrate des Oszilloskop beträgt 125kS/s. Nun habe ich zum einen versucht die While-Schleife in Abhängigkeit von der Abtastrate zu verzögern, da dass Oszilloskop nur 4096 Samples pro Channel speichern kann. Nun versuche ich die Aufnahmelänge zeitlich zu begrenzen, dass ich später beispielsweise 2 Minuten lang auslese und in der Tabellenkalkulationsdatei abspeichere. Das habe ich versucht, indem ich die While-Schleife zeitlich begrenze. Allerdings bekomme ich das nicht so ganz auf die Reihe. (http://www.labviewforum.de/showthread.php?tid=2910 )

Wäre super, wenn ich hier auf die passende Lösung stoßen würde. Blush

Ich bedanke mich schonmal.

Liebe Grüße
Speicher dein VI bitte mal in einer niedrigeren LV-Version ( File -> Save for previous ), lv14_img hat noch einen geringen Durchdringungsgrad.

Gruß, Jens
Ups! Das habe ich nicht bedacht. Hier in einer älteren Version. Smile
Prinzipiell sollte die Abbruchbedingung funktionieren. Was geht den nicht?

Gruß, Jens
Hallo Jens,

ich habe ja eine Abtastrate von 125.000 Samples pro Sekunde. Angenommen ich will einfach nur mal die 4096 Samples einmalig von CH 1 auslesen und abspeichern, dann brauch ich dazu ja ca. 35 ms. Und wenn ich in meinem Programm die 35 ms als Laufzeit einstelle, dann speichert mir das Programm nicht nur einen Durchlauf mit 4096 Samples ab, sondern 3 Durchläufe. Entweder stimmt irgendwas mit meiner Abbruchbedingung nicht, oder ich übersehe wiedermal einen kapitalen Fehler. Blink

Danke für deine Antworten! Smile

Liebe Grüße


Hello again!

Wenn ich 0 ms als Laufzeit einstelle, dann bekomme ich nur einen Durchlauf ausgelesen und in mein Textfile abgespeichert. Aber sobald ich eine Laufzeit größer 0 ms einstelle werden es mehr. Angel_not

Ich bin ratlos. Construction

Liebe Grüße!
(07.11.2014 12:23 )KingLui schrieb: [ -> ]Wenn ich 0 ms als Laufzeit einstelle, dann bekomme ich nur einen Durchlauf ausgelesen und in mein Textfile abgespeichert. Aber sobald ich eine Laufzeit größer 0 ms einstelle werden es mehr. Angel_not

Wenn du 0ms als Laufzeit einstellst, so ist die Abbruchbedingung beim ersten Durchlauf gültig, spricht der While-Loop bricht beim ersten Mal ab.

Die Zeit-Differenz beim ersten Durchlauf divergiert gegen 0, da die beiden "Tick Count (ms)" Funktionen sehr zeitnah ausgeführt werden.
Daher ist bei einer grösseren Laufzeit beim ersten Durchlauf die Abbruchbedingung noch nicht erfüllt.
Es kann somit vorkommen, dass deine While-Schleife mehrfach ausgeführt wird.

Gruss
Chris
Aha, THINK Dataflow, dein Wait und die Auswertung Tick-Count werden parallel ausgeführt. Für eine einigermaßen korrekte Überprüfung brauchst du aber, dass die Auswertung Tick-Count erst NACH dem Wait bzw. Abspeichern ausgeführt wird.
Könntest du z.B. so erreichen:
[attachment=51282]
Gruß, Jens
Referenz-URLs