emc, motori servo e anello chiuso con encoder

Sezione dedicata a Linuxcnc
Rispondi
timmy70
Newbie
Newbie
Messaggi: 30
Iscritto il: domenica 10 gennaio 2010, 22:45
Località: nord milano

Re: emc, motori servo e anello chiuso con encoder

Messaggio da timmy70 » mercoledì 26 maggio 2010, 23:00

Buonasera signori
Avevo bisogno di buone dritte ma sono sempre più incasinato.
Sto anche sentendo via mail il sempre disponibile Francesco e devo purtroppo ammettere
che chiudere l'anello utilizzando i miei servoazionamenti con i relativi motori con emc2
sembra davvero molto dura. Se uso step e dir li muovo e controllo abbastanza semplicemente
però da quanto ho capito è molto difficile chiudere l'anello perchè le letture dell'encoder
darebbero un perenne ritardo rispetto all'impulso inviato e cercando di recuperare darà  degli
step aggiuntivi che saranno aloro volta in ritardo e così via compromettendo la lavorazione.
D'altra parte mi sembra di aver capito che usare il controllo di velocità  VREF con segnale pwm
(segnale +10/-10 analogico al servoazionamento) sia un gran casino. Anche Dino nel suo post
non ha usato un azionamento ma ha realizzato in proprio tutto il controllo del motore saltando
questo passaggio e controllando direttamente il motore con un integrato.
Scusate le eventuali castronerie tirate in questo discorso e una domanda semplice ma porca
zozza non c'è un modo scemo per generare segnale pwm da questo segnale +10/-10 che il mio
servoazionamento veda come vref (li accetta da+2/-2 fino a +10/-10 basta settare un parametro
che definisca il valore della velocità  massima)prendere i segnali di ritorno dagli encoder del
motore che escono dall'azionamento dare il tutto in pasto a emc e lasciare a lui tutti i conti
dell'eventuale correzione della velocità  di un asse l'altro o nessuna perchè tutto a posto?????
Usare la scheda pluto che sembrerebbe la cosa più semplice mi è stato sconsigliato da
Francesco perchè dovrei usarne due e sembra che dia problemi me lo sconsiglia mi ha detto
di valutare le mesa ma a questo punto il controllo chi lo fa?
Ragazzi non vi scaldate gli animi che se ha ragione un mio amico che lavora in banca tra un pò
finisce che torniamo al baratto e sai quanto ci serviranno poi le nostre cnc!!!!!!!!!!!!!!!!!
ciao
Timmy 70

Avatar utente
gianfra
Member
Member
Messaggi: 338
Iscritto il: domenica 16 dicembre 2007, 20:06
Località: REGGIO EMILIA

Re: emc, motori servo e anello chiuso con encoder

Messaggio da gianfra » giovedì 27 maggio 2010, 0:13

per --- timmy70
e' quello che volevo dire io (ma avevo qualche speranza)
comunque emc2 sicuramente puo' fare l'anello chiuso ma......?
in ogni caso io sto continuando con anello tra servo e motore
e posso dire che con omron-yaskawa non vedo il problema di chiudere l'anello completamente
se' il tutto e ben dimensionato si ottiene anche un funzionamento ben costante
mentre completamente chiuso sicuramente ci sarebbero vari altri problemi +- difficoltosi
e qui che direi entra in gioco il discorso delle macchine professionali e costose
ultimamente ho preso un mitsubici 2kw servo (2-3 volte meglio di omron-yaskawa)
ti garantisco che non so in che modo vedere un errore millisemale
dopo centinaia di X0 X1000
e' sempre perfettamente a zero
pero' io non perderi la speranza riguardo il completamente chiuso
si pou' aggiungerlo anche a macchina finita
da tener presente che le cnc debbono essere affidabili al 100%
se si piantano anche solo una volta al giorno il gioco e finito
gianff

Avatar utente
bigfefi
Member
Member
Messaggi: 270
Iscritto il: domenica 4 maggio 2008, 15:33
Località: Cento (Ferrara)

Re: emc, motori servo e anello chiuso con encoder

Messaggio da bigfefi » giovedì 27 maggio 2010, 1:00

Forse no ho capito bene il topico ma la butto li...
La Mesa 5i20 genera un segnale PWM in uscita. Se gli abbini la 7i33 hai la conversione del PWM in +/- 10 V (Mesa 5i20).
Il troppo pensare deriva dal poco capire.... E io penso molto! ;)
"...fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
(Dante Alighieri, Divina Commedia, Inferno canto XXVI, 116-120)

franceso
Senior
Senior
Messaggi: 1341
Iscritto il: martedì 22 aprile 2008, 16:37
Località: BZ

Re: emc, motori servo e anello chiuso con encoder

Messaggio da franceso » giovedì 27 maggio 2010, 1:42

X bigfefi
La scheda 7I43 costa 94€ e la 7i43H ha un costo di 120€ , invece la mesa5i20 ha un costo di 185€
incluse tutte le tasse spedizione esclusa (10€) .
La 7i48 costa la meta della 5i20, pero ha solo 2 conettori invece delle tre della 5i20.

Hai ragione, il fatto pero´ e quello, che a lui serve la scheda per 6 assi, quindi il costo e´ 270€.
Deve pero regolare gli due pid, quello del servomotore e quello di emc2 contemporaneamente, cosa
non propio facile, che alla fine non gli da niente di piu´ di quello che ha senza spendere quei 270€.
In entrambi gli casi gli servono due pc, uno linux, l´altro windows per mettere su gli driver perche´ il
programma di ottimizzazione del servo gira solo su windows.

billielliot
Senior
Senior
Messaggi: 1748
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: emc, motori servo e anello chiuso con encoder

Messaggio da billielliot » giovedì 27 maggio 2010, 9:42

Ciao Fabietto,

sono certo della tua buona fede e volonta' nel dare una mano.

La mia risposta stringata puo' esserti apparsa come una "sgridata".

Sappi che tale non era!

Era solo una risposta stringata e in toni pacati :-)

Tonando al PID: configurazioni con due encoder sono ampiamente usate in diversi sistemi dove serve un controllo piu' fine di cio' che sta' accadendo sulla macchina.

A puro titolo di esempio: un encoder (solidale con l'asse del motore) e' usato solo per capire se il motore sta' girando. Il suo segnale non e' usato per eseguire la lavorazione ma come "diagnostica". Di questo segnale potrebbe anche interessarsi direttamente il driver comunicando al controller solo la situazione in cui viene rilevata qualche anomalia nella rotazione.

Un secondo encoder (magari di tipo lineare come le righe di Vernier) viene invece usato per posizionare in modo preciso gli assi durante la lavorazione.

il segnale generato dal controllo (in questo caso EMC) vale solo per correggere i movimenti riportati dal secondo encoder.

In questo modo entrambi gli encoder hanno un senso e non si intralciano (in una simile configurazione servirebbe comunque una messa a punto notevole).

Quanto hai proposto tu avrebbe messo in "competizione" i segnali provenienti da due encoder e non avrebbe aiutato il controller a prendere una decisione.

Volendo applicare questa idea alla richiesta di timmy70, dovremmo usare 12 encoder (2encoder * 6 assi). Lievitano i costi e si complica il cablaggio. Piu' fili comportano una maggiore possibilita' di interferenze causate da segnali spuri. I costi lievitano ulteriormente se cerchi fili schermati di buona qualita' etc...

Come vedi un anello tutt'altro che chiuso. Anzi: in continuo divenire :-)

Ciao :-)

Mauro
Amat victoria curam

Avatar utente
bigfefi
Member
Member
Messaggi: 270
Iscritto il: domenica 4 maggio 2008, 15:33
Località: Cento (Ferrara)

Re: emc, motori servo e anello chiuso con encoder

Messaggio da bigfefi » giovedì 27 maggio 2010, 10:17

Mmmm...
Unica obiezione. Perchè 2 pc? Si puo partizionare l'hdd e installare contemporaneamente linux e win. Oppure virtualizzare WIN su linux.. Vabbeh, ma questo non è un problema.
Sul fatto che non ha niente di più... Non metto il punto interrogativo ma prendi quello che dico come una domanda.
Il nostro problema è che vogliamo gli assi interpolati. Se non usiamo un CN (emc o altro) come facciamo a interpolare sei assi? Hai 6 driver? ciascuno è cieco rispetto a quello che stanno facendo gli altri 5. Se attacchi tutto a EMC (magari con una scheda pci, che è molto + veloce della parallela) ci pensa EMC a interpolare e quindi a comandare real time gli azionamenti...
La differenza, (concettuale?), tra un CN professionale ed EMC quale è? Che probabilmente il CN è solo più veloce, ma se ci pensi dentro ai CN ci sono dei pentium (anche vecchi) che interagiscono con schede assi, driver e motori molto perfermanti, risoluzioni mostruose e via discorrendo. Poi che non sia facile regolare 2 pid sono perfettamente d'accordo.
Se metti ad esempio la 5i20 con driver comandati in pwm, puoi gestire 12 assi con una sola 5i20.
Che vantaggio hai con una scheda del genere? Che "l'unico" lavoro che deve fare Emc (e quindi il pc) è interpolare. E credo non sia poco. Poi come ci siamo detti anche con i CN da 20k euro un cerchio diventa una parabola/ellisse...

Ho detto solo cavolate o qualcosa a segno l'ho scritto? :D
Il troppo pensare deriva dal poco capire.... E io penso molto! ;)
"...fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
(Dante Alighieri, Divina Commedia, Inferno canto XXVI, 116-120)

franceso
Senior
Senior
Messaggi: 1341
Iscritto il: martedì 22 aprile 2008, 16:37
Località: BZ

Re: emc, motori servo e anello chiuso con encoder

Messaggio da franceso » giovedì 27 maggio 2010, 10:44

Ti rispondo per gli 2 pc.
Per gli servo drive yaskawa facendo il setup del pid devi usare il SW SigmaWin+ .
Anche per linux devi usare un SW diagnostico speciale, che ti visualizza in realtime l´errore di posizionamento e
altre cose come grafico. Siccome il SW di Yaskawa gira soltanto in Windows, e non puoi utilizzare una VM,
perche prenderebbe troppe risorse e quindi ti falserebbe il pid. Sei costretto a usare due pc per il setup del sistema.
Altra cosa, il sistema linux riceve la posizione degli encoder divisi per 16 quindi il pid di emc2 e´ 16 volte meno preciso e
anche lento che il pid del servo.
La scheda mesa, come le altre non sono altro che porte di estensioni del pc, anche se il fpga fa anche il lavoro di decodifica dei
sensori di quadratura e codifica del segnale di pwm.
Puoi fare la stessa cosa con una o due porte parallele, ti funziona ugualmente e se sposti gli indirizzi della parallela sopra 0x1000
allora la velocita di accesso della scheda e´ uguale a quella della mesa, perche per indirizzi sotto gli 1000 dopo ogni acesso ci sono
dei cicli di attesa che limitano la performance. La differenza tra decodifica dell´encoder in hw oppure in sw non esiste con pc sopra gli
100Mhz (le schede mesa si usavano anche prima) come anche per il pwm.

billielliot
Senior
Senior
Messaggi: 1748
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: emc, motori servo e anello chiuso con encoder

Messaggio da billielliot » giovedì 27 maggio 2010, 10:56

Cioa,

a proposito di "....Altra cosa, il sistema linux riceve la posizione degli encoder divisi per 16 quindi il pid di emc2 e´ 16 volte meno preciso e anche lento che il pid del servo...."

Questa affermazione non la capisco e chiedo lumi.

Perche' il valore dell'encoder ricevuto da EMC e' diviso 16 volte?

Ciao

Mauro
Amat victoria curam

Avatar utente
bigfefi
Member
Member
Messaggi: 270
Iscritto il: domenica 4 maggio 2008, 15:33
Località: Cento (Ferrara)

Re: emc, motori servo e anello chiuso con encoder

Messaggio da bigfefi » giovedì 27 maggio 2010, 11:01

