LabVIEWForum.de - timeout fuer trigger und signalerzeugung?

LabVIEWForum.de

Normale Version: timeout fuer trigger und signalerzeugung?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ein kleines Problem, aber wichtig...

Ich will auf ein Eingangssignal hin triggern, um eine Ausgangsspannung zu erzeugen. Die Dauer der Spannungserzeugung kann recht lang sein, z.B. eine Minute. Die Daten fuer die Ausgangsspannung werden aus einem Array ausgelesen, und das entsprechende Arrayelement wird durch einen Eingangstimulus (Digital In Task) indiziert.

Mein Problem ist, dass die Funktion 'DAQmx Wait Until Done' die Zeitbegrenzung ('timeout') fuer die ganze Geschichte setzt, und zwar anscheinend sowohl fuer die Wartezeit fuer den Trigger als auch fuer die Dauer der Signalerzeugung. Dabei kann die Signalerzeugung, wie gesagt, recht lange dauern, waehrend ich zum Beispiel alle 2 Sekunden gerne ueberpruefen wuerde, ob nicht ein anderer Eingangsstimulus eingetroffen ist und sich die Ausgangsspannung, die ich erzeugen will, geaendert hat.

Das heisst: Wenn 2 Sekunden lang kein Trigger kommt, moechte ich den Digital In Task auf ein neues Signal hin pruefen. Da die Signalerzeugung so lang ist, habe ich den timeout-Parameter von 'Wait Until Done' auf -1 gesetzt, und deswegen blockiert diese Funktion den ganzen Rest, bis der Trigger eintrifft. Setze ich 'timeout' auf 2 Sekunden, kann ich keine 60 Sekunden lange Ausgangsspannung erzeugen.

Alles klar? :-) Mir nicht... Waere super, wenn mir jemand helfen koennte!
Danke im voraus.
Also, falls es jemanden interessiert, ich habe das Problem folgendermassen geloest (nicht allzu elegant, aber es scheint zu funktionieren):

Timeout bleibt bei -1, der Triggerkanal erhaelt einen eigenen Eingangstask und wird in einer while-Schleife auf seinen boolean-Wet hin ueberprueft. Ist die Bedingung erfuellt, wird eine case-Struktur ausgefuehrt, die den ersten Task (der immer noch auf den Trigger wartet) mit der Funktion "DAQmx Control Task", 'Abort', beendet. (Die Control Task Funktion ist mit dem Signalverlauf des ersten Tasks zwischen der Funktion "Start" und der Funktion "Wait until done" durch die case-Struktur und die while-Schleife hindurch verbunden).
Hallo,

ich Triggere mit den 'compare'-Befehlen.
Z.B. greater then mit case-loop

Da habe ich keine zeitliche Begrenzung oder ähnliches, wäre auch eine Lösung, oder?

Gruß
Thorsten
Hallo, eure Angelegenheit ist ja schon ein Weilchen her, aber hier noch eine Frage dazu:
diese Funktion mit der Fallunterscheidung innerhalb des Triggerns: an welcher Stelle wird diese eingefügt?

Zur Info: ich habe meinen DaQ-Assistent in einen Code umgewandelt und möchte nun gerne nach einer bestimmten Anzahl von Signalen die Messung beenden.
Vllt kann mit dabei ja jemand weiterhelfen..
Gruß
Referenz-URLs