Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
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.
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?
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!
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…
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..
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…
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!
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.)
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?
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?