LabVIEWForum.de
timeout fuer trigger und signalerzeugung? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: timeout fuer trigger und signalerzeugung? (/Thread-timeout-fuer-trigger-und-signalerzeugung)



timeout fuer trigger und signalerzeugung? - sammy - 05.11.2005 03:28

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.


timeout fuer trigger und signalerzeugung? - sammy - 09.11.2005 11:15

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).


timeout fuer trigger und signalerzeugung? - Lanos - 09.11.2005 12:01

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


RE: timeout fuer trigger und signalerzeugung? - motorguru - 23.11.2015 15:52

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ß