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 - 02.03.2016 16:05

Guten Tag,

die aufgestellten Rechnungen sind mir nun schlüssig, danke.

Deine Alternative ist... toll ! Big Grin (und ja, ist ein Luftgewehr)

Anbei mein VI.
Ich lasse das Signal triggern und bei erfolgreich erkanntem Trigger lass ich eine 1 in ein Schieberegister zählen. Also kann ich zwischen der ersten und zweiten Lichtschranke unterscheiden. Bei erfolgreichem Trigger lass ich außerdem die Indexzahl in ein seperates Schieberegister zählen. Davon bilde ich die Differenz und mach die typischen Schritte zur Errechnung der Geschwindigkeit.

Mein Problem bei diesem Aufbau ist, dass der Index des ersten Triggers größer ist als die des Zweiten. Ich denke das liegt an der Sample-Anzahl. Ich habe als Samplerate 50k und als Sample-Anzahl 1000 gewählt.

Wie kann ich dieses Problem beheben ohne verluste zu erzeugen?
---------------
Ergänzung meinerseits:

Wenn die erste Index-Zahl größer als die Zweite ist, dann müsste ich nur +1000 auf die zweite Index-Zahl addieren? Er fängt ja nur neu an zu zählen und die Differenz wäre noch die gewünschte ?!

---------------

MfG,
friele

PS: (Das Bild habe ich noch zusätzlich hochgeladen, aber nur den wichtigen Teil, der Rest kommt aus dem Beispiel-VI)


RE: Zeitmessung zwischen zwei Ereignissen - friele - 02.03.2016 16:22

Nein, meine Ergänzung ist auch quatsch!

Wenn die erste Index-Zahl größer ist als die Zweite, dann muss ich die Differenz zwischen der ersten Index-Zahl und 1000 wissen, und die mit der Zweiten addieren.

Dann hätte ich den richtigen Abstand/Zeitmessung?


RE: Zeitmessung zwischen zwei Ereignissen - friele - 07.03.2016 09:40

Guten Tag,

auch dieser Vorschlag von mir, ist nicht der, der zum richtigen Ergebniss führt.

Ich gehe davon aus, dass ich immer 1000 Samples in den Puffer schreibe und auswerte. Also kann der Index nur einen Bereich von 0 bis 1000 annehmen. Somit müssen entweder die beiden erreichten Trigger in einem 1000-Pack/Püffer liegen um eine korrekte Differenz anzugeigen, oder ich muss wissen in welchem 1000-Pack/Püffer der erste Trigger aktiv wird und in welchem der Zweite.

Gibt es eine Möglichkeit, sich anzeigen zu lassen in wechlem 1000-Pack/Püffer der Trigger aktiv wurde?

Ich finde keine schlüssige Lösung für dieses Problem, welches ích aber zeitnah beseitigen muss.

Vielen Dank im Voraus,
friele


RE: Zeitmessung zwischen zwei Ereignissen - GerdW - 07.03.2016 09:49

Hallo friele,

Zitat:Ich gehe davon aus, dass ich immer 1000 Samples in den Puffer schreibe und auswerte. Also kann der Index nur einen Bereich von 0 bis 1000 annehmen.
Wenn du 1000 Samples pro DAQmxRead bekommst, hast du Indizes von 0 bis 999

Zitat:Somit müssen entweder die beiden erreichten Trigger in einem 1000-Pack/Püffer liegen um eine korrekte Differenz anzugeigen, oder ich muss wissen in welchem 1000-Pack/Püffer der erste Trigger aktiv wird und in welchem der Zweite.
Korrekt.

Zitat:Gibt es eine Möglichkeit, sich anzeigen zu lassen in wechlem 1000-Pack/Püffer der Trigger aktiv wurde?
Man merkt sich einfach, wann der erste Trigger entdeckt wurde. Der Schleifeniterator bietet sich an, alternativ kannst du auch einen "globalen" Index für deine Samples mitzählen, den du bei jedem DAQmxRead um die Anzahl der gelesenen Samples erhöhst…

Die "Püffer" hören sich niedlich an… Big Grin


RE: Zeitmessung zwischen zwei Ereignissen - friele - 07.03.2016 10:30

Hi GerdW,

