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 arbeite mit LabVIEW 6.1 (schon bisl älter, aber macht ja nichts:-))
Als Messkarte habe ich die DAQCARD-6062E!
Ich schließe nun über analoge Eingänge die Signale eines Drehgebers (Spur A und Spur B) an. Countereingänge benutze ich nicht, weil ich mehrere Drehgeber gleichzeitig messen möchte und Countereingänge nicht in der Anzahl vorhanden sind.
Jetzt möchte ich die Drehrichtung des Drehgebers bestimmen! Die beiden Rechtecksignale A und B sind phasenverschoben und dadurch kann man doch die Drehrichtung bestimmen, oder?
Gibt es vielleicht ein VI, die mir die Drehrichtung liefert bei Anschluss der zwei Signale oder ist es nicht so einfach?
ich würde sagen du musst die Werte-Arrays beider Kanäle untersuchen...wann ist der jeweilige Kanal größer "x"...die beiden entsprechenden Zeitstempel vergleichen und dann je nach "a < b" oder umgekehrt hast du die Richtung!
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Ich arbeite mit LabVIEW 6.1 (schon bisl älter, aber macht ja nichts:-))
Als Messkarte habe ich die DAQCARD-6062E!
Ich schließe nun über analoge Eingänge die Signale eines Drehgebers (Spur A und Spur B) an. Countereingänge benutze ich nicht, weil ich mehrere Drehgeber gleichzeitig messen möchte und Countereingänge nicht in der Anzahl vorhanden sind.
Jetzt möchte ich die Drehrichtung des Drehgebers bestimmen! Die beiden Rechtecksignale A und B sind phasenverschoben und dadurch kann man doch die Drehrichtung bestimmen, oder?
Gibt es vielleicht ein VI, die mir die Drehrichtung liefert bei Anschluss der zwei Signale oder ist es nicht so einfach?
Hi,
theoretisch ist es so einfach, ich befürchte nur, dass LabVIEW dazu zu langsam ist, hängt natürlich von der Drehzahl ab.
MfG Jeffrey
21.11.2007, 15:33 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2007 15:34 von Achim.)
' schrieb:theoretisch ist es so einfach, ich befürchte nur, dass LabVIEW dazu zu langsam ist, hängt natürlich von der Drehzahl ab.
Dann nützt dir kein irgendwie geartetes VI irgendwas...
Es geht vermutlich ja nicht nur um die Drehrichtung, oder? Weil nur für diese Erkennung dürfte LV ja schnell genug sein...oder hast du Drehrichtungsänderungen (eines Motors) die sich im Milisekunden-Bereich abspielen...also im einen Moment LL, einige ms später RL, usw usw.?
Ansonsten musst du halt doch Counter-Karten besorgen...
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
gleichzeitig soll die Drehzahl noch berechnet werden - dies funktioniert auch schon einwandfrei! Also mein VI liefert mir alle 0,1 - 1 Sekunde einen aktuellen Drehzahlwert. Also möchte ich auch in dieser Zeit wissen, ob rechts- oder linksdrehung. Mit den Arrays untersuchen hab ich mir auch schon gedacht, aber ich hab mir mal beide Arrays nach einer halben Sekunde messen angeschaut und ich kann daraus nix folgern!:-(
naja deine gemessenen Rechtecksignale kommen ja in zwei Arrays...jeder Wert im Array ist dt von den anderen entfernt, dt ergibt sich durch deine Abtastrate.
Jetzt musst du die erste steigende Flanke (Index T1) von Signal A suchen, die liegt dann bei T1= xA*dt...das gleiche für Signal B, d.h. T2 = xB*dt. Jetzt musst du schauen, welcher Zeitwert größer ist!
A.
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Der Ansatz ist schon gut - aber funktioniert bei mir nicht!:-(
Obwohl ich immer die gleiche Richtung hab, wird immer etwas anderes angezeigt!
z.B.
Array 1: 4,15 / 0,01 / 4,15 / 4,20 / 0,05
da hab ich ja meine erste steigende Flanke bei Index 1 und 2
Array 2: 0,01 / 4,05 / 4,79 / 0,05
da hab ich sie dann bei Index 0 und 1
Ich würd jetzt sagen, dass Kanal B nachläuft! bei erneutem Versuch und gleicher Drehrichtung schauen die Arrays wieder komplett anders aus und man könnte annehmen, dass sich die Drehrichtung geändert hat - aber ist ja nicht so!
Kann dies an der Abtastrate liegen? muss ich bei Drehrichtungserkennung 4mal so hoch abtasten als die Frequenz eines einzelnen Kanals?
' schrieb:Kann dies an der Abtastrate liegen? muss ich bei Drehrichtungserkennung 4mal so hoch abtasten als die Frequenz eines einzelnen Kanals?
Würde ich empfehlen, ja. Wenn ich mir deine Arrays so angucke, hast du ja teilweise in einem State nur ein Arrayelement. Das kann ganz schnell mal nach hinten losgehen. Außerdem solltest du den Interchannel Delay beachten. Siehe dazu vor allem die zweite Seite folgender Diskussion: http://www.LabVIEWforum.de/index.php?showt...erchannel+delay
Entweder, du machst dir viel Mühe, diese Eigenschaft zu beseitigen, oder du erhöhst die Abtastrate nochmal um den Faktor 2, so dass dieser Effekt auf deine Messung keine Auswirkung hat.
hi,
wird der motor auch aus LabVIEW raus angesteuert? weil dann kennst du doch eigentlich die drehzahl, weil du weißt ja in welche richtung du den motor drehen lässt. so habe ich das bisher immer gemacht, wenn ich die drehzahl/drehrichtung eines motors geregelt habe. bin halt immer davon ausgegangen, dass mein motor zumindest in die richtung dreht, die ich möchte, aber sonst hast ja auch insgesamt ein großes problem, wenn der motor net mal schafft in die sollrichtung zu drehen.
mfg jeffrey