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!
Für unseren Prüfstand schreibe ich gerade eine Drehzahlerfassung. Eine Drehzahlmesswelle (KTR) liefert das digitale Signal von 60 Impulsen/Umdrehung. Dieses wird von einem NI 9423 Digitaleingangsmodul erfasst. Ich habe ein VI geschrieben, dass bis zu einer Drehzahl von 100 U/min exakt Arbeitet, jedoch dann mit steigender Drehzahl immer ungenauer wird.
Das NI 9423 Modul arbeitet bis 1 Mikrosekunde, also ausreichend schnell.
Offenbar ist die Abtastung meines VIs nicht schnell genug.
Vielleicht kann mir jemand helfen das VI so zu überarbeiten dass, es bis zu einer Drehzahl von 2500 U/min exakt arbeitet.
Vielen Dank
Mit freundlichen Grüßen
Mr.Stonecool
12.08.2011, 15:51 (Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2011 15:53 von GerdW.)
mit dem jetzigen Schema wirst du nie wesentlich schneller werden: das ständige Abfrage eines Einzelwertes wird durch die Treibergeschwindigkeit limitiert...
Du könntest einfach mehr als ein Sample pro Abfrage abholen, z.B. in 100er Blöcken. Damit hast du wesentlich weniger Treiberzugriffe und kannst die Verarbeitung besser parallelisieren... Da dich eh nur sekündlich neue Werte interessieren, hast du hier ja genügend Spielraum!
Und nebenbei könntest du auch mehr Schieberegister einsetzen:
(Den counter könnte man natürlich auch als U32 oder U64 einrichten, du zählst ja diskrete Ereignisse!)
Das ist ein guter Ansatz, ich bin leider auch noch nicht so fit mit labview.
Kannst du mir in einem VI zeigen wie ich mehrere Samples abrufen kann, z.b. hundert und mehr wie du sagtest.
also habe mir das Beispiel Cont Read Dig Chan-Int Clk.vi" angesehen und ausprobiert : Es reagiert aber nicht in verbindung mit meinem DAQ-channel. Als Timing Quelle habe ich die externe cDAQ1 SampleClock gewählt. Wo liegt der Fehler ?
Prinzipiell will ich die Drehzahl so exakt wie möglich erfassen, also hoher Samplerate ; Auf welchem Modus muss ich den Task auslesen, sodass die werte Zählen kann und eine Frequenz errechnen kann ?
Ich habe auch versucht das DI so zu routen, dass es als Flankenzähler Arbeitet, jedoch spricht das NI 9423 modul darauf nicht an bzw. lässt sich nicht auswählen.
@ Jens : Es handelt sich um ein Compact DAQ-9172 Chassis. Dieses ist glaube ich nicht für Echtzeit anwendungen geeignet, und möglicher weise Deshalb auch nicht für die Counter Anwendung...bin mir aber nicht sicher.
danke für den Tipp ! Das war's : Hatte gar nicht daran gedacht das mal auszuprobieren, bzw. die specs zu lesen.
Jetzt läuft alles, Drehzahlerfassung + Motorregelung