LabVIEWForum.de - DAQmx - Triggerfunktion?

LabVIEWForum.de

Normale Version: DAQmx - Triggerfunktion?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

könnte jemand mir die Triggerfunktion erklären und wie ich sie aufbauen soll bzw. mir entsprechende Hinweise schicken, wo ich das nachlesen kann? Ich möchte, dass das Programm erst ab einem bestimmten Spannungswert, anfängt zu die Messdaten zu lesen. Die verwendete Messkarte ist die NI9223.

Vielen Dank!
Ähm - ich frage mich schon ein wenig, warum du nicht selbst mal nach den Beispielen suchst.

National Instruments\LabVIEW 2020\examples\DAQmx\Analog Input\Voltage - Continuous Input.vi

Nachtrag: Es wird dubios....
Deine Hardware unterstützt gar keinen analogen Trigger.

Du musst das schon selber machen - es gibt aber auch dafür schon passende VIs.
(14.09.2020 14:20 )Martin.Henz schrieb: [ -> ]Ähm - ich frage mich schon ein wenig, warum du nicht selbst mal nach den Beispielen suchst.

National Instruments\LabVIEW 2020\examples\DAQmx\Analog Input\Voltage - Continuous Input.vi

Nachtrag: Es wird dubios....
Deine Hardware unterstützt gar keinen analogen Trigger.

Du musst das schon selber machen - es gibt aber auch dafür schon passende VIs.

Hallo Martin, ich danke dir!

leider war es nicht so einfach dies rauszufinden

Nachtrag: ich habe die folgende VI zum Triggern gebaut, aber eben diese ist zu langsam(30ms bis Ende der Ausführung, weiß aber nicht ob das mit meinem Programm zusammenhängt), wenn's Ideen gibt, wie ich sie so verändern kann, dass das Triggern schnell passiert, wäre das natürlich eine super sache!


Dankeschön!


Das ist die VI
Hallo illy,

Zitat:die folgende VI zum Triggern gebaut, aber eben diese ist zu langsam(30ms bis Ende der Ausführung, weiß aber nicht ob das mit meinem Programm zusammenhängt), wenn's Ideen gibt,
Natürlich hängt die Ausführungszeit mit deiner Programmierung zusammen! Big Grin
Wenn du selbst den Trigger-Punkt suchen willst, kannst du dein VI "schneller" machen, wenn du weniger Sample pro Iteration einliest oder die Samplerate erhöhst…
Die Mathematik dahinter ist immer die gleiche:
Code:
Zeit = Anzahl Samples / Samplerate

Ansonsten kannst du natürlich (wie in deinem anderen Thread vorgeschlagen) die BeispielVIs zum DAQmx-Analog-Trigger austesten!
Hallo Illy,

ich verstehe von deinem Programm leider viel zu wenig um dazu etwas wirklich ernsthaftes beitragen zu können. Ich sehe nur, dass du erst eine Datenerfassung und dort daraf wartest, bis der Grenzstrom mindestens bei einem Messwert die angegebene Grenze überschreitet. Dann stoppst du die Datenerfassung und startest mehrere weitere Datenwerfassungen. Klar liegt dann einige Zeit dazwischen, zumal du bei der Ganzen Geschichte auch noch etliche Messwerte in die Mülltonne kippst. Das mit den 30ms ist dann so und eher nicht mal langsam.

Wenn du es anders haben willst, musst du die Erfassung aller Messwerte starten und zwar so, dass sie synchron erfasst werden (abgesehen von Spitzfindigkeiten). Die Datenerfassungen laufen also von Anfang an und erfassen z.B. mit 5kH die Messdaten. Irgendwann überschreitet der Kanal mit dem Grenzstrom den Schwellwert, sagen wir mal bei Sample Nummer 50000. Du hast dann aber auch die Sample Nummer 50000 aller anderen Messwerte und damit auch keine Zeitverzögerung.

Vielleicht ist es das, was du meinst. Da liegt dann der Fehler schon im Ansatz und du müsstest dein Programm noch mal kräftig umbauen.
(14.09.2020 19:41 )Martin.Henz schrieb: [ -> ]Hallo Illy,

ich verstehe von deinem Programm leider viel zu wenig um dazu etwas wirklich ernsthaftes beitragen zu können. Ich sehe nur, dass du erst eine Datenerfassung und dort daraf wartest, bis der Grenzstrom mindestens bei einem Messwert die angegebene Grenze überschreitet. Dann stoppst du die Datenerfassung und startest mehrere weitere Datenwerfassungen. Klar liegt dann einige Zeit dazwischen, zumal du bei der Ganzen Geschichte auch noch etliche Messwerte in die Mülltonne kippst. Das mit den 30ms ist dann so und eher nicht mal langsam.

Wenn du es anders haben willst, musst du die Erfassung aller Messwerte starten und zwar so, dass sie synchron erfasst werden (abgesehen von Spitzfindigkeiten). Die Datenerfassungen laufen also von Anfang an und erfassen z.B. mit 5kH die Messdaten. Irgendwann überschreitet der Kanal mit dem Grenzstrom den Schwellwert, sagen wir mal bei Sample Nummer 50000. Du hast dann aber auch die Sample Nummer 50000 aller anderen Messwerte und damit auch keine Zeitverzögerung.

Vielleicht ist es das, was du meinst. Da liegt dann der Fehler schon im Ansatz und du müsstest dein Programm noch mal kräftig umbauen.

Hallo Martin und GerdW,
@Martin
ja, das Problem ist, ich starte zuerst die Fernsteuerung, dann starte ich das Triggern und dann die Datenerfassung. ich denke ich muss die Datenerfassung von Anfang an machen, und das Triggern rauslassen, und den Triggerzeitpunkt erst nach der Messung bestimmen.



Das Problem ist, wenn ich Fernsteuerung und Datenerfassung invertier, stoppt er jedes mal dann wenn die Fernsteuerung startet alle Schleifen?! Why? (Also so dass ich an der Fernsteuerung einen Fehlereingang einbaue und diesen an einem der Datenerfassungsknoten anschließe)

und GerdW, meine Messkarte hat keinen analogen Trigger.
Hallo illy,

Zitat:das Problem ist, ich starte zuerst die Fernsteuerung, dann starte ich das Triggern und dann die Datenerfassung…
Jetzt solltest du aber in deinem anderen Thread weiterfragen, dort findet man dann auch Informationen zu den Dingen, die du jetzt hier fragst…
Referenz-URLs