INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Encodersignale auswerten



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!

11.03.2011, 14:08 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2011 18:14 von jg.)
Beitrag #1

zwieback Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Mar 2011

8.5
2011
DE



Encodersignale auswerten
Hallo Labview Gemeinde,

Ich habe ein DC-Motor mit Inkrementalgeber, welcher zwei um 90° phasenversetzte Rechtecksignale ausgibt. Anhand dieser Rechtecksignale will ich in Labview einen Counter zählen lassen, der je nach Drehrichtung des Motors hoch oder runterzählt.

Mein Problem ist nun, dass die Rechtecksignale in Labview nicht richtig angezeigt werden.
Eigentlich sollten sie so aussehen:
http://zone.ni.com/cms/images/devzone/tu...4dcae9.gif

Bei mir kommt folgendes an:
   
Man sieht, dass die Rechtecke sich nicht überschneiden. Außerdem kommt es manchmal vor, dass in einem Kanal zwei Rechteckimpulse hintereinander kommen.

Was mache ich falsch?

Ich verwende ein CRIO 9004 Controller, ein CRIO 9104 8-slot chassis mit FPGA und ein 9401 Digital In/Out Modul.
Die verwendete Labview Version ist 8.5

Angehängt habe ich zwei VIs, fpga_test läuft auf FPGA-Ebene, main_test auf rio Ebene.

Viele Grüße
zwieback


Angehängte Datei(en)
8.5 .vi  fpga_test.vi (Größe: 101,71 KB / Downloads: 613)

8.5 .vi  main_test.vi (Größe: 87,34 KB / Downloads: 525)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2011, 14:19 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2011 14:22 von snuz.)
Beitrag #2

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Encodersignale auswerten
Hallo zwieback,

die Signale sehen ja schön "lupenrein" aus. Der Quadraturencoder ist ja einmal dafür da, dass man sich die Geschwindigkeit errechnen kann und andererseits die Drehrichtung. Ist bei dem Inkrementalgeber noch irgend eine Leitung frei, quasi etwas noch nicht angeschlossen oder falsch? Wie sieht das Signal aus, wenn man in die andere Richtung dreht? Kann es sein, dass die zwei Impulse dann kommen, wenn eine Umdrehung vollständig ist? Benötigst Du die Drehrichtung? Jedenfalls, kannst Du ja schon eine Berechnung starten und schauen, ob dies in etwa hinkommt, denn Impulse bekommst Du ja schon.

Gruß snuz

P.S. Die Umwandlung von Digital/ Werte so im FPGA würde ich anders realisieren.

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2011, 08:47 (Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2011 08:48 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Encodersignale auswerten
Die Abtastrate ist zu niedrig. Das theoretische Minimum sind 4 Samples pro Periode - das gilt aber nur für den Fall, daß beide Signale ideal mänderförmig sind, und natürlich bezogen auf die höchste vorkommende Drehzahl. Du solltes den Abtastrate erst mal verdoppeln, dann werden wir weiter sehen. Das scheinbare "Bilderbuchmäßige" der Impulse ist das, was LV im Diagramm aus den wenige Meßpunkten macht und hat mit der realen Impulsform überhaupt nichts zu tun.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2011, 23:11
Beitrag #4

srokajo Offline
LVF-Gelegenheitsschr
*


Beiträge: 17
Registriert seit: Mar 2008

2011
1998
DE

14797
Deutschland
RE: Encodersignale auswerten
Hi
in diesem Fall würde ich die Interrupt Fähigkeit von Hardware nutzen. Selbst ein PC benutzt Interrupts um Deine Mausbewegungen sicher zu registieren.

Gruss
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.03.2011, 11:26
Beitrag #5

zwieback Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Mar 2011

8.5
2011
DE



RE: Encodersignale auswerten
Hallo,

danke für die Antworten.

@snuz: Bei meinem Inkrementalgeber habe ich noch 2 Leitungen mit den invertierten Kanälen A und B und noch einen Indexkanal, der pro Umdrehung des Motors einen Impuls erzeugt. Die Drehrichtung benötige ich. Der Geber liefert eigentlich 1024 Impulse pro Umdrehung. Wenn ich die Motorwelle in die andere Richtung drehe, sieht das Signal immer noch so aus.

Wo kann man denn die Abtastrate einstellen?

Und ist für diese Anwendung (Impulse zählen) noch zusätzliche Hardware erforderlich?

Viele Grüße
zwieback
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.03.2011, 14:15 (Dieser Beitrag wurde zuletzt bearbeitet: 14.03.2011 14:18 von snuz.)
Beitrag #6

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Encodersignale auswerten
Hallo zwieback,

wenn Du ein Oszilloskop zur Verfügung hast, schau dir mal die Signale an die aus den anderen beiden Adern "kommen" und finde die beiden Richtigen. Dann zur Programmierung, Lucki hat das ja schon festgestellt, such mal bei NI.com nach Quadcounter, der erledigt für Dich quasi alles, Du musst ihm halt nur die richtigen Signale zur Verfügung stellen (s.B.). Für die Zählung brauchst Du meines wissen keine zusätzliche Hardware - was die Abtastrate... musst Du warten bis hier jemand kommt und es weiß.

Gruß snuz

P.S. Du nutz ja das NI9401 Modul - das kann bis 10MHz, wenn die Frequenz des Impulsgebers höher (>10MHz) wird, wirst Du nicht alle Impulse zählen können, bleibst Du darunter ist es kein Problem.


Angehängte Datei(en) Thumbnail(s)
   

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2011, 19:30
Beitrag #7

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: Encodersignale auswerten
Abtastrate: 10 Mhz - so schnell das 9401 eben arbeiten kann, dafür muss man den Encoder-Auswerte-Code in einer SCTL laufen lassen, mit einer "normalen" Loop geht das nicht. Im Example-Finder oder auf ni.com gibt's die entsprechenden Beispiele für eine Encoder-Auswertung, die benutzte ich seit Jahren quasi unverändert als Ausgangs-Basis wenn ich einen Encoder einlesen will.

Für eine Geschwindigkeits-Messung interessiert einen ja gar nicht der einzelne Tic des Encoders, sondern nur wieviel Tics innerhalb einer festgelegten Zeiteinheit gezählt wurden. Darum macht das aus meiner Sicht gar keinen Sinn Interrupts zu verwenden. Ich glaube nicht, dass es sinnvoll ist die CPU des Controllers damit auszulasten, dass man bei jedem Encoder-Tic eine neue Drehzal berechnet. Sinnvoll aus meiner Sicht sind Zeitfenster von 100 ms (schon relativ starke Schwankungen der Drehzahl) bis 1 Sek (schon sehr langsame Aktualisierung der Drehzahl) in denen man die aufgelaufenen Tics zählt (im FPGA) und dann durch die Zeit-Basis teilt ...

Das Problem bei den Signalen wird vermutlich sein, dass das 9401 die nicht als TTL-Signale erkennt, weil die Spannungs-Pegel nicht stimmen. Darum wird sich vermutlich auch zwischendrin mal ein "Sprung" ergeben, in der Form, dass mal Pulse fehlen, bzw. auf einer Spur keine Pulse vorhanden sind während die andere Spur in der Zeit 2 Pulse liefert. Da wird vermutlich noch etwas Elektronik von Nöten sein um die Signale auf TTL-Pegel zu wandeln ...

viele Grüße
CB

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2011, 09:55
Beitrag #8

zwieback Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Mar 2011

8.5
2011
DE



RE: Encodersignale auswerten
Hallo

danke für die Hilfe! Mit dem Quadratur Encoder Beispiel hat es nun geklappt. Ich hatte außerdem noch ein Wackelkontakt am Kabel Wall

Viele Grüße
zwieback
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: