LabVIEWForum.de - DIO Frequenzmessung

LabVIEWForum.de

Normale Version: DIO Frequenzmessung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich hab ein 9401 und am DIO0 ist ein Inkrementalgeber angeschlossen (eine Umdrehung sind 3000 Impulse). Die Trommel an dem der Inkrementalgeber befestigt ist, hat einen Umfang von 6,283m.

Mein Problem ist, dass ich nicht die Frequenz des der Impulse die der Inkrementalgeber liefert herausfinden kann, also die Impulsbreite.

Anders ausgedrückt, ich bekomme immer ein Boolean T/F der dann aufarbeitet werden muss damit ich die Frequenz und somit die Geschwindigkeit der Trommel m/s bestimmen kann.

Und ich versuche dies mit Hilfe von der Scan Engine zu Programmieren.

Habt ihr einen Tipp für mich?http://www.labviewforum.de/images/smilies/lvfsmilies/fun/badewanne_2_2.gif
Für den Anfang, zähl die Flanken. Du vergleichst den aktuellen Boolean mit dem vorherigen Boolean (Schieberegister oder Rückkopplungsknoten). Ist der Wert von (n) größer als der von (n-1), ist es eine positive Flanke, ist der von (n) kleiner als der von (n-1), ist es eine negative Flanke.

Die Anzahl der Flanken setzt Du dann mit der vergangenen Zeit in Relation. Dafür nimmst Du am Besten den Zeitstempel, der mit dem Eingangssignal kommt.

Wichtig ist bei der ganzen Nummer natürlich noch die Abtastrate. Also heraus finden: Wie schnell dreht sich das Ding, wie viele Pulse pro Zeiteinheit sind das, wie viele Abtastwerte pro Zeiteinheit brauche ich also, ab welcher Geschwindigkeit funktioniert es nicht mehr.
Hi Wall-E,
danke für die Idee!
ich werde das mal ausprobieren, aber gestern Abend habe ich noch ein wenig rumprobiert und ich glaube das es so auch gehen würde.
Was meinst du, ist das eine gute Möglichkeit es so zu machen?

Gruß MArkomasa
Erzähl doch mal was über deine gesamte NI-Hardware.

Ein 9401 ist ja "nur" ein Erfassungsmodul, das kann in einem cDAQ-Chassis stecken (dann wären wir bei DAQmx-Funktionen) oder in einem cRIO, dann wären wir bei Real-Time und FPGA...

Gruß, Jens
Hallo,

Zitat:Und ich versuche dies mit Hilfe von der Scan Engine zu Programmieren.
Also wohl ein cRIO...
Hinweis: Die ScanEngine arbeitet prima mit Sampleraten von 100Hz bis 500Hz. Alles darüber ist sehr Jitter-anfällig - oder gar nicht möglich! Du schaffst es vielleicht, einen DI mit 1kHz abzufragen. Ich habe das mal gemacht, um Pulse zu zählen. Ab ca. 300Hz Pulsfrequenz wurde der Fehler aufgrund Jitter deutlich sichtbar...

Lösung1: Stelle das 9401-Modul auf CTR-Betrieb (wenn das geht), dann übernimmt der FPGA das Zählen für die ScanEngine.
Lösung2: Programmiere den FPGA selbst. Spätestens, wenn du gemischten CTR/PWM/DIO-Betrieb auf einem DIO-Modul haben willst, kommst du nicht drumherum...
OH MAN!
Das mit der Frequenz hab ich voll vergessen ;(
Meine Hardware ist: 9022, 9114, 9201 slot1, 9263 slot2 und 9401 slot3

Die höchste Frequenz ist 14589 impulse/s.
f=n*T=4,863 (1/s)*3000(imp)

Was ist der unterschied zwischen DIO und CTR?
Hallo markomasa,

Zitat:Die höchste Frequenz ist 14589 impulse/s.
Du musst also mit ~30kHz abtasten (NYQUIST!), definitiv zu schnell für die ScanEngine...

Zitat:Was ist der unterschied zwischen DIO und CTR?
DIO heißt: nur den den aktuellen Zustand deiner DIO-Pins abzufragen und selbst die Daten auszuwerten.
CTR heißt: der FPGA wertet schon selbst Impulse aus und du bekommst einen Zählerstand gemeldet...
Referenz-URLs