auf Flanke warten, während dessen etwas anderes tun
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
10.01.2011, 16:54 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2011 16:54 von labvii.)
auf Flanke warten, während dessen etwas anderes tun
Hallo,
als labview Anfänger stehe ich vor folgendem Problem:
Ich möchte nach einer fallenden Flanke (kann jede Sekunde kommen, aber auch nur alle 10 Sekunden) eine AD-Wandlung durchführen.
Wichtig dabei ist, dass sofort nach der Flanke gemessen wird. Dafür habe ich mir das DAQmx Trigger.vi reingeladen und auf die fallende Flanke gestellt.
Soweit funktioniert das ganze auch wie es soll.
Allerdings möchte ich während das Programm auf die Flanke wartet, etwas anderes machen können. Leider "hängt" das Programm, bis die Flanke kommt.
auf Flanke warten, während dessen etwas anderes tun
Hallo GerdW und danke für deine Unterstützung,
ich habe das Programm jetzt geändert und die Tasks in zwei While-Schleifen gepackt.
Jetzt kann ich zwar, während auf die Flanke gewartet wird, andere Dinge tun, allerdings kann ich das Programm nicht
sofort beenden, bzw. ich muss immer warten, bis die Schleife einmal durchgelaufen ist.
Also habe ich mir überlegt, die Task zu beenden, so dass nicht mehr auf die fallende Flanke gewartet werden muss.
Leider wird immer noch die letzte fallende Flanke abgewartet.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
auf Flanke warten, während dessen etwas anderes tun
Das haben Whileschleifen so an sich, dass sie zuerst einmal durchlaufen, bevor sie beendet werden.
Aber ich verstehe ehrlich gesagt das Problem noch nicht so ganz.
Gruß Markus
P.S.: Das mit dem Editieren geht für "normale" User nur eine gewisse Zeit (ich glaub' 15 min). Dauerhaft editieren kann nur das Team. Trotzdem Danke, dass Du es versucht hast.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
auf Flanke warten, während dessen etwas anderes tun
Hallo,
wenn du den Teil mit dem DAQ-Abbruch im Event selbst erledigen würdest, hättest du dir mehrere lokale Variablen, 2 Bedienelemente und eine Whileschleife sparen können...
Probier doch mal aus, vor dem DAQ-Stop noch die Triggerbedingung zu ändern (oder ganz abzuschalten?)!
auf Flanke warten, während dessen etwas anderes tun
Hallo und erstmal Danke für die Unterstützung,
das Problem, dass ich währen der Whileschleife nichts machen kann, ist gelöst.
Das Problem, dass ich jetzt habe ist, dass wenn das Vi auf die fallende Flanke wartet, ein Notaus Signal kommt,
ich das Programm nicht beenden kann. Es wird immer noch gewartet, bis die Flanke kommt, was bis zu 10s dauern kann.
Was ich versucht habe, wenn Notaus gedrück wurde ein "DAQmx Reset Device" zu starten, was ich aber nicht als saubere Lösung halte.
Aber selbst so wird auf die fallende Flanke gewartet.
Zitat:Probier doch mal aus, vor dem DAQ-Stop noch die Triggerbedingung zu ändern (oder ganz abzuschalten?)!
auf Flanke warten, während dessen etwas anderes tun
' schrieb:ich das Programm nicht beenden kann. Es wird immer noch gewartet, bis die Flanke kommt, was bis zu 10s dauern kann.
Eine Lösung ist: Den Timeout von DAQmx Read, welches auf die fallende Flanke wartet, auf z.B. 0.1 sek setzen und DAQmx Read in eine While-Schleife packen. Bei Timeoutfehler wird die While-Schleife fortgesetzt, und zwar solange, bis entweder die fallende Flanke kommt, - oder aber ein lokale Variable des Stop-Kopfes, die man innerhalb der Schliefe abfragt, true ist.
11.01.2011, 14:28 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2011 14:30 von labvii.)
auf Flanke warten, während dessen etwas anderes tun
' schrieb:Eine Lösung ist: Den Timeout von DAQmx Read, welches auf die fallende Flanke wartet, auf z.B. 0.1 sek setzen und DAQmx Read in eine While-Schleife packen. Bei Timeoutfehler wird die While-Schleife fortgesetzt, und zwar solange, bis entweder die fallende Flanke kommt, - oder aber ein lokale Variable des Stop-Kopfes, die man innerhalb der Schliefe abfragt, true ist.
Hi Lucki,
habe es programmiert und es scheint auch zu funktionieren. Bin nicht sicher ob ich es ganz verstanden habe, daher folgende Frage:
Ist mit dieser Lösung gewährleistet, dass ich unmittelbar nach der fallenden Flanke die Messung starte? Wie oben geschrieben, ist für mich
die Zeit (die ersten 500µs) nach der fallenden Flanke interessant.
auf Flanke warten, während dessen etwas anderes tun
' schrieb:Ist mit dieser Lösung gewährleistet, dass ich unmittelbar nach der fallenden Flanke die Messung starte? Wie oben geschrieben, ist für mich
die Zeit (die ersten 500µs) nach der fallenden Flanke interessant.
Das DAQmx Read wartet eigentlich nicht auf die Flanke, sondern darauf, daß die 250 Werte im Empfangsbuffer sind.
Um aber ganz sicher zu gehen, daß die Datenerfassung unabhängig von DAQmx Read genau mit der Flanke beginnt, würde ich hinter dem Trigger-VI noch das "DAQmx Start Task .vi" einfügen.