LabVIEWForum.de - Probleme bei der Messwerteerfassung

LabVIEWForum.de

Normale Version: Probleme bei der Messwerteerfassung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich habe mehrere Tasks laufen. In einem Task werden Spannungen mit einer "Rate" von 1kHz gelesen.
In einem weiteren Task werden Flanken gezählt. Als Taktquelle wird auf die Taktquelle verwiesen, mit der die Spannungswerte eingelesen werden - in dem Beispiel die Quelle ai-SampleClock.

Nun möchte ich die Flankenzählung aber nicht im Intervall von 1 kHz erfassen, sondern etwas langsamer. Dazu habe ich "Rate" auf 10 gestellt.

In der Simulation funktioniert es einwandfrei. Bei jedem 100sten Spannungswert werden Flankenzählwerte erfasst. Aber wenn das reale Gerät dranhängt, dann funktioniert es nicht mehr, dann werden die Signale bei der Flankenzählung auch weiterhin mit 1kHz-Werten gelesen, was aber nicht sein soll.

Ich habe versucht, einen Eigenschaftsknoten zu erstellen und mit einem Zeitbasisteiler zu arbeiten, leider kommt dann die Fehlermeldung, dass der Zeitbasisteiler für diesen Kanal nicht unterstützt wird.

Ich weis momentan nicht weiter, wie ich das Signal zwar an den Eingang ai-SampleClock koppeln kann, dann aber nur bei jedem 100. Wert (also 100 Zeitsignale von ai-SampleClock) einen Wert dort holt.

Ich habe auch schon einen Trigger ausprobiert und mit einer Mustererkennung versucht zu arbeiten, ich kann aber den Kanal zur Mustererkennung (100 steigende Flanken von ai-Sample-Clock) nicht an den Trigger koppeln, der Kanal ist dort nicht verfügbar.

Falls mir jemand einen Tipp geben kann, was man noch ausprobieren koennte, würde ich mich sehr darüber freuen.
Hallo Hasenfuss,

beim Erstellen eines neuen Threads bitte immer einen Verweis auf deinen alten Thread anbringen, wenn dort relevante Informationen stecken. Hier z.B. die verwendete Hardware - nicht jede NI-Hardware unterstützt alle Features...

Zu deiner Frage:
Du gibst für den CTR als Takt den AI-SampleClock vor - den hast du ja auf 1kHz eingestellt. Warum lässt du diesen Eingang nicht einfach offen? Warum überhaupt der explizite Bezug auf den AI-Clock?
Hänge ich keine externe Taktquelle dran, dann kommt die Fehlermeldung:

"diese Applikation muss die externe Taktquelle angegeben werden."
Hallo Hasenfuss,

ein CTR sollte auch ohne explizite Einstellung bei DAQmxTiming funktionieren...

- Welches ist die Fehlernummer, die du da bekommst?
- Was passiert, wenn du DAQmxTiming weglässt (und einfach alle 100ms den CTR abfragst)?
Fehler -200303 ist bei DAQmx Start Task.vi:3 aufgetreten:

Mögliche Ursachen:

Für diese Applikation muss die externe Taktquelle angegeben werden.

nicht spezifizierte Eigenschaft: SampleTakt.Quelle
Kanalname: Dev2/ctr1

Task-Name: _unnamedTask<42>

Du schreibst - Timing weglassen und alle 100ms auslesen - meinst Du damit einfach in einer Schleife alle 100ms den "Momentanwert" auslesen, den der Zaehler dann aktuell hat?
Ja.
Hallo GerdW,

danke für Deine Antworten.

In der Simulation klappt es zunächst, dass ich den Timer weggelassen habe und die Schleife im gewünschten Zeitintervall auslese.

Was ich jedoch immer noch nicht verstehe ist, dass es in der Simulation auch funktionierte, dass ich mit dem Timer und dem Bezug auf ai0 und einer Rate von 10 oder 100 auch nur jeden zehnten oder hundertsten Wert bekam, aber im Test mit dem realen Gerät dann wieder 1000 Werte.

Woran koennte das gelegen haben?
Hallo Hasenfuss,

das ist halt nur eine Simulation. Ich nehme an, NI simuliert im DAQmx nicht konkrete Geräte, sondern eher allgemeine Funktionsgruppen...
Hmm, ja stimmt. Ich habe mal aus Spaß die Rate auf 1.000.000 gesetzt bei einem Clock von 1000. Eigentlich hätten nie 1Mio Werte gelesen werden dürfen, aber es kamen in der Simulation dennoch so viele Werte bei heraus :-)
Referenz-URLs