emc2 encoder

Sezione dedicata a Linuxcnc
Rispondi
Roberto_C
Junior
Junior
Messaggi: 134
Iscritto il: lunedì 13 novembre 2006, 20:15
Località: Gallarate (VA)

emc2 encoder

Messaggio da Roberto_C » lunedì 5 marzo 2007, 18:05

Allora veniamo al motivo per cui ho installato emc2, cioè la retroazione con encoder.
Ho visto sul post 'Porta parallela aggiuntiva' come configurarla in emc2, ma come faccio ad impostare i canali degli encoder e attivarre la retroazione sui motori?
ciao

Dino
Senior
Senior
Messaggi: 822
Iscritto il: lunedì 13 novembre 2006, 23:08
Località: Dolomiti (BL)
Contatta:

Re: emc2 encoder

Messaggio da Dino » lunedì 5 marzo 2007, 19:13

Roberto_C ha scritto:come faccio ad impostare i canali degli encoder e attivarre la retroazione sui motori?
Dipende tutto da che elettronica usi, da che encoder hai, dal tipo di segnale che restituiscono gli encoder, ecc. insomma maggiori informazioni.

Ti preciso che non ho ancora mai utilizzato la retroazione ma so che è fattibile.

Ciao
Dino
NON più moderatore della sezione EMC ( http://www.linuxcnc.org/ )
Felice utilizzatore di GNU/Linux http://www.gnu.org/ http://www.kernel.org/
Linux Registered User #192043 http://counter.li.org/
Sito internet http://dino.delfavero.it/

Roberto_C
Junior
Junior
Messaggi: 134
Iscritto il: lunedì 13 novembre 2006, 20:15
Località: Gallarate (VA)

Messaggio da Roberto_C » lunedì 5 marzo 2007, 19:44

Ho 3 encoder incrementali da 400 inpulsi giro con canale A e B, al momento ho un'interfaccia che avevo fatto di prova e testato su mach3, quindi so che funziona.

Dimmi se ti serve sapere altro.

Dino
Senior
Senior
Messaggi: 822
Iscritto il: lunedì 13 novembre 2006, 23:08
Località: Dolomiti (BL)
Contatta:

Messaggio da Dino » martedì 6 marzo 2007, 0:15

Roberto_C ha scritto:Ho 3 encoder incrementali da 400 inpulsi giro con canale A e B, al momento ho un'interfaccia che avevo fatto di prova e testato su mach3, quindi so che funziona.
Quindi vuoi retroazionare dei motori stepper, penso in conf. ½ passo 400 step/giro, utilizzando encoder a 400 impulsi a giro.
Secondo me ci sono dei problemi:

1. un problema meccanico, devi sincronizzare precisamente gli step del motore con gli impulsi dell' encoder, è fattibile con un manicotto particolare, se ti serve ti posto uno schema, ma forse non incide più di tanto, in fondo ad ogni passo corrisponde sempre una coppia di segnali dall' encoder, anche se leggermente in anticipo o ritardo.

2. un problema elettrico/meccanico, in un motore stepper in configurazione ½ passo non è detto che ad ogni passo imposto dall' elettronica corrisponda un movimento del rotore di 0.9° (0°54') ma potrebbe essere meno o più in base al carico. Questo potrebbe, in teoria, ingannare il software di controllo che continuerebbe, per assurdo, a imporre all' asse un movimento "avanti/indietro" di un passo in certe condizioni, perchè l' encoder gli indica un movimento di due passi ad ogni step. In pratica credo che questo non avvenga perchè il software ha una soglia di errore impostabile.

3. un problema elettrico, devi eliminare/schermare tutto il rumore generato per induzione elettromagnetica, per evitare che i segnali degli encoder siano sporchi.

Ci sono due strade percorribili, la prima è la più semplice ed è hardware, acquistare la scheda Pico Systems Universal Stepper Controller clicca per maggiori informazioni.
La seconda, più critica, è quella di fare tutto tramite software; quindi collegare gli encoder ad una seconda parallela e leggerne i segnali ad una frequenza almeno doppia della frequenza massima di generazione degli step. Ti ripeto che io non ho ancora mai provato ad usare gli encoder e ti posso solo suggerire le strade secondo me percorribili.
Per incominciare studiati bene il funzionamento dell' HAL (Hardware Abstraction Layer) e dei moduli hal, nonchè del meccanismo di inserimento dei moduli nei thread realtime.
Trovi quasi tutto all' indirizzo http://www.linuxcnc.org/docs/2.1/html/

Buon lavoro e tienici informati
Dino
NON più moderatore della sezione EMC ( http://www.linuxcnc.org/ )
Felice utilizzatore di GNU/Linux http://www.gnu.org/ http://www.kernel.org/
Linux Registered User #192043 http://counter.li.org/
Sito internet http://dino.delfavero.it/

Roberto_C
Junior
Junior
Messaggi: 134
Iscritto il: lunedì 13 novembre 2006, 20:15
Località: Gallarate (VA)

Messaggio da Roberto_C » martedì 6 marzo 2007, 9:25

Dino ha scritto: 1. un problema meccanico, devi sincronizzare precisamente gli step del motore con gli impulsi dell' encoder, è fattibile con un manicotto particolare, se ti serve ti posto uno schema, ma forse non incide più di tanto, in fondo ad ogni passo corrisponde sempre una coppia di segnali dall' encoder, anche se leggermente in anticipo o ritardo.
I motori li faccio funzionare a passo intero, gli encoder li monto sulla vite che è ridotta tramite pulegge, quindi un giro vite sono 400 impulsi e 2 giri motore.
2. un problema elettrico/meccanico, in un motore stepper in configurazione ½ passo non è detto che ad ogni passo imposto dall' elettronica corrisponda un movimento del rotore di 0.9° (0°54') ma potrebbe essere meno o più in base al carico. Questo potrebbe, in teoria, ingannare il software di controllo che continuerebbe, per assurdo, a imporre all' asse un movimento "avanti/indietro" di un passo in certe condizioni, perchè l' encoder gli indica un movimento di due passi ad ogni step. In pratica credo che questo non avvenga perchè il software ha una soglia di errore impostabile..
dovrebbe risolversi con quello che ti ho detto prima.
3. un problema elettrico, devi eliminare/schermare tutto il rumore generato per induzione elettromagnetica, per evitare che i segnali degli encoder siano sporchi..
Gli encode verranno posizionati lontano dai motori e collegati con cavi schermati.
Ci sono due strade percorribili, la prima è la più semplice ed è hardware, acquistare la scheda Pico Systems Universal Stepper Controller clicca per maggiori informazioni.
La seconda, più critica, è quella di fare tutto tramite software; quindi collegare gli encoder ad una seconda parallela e leggerne i segnali ad una frequenza almeno doppia della frequenza massima di generazione degli step. Ti ripeto che io non ho ancora mai provato ad usare gli encoder e ti posso solo suggerire le strade secondo me percorribili.
Per incominciare studiati bene il funzionamento dell' HAL (Hardware Abstraction Layer) e dei moduli hal, nonchè del meccanismo di inserimento dei moduli nei thread realtime.
Trovi quasi tutto all' indirizzo http://www.linuxcnc.org/docs/2.1/html/
Opterei per la seconda, anche perche l'elettronica è nuova e mi costerebbe meno collegarmi ad una seconda parallela.

ciao, Roberto.

Roberto_C
Junior
Junior
Messaggi: 134
Iscritto il: lunedì 13 novembre 2006, 20:15
Località: Gallarate (VA)

Messaggio da Roberto_C » martedì 6 marzo 2007, 9:58

Dino ha scritto: Trovi quasi tutto all' indirizzo http://www.linuxcnc.org/docs/2.1/html/
Ho dato una lettura, devo essere sincero, non ho capito una mazza.

Vi prego aiutatemi...

Ciao

xemet
Senior
Senior
Messaggi: 2435
Iscritto il: martedì 14 novembre 2006, 9:13
Località: Palermo
Contatta:

Messaggio da xemet » martedì 6 marzo 2007, 13:07

Ti dico subito che ti devi almeno leggere il manuale su HAL e fare i tutorial che ci sono dentro perchè se no non capirai nulla...

http://www.linuxcnc.org/docs/HAL_Documentation.pdf

Premetto che io non l'ho mai fatto, ma ho letto sull'argomento.
HAL ha giaà  un modulo (encoder) per decodificare il segnale in quadratura dell'encoder (fasi A e B) e trasformarlo in un output che è un segnale di posizione o un contatore di impulsi (a te serve il primo)
Nel file core_stepper.hal se guardi ci sono i segnali di feedback (che nel caso della configurazione stepper senza encoder sono praticamente identici a quelli della posizione comandata) e sono collegati ai pin di ingresso feedback per ogni asse.

Si tratta di collegare l'encoder (quello fisico) alla porta parallela aggiuntiva, per fa questo basta una piccola scheda con fotoaccoppiatori, giusto per isolare la porta da qualsiasi problema, sapere a quale pin arrivano i segnali A e B, leggere i segnali con il modulo encoder di HAL, generare i segnali feedback usando sempre il modulo encoder e mandare questi ai pin feedback di ogni asse.
Il modulo encoder ha già  la possibilità  di settare la scala, quindi una volta settata al valore giusto compatibile con il tuo encoder, darà  dei segnali di posizione già  belli e pronti da collegare.

Per i problemi di pulizia dei segnali...bhe, qui EMC2 non aiuto, devi risolverlo da te, provare e vedere cosa succede.
Probabilmente della mia spiegazione non hai capito granchè perchè forse non sai cos'è hal...ma ti assicuro che non è una cosa difficile da fare.

Per concludere, penso che avere gli encodere sugli stepper sia praticamente del tutto inutile. Se proprio devi usare gli encoder (che sono una complicazione) almeno fallo con motori in CC, e sfrutti i pregi di questi ultimi, gli stepper si usano per evitare gli encoder, hanno dei difetti (coppia bassa, velocità  max limitata ecc.), ma li si sopporta proprio per in virtù del fatto che permettono di semplificare tutto eliminando gli encoder. Se fai il passo di montare gli encoder...allora non hai più motivo di tenere motori stepper.

ciaoo

"la risata è qualcosa di molto potente e solo le persone civili, le persone libere ed emancipate, sanno ridere di se stesse" Doris Lessing

my websites:
http://www.xemet.altervista.org
http://www.emc2cnc.altervista.org

Roberto_C
Junior
Junior
Messaggi: 134
Iscritto il: lunedì 13 novembre 2006, 20:15
Località: Gallarate (VA)

Messaggio da Roberto_C » martedì 6 marzo 2007, 14:41

xemet ha scritto: Per concludere, penso che avere gli encodere sugli stepper sia praticamente del tutto inutile. Se proprio devi usare gli encoder (che sono una complicazione) almeno fallo con motori in CC, e sfrutti i pregi di questi ultimi, gli stepper si usano per evitare gli encoder, hanno dei difetti (coppia bassa, velocità  max limitata ecc.), ma li si sopporta proprio per in virtù del fatto che permettono di semplificare tutto eliminando gli encoder. Se fai il passo di montare gli encoder...allora non hai più motivo di tenere motori stepper.

ciaoo
E' vero quello che dici, ma mi è gia capitato che durante la lavorazione mi perdessero dei passi compromettendo magari il lavoro di più ore.

xemet
Senior
Senior
Messaggi: 2435
Iscritto il: martedì 14 novembre 2006, 9:13
Località: Palermo
Contatta:

Messaggio da xemet » martedì 6 marzo 2007, 16:16

ecco, a questo punto bisognerebbe necessariamente capire perchè perdono passi.

Il motore passo passo, se l'elettronica è a posto, se è all'altezza di ciò che gli si chiede di fare (coppia, velocità ) non deve perdere passi.
Montare degli encoder servirebbe a tamponare un problema che se tutto funzionasse bene non dovrebbe esistere.

si dovrebbero scoprire le cause e risolvere il problema alla base.

Ciaoo

"la risata è qualcosa di molto potente e solo le persone civili, le persone libere ed emancipate, sanno ridere di se stesse" Doris Lessing

my websites:
http://www.xemet.altervista.org
http://www.emc2cnc.altervista.org

Roberto_C
Junior
Junior
Messaggi: 134
Iscritto il: lunedì 13 novembre 2006, 20:15
Località: Gallarate (VA)

Messaggio da Roberto_C » martedì 6 marzo 2007, 17:25

xemet ha scritto:ecco, a questo punto bisognerebbe necessariamente capire perchè perdono passi.
La perdita di passi l'ho avuta su lavorazioni di alluminio un pò gravose.
Montare degli encoder servirebbe a tamponare un problema che se tutto funzionasse bene non dovrebbe esistere.
Si, ma potrebbe anche essere un modo per stare tranquillo, infondo è materiale che è già  in mio possesso.

ciao.

sebadlz
Newbie
Newbie
Messaggi: 20
Iscritto il: domenica 11 febbraio 2007, 18:40
Località: andria(BA)

x roberto_c

Messaggio da sebadlz » mercoledì 7 marzo 2007, 15:25

ciao roberto,ho letto sul forum che hai usato gli encoder con mach,siccome avrei intenzione nel mio prossimo progetto di usarli,ti dispiace farmi sapere quali hai montato e in che modo hai configurato mach?quache schema?


grazie!

turbina

Messaggio da turbina » mercoledì 7 marzo 2007, 16:27

xemet ha scritto: non deve perdere passi.
Montare degli encoder servirebbe a tamponare un problema che se tutto funzionasse bene non dovrebbe esistere.
si dovrebbero scoprire le cause e risolvere il problema alla base.

Ciaoo
giusto, è il riassunto di tutto, a questo punto gli encoder sono superflui, se il soft non è fatto bene l'asse buono arriva a destinazione prima di quello che ha stallato e hai rovinato il lavoro lo stesso, e se ti va bene i motorii decellerano di brutto ripartendo dalla bassa velocità  rovinandoti la finitura della superficie(quando va bene).su 1000 macchine con motori stepper ce ne sarà  una con gli encoder.

Roberto_C
Junior
Junior
Messaggi: 134
Iscritto il: lunedì 13 novembre 2006, 20:15
Località: Gallarate (VA)

Messaggio da Roberto_C » mercoledì 7 marzo 2007, 17:12

turbina ha scritto: giusto, è il riassunto di tutto, a questo punto gli encoder sono superflui, se il soft non è fatto bene l'asse buono arriva a destinazione prima di quello che ha stallato e hai rovinato il lavoro lo stesso, e se ti va bene i motorii decellerano di brutto ripartendo dalla bassa velocità  rovinandoti la finitura della superficie(quando va bene).su 1000 macchine con motori stepper ce ne sarà  una con gli encoder.
Accidenti è quello che pensavo, se uno perde il passo e ci arriva con l'encoder, l'altro ci arriva prima, risultato traiettorie non corretta, ho capito bene?

Roberto_C
Junior
Junior
Messaggi: 134
Iscritto il: lunedì 13 novembre 2006, 20:15
Località: Gallarate (VA)

Re: x roberto_c

Messaggio da Roberto_C » mercoledì 7 marzo 2007, 18:01

sebadlz ha scritto:ciao roberto,ho letto sul forum che hai usato gli encoder con mach,siccome avrei intenzione nel mio prossimo progetto di usarli,ti dispiace farmi sapere quali hai montato e in che modo hai configurato mach?quache schema?


grazie!
Ho usato encoder incrementali da 400 impulsi giro canale A e B alimentazione 5 volt.

Per configurarli devi andare in config. porte e pins, sciegliere il tab encoder e settari i vari pin della porta parallela e gli impulsi per unità , cioè gli impulsi che ti servono per fare un millimetro * 4.

Tieni presente che però non hai retroazione sui motori ma solo una visualizzazione degli spostamenti.

ciao.

turbina

Re: x roberto_c

Messaggio da turbina » mercoledì 7 marzo 2007, 20:07

Roberto_C ha scritto:
quindi come volevasi dimostrare non servono a un tubo.

Rispondi

Torna a “Linuxcnc”