Ik heb het volgende probleem;
Ik heb een bestaande schakeling waarin een rotary encoder (A,B, Z)gekoppeld zit op een motor. Deze encoder wordt uitgelezen door een computer.
Daarnaast heb ik ook een versie waarbij de laatsbepaling gedaan wordt door magnetische encoder welke een absolute hoek waarde aangeeft in een 10 bit code. Deze magnetische encoder lees ik uit middels een PIC. Nu wil ik dat de PIC deze 10 bit code omzet naar het zelfde signaal als de rotary encoder zodat ik dit signaal kan laten uitlezen door de zelfde computer.
Ik heb de volgende gegevens van de rotary encoder (ik heb dus zeer weinig verstand van deze dingen)

Type Mes-6-PC
http://www.mtl.co.jp/liste/seihin/mes-6-p_series/index.html

Mijn idee is als volgt:
als ik weet hoeveel graden 1 puls is dan weet ik hoeveel pulzen ik moet afgeven (en in welke volgorde) bij een verandering van de uitlezing van mijn magnetische encoder.

Heeft iemand hier ervaring mee of kan mij op weg helpen

alvast bedankt
Christian

Draait de motor één richting op, of kan deze ook terug uit draaien ?

Wat is het merk/type van de 10 bits absolute encoder ?
Dit om te bepalen welke coderingen er gebruikt is.
(Binair, Gray code).

Hallo.

Er staan drie waardes.

1: output puls - 120.
2: (standaard) - 200.
3: (puls nummer rotatie) - 300.

Zo te zien is dat 120 pulzen per omwenteling (360 graden).

Dus 360:120 = 3 graden per puls, of zie ik iets over het hoofd.

De encoder (datasheet) is leverbaar in meerdere uitvoeringen (100,120,200,300 of 360 pulzen/omw).

Welke wordt er gebruikt ?

Op welk toestel die encoder staat weet ik niet, maar dat lijkt mij geen goed idee.
Als experiment of schoolwerk kan dat natuurlijk wel, maar praktisch is het niet.
Hopelijk is het niet voor een bedrijf(je) want anders zitten die vast aan U, en een andere encoder kopen is véél goedkoper (voeding,print,uren ombouw en reservemateriaal,enz..)

Het hangt natuurlijk af waarvoor dat moet dienen.

Er is een hele kleine kans dat de encoder zo te gebruiken is.
Stel dat er alleen de A of A&Z gebruikt worden.

A = Bit 0
Z = Bit x

Om dit te bepalen zijn er meer gegevens nodig...

De code de uit de magnetische encoder komt is gewoon een getal de lineair mee loopt met de hoek dus 0 graden = 0 en 359 graden is 1024. Deze zit dus ook na de vertraging e.d.

Ik heb de encoder niet bij de hand, ik weet dus niet welke uitvoering ik heb. Welk staat er in mijn documentatie dat A en B 360 pulse / circuit zijn (ik weet niet precies wat dit inhoud maar ik vermoed dat ik de 360 pulzen per omwentelling versie heb)

Ik ben met jullie eens dat het niet echt praktisch is maar ja. Ik wordt nu geconfronteerd met twee systemen welke compatible gemaakt moeten worden.
Even een korte uitleg, Een stappenmotor wordt vanuit een computer aangestuurd en zorgt voor een verdraaiing van een sensor. 1 stap voor de motor komt overeen met 0.125 graad verdraaing van de sensor.
Het geheel van sensor en motor moet nu vervangen worden. Aan de aansturing kan niets veranderd worden (helaas).
Nu hebben wij een systeem ontwikkeld met een zelfde soort sensor enkel de motor en de overbrenging naar de sensor zijn verschillend. Dit moet ik dus proberen gelijk te trekken.
Dus een andere encoder is geen optie aangezien de overbrengingsverhouding van de vertraging (maar ook de hoek die de stappenmotor per stap maakt) anders is.

Wellicht is het verstandig te beginnen met een timings diagram welke de drie uitgangen als functie van de hoekverdraaing van de motor weer geeft (de originele motor heeft 15 graden per stap) als iemand mij daar mee zou kunnen helpen zou dat al heel veel schelen

Op 24 januari 2009 16:34:16 schreef cpri:
1 stap voor de motor komt overeen met 0.125 graad verdraaing van de sensor.

(de originele motor heeft 15 graden per stap)

Welke gaat het worden, de bovenste of de onderste.

Kan je in je programma iets met micro stepping doen, of met je driver.

Een A B pulsgever geeft 2 pulsjes af, waarvan de pulsjes verschoven zitten van elkaar.

Door te kijken welk pulsje (A of B) eerst komt weet je de draairichting.

Daarom had ik de vraag gesteld of de motor in 2 richtingen draait...

Een A B Z pulsgever geeft ook elke omwenteling één Z pulsje (dit wordt vaak gebruikt als referentie punt)

Lambiek
Beide zijn waar; de motor verdraait 15 graden per stap, de sensor komt na een gearbox en een machanische overbrenging en draait derhalve met 0.125 graden per stap.

De motor kan inderdaad beiden kanten opdraaien

Als je nog wat budget over hebt kun je die vervangende stappenmotor wellicht vervangen door een heel klein servomotortje. De simpelste servodrives hebben gewoon een programmeerbare encoderemulatieuitgang.
Bovendien loopt dat nog een heel stuk mooier dan een stappenmotor ook.