Mi associo a billi! :)
Quindi l'unico vantaggio delle schede tipo mesa (ma non fossilizziamoci sulla marca) è che forniscono + canali di I/O?
Ma... quindi riesco a interpolare 6 assi anche con la parallela?
Il troppo pensare deriva dal poco capire.... E io penso molto! ;)
"...fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
(Dante Alighieri, Divina Commedia, Inferno canto XXVI, 116-120)

franceso
Senior
Senior
Messaggi: 1341
Iscritto il: martedì 22 aprile 2008, 16:37
Località: BZ

Re: emc, motori servo e anello chiuso con encoder

Messaggio da franceso » giovedì 27 maggio 2010, 12:23

Perche l´output degli Encoder che fornisce la Yaskawa secondo il manuale fornito da t... lo da fuori soltanto diviso e l´impostazione
impostabile piu piccola e´ 16 .

La parallela ha 17 i/o di qui 5 sono fissi input.
Esempio, 6 Assi sono 12 pin per dir/pwm o dir/step.
Gli 5 input standard l-stop/r-stop/home/e-stop/probe
Seconda parallela
12 Pin per input encoder
2 pin per pwm e enable della spindle,
1 pin di input (CNY70) per il feedback giri della spindle.
2 rele per aux (flood/mist/vacuum)

Se pensi che una porta parallela pci costa 11€.
Per quanto riguarda motori DC, invece di passare per 0-10V oppure +-10V colleghi direttamente il ponte H
(L298) al pwm e dir con motori DC ti risparmi ulteriormente di brutto.
La posto del L298 (2 A con due motori oppure 4A con un motore) puoi anche metterne un L6... da 6A
oppure un VNH2SP30-E che ti fa anche 20A. Costo indicativo del Chip L298 3€, del VNH2SP30-E 8€
Calcola 10€ per il resto, e ci sei.

franceso
Senior
Senior
Messaggi: 1341
Iscritto il: martedì 22 aprile 2008, 16:37
Località: BZ

Re: emc, motori servo e anello chiuso con encoder

Messaggio da franceso » giovedì 27 maggio 2010, 13:27

Se si utilizzano soltanto 5 Assi, si riesce a fare anche il volantino con due porte lpt facendo il closed loop.

Fabietto
Senior
Senior
Messaggi: 881
Iscritto il: mercoledì 21 novembre 2007, 17:43
Località: Prov. Ve

Re: emc, motori servo e anello chiuso con encoder

Messaggio da Fabietto » giovedì 27 maggio 2010, 13:37

Billielliot tranquillo non l'ho presa come sgridata forse mi sono espresso male con la tastiera.

Ora nel mio messaggio l'idea di montare degli encoder aggiuntivi era un esempio ma non molto sballato in quanto non ho letto il manuale dei driver e non sò se dispongano di una uscita di qualche tipo che riporti all'esterno i segnale dell'encoder o della hall.

Però devo anche fare la considerazione che se si vuole fare un vero controllo di posizione non ci si può fidare del segnale riportato dai driver ma si dovrebbe avere una riga ottica o sistemi simili che vadano a leggere la reale posizione delle tavole/assi e correggano eventuali errori meccanici dovuti a laschi o giochi, come fanno appunto le macchine che tu citavi.
Mi sembrava che nel tuo messaggio della "sgridata" :D che tu escludessi il bisogno dei due pid e quindi dell'ottimizzazione degli stessi e la mia era una risposta a quello ma ho visto che dopo siete praticamente tutti d'accordo sulla necessità  di adottarli o forse prima non l'avevo capito io che era necessario anche per voi.

Vuoi sapere esattamente come la penso? non sò che tipo di lavorazione deve fare Timmy ma se vuole comandi i driver con soluzioni diverse dallo step e dir ma non vedo strettamente necessaria la chiusura del loop ammenochè non intenda lavorarci dei materiali molto costosi, EMC interpola mi pare fino a sei assi però bisogna vedere a che velocità  vuole lavorare (ed è quì sorgeranno i problemi forse) ma io personalmente mi fiderei del solo loop sui driver.
Ti dico questo perchè giusto ieri ho provato il mio sistema mooooooooooooooooooolto prototipo con servo dc gecko motorini 240 electrocraft ed encoder che definirli buoni è un'offesa e dopo varie prove a velocità  crescente e rientro a zero leggendo il valore sul comparatore l'errore massimo che ho visto è di 1 centesimo ma considerando che ha le viti tpn penso possa andare. Certo non ho mai fatto una prova con l'interpolazione di più assi ma io mi sentirei tranquillo.

Ciao e tranquilli io sono sereno.

Avatar utente
bigfefi
Member
Member
Messaggi: 270
Iscritto il: domenica 4 maggio 2008, 15:33
Località: Cento (Ferrara)

Re: emc, motori servo e anello chiuso con encoder

Messaggio da bigfefi » giovedì 27 maggio 2010, 14:10

Anche noi siamo sereni! :D
Stiamo solo confrontando idee, supposizioni e conosc(i? :roll: )enze!

Se utilizzi le righe ottiche, come già  detto, allora SI chiudi veramente l'anello, e realizzi il full clsoed loop. Cioè ti svincoli da giochi ed errori vari.

Se hai viti a ricircolo a gioco 0, allora le righe in pratica ti servono solamente per compensare gli errori di passo delle viti (centesimi ogni 300 mm di lunghezza). Addirittura Emc ti permette di inserire una tabella al max di 256 valori per ogni asse con cui "mappi" l'errore di passo della vite (ammesso che tu riesca a determinare gli errori di tale passo).

Link1 , Link2

Resta però il fatto che per interpolare + assi (l'ulima versione di EMC ne gestisce fino a 9 mi pare) Emc deve sapere come siamo messi con la posizione (velocità  o coppia). Per fare questo deve avere il segnale encoder (a prescindere dalla porta parallela o da schede aggiuntive) che spesso nei motori servo è in uscita in quadratura (ovvero da un encoder 2500 ppr ti da fuori un segnale 10'000 ppr giusto?). Se non hai il ritorno degli encoder è come pilotare un passo passo. Gli dai il comando, aspetti la risposta dal driver che ti dice "Ho fatto!" e ti fermi li. Se poi succede qualcosa non lo puoi sapere, e te ne accorgi a fine lavorazione.
Il troppo pensare deriva dal poco capire.... E io penso molto! ;)
"...fatti non foste a viver come bruti ma per seguir virtute e canoscenza"
(Dante Alighieri, Divina Commedia, Inferno canto XXVI, 116-120)

franceso
Senior
Senior
Messaggi: 1341
Iscritto il: martedì 22 aprile 2008, 16:37
Località: BZ

Re: emc, motori servo e anello chiuso con encoder

Messaggio da franceso » giovedì 27 maggio 2010, 14:12

x Fabietto
Tutti gli controlli seri, incluso EMC e Mach3 hanno la "lead screw compensation" cioe si possono correggere gli errori delle viti.
Ad esempio, gli viti con classe 7 di un certo produttore hanno un errore di .052mm ogni 300mm quindi con una vite di 1200mm,
l´errore puo essere 0.156mm . Normalmente questa e´ una delle prime procedure che si fanno prima ancora che si fa il pid dei servo.
Naturalmente, se ti basta una precisione di +- mezzo decimo, non lo fai.

billielliot
Senior
Senior
Messaggi: 1748
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: emc, motori servo e anello chiuso con encoder

Messaggio da billielliot » giovedì 27 maggio 2010, 14:34

Per franceso:

i manuali allegati da timmy70 riportano la seguente frase:

"Encoder feedback pulses processed inside the SERVOPACK can be output externally."

il mio inglese non e' perfetto ma penso di interpretare bene dicendo che abbiamo almeno due scelte:

far processare i segnali dell'encoder dal servopack (con la possibilita' di portarli all'esterno divisi minimo per 16)

portare i segnali dell'encoder direttamente sulla parallela (ottenendo il corretto numero di impulsi/giro)

Per timmy70: ci dici a quali pin del servopack hai collegato i segnali STEP/DIR generati da EMC?

Ciao e grazie :-)

Mauro
Amat victoria curam

Rispondi

Torna a “Linuxcnc”