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 

Inkrementalgebersignal



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!

08.12.2009, 13:25
Beitrag #1

Jansen83 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: May 2009

8.6
-
de

18055
Deutschland
Inkrementalgebersignal
Hallo,

das Problem ist denke nicht all zu schwierig, steht aber ein wenig auf dem Schlauch.
Ich lese ein permanentes Inkrementalgebersignal aus.
Ich benötige im weiteren einfach nur eine fortlaufende Wegedifferenz des Signals in der Form: delta S = Position(t) - Position(t-1)

Wäre Klasse wenn mir jemand einen Anstoß geben könnte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2009, 14:06
Beitrag #2

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Inkrementalgebersignal
Hi,

Inkrementalgeber liefern i.d.R. nur x Impulse pro Längeneinheit oder Umdrehung (jenachdem, ob linear oder rotierend).

Ein permanentes Signal gibt es in dem Sinne doch eigentlich nicht. Vielmehr bekommt man bei Bewegung des Inkrementalgebers eine bestimmte Anzahl von digitalen Flanken.

Wird der Geber nicht bewegt, ist das Signal Hi oder Lo... erst bei Bewegung erscheint die nächste Flanke und man weiß, dass der Geber bewegt wurde. Die Anzahl der Flanken (bei bekannter Impulszahl pro Länge od. Umdrehung) wird dann genutzt um die relative Änderung zu vorherigen Position zu bestimmen.

Beispiel:
Inkrementalgeber, rotierend, 50 Imp

Du zählst nur die digitalen Flanken und kommst am Ende der Bewegung auf
50 Stück ... -> das war eine Umdrehung => 50 Imp * 360° / 50 Imp = 360°
25 Stück ... -> das war eine halbe Umdrehung => 25 Imp * 360° / 50 Imp = 180°
0 Stück ... -> das war keine Umdrehung => 0 Imp * 360° / 50 Imp = 0

Du weißt aber nie von wo du startest, es sei denn du fährst vorher in einen Endschalter o.Ä..


Ok, du musst also während der Bewegung die Flanken zählen und dann Umrechnen.

Gibt es bei dir kein definiertes Bewegungsende kannst du ja alle X ms Umrechenen.


Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2009, 14:17 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2009 14:31 von Jansen83.)
Beitrag #3

Jansen83 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: May 2009

8.6
-
de

18055
Deutschland
Inkrementalgebersignal
Danke für deine schnelle Antwort.

Muss aber doch noch mal nachfragen, hab das nicht so ganz verstandenSad
Nutze zur Bestimmung einen rotierenden Inkrementalgeber.
Ich fahre zu Fahrtbeginn in einen Endlagenschalter um meine Startposition zu bestimmen und reset den Quadraturencoder.
Meine Position ermittle ich alle 1ms.


Nun doch noch mal zum eigentlichen zurück, was ich nicht verstanden habe:

Ist es nicht möglich, mittels Timer und Hilfsvariablen mein delta S zu betimmen, indem ich meinen Quadraturwert auf eine Hilsgröße schreibe und 1ms später vom aktuellen Wert subtrahieren?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2009, 14:38
Beitrag #4

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Inkrementalgebersignal
Wenn du beim Start den Zähler auf Null setzt, kannst du doch jederzeit den Zähler abfragen und (solange Niemand den Notaus drückt xD) deine Position relative zum Start bestimmen... das entspricht dann eigentlich der absoluten Position.

Jetzt nimmst du eine Whileloop und ein Shiftregister. In der Whileloop fragst du den Zähler ab, im Shiftregister speicherst du den Zählerwert zwischen (initialisieren des Shiftreg. mit Null).

(Aktueller Zähler minus Zähler aus dem Shiftregister) mal Impulskonstante ist gleich der relativen Positionsänderung.

Die Whileloop kannst du ja mit Wait nur alle 1ms ausführen lassen.

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2009, 15:39
Beitrag #5

Jansen83 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: May 2009

8.6
-
de

18055
Deutschland
Inkrementalgebersignal
Na die absolute Position interessiert mich im Moment nicht so rechtWink

Das zweite scheint sehr hilfreich für mich zu sein.

Meinste die Struktur wie in folgender Art und Weise?Smile

Lv86_img


Angehängte Datei(en)
Sonstige .vi  VI_TEST.vi (Größe: 7,27 KB / Downloads: 224)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2009, 15:52
Beitrag #6

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Inkrementalgebersignal
Deine äußere Schleife wird nur ausgeführt, wenn die Innere beendet ist... also nur beim Starten (weil da alle Elemente in der Schleife einmal ausgeführt werden.

Gruß SeBa

EDIT:
So in etwa... schön langsam laufen lassen, sonst siehst du die rel. Änderung nicht.

   

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Gehe zu: