LabVIEWForum.de
Zeitmessung zwischen zwei Ereignissen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Zeitmessung zwischen zwei Ereignissen (/Thread-Zeitmessung-zwischen-zwei-Ereignissen--28780)

Seiten: 1 2 3 4


RE: Zeitmessung zwischen zwei Ereignissen - friele - 10.03.2016 10:07

Hi GerdW,

jedesmal, wenn ich die Lichtschranke unterbreche, erkennt der "einfache Trigger" eine fallende Flanke als Booleschen Wert. Den transformiere ich um in eine Zahl und lasse diese zu einem Schieberegister addieren.
Also steigt der Wert der erkannten Trigger immer um 1, wenn ich sie unterbreche.

Oder hängt auch dies mit dem Buffer zusammen?

Deinen Vorschlag werde ich jetzt mal versuchen zu integrieren.

MfG


RE: Zeitmessung zwischen zwei Ereignissen - friele - 10.03.2016 14:21

Hi nochmal !

Ich komme mit deinem Vorschlag nicht ganz zurecht, ich kann den Wert des erkannten Triggers nicht speichern/festhalten. Springt also immer wieder auf den Wert 0 zurück. Außerdem fehlt mir mit diesem Vorschlag der Indexwert innerhalb eines Buffers. Oder verstehe ich nicht?

Ich hatte mich weiterhin mit meinem VI und mit dem einfachen Trigger beschäftigt. Ich habe den Sample-Anzahl auf 10 verringert und nun erkennt er beide Lichtschrankenunterbrechungen. Also kann der Trigger doch nur einmal pro Buffer aktiv werden?

MfG


RE: Zeitmessung zwischen zwei Ereignissen - jg - 10.03.2016 14:32

Das Problem ist:
Wenn du viele Werte auf einen Rutsch erfasst, dann sind natürlich beide Trigger-Ereignisse mit sehr großer Wahrscheinlichkeit innerhalb eines Arrays/Waveform enthalten. Wenn du beide Ereignisse einzeln per Software-Takt und Schleife feststellen willst, dann müsstest du eigentlich auf Einzelerfassung umstellen, dann ist aber bei deiner kurzen Messstrecke das Programm wahrscheinlich zu langsam.

IMHO die sauberste Lösung wäre eigentlich:
DAQmx die Triggerung des ersten Signals übernehmen lassen (falls das deine Karte hergibt), dann die Daten für eine gewisse Zeit erfassen, und in den erfassten Daten danach nach dem zweiten Impuls suchen.

Gruß, Jens


RE: Zeitmessung zwischen zwei Ereignissen - GerdW - 10.03.2016 14:40

Hallo friele,

Zitat:ich kann den Wert des erkannten Triggers nicht speichern/festhalten.
Das Speichern musst du schon noch selbst übernehmen, das habe ich in dem Bild oben nicht integriert…

Zitat:Springt also immer wieder auf den Wert 0 zurück.
THINK DATAFLOW: mit der nächste Iteration wird der nächste Datenblock ausgewertet…

Zitat:Außerdem fehlt mir mit diesem Vorschlag der Indexwert innerhalb eines Buffers. Oder verstehe ich nicht?
Ich glaube, du verstehst nicht.
In meinem Beispiel wird der Index innerhalb des Datenblocks ausgegeben, zu dem eine Flanke deines Pulses erkannt wurde!

Und ja, Jens' Vorschlag ist gut: du benötigst eine Messhardware, die mit Analogtriggern umgehen kann…


RE: Zeitmessung zwischen zwei Ereignissen - friele - 10.03.2016 15:29

Hi,

danke für eure Antworten.

Ich habe mir den DAQmx-Trigger mal angeschaut, verstehe aber nicht wie ich damit umgehen soll, da er keine richtigen Ausgänge hat. Man nimmt wohl zusätzlich den Eigenschaftsknoten oder wie ?Blink

Auch die Beispiele von NI sind mir nicht einleuchtend.

Kann die NI 9239 überhaupt mit dem DAQmx-Trigger? Ich weiß nicht woher ich die Information bekommen kann..

MfG


RE: Zeitmessung zwischen zwei Ereignissen - GerdW - 10.03.2016 15:48

Hallo friele,

