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!
ich bin absoluter LabVIEW-Neuling und scheitere gerade an einem relativ einfachen Problem.
Ich brauche ein output-Signal/Counter und habe einen schnellen, relativ regelmäßigen 400kHz-Input-Counter und einen "langsamen", unregelmäßigen 100kHz Input-Counter (Trigger).
Mittels an PCI-6602 angeschlossener Hardware soll wiederholt getriggert (ca. 20-100kHz, unregelmäßig) ein Einzel-Puls (Ausgabe-Counter) (ca. 1,5 µs high) ausgegeben werden, der synchron zu einem schnellen 400kHz-Takt sein soll.
Ich habe schon in den DAQmx-Beispiel-Programmen und einigen Foren-Beiträgen gesucht und mit Hilfe der dortigen ähnlichen Probleme bin ich auf drei Lösungsansätze gekommen, die alle nicht ganz richtig funktionieren.
1. Möglichkeit: Die einfachste Variante ist den langsameren, unregelmäßigen Puls als Arm-Start-Trigger zu verwenden und den schnelleren 400kHz Puls als Start-Trigger. Das funktioniert korrekt, aber nur einmal. Denn leider gibt es scheinbar keine Möglichkeit, den Arm-Start-Trigger auf wiederholt-triggerbar zu setzen.
Ich habe daher versucht, den Task in einer Schleife laufen zu lassen. Das funktiniert nur korrekt bis ca. 500Hz, ist also viel zu langsam. Gibt es irgendwie eine Möglichkeit, den Arm-Start-Trigger auf wiederholt-triggerbar zu setzen? Vielleicht auch unter C#? Habs damit nämlich auch versucht. Wenn das irgendwie ginge, wäre das die schönste Lösung.
2. Idee: Den schnellen Puls als Taktquelle für den Ausgabe Counter verwenden und den langsamen Puls als Wiederholt-triggernden Start-Trigger zu setzen. Das funktioniert ganz fantastisch, aber der Puls des Ausgabe-Counters muss dann mindestens zwei Takte der Taktquelle lang sein. Damit ist der Puls zu lang. Am besten wäre, wenn ich die Pulslänge völlig unabhängig von der Taktquelle einstellen könnte.
3. Ansatz: Das brachte mich auf die Idee, die "Timing-VI" zu verwenden. Aber anscheinend habe ich tortz Kontex- und normaler Hilfe nicht verstanden, was die macht. Ich habe meine VI angehängt und so wie die jetzt aussieht, ist es dem Task völlig egal, ob ein Signal an der Taktquelle der Timing-VI anliegt oder nicht.
Vielleicht kann mir ja hier jemand helfen. Falls es sich unter LabVIEW nicht lösen lässt, gerne auch unter C#.
Muss ich vielleicht einen Digital-Output anstelle eines Counters verwenden?
Gibt es noch andere Möglichkeiten, dass ein Trigger zunächst auf einen anderen wartet?
Ich verwende LV 2013 unter WinXP, habe aber als LV 10.0 abgespeichert, damit möglichst alle das öffnen können.
Vielen Dank schon mal
Fred
--