10.03.2016, 10:07
|
friele
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Dec 2015
2015
2015
DE
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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
|
|
|
10.03.2016, 14:21
|
friele
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Dec 2015
2015
2015
DE
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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
|
|
|
10.03.2016, 14:32
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
10.03.2016, 14:40
(Dieser Beitrag wurde zuletzt bearbeitet: 10.03.2016 14:41 von GerdW.)
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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…
|
|
|
10.03.2016, 15:29
|
friele
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Dec 2015
2015
2015
DE
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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 ?
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
|
|
|
10.03.2016, 15:48
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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…
|
|
|
10.03.2016, 16:46
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
11.03.2016, 08:21
|
friele
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Dec 2015
2015
2015
DE
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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
|
|
|
11.03.2016, 08:37
(Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2016 08:38 von GerdW.)
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
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!
|
|
|
11.03.2016, 14:30
|
friele
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Dec 2015
2015
2015
DE
Deutschland
|
RE: Zeitmessung zwischen zwei Ereignissen
man man man.. das ist mal wieder eine schwierige Geburt bei mir
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
|
|
|
| |