ja, 0 bis 999 Wall

Das anzeigen der momentan gelesenen Indizes ergibt sinn! Nach 20 Minuten suchen habe ich den Baustein "DAQmx-Lesen" gefunden und lasse mir davon die "GesamtanzErfassterSamplesProKanal" anzeigen. Bei Betrachtung der angezeigen Zahl im gestarteten Programm, fällt mir auf, dass der Wert sich in 1000er Schritten vergrößert. Entsprechend meiner BUFFER-Größe, denke ich mal?!

Mit dieser Zahl und des genauen Index-Wertes meines aktiven Triggers kann ich die Differenz bestimmen ?!

Mit freundlichen Grüßen,
friele


RE: Zeitmessung zwischen zwei Ereignissen - GerdW - 07.03.2016 10:53

Hallo friele,

Zitat:Bei Betrachtung der angezeigen Zahl im gestarteten Programm, fällt mir auf, dass der Wert sich in 1000er Schritten vergrößert. Entsprechend meiner BUFFER-Größe, denke ich mal?!
Entsprechend der Anzahl der abgefragten Samples…

Zitat:Mit dieser Zahl und des genauen Index-Wertes meines aktiven Triggers kann ich die Differenz bestimmen ?!
Ja, das sollte gehen.
(Ich hätte einfach in einem Schieberegister selbst gezählt, wieviele Samples schon gelesen wurden…)


RE: Zeitmessung zwischen zwei Ereignissen - friele - 10.03.2016 08:25

Hi,

die Auswertung der Lichtschranke hat funktioniert. Diese hatte ich exemplarisch getestet, indem ich sie mit einem Stift durchbrochen habe. Seitdem ich die Lichtschranke für den richtigen Betrieb verwende, wird nur ein Trigger erkannt, der Zweite nichit mehr. Ich bin mir aber sicher, dass es ein Softwareproblem ist und nicht an dem Aufbau/Bauteile der Lichtschranke.

Zoom ich in dem Plot an die zwei Stellen, bei der die Lichtschranken unterbrochen werden, erkenne ich klar die zwei Unterbrechungen. Exportiere ich diesen Plot in eine Excel-Tabelle, erkenne ich auch dort klare Spannungsabfälle.

Meine Frage: Ist der Trigger gegebenfalls zu langsam? Oder geht durch die Umformung eines Boolschen Wertes in eine Zahl zu viel Zeit verloren?

Da stehe ich echt auf dem Schlauch Ahrg1

Mit freundlichen Grüßen,
friele


RE: Zeitmessung zwischen zwei Ereignissen - GerdW - 10.03.2016 08:38

Hallo friele,

Zitat:Exportiere ich diesen Plot in eine Excel-Tabelle, erkenne ich auch dort klare Spannungsabfälle.
Meine Frage: Ist der Trigger gegebenfalls zu langsam? Oder geht durch die Umformung eines Boolschen Wertes in eine Zahl zu viel Zeit verloren?
Antwort: aktuelles VI anhängen, am besten (oder: unbedingt!) mit aussagekräftigen Messdaten als Default in den Anzeigen gespeichert!
Ach ja: LV2014 wäre schön…


RE: Zeitmessung zwischen zwei Ereignissen - friele - 10.03.2016 09:12

Hi,

anbei das VI, ich hoffe für 014 Version, die Excel Tabelle des Plottes und ein Bild des Plottes.

MfG


RE: Zeitmessung zwischen zwei Ereignissen - GerdW - 10.03.2016 09:26

Hallo friele,

Zitat:Ich bin mir aber sicher, dass es ein Softwareproblem ist und nicht an dem Aufbau/Bauteile der Lichtschranke.
Ja, korrekt.

Zitat:Seitdem ich die Lichtschranke für den richtigen Betrieb verwende, wird nur ein Trigger erkannt, der Zweite nichit mehr.
Weil du das genau so programmiert hast!
Du verwendest die "Einfache Trigger-Erkennung" und lässt dir genau einen erkannten Trigger melden!
Jetzt wunderst du dich, warum du nur einen Trigger gemeldet bekommst und nicht zwei oder mehr… Wall

Nachtrag, wie es funktionieren könnte:
[attachment=55445]