Zitat:Ich habe mir den DAQmx-Trigger mal angeschaut, verstehe aber nicht wie ich damit umgehen soll, da er keine richtigen Ausgänge hat. Man nimmt wohl zusätzlich den Eigenschaftsknoten oder wie?
Mit einem Trigger kann man eine Messung konfigurieren. Man kann verschiedene Arten von Trigger einstellen: Start-Trigger, Stop-Trigger, digitale, analoge.
Du würdest einen analogen Trigger konfigurieren, der deine Messung starten soll. Sobald das Triggersignal erkannt wurde, startet deine Messung: da du sinnvollerweise den ersten Puls deiner Lichtschranke als Trigger nutzt, musst du nur für eine weitere Sekunde (z.B.) messen und im so erhaltenen Signalverlauf nach dem zweiten Puls suchen…

Zitat:Auch die Beispiele von NI sind mir nicht einleuchtend.
Es gibt bestimmt auch eines, welches einen analogen Starttrigger erläutert. Und wenn ich mich recht erinnere, finden sich in den VIs auch jede Menge Kommentare…


RE: Zeitmessung zwischen zwei Ereignissen - jg - 10.03.2016 16:46

Ich probiere so etwas gerne, indem ich einen Task im MAX anlege.
Mit einem 9239 in einem cDAQ9174 Chassis geht es nicht.

Also kontinuierlich erfassen, nach ALLEN Triggerereignissen in einem Abschnitt suchen. Wenn 2 gefunden, dann fertig, ansonsten weiter erfassen und im nächsten Abschnitt nach dem nächsten Ereignis suchen.

Gruß, Jens


RE: Zeitmessung zwischen zwei Ereignissen - friele - 11.03.2016 08:21

Guten Morgen,

ich habe leider nur das NI cDAQ-9174 und die NI Karte 9239 zur Verfügung.

Verstanden habe ich es jetzt so, dass mit diesen Bauteilen die kontinuierliche Suche nach Triggereieignissen nicht funktioniert, ist das so?

Mein Vorschlag, die Sample-Anzahl nur auf 10 zu setzen, ist nicht sinnvoll? Die Anzahl beschreibt die Buffergröße, aber den direkten Zusammenhang zu der Sample-Rate oder anderem verstehe ich nicht..

Wenn es mit den DAQmx-Triggern oder der geringen S.A. nicht funktioniert, ist der Vorschlag von GerdW der naheliegenste der mich zum Ziel führen wird oder?

MfG


RE: Zeitmessung zwischen zwei Ereignissen - GerdW - 11.03.2016 08:37

Hallo friele,

Zitat:Verstanden habe ich es jetzt so, dass mit diesen Bauteilen die kontinuierliche Suche nach Triggereieignissen nicht funktioniert, ist das so?
Nein, das ist nicht so.
Wir haben dir doch schon gesagt, wo es in deinem VI hapert und gezeigt, wie du das Problem lösen kannst!

Zitat:Mein Vorschlag, die Sample-Anzahl nur auf 10 zu setzen, ist nicht sinnvoll?
Nein. Nicht bei der geforderten Samplerate.

Zitat:Die Anzahl beschreibt die Buffergröße
Die Zahl beschreibt NICHT die Buffergröße, sondern gibt die Anzahl der zu lesenden Samples an. Punkt.

Zitat:aber den direkten Zusammenhang zu der Sample-Rate oder anderem verstehe ich nicht..
Einfache Mathematik: Zeitspanne := Samplerate * Sampleanzahl.

Zitat:Wenn es mit den DAQmx-Triggern oder der geringen S.A. nicht funktioniert, ist der Vorschlag von GerdW der naheliegenste der mich zum Ziel führen wird oder?
Davon bin ich fest überzeugt! Big Grin


RE: Zeitmessung zwischen zwei Ereignissen - friele - 11.03.2016 14:30

man man man.. das ist mal wieder eine schwierige Geburt bei mir Hmm

Ich finde im Internet nichts zu der richtigen Angabe für die "Quelle" des Triggers. Habe schon vieles ausprobiert, aber mir wird immer der gleiche Fehler angezeigt:

Fehler -200265 bei Eigenschaftsknoten DAQmx Trigger (arg 1)

Den Trigger muss ich vor den "DAQmx Start Task" setzen oder?

MfG und ein schönes Wochenende,
friele