Cambio Utensile manuale e compensazione utensile

Sezione dedicata a Linuxcnc
Rispondi
kylotron
Senior
Senior
Messaggi: 993
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: Cambio Utensile manuale e compensazione utensile

Messaggio da kylotron » martedì 26 luglio 2016, 9:33

Si... Ma ho anche qualche problema a comprendere l'esatta procedura...
Nel senso che... ho la testa piena di cose a cui pensare, e non riesco a concentrarmi a dovere su questo problema sulla CNC.

In pratica, dato il piano di riferimento della macchina, devo prima di tutto impostare correttamente l'altezza del sensore fisso (X741 Y102).... che in questo momento è di +35,581 mm.
Poi posiziono il pezzo.... e faccio l'azzeramento della Z con il sensore mobile.
Ecco... qui già mi incarto perché non ho la lucidità necessaria per capire come devo calcolare il tutto... (poi, oggi è ancora peggio... date le 4 birre doppio e triplo malto di ieri sera :( ).

A questo punto dovrei avere una Z relativa al piano superiore del pezzo ed una "quota" del sensore mobile calcolata di conseguenza.... che casino!


Fatto questo devo riuscire a configurare correttamente il remapping dei comandi di cambio utensile... così, finito il cambio utensile, la macchina va ad azzerarsi sul sensore fisso.

Ma come si fa?
La mia piccolina....

kylotron
Senior
Senior
Messaggi: 993
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: Cambio Utensile manuale e compensazione utensile

Messaggio da kylotron » martedì 26 luglio 2016, 14:08

Qui di seguito posto il g-code con il quale eseguo l'azzeramento sul sensore mobile:

Codice: Seleziona tutto

; caveat - this changes feed and abs/relative mode
; Parameters : offset plate-thickness

O<touch_to_z> SUB

(DEBUG, X position = [#5420])
(DEBUG, Y position = [#5421])
(DEBUG, Z position = [#5422])
(DEBUG, G38.2 = [#5063])

#<_Probe_Speed>=100
#<_Probe_Retract>=-1
#<_Probe_Distance>=40
#<_Offset>=#1
#<_Plate_Thickness>=1.375
#<_Probe_System>=#5220

G49                 ( clear tool length compensation)
G91                 ( relative mode for probing)

; We are probing Z, so the current tool is the reference
#1000=#1001
G49

;(MSG, POGGIARE LA PIASTRA DI RISCONTRO SULLA SUPERFICIE DEL PEZZO)

;For Z, we move in the opposite direction
#<_Probe_Distance>=[0 - #<_Probe_Distance>]
#<_Probe_Retract>=[0 - #<_Probe_Retract>]
G38.3 z#<_Probe_Distance> F#<_Probe_Speed>
O<zresult> if [#5070]
   ;(MSG, probe succeeded)
   G10 L20 P#<_Probe_System> Z[#<_Plate_Thickness> + #<_Offset>]
   									(DEBUG, G38.2 = [#5063])
   G0 z#<_Probe_Retract>
O<zresult> else
   ;(MSG,probe failed)
   G0 z[0 - #<_Probe_Distance>]
O<zresult> endif


#<_Probe_Speed_1>=10
#<_Probe_Retract_1>=-10
#<_Probe_Distance_1>=5

;For Z, we move in the opposite direction
#<_Probe_Distance_1>=[0 - #<_Probe_Distance_1>]
#<_Probe_Retract_1>=[0 - #<_Probe_Retract_1>]
G38.3 z#<_Probe_Distance_1> F#<_Probe_Speed_1>
O<zresult1> if [#5070]
   ;(MSG, probe succeeded)
   G10 L20 P#<_Probe_System> Z[#<_Plate_Thickness> + #<_Offset>]

#22 = [#<_Plate_Thickness>-#5063]
   									(DEBUG, G38.2 = [#5063])
   G0 z#<_Probe_Retract_1>
O<zresult1> else
   ;(MSG,probe failed)
   G0 z[0 - #<_Probe_Distance_1>]
O<zresult1> endif


G90                 ( absolute mode)

G53 G0 Z-10

;(MSG, TOGLIERE LA PIASTRA DI RISCONTRO DALLA SUPERFICIE DEL PEZZO)

O<touch_to_z> endsub [#5070]
M2

L'ho copiato da uno dei tanti tutorial trovati in rete e funziona.
Lo script esegue un primo azzeramento veloce.... Poi ne esegue un secondo, molto più lento.
La ripetizione continuata di tale script mi ha permesso di valutare in pochi centesimi, l'errore che deriva dal contatto "imperfetto" tra l'utensile e il sensore stesso.
La mia piccolina....

kylotron
Senior
Senior
Messaggi: 993
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: Cambio Utensile manuale e compensazione utensile

Messaggio da kylotron » mercoledì 27 luglio 2016, 9:25

Ho trovato in rete uno script mooolto più corto e semplice... che allego....

Codice: Seleziona tutto

O<touch_to_z> SUB

#< plate> = 1.375 (plate thickness)
#< retouch> = 1 (distance to move up before slow retouch)
#< 2nd> = [ #< retouch> + 0.5 ] 

G21 (metric units)
(DEBUG,PROBE is ACTIVE)
G91 G38.2 Z-20 F50 (1st probe move, incremental move down max of Z-20 at 50mm/min)
G10 L20 P0 Z#< plate> (Set Z0 offset plate thickness)
G90 G0 Z#< retouch> (move # distance above PCB plate for 2nd touch)
G38.2 Z-#< 2nd> F10 (slow second touch to max of # distance + 0.5mm) 
G10 L20 P0 Z#< plate> (Set Z0 offset plate thickness)
G90 G0 Z25 (rapid up to 25 above material)
(DEBUG,REMOVE TOUCH PLATE AND PRESS START TO CONTINUE)

O<touch_to_z> endsub [#5070]
M2
l'ho appena testato al volo e funziona. L'azzeramento lo effettua.
Questo, però, sempre e solo con il sensore mobile.

Volendolo usare sul probe, basta che eseguo un G53 G0 X741 Y102 dopo il G21... allungando la corsa Z del G91 G38.3 da -20 a -80 (nel mio caso).

A questo punto, però, dovrei implementare la variabile #<z_workpiece> e portarmela nello script di azzeramento sul probe.
Ma questa andrebbe calcolata in modo "assoluto"... essendo l'altezza del probe "fissa" rispetto alle coordinate assolute ma assolutamente variabile rispetto al workpiece!
La mia piccolina....

kylotron
Senior
Senior
Messaggi: 993
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: Cambio Utensile manuale e compensazione utensile

Messaggio da kylotron » mercoledì 27 luglio 2016, 11:23

Ancora un passo avanti.

Per leggere la posizione corrente, nelle coordinate macchina (Assolute), basta dare un comando G28.1 e leggere i parametri
X = #5161
Y = #5162
Z = #5163

^_^

Ora devo solo inserire la "compensazione" rispetto al piano... il cui valore registro nella variabile #1001 ed il gioco è fatto!
La mia piccolina....

gbeloli
Newbie
Newbie
Messaggi: 15
Iscritto il: venerdì 25 settembre 2015, 9:23
Località: Lecco

Re: Cambio Utensile manuale e compensazione utensile

Messaggio da gbeloli » mercoledì 27 luglio 2016, 11:36

Evvai

Siamo orgogliosi di te :wink:

grazie!

kylotron
Senior
Senior
Messaggi: 993
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: Cambio Utensile manuale e compensazione utensile

Messaggio da kylotron » mercoledì 27 luglio 2016, 19:43

Allora... scrivo qua così mi ricordo cosa devo fare :D


Sul SENSORE MOBILE...

scendo fino a trovare il sensore con il comando G38.3 con velocità F200
azzero la Z rispetto al punto in cui il sensore è stato toccato con il comando G10 L20 P1 Z#<plate_tichness>
rialzo la Z di 1 mm


Scendo fino a trovare il sensore con il comando G38.3 con velocità F20
Calcolo la posizione di Z con G38.2 rispetto al punto in cui il sensore è stato toccato
Memorizzo la posizione in #101
rialzo la Z di 2 mm

sposto la Y di +2 mm
Scendo fino a trovare il sensore con il comando G38.3 con velocità F20
Calcolo la posizione di Z con G38.2 rispetto al punto in cui il sensore è stato toccato
Memorizzo la posizione in #102
rialzo la Z di 2 mm

Sposto la Y di -4 mm
Scendo fino a trovare il sensore con il comando G38.3 con velocità F20
Calcolo la posizione di Z con G38.2 rispetto al punto in cui il sensore è stato toccato
Memorizzo la posizione in #103
rialzo la Z di 2 mm

Sposto la X di +2 mm e la Y di +2mm
Scendo fino a trovare il sensore con il comando G38.3 con velocità F20
Calcolo la posizione di Z con G38.2 rispetto al punto in cui il sensore è stato toccato
Memorizzo la posizione in #104
rialzo la Z di 2 mm

Sposto la X di -4 mm
Scendo fino a trovare il sensore con il comando G38.3 con velocità F20
Calcolo la posizione di Z con G38.2 rispetto al punto in cui il sensore è stato toccato
Memorizzo la posizione in #105
rialzo la Z di 2 mm

Imposto la Z al valore medio delle posizioni memorizzate #101-#105

Rialzo la testa con il comando G53 G0 Z-10 che è l'altezza di sicurezza.





SUL PROBE (SENSORE FISSO)

Alzo la testa all'altezza di sicurezza con il comando G53 G0 Z-10
Sposto la testa nella posizione G53 G0 X741 Y102
scendo fino a trovare il sensore con il comando G38.3 con velocità F200
imposto l'offset Z rispetto al punto in cui il sensore è stato toccato, sapendo che il sensore si trova ad una Z ben precisa!
rialzo la Z di 1 mm

Scendo fino a trovare il sensore con il comando G38.3 con velocità F20
imposto l'offset Z rispetto al punto in cui il sensore è stato toccato, sapendo che il sensore si trova ad una Z ben precisa!
Rialzo la testa con il comando G53 G0 Z-10 che è l'altezza di sicurezza.




Teoricamente funziona. Come fare alcune cose ancora non lo so. Poi domani, forse, ci provo!
La mia piccolina....

kylotron
Senior
Senior
Messaggi: 993
Iscritto il: mercoledì 17 ottobre 2012, 17:06
Località: Sora

Re: Cambio Utensile manuale e compensazione utensile

Messaggio da kylotron » sabato 30 luglio 2016, 11:20

Troppe complicazioni... riparto quasi da zero.

Allora... ragionando un po sul problema esce fuori la seguente procedura che dovrebbe risolvere il tutto:

1) misurare l'altezza del piano (uso il sensore mobile e rilevo una Z assoluta, nel mio caso, pari a -95.221665 mm)
2) misurare l'altezza del probe (fisso) rispetto al piano (rilevo una Z assoluta, nel mio caso, pari a -61.498650 mm. Quindi l'altezza assoluta del probe rispetto al piano è di 33.723015 mm)
3) posiziono il pezzo da lavorare... e azzero la Z sulla sua faccia superiore (tenendo conto dello spessore del sensore mobile, che nel mio caso è di 1.375 mm).

A questo punto so che se per esempio il pezzo è spesso 30 mm, il probe avrà un'altezza pari a +3.723015 mm. Pertanto nel momento in cui andrò ad azzerare il secondo utensile, alla misura che mi esce fuori dalla "lettura" del probe, dovrò aggiungere questi +3.723015 mm per essere sicuro che poi l'utensile mi vada a fresare nel modo corretto.

Teoricamente è giusto... o c'è qualcosa che non quadra?
La mia piccolina....

Lucariel
Member
Member
Messaggi: 200
Iscritto il: mercoledì 21 novembre 2007, 23:55
Località: Napoli

Re: Cambio Utensile manuale e compensazione utensile

Messaggio da Lucariel » venerdì 19 agosto 2016, 22:47

grazie per il lavoro che stai portando avanti.. spero di poterne trarre giovamento .. avevo progettato di affrontare questo problema in inverno durante la pausa natalizia..... anche io come te uso linuxcnc da anni e ne sono entusiasta... purtroppo a me mancano completamente le nozioni di base per cui a volte anche leggere cose trovate in rete diventa difficilissimo.

Rispondi

Torna a “Linuxcnc”