LabVIEWForum.de - Datenerfassung mit NI myDAQ

LabVIEWForum.de

Normale Version: Datenerfassung mit NI myDAQ
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Liebe LabVIEW-Gemeinde,

ich habe ein NI myDAQ und möchte damit eine Frequenz lesen. Wenn ich den M&A-Explorer starte, den Counter-Kanal auswähle und "1 Wert auf Anforderrung" einstelle, dann klappt es mit dem Zählen.

Ich möchte das gerne im Blockdiagramm nicht mit einem Express-VI machen, sondern mit DAQ-mx Task starten / Lesen etc.

Mein Wunsch ist es, die Frequenz z.B. 1mal in der Sekunde auszulesen. Die Option "1 Wert auf Anforderrung" klappt zwar, ich bin damit aber nicht so glücklich. Schöner wäre es, wenn ich kontinuierlich einen Wert lesen könnte und z.B. alle 5 Sekunden dann die 5 gespeichertern Werte auslesen könnte.

Ich bekomme aber recht wenig hin. Wenn ich z.B. in einer while-Schleife die Funktion "1 Wert auf Anforderrung" aufrufe und dann ein Warten in die Schleife mit 1000ms hinein tue, dann bin ich mir nicht sicher, ob ich wirklich auch alle 1000ms den Wert bekomme oder ob es nicht eine kleine Zeitverschiebung gibt. Ein weiteres Problem tritt auf, wenn ich dann noch dazu passend einen Analogwert einlesen möchte, das läuft dann nicht synchron, wenn ich beides mal mit "Einen Wert auf Anforderrung" die Werte hole. Dazu gibt es ja auch die anderen Funktionen.

Ich habe hier mal ein Bild angefügt, was ich da z.B. fabriziert habe. Ich wäre für den Anfang sehr glücklich, wenn ich einfach erstmal nur die Frequenz gut einlesen könnte.

An der Arbeit arbeite ich auch mit einem NI-USB 6251, damit hab ich genau das gleiche Problem, dass ich es nicht hinbekomme, darum bin ich gerade mit meinem NI myDAQ am experimentieren, wie ich es hinbekomme.

Falls ihr mir ein paar Tipps geben könntet, wie ich das ganze überhaupt mal in Gang setzen könnte (ohne das Express-VI), würde ich mich sehr darüber freuen.
Ich habe jetzt ein Beispielprogramm gefunden, mit dem man die Spannungen auslesen kann. Dieses Beispiel habe ich so übernommen und einen weiteren Task hinzugefügt, um steigende Flanken zu zählen (die von einem Inkrementalgeber kommen).

Das funktioniert erstmal soweit ohne Fehler bisher. Ich habe jetzt bei der Spannung unter SampeRate 100 eingestellt und 10 Samples per Loop - das heisst für mich - alle 100ms werden 10 Werte gelesen. Also haben die Werte alle einen zeitlichen Abstand von 10ms.

Jetzt ist mein Problem die Drehzahl bzw. der Counterwert. Auf welchen Punkt hin wird die Drehzahl erfasst? Pro Schleifendurchlauf 10 Werte - gehört es jetzt zum ersten, zum letzten oder zu einem mittleren Wert?

Könnt ihr mir da vielleicht einen Tipp geben? Muss ich vielleicht die Triggerfunktion verwenden und irgendwie auf den Spannungseingang ai0 triggern? Ich würde mich sehr über eine Antwort freuen.

Hier im Bild hab ich mal das aktuelle Programm mit Frontpanel hochgeladen.
Referenz-URLs