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 

Inkremental Encoder - Drehzahlerfassung



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!

18.08.2011, 22:53
Beitrag #1

NILVuser Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Aug 2011

2010
2011
EN



Inkremental Encoder - Drehzahlerfassung
Hallo Leute,

bin ziemlicher Newbie in der "LabView"-Branche und bitte euch daher dringend um Eure Hilfe.

Und zwar liegt mir folgende Aufgabenstellung vor.

1. Einlesen des Encoders über ein SCB-68 Modul / NI PXIe-6358 Karte
2. Position bestimmen (Winkel)
3. Umdrehungen bestimmen (Richtungsabhängig: sprich dreht der Encoder links und durchläuft die Nullmarke sollen die gezählten Umdrehungen 1x dekrementiert und ansonsten normal inkrementiert werden)
4. Drehzahl bestimmen (U/min bzw. RPM)

Das Karten- und Modulequipment habe ich bereits erwähnt, als Encoder kommt ein Inkrementalencoder von Heidenhain Typ ERN 430 mit 5000 Strichen pro Umdrehung zum Einsatz.

Nun meine Frage(n):
--------------------
zu 2)
Ich habe den Encoder bereits eingelesen und zwar über den CTR0 (A-Sig auf Source, B-Sig auf AUX, und Z-Sig auf GATE) mit Hilfe eines Bsp. aus dem Example Finder (Position Angular Measure oder so ähnlich), dass funktioniert auch soweit, dreht von -360° auf +360° mit Z-index Enabeld und wird bei Nulldurchgang auf 0 gesetzt

zu 3)
wurde mit DAQmx - Cnt Edges gelöst...zählt auch die Umdrehungen richtig, allerdings werden die Umdrehungen immer nur addiert, sprich wenn z.B. der Encoder auf +35° steht und die Anzahl der Umdrehungen 5 beträgt und der Encoder dann aber links gedreht wird in eine negative Winkelstellungen wird dabei der Nulldurchgang passiert und die Anzahl der Umdrehungen auf 6 erhöht, obwohl gar keine vollständige Umdrehungen passiert ist. Zudem sollte er dann auch erst 1 abziehen sobald der Encoder eine vollständige Umdrehungen in negative Richtung gemacht hat.
Bitte helft mir wie ich dieses Problem lösen kann (am besten mit Screenshot des Block-Diagramms)

Wie kann ich es auch realisieren, dass der Motor dreht bis die Nullmarke erstmals überschritten wird und der Zählstand der Umdrehungen auf 0 gesetzt wird (ansonsten wäre dieser jetzt 1 ohne das zwangsläufig eine volle Umdrehung stattgefunden hat, je nach Anfangsstellung)
Und welche Edges werden gezählt - die des Source Signal (A-Signal)?

zu 4)
...dann möchte ich noch die Drehzahl des Motors ermitteln: Habe einiges schon im Forum gelesen, aber soviele verschiedene Posts, dass ich keine Ahnung habe wie man dieses Problem am elegantesten löst. Ich hätte mir gedacht hierfür den DAQmx - CI Pulse width zu verwenden der die Pulsdauer zwischen 2 pos. Flanken misst. Allerdings ist mir nicht ganz klar, von welchen Signal (A, B oder Z-Sig). Ich schätze vom A-Signal. Und wie komme ich dann auf die Drehzahl?

- Kann man alle 3 Punkte auch gleichzeitig, also parallel über ein Triggersignal starten, damit alles synchron lauft?
- Auf was bezieht sich das DAQmx Counter VI (Cnt Edges, CI Puls Width, CI Freq etc) immer auf das A-Signal oder kann man das nicht sagen
- Vielleicht könntet ihr mir vllt. noch sagen was es mit den unterschiedlichen Triggern (20MHz TimeBased, Sample Clock, etc.) auf sich hat.

Da würdet ihr mir sehr weiterhelfen.

Besten Dank im voraus für eure Bemühungen

PS: Bitte so erklären, dass es auch nicht geübte LV User nachvollziehen können :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.08.2011, 08:23
Beitrag #2

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Inkremental Encoder - Drehzahlerfassung
Hallo NILVuse,

ist ziemlich viel was Du da schreibst und da mir das praktische fehlt, evtl. solltest du ein paar Screenshots rein packen, beantworte ich eine Frage. Beim den Impulsen wird Signal A und B gebraucht. Um die Umdrehungen zu ermitteln braucht man eigentlich nur ein Signal (also A oder B), da man aber auch die Richtung wissen möchte benötigt man A und B (da diese ja jeweils versetzt sind. Wenn dir also die Richtung angegeben wird, ließt "er" beide. Evtl. hilft die bei diesem Problem Quadrature Encoder von NI, einfach mal danach googlen.

Gruß snuz

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
22.08.2011, 19:23
Beitrag #3

NILVuser Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Aug 2011

2010
2011
EN



RE: Inkremental Encoder - Drehzahlerfassung
Hallo snuz,

...das wäre der Wahnsinn wenn du mir bei diesem "Problem" helfen könntest.

Habe schon einwenig den Glauben daran verloren, dass sich noch jemand meldet.

Leider kann ich dir mein VI erst morgen abend hochladen, hoffe es ist nicht zu spät.

Vielen Dank im voraus für deine Bemühungen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.08.2011, 07:14
Beitrag #4

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Inkremental Encoder - Drehzahlerfassung
Denk bitte an die Version die die hoch lädst, ein Screenshot ist auch gut.

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
23.08.2011, 18:52
Beitrag #5

NILVuser Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Aug 2011

2010
2011
EN



RE: Inkremental Encoder - Drehzahlerfassung
So...

mein aktuelles Werk ist im Anhang.

Habe einmal meine Grundversion wo ich versucht habe die Winkelposition + Anzahl der Umdrehungen + Drehzahl zu ermitteln angehängt, sowie meine noch nicht fertig ausgebaute Version wo ich 3x Encoder gleichzeitig einlesen möchte.

Ich möchte noch hinzufügen, dass ich die Drehzahl mit min. 200Hz, also alle 5ms ermitteln möchte, da ich auch einen Zeitverlauf zur späteren Auswertung erstellen soll.
Wie könnte ich, dass am besten lösen?

Für alle 3 Aufgaben (Winkel, Umdrehungen und Drehzahl) möchte ich max. 2 Counter pro Encoder nutzen müssen.

Wäre super wenn du snuz oder auch andere mir dabei helfen könnten.

Sobald ich alle 3x Encoder gleichzeitig einlesen will, wie kann ich gewährleisten dass alle Counter (habe 3 SCB68 Module zur Verfügung) gleichzeitig zu zählen beginnen?            
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2011, 08:10
Beitrag #6

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Inkremental Encoder - Drehzahlerfassung
Hallo NILVuser,

Zitat:zu 3)
wurde mit DAQmx - Cnt Edges gelöst...zählt auch die Umdrehungen richtig, allerdings werden die Umdrehungen immer nur addiert, sprich wenn z.B. der Encoder auf +35° steht und die Anzahl der Umdrehungen 5 beträgt und der Encoder dann aber links gedreht wird in eine negative Winkelstellungen wird dabei der Nulldurchgang passiert und die Anzahl der Umdrehungen auf 6 erhöht, obwohl gar keine vollständige Umdrehungen passiert ist. Zudem sollte er dann auch erst 1 abziehen sobald der Encoder eine vollständige Umdrehungen in negative Richtung gemacht hat.
Bitte helft mir wie ich dieses Problem lösen kann (am besten mit Screenshot des Block-Diagramms)

so wie es aussieht, ist "DAQmx Cnt Edges" so konfiguriert, dass er nur einen Signal (vermutlich A) zählt. Und daraus ergibt sich, dass er nur aufwärts zählt bei rechts oder links Drehung. Meine Lösung wäre hier, dass Du versuchst nicht mehr mit "Counter DBL 1 Sample" die Impulse zählen lässt, sondern direkt versuchst an die Flankensignale heran zu kommen. Somit musst Du hier, den Funktionsblock "DAQmx - Lesen" auf Digital einstellen. In der Hoffnung, dass Du dann die reinen Signale A und B siehst. Probier dies mal aus, und wenn Du die reinen Signale siehst, Screenshot und Ergebnisse zeigen.

Gruß snuz


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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Synchronisierung von Analogen Signalen mit digitalem Encoder Benj1man 8 6.332 12.05.2020 10:38
Letzter Beitrag: Benj1man
  Encoder - Sinus / Cosinus auswerten nxitimi 17 15.663 25.01.2018 19:26
Letzter Beitrag: Lucki
  Encoder-Signal einlesen creo_123 6 6.509 11.01.2018 15:03
Letzter Beitrag: creo_123
  Drehzahlerfassung THOMAS_I 4 5.056 01.03.2017 12:59
Letzter Beitrag: GerdW
  Quadratur Encoder: Counter Werte einzeln auslesen? Daniel_S 6 8.054 23.03.2015 10:26
Letzter Beitrag: Daniel_S
  getriggerte Messung "scharfschalten" Sincos Encoder Nullstrom 2 4.149 27.10.2014 11:13
Letzter Beitrag: Nullstrom

Gehe zu: