Zastavení servomotoru

Monteg
Příspěvky: 1480
Registrován: 30. 10. 2006, 5:37
Bydliště: LOUNY

7. 6. 2017, 10:18

Dobrý den
Potřeboval bych zastavit servomotor na nulovém pulsu :D
Mám jen servomotor a driver který má vystup od encoderu nic víc :D takže jen JOG režim min 10ot/min
Potřebuji obrábět v deseti polohách jde o nástrojový kotouč pro cnc soustruh takže potřebuji aby motor zastavil přesně 10x na nulovém pulsu
Napadá vás něco jednoduchého co by se dalo použít?
Děkuji
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

7. 6. 2017, 10:31

Monteg píše:Dobrý den
Potřeboval bych zastavit servomotor na nulovém pulsu :D
Mám jen servomotor a driver který má vystup od encoderu nic víc :D takže jen JOG režim min 10ot/min
Potřebuji obrábět v deseti polohách jde o nástrojový kotouč pro cnc soustruh takže potřebuji aby motor zastavil přesně 10x na nulovém pulsu
Napadá vás něco jednoduchého co by se dalo použít?
Děkuji
Nulovým pulsem mysliš index?
řekl bych že chybí hromada podstatných informací. To servo je na soustruhu? jaky to má řídící systém, nebo ho tam přiděláš a budeš ho řídit sám? čím?
Co znamená jen JOG režim? neumí nic jiného?

M
Monteg
Příspěvky: 1480
Registrován: 30. 10. 2006, 5:37
Bydliště: LOUNY

7. 6. 2017, 11:07

Ano myslím tím index
Servo bude na frézce bude se frézovat slot disk 10 poloh a nechce se mi tahat další kabely z frézky pro další osu
JOG je tuční režim
Driver umí i pulz/směr ale nemám nic z čeho bych ho tem poslal :D

Takže jsem myslel že zmačknu otáčení a až dojede na index tak zastaví :D
No asi jsem si to představoval moc jednoduše :D
Mám obavu že index z encoderu trvá moc krátkou dobu aby ho systém vzal jako home spínač kdybych ho připojil k frézce :oops:
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

7. 6. 2017, 11:36

Monteg píše:Ano myslím tím index
Servo bude na frézce bude se frézovat slot disk 10 poloh a nechce se mi tahat další kabely z frézky pro další osu
JOG je tuční režim
Driver umí i pulz/směr ale nemám nic z čeho bych ho tem poslal :D

Takže jsem myslel že zmačknu otáčení a až dojede na index tak zastaví :D
No asi jsem si to představoval moc jednoduše :D
Mám obavu že index z encoderu trvá moc krátkou dobu aby ho systém vzal jako home spínač kdybych ho připojil k frézce :oops:
Furt si nám neřekl co máš k dispozici. Frézka je domácí výroba s machem nebo linuxcnc? nebo original s řídícím systémem.
Když budu předpokládat variantu A. máš nejaký volný piny? jedeš přes parport nebo mesu nebo interpolator na machu?
At vime na čem stavět.
Jinak ten index puls je fakt krátkej a ani pin bezici na servo-thredu ho nemusi pokaždý chytit.

M
Monteg
Příspěvky: 1480
Registrován: 30. 10. 2006, 5:37
Bydliště: LOUNY

7. 6. 2017, 12:13

Je tam cnc linux přes LTP
Volné piny tam jsou ale port to nezachytí :evil:
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

7. 6. 2017, 12:52

A jakou výhodu má to odměřovat podle indexu? Proč nepoužiješ normální výstup enkodéru (A, B), případně proč tomu servu rovnou nezadáš, kam má dojet?
Podle indexu jen nastavit výchozí pozici, a pak už jedeš podle předvoleného počtu pulzů enkodéru.
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

7. 6. 2017, 1:53

Monteg píše:Je tam cnc linux přes LTP
Volné piny tam jsou ale port to nezachytí :evil:
Kdyz by si dodefinoval encoder, tak ten updateje countery na base-threadu dokonce by stačil zapojit jen signal index, zvednout index-enable a cekat na signal.
To by stihalo.
Pak jeste doresit jak ovladat driver.
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

7. 6. 2017, 2:18

fupe píše:Kdyz by si dodefinoval encoder, tak ten updateje countery na base-threadu dokonce by stačil zapojit jen signal index, zvednout index-enable a cekat na signal.
Prosím mohl bys to trochu rozvést (bez ohledu na to zde probírané pouhé čekání na index)?
On se běžně používá update čítačů enkodérů v base-thredu? A k čemu se ta informace pak používá?
Žil jsem v domnění, že pokud se použije třeba Mesa nebo jiný HW čítač, tak se aktuální stav enkodéru načítá jen v servo-threadu, takže aktuální stav enkodérů se LinuxCNC dozví jen jednou za cca 1ms.
Samozřejmě pokud bych neměl HW čítač a musel to číst jen pomocí SW (třeba přes LPT), tak pak jistě musím použít base-thread. Tys to myslel takhle?
Předem díky za odpověď.

Jinak nezávisle na tom mi v aplikaci, na kterou se autor vlákna ptá, stále uniká výhoda periodického chytání indexu.
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

7. 6. 2017, 5:18

Mex píše:
fupe píše:Kdyz by si dodefinoval encoder, tak ten updateje countery na base-threadu dokonce by stačil zapojit jen signal index, zvednout index-enable a cekat na signal.
Prosím mohl bys to trochu rozvést (bez ohledu na to zde probírané pouhé čekání na index)?
On se běžně používá update čítačů enkodérů v base-thredu? A k čemu se ta informace pak používá?
Žil jsem v domnění, že pokud se použije třeba Mesa nebo jiný HW čítač, tak se aktuální stav enkodéru načítá jen v servo-threadu, takže aktuální stav enkodérů se LinuxCNC dozví jen jednou za cca 1ms.
Samozřejmě pokud bych neměl HW čítač a musel to číst jen pomocí SW (třeba přes LPT), tak pak jistě musím použít base-thread. Tys to myslel takhle?
Předem díky za odpověď.

Jinak nezávisle na tom mi v aplikaci, na kterou se autor vlákna ptá, stále uniká výhoda periodického chytání indexu.
K cemu je dobre periodicke chytani indexu v dane aplimaci netusim. Asi by bylo jednodussi pouzit treba jen step na jednom pinu a tocit s tim na jednu stranu o pozadovany pocet kroku.

S encoderem je to tak, ze samozrejme hw encoder (treba mesa) vzorkuje na ukrutny frekvenci nekolika mega a do systemu posila jen jednou za 1ms aktualni stav. To bohate staci.
U softweroveho je to podobne. Vycita (vzorkuje) stavy A B a index na base threadu ale kvuli uspore casu rovnez posila pozici jen na servo threadu. Base thread je pouzit proto aby stihal zaznamenavat zmeny pulzu.
Takze kdyz pouzijes index-enable to znamena ze ho zvednes do log 1, tak po pruchodu indexem encoder schodi index enable a ten muzes pouzit pro zachyceni pruchodu indexem protoze signal zustane dole a urcite ho stihnes zachytit. Sice s chybou, ale pod 1ms. Takze by to melo zastavit relativne pokazdy stejne.
M



Na tohle jsi se ptal?
Monteg
Příspěvky: 1480
Registrován: 30. 10. 2006, 5:37
Bydliště: LOUNY

7. 6. 2017, 6:46

Encoder 2500p/ot
To bych rád abych byl schopen definovat počátek podle nulového pulzu bohužel neumím zachytit pulPokud bych chtěl měl pak můžu zadat požadovanou polohu pro obrábění
Idea byla taková že si usnadním práci a nebudu muset tahat kabely z mašiny
Nakonec jsem je stejně vytáhl ale moc jsem si nepomohl protože pulz deska nezachytí
Takže nejsem schopen definovat 0 bod -referenci
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22371
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

7. 6. 2017, 8:06

Mel bys pouzivat mesu
Zvlast na servech
Vsechna prava na chyby vyhrazena (E)
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

7. 6. 2017, 9:39

Monteg píše:Encoder 2500p/ot
To bych rád abych byl schopen definovat počátek podle nulového pulzu bohužel neumím zachytit pulPokud bych chtěl měl pak můžu zadat požadovanou polohu pro obrábění
Idea byla taková že si usnadním práci a nebudu muset tahat kabely z mašiny
Nakonec jsem je stejně vytáhl ale moc jsem si nepomohl protože pulz deska nezachytí
Takže nejsem schopen definovat 0 bod -referenci
Jak už jsem psal, moc tvé počínání nechápu.
Ale pokud teď neřeším princip ale jen konkrétní problém rychlého pulzu, tak pokud ho nechytne ani base-thread (což by měl), tak se dá ten pulz snadno natáhnout jednoduchou elektronikou.
Kup si obvod 74HC123, k tomu 1 odpor a 2 kondezátory (jeden časovací a jeden blokovací) a uděláš si pulz jak je jen libo. Tyhle součástky budou dohromady tak do 10 Kč.
Klidně to můžeš nabastlit systémem "vrabčí hnízdo". Pokud to pak strčíš třeba do smršťovačky, tak by to nemuselo být ani ošklivé. A kdybys to předtím ještě oblemcal tavnou pistolí, tak to přežije i 3. světovou válku.
Naposledy upravil(a) Mex dne 7. 6. 2017, 10:00, celkem upraveno 1 x.
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

7. 6. 2017, 9:41

fupe píše:S encoderem je to tak, ze samozrejme hw encoder (treba mesa) vzorkuje na ukrutny frekvenci nekolika mega a do systemu posila jen jednou za 1ms aktualni stav.
Díky za potvrzení. :-)
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

7. 6. 2017, 11:45

Mex píše:
Kup si obvod 74HC123, k tomu 1 odpor a 2 kondezátory (jeden časovací a jeden blokovací) a uděláš si pulz jak je jen libo. Tyhle součástky budou dohromady tak do 10 Kč.
Klidně to můžeš nabastlit systémem "vrabčí hnízdo". Pokud to pak strčíš třeba do smršťovačky, tak by to nemuselo být ani ošklivé. A kdybys to předtím ještě oblemcal tavnou pistolí, tak to přežije i 3. světovou válku.

Tohle je docela dobrá informace, kterou bych mohl občas využit. Diky.
řeším něco podobného v jiném projektu, kde potřebuju referovat mašinu přesně pomoci indexu z encoderu ale na krokových motorech. Teda jsou to serva ale s řízením step/dir.
Jedna varianta, která by měla chodit ale nemám to ještě ozkoušené, je vlastní firmware do mesa karty (7i76E) ten už jsem úspěšně vygeneroval, kde používám jen index a index-enable. to dělá přesně to samé co popisuješ s tím 74HC123 ale ještě bych potřeboval nejak zpracovat diferenciální výstup z encoderu RS422 na TTL logiku. šlo by to udělat nejak jednoduše?
Našel jsem mesa kartu (422ENC One channel RS-422 to TTL adapter), která převádí dif vstup pro jeden encoder A B a index na TTL logiku, která by mi stačila pro použití na tři samostatné indexy, ale nevím jestli půjde objednat za rozumné penize s dopravou. Takže hledám nejaké náhradní řešení.
Bohužel těm divnějm černejm součástkám co maj hromadu nožiček moc nerozumím.

M
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

8. 6. 2017, 12:12

Převod RS422 na TTL není žádný problém.
Dá se to udělat "na prasáka" jen využitím plusových signálů (po správném zakončení sběrnice, samozřejmě). Pro menší vzdálenosti (do nějakých 10m) to chodí bez problémů, hlavní výhoda je, že na to nepotřebuješ žádný speciální chip a tak to uděláš s věcmi ze šuplíku. Použil jsem už mockrát, když jsem potřeboval něco rychle.
Lepší ale je udělat to čistě podle normy, pak můžeš tahat signály daleko jak chceš. Pak to chce přijímač RS422, např. typu AM26C32. Tenhle chip umí převést 4 kanály RS422 na TTL, cena je kolem 20-30 Kč.
Když napíšeš/namaluješ přesně co potřebuješ, tak Ti s tím rád helfnu.
Odpovědět

Zpět na „Servomotory“