Passare da ciclo fisso ad altro senza G80...

Sezione dedicata al G-code, postate qui dubbi o i Vs. lavori in formato G-code.
Rispondi
safe60
Senior
Senior
Messaggi: 730
Iscritto il: venerdì 29 maggio 2009, 8:43
Località: Ferrara
Contatta:

Passare da ciclo fisso ad altro senza G80...

Messaggio da safe60 » lunedì 22 gennaio 2018, 13:25

Vorrei chiedere il parere di chi programma a bordo macchina.

E' un errore passare da un ciclo fisso ad un altro senza interporre il G80 ?

Es :
G81 G98 Xxx Yyy Zzz Rrr
X.. Y..
G82 G98 Xxx Yyy Zzz Rrr Ppp ecc ecc

il controllo richiede una chiusura del ciclo fisso attivo prima di attivarne un altro ?

Grazie a chi dira' la sua..
Sandro
More Maiorum

Innaig
Senior
Senior
Messaggi: 765
Iscritto il: venerdì 26 settembre 2014, 15:49
Località: Forlì

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da Innaig » lunedì 22 gennaio 2018, 14:52

Buongiorno,
non hai specificato il controllo ma di solito, essendo il comando modale, si deve interporre G80 per terminare prima di passare ad altra G.


Saluti

Avatar utente
Fiveaxis
God
God
Messaggi: 5712
Iscritto il: sabato 15 gennaio 2011, 12:08
Località: Monza e Brianza

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da Fiveaxis » lunedì 22 gennaio 2018, 17:22

Che io sappia, è sempre meglio chiudere con il G80.
La macchina conta...ma la differenza la fa il "manico"!

gino
Senior
Senior
Messaggi: 1774
Iscritto il: domenica 11 ottobre 2009, 18:12

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da gino » lunedì 22 gennaio 2018, 17:56

si credo in ogni modo chiudere il primo ciclo prima di aprire un altro.

..domani dato che faccio un po di corsi a nuovi operatori , Provo in tutti i modi
di provarlo su Simulatore (Selca) ; ..ma di sicuro mi uscira un errore...

safe60
Senior
Senior
Messaggi: 730
Iscritto il: venerdì 29 maggio 2009, 8:43
Località: Ferrara
Contatta:

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da safe60 » lunedì 22 gennaio 2018, 19:28

Grazie Gino. Sono curioso di sapere come andra'.

A tempo perso sto scrivendo un interprete per gcode e ora che sono arrivato ai cicli mi chiedevo come gestire le condizioni in cui si passi da un ciclo all'altro senza prima chiudere quello eventualmente gia' attivo.

Come riferimento sto tenendo il manuale Fanuc, la documentazione di mach4 e anche il vecchissimo file della prima versione dell'interprete di Linuxcnc quando ancora si chiamava EMC2.
More Maiorum

gino
Senior
Senior
Messaggi: 1774
Iscritto il: domenica 11 ottobre 2009, 18:12

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da gino » martedì 23 gennaio 2018, 13:00

stamani , lo provato sul simulatore Selca , ....non mi ha dato errori !!
( ci sarebbe da provarlo a vuoto su macchina ) per sicurezza..
..tornato a casa,
lo provato sulla mia cnc hobby , con controllo Colibri.
...ebbene niente errori ed ha eseguito il programma :
con lo stesso utensile una punta ,prima con G81(foratura semplice) senza alla fine G80
e poi con G83 (foratura profonda) e solo questo chiuso con G80
..molto strano ma sembra funzionare..
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Avatar utente
Fiveaxis
God
God
Messaggi: 5712
Iscritto il: sabato 15 gennaio 2011, 12:08
Località: Monza e Brianza

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da Fiveaxis » martedì 23 gennaio 2018, 13:10

Un tecnico (Open Mind) che mi ha fatto il post-processor per Fidia, ricordo mi disse: è sempre meglio chiudere un comando G con un G80. Non è una questione sostanziale (niente errori) ma formale, di metodo. Essendo i comandi G modali! :wink:
La macchina conta...ma la differenza la fa il "manico"!

Avatar utente
shineworld
Senior
Senior
Messaggi: 673
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da shineworld » martedì 23 gennaio 2018, 13:33

Quanto segue è per lo standard RS274D ma in linea di massima è valido per molte CNC, Mach3/4 comprese.

Ci sono comandi che cambiano il MOTION CONTROL MODE (modo di controllo del percorso) della CNC. Ad esempio:

G61 Imposta il modo di controllo percorso: exact path = 2
G61.1 Imposta il modo di controllo percorso : exact stop = 1
G64 Imposta il modo di controllo percorso: continuous = 3

Di default se non si mettono questi comandi la CNC usa di norma G64, continous.
Con continuos la CNC cerca di ottimizzare il percorso tramite vari algoritmi di elaborazione dello stesso al fine di mantenere la verlocità di feed impostata.

Quando si esegue un ciclo G81/83 viene aggiunto in automatico per ogni istuzione che segue un cambio del modo di controllo del percorso a EXACT PATH per riportarlo automaticamete al valore precedentemente in uso. La G80 di fatto non cambia il modo riportandolo a quello iniziale ma serve a disabilitare il G83 modale e far si che successivi X/Y/Znnn non vengano accettati in quanto mancanti di codice modale.
Aggiungere subito dopo un altro comando modale fa esattamente la stessa funzione di aver messo un G80.
Questo è il motivo per cui i compilatori non segnalano errore.

Codice: Seleziona tutto

N1 G90 G55
N2 T15 M6
N3 M3 S600.00000
N4 F250
N5 G0 X0 Y0
N6 G81 X0 Y0 Z-0.50 R3.0
N7 Y-20
N8 Y-40
N9 Y-30
N10 G83 X-30 Y-30 Z-8.0 Q3 R2.0
N11 X-50
N12 X-70
N13 G80
N14 G0 X0 Y0
N15 M2
generano qualcosa simile a:

Codice: Seleziona tutto

Begin compilation:
 · g-code file saving... Done in 2 ms
 · g-code file compiling... Done in 14 ms
 · 000000 - INIT_CANON: Version=1, Release=1
            USE_LENGTH_UNITS: Units=2
            SET_ORIGIN_OFFSETS: X=10000, Y=30000, Z=30000, A=0, B=0, C=0
            SET_FEED_REFERENCE: Reference=2
            SET_FEED_RATE: Feed=100000
            SET_SPINDLE_SPEED: Mode=300
 · 000001 - SET_ORIGIN_OFFSETS: X=70000, Y=40000, Z=0, A=0, B=0, C=0
 · 000002 - SELECT_TOOL: Slot=15
            CHANGE_TOOL: Slot=15
 · 000003 - SET_SPINDLE_SPEED: Mode=600
            START_SPINDLE_CLOCKWISE
 · 000004 - SET_FEED_RATE: Feed=250000
 · 000005 - STRAIGHT_TRAVERSE: X=0, Y=0, Z=30000, A=0, B=0, C=0
 · 000006 - SET_MOTION_CONTROL_MODE: Mode=2
            STRAIGHT_TRAVERSE: X=0, Y=0, Z=30000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=0, Y=0, Z=3000, A=0, B=0, C=0
            STRAIGHT_FEED: X=0, Y=0, Z=-500, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=0, Y=0, Z=3000, A=0, B=0, C=0
            SET_MOTION_CONTROL_MODE: Mode=3
 · 000007 - SET_MOTION_CONTROL_MODE: Mode=2
            STRAIGHT_TRAVERSE: X=0, Y=-20000, Z=3000, A=0, B=0, C=0
            STRAIGHT_FEED: X=0, Y=-20000, Z=-500, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=0, Y=-20000, Z=3000, A=0, B=0, C=0
            SET_MOTION_CONTROL_MODE: Mode=3
 · 000008 - SET_MOTION_CONTROL_MODE: Mode=2
            STRAIGHT_TRAVERSE: X=0, Y=-40000, Z=3000, A=0, B=0, C=0
            STRAIGHT_FEED: X=0, Y=-40000, Z=-500, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=0, Y=-40000, Z=3000, A=0, B=0, C=0
            SET_MOTION_CONTROL_MODE: Mode=3
 · 000009 - SET_MOTION_CONTROL_MODE: Mode=2
            STRAIGHT_TRAVERSE: X=0, Y=-30000, Z=3000, A=0, B=0, C=0
            STRAIGHT_FEED: X=0, Y=-30000, Z=-500, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=0, Y=-30000, Z=3000, A=0, B=0, C=0
            SET_MOTION_CONTROL_MODE: Mode=3
 · 000010 - SET_MOTION_CONTROL_MODE: Mode=2
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=3000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_FEED: X=-30000, Y=-30000, Z=-1000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=-746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-30000, Y=-30000, Z=-4000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=-3746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-30000, Y=-30000, Z=-7000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=-6746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-30000, Y=-30000, Z=-8000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-30000, Y=-30000, Z=2000, A=0, B=0, C=0
            SET_MOTION_CONTROL_MODE: Mode=3
 · 000011 - SET_MOTION_CONTROL_MODE: Mode=2
            STRAIGHT_TRAVERSE: X=-50000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_FEED: X=-50000, Y=-30000, Z=-1000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-50000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-50000, Y=-30000, Z=-746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-50000, Y=-30000, Z=-4000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-50000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-50000, Y=-30000, Z=-3746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-50000, Y=-30000, Z=-7000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-50000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-50000, Y=-30000, Z=-6746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-50000, Y=-30000, Z=-8000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-50000, Y=-30000, Z=2000, A=0, B=0, C=0
            SET_MOTION_CONTROL_MODE: Mode=3
 · 000012 - SET_MOTION_CONTROL_MODE: Mode=2
            STRAIGHT_TRAVERSE: X=-70000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_FEED: X=-70000, Y=-30000, Z=-1000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-70000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-70000, Y=-30000, Z=-746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-70000, Y=-30000, Z=-4000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-70000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-70000, Y=-30000, Z=-3746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-70000, Y=-30000, Z=-7000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-70000, Y=-30000, Z=2000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-70000, Y=-30000, Z=-6746, A=0, B=0, C=0
            STRAIGHT_FEED: X=-70000, Y=-30000, Z=-8000, A=0, B=0, C=0
            STRAIGHT_TRAVERSE: X=-70000, Y=-30000, Z=2000, A=0, B=0, C=0
            SET_MOTION_CONTROL_MODE: Mode=3
 · 000014 - STRAIGHT_TRAVERSE: X=0, Y=0, Z=2000, A=0, B=0, C=0
 · 000015 - SET_ORIGIN_OFFSETS: X=10000, Y=30000, Z=30000, A=0, B=0, C=0
            STOP_SPINDLE_TURNING
            PROGRAM_END
 · compiled file parsing... Done in 2 ms
 · g-code file hashing... Done in 0 ms
 · tool path vertex count: 147 
 · used memory: 60 MB (0.06 GB)
End compilation in 108 ms

gino
Senior
Senior
Messaggi: 1774
Iscritto il: domenica 11 ottobre 2009, 18:12

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da gino » martedì 23 gennaio 2018, 13:57

..non e` che sia il metodo proprio corretto..
ma ero anch`io curioso di provare ( e provo di tutto..)

in tutti i modi per correttezza il G80 va messo sempre !
dopo tutto costa solo una riga nel g-code (e si sta dalla parte sicura)

Avatar utente
shineworld
Senior
Senior
Messaggi: 673
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da shineworld » martedì 23 gennaio 2018, 14:00

Concordo con Gino: chiarezza nel codice g prima di tutto :)

safe60
Senior
Senior
Messaggi: 730
Iscritto il: venerdì 29 maggio 2009, 8:43
Località: Ferrara
Contatta:

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da safe60 » mercoledì 24 gennaio 2018, 12:09

Grazie a tutti per le spiegazioni.
Sono d'accordo che un G80 migliora la leggibilita' anche se i vari controlli non si lamentano della sua assenza.

La questione mi interessava per capire se nel programma che sto scrivendo era il caso di segnalare un errore oppure no. Approfitto anche dell'esempio postato da shine per vedere se ottengo lo stesso output..
More Maiorum

Avatar utente
shineworld
Senior
Senior
Messaggi: 673
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da shineworld » mercoledì 24 gennaio 2018, 19:00

Ottimo safe60…
Son curioso di vedere cosa ne esce :)

gino
Senior
Senior
Messaggi: 1774
Iscritto il: domenica 11 ottobre 2009, 18:12

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da gino » mercoledì 24 gennaio 2018, 19:24

da come ho provato io, due cicli fissi un G81 senza g80 e poi un G83 CON g80.
non dava errori.
....pero` se si ommette anche al secondo ciclo il G80 la cosa diventa pericolosa !
nel senso che se si richiama dopo quei cicli un altro utensile con un TxM6 e si continua
con un altra lavorazione ,arriva il caos totale.
..ricordo che anni fa un operatore aveva dimenticato "quel G80" dopo
richiamato un utensile da dia32 per un altra lavorazione di contornatura.
ma il controllo ha saltato il cambio utensile e continuato la lavorazione con la punta..

Avatar utente
shineworld
Senior
Senior
Messaggi: 673
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da shineworld » mercoledì 24 gennaio 2018, 19:29

Questo è un ottimo spunto di riflessione Gino.

Domani provo a vedere nel dettaglio la questione cambio utensile con TxM6 e l'attivazione offset utensile con G43 / G49

safe60
Senior
Senior
Messaggi: 730
Iscritto il: venerdì 29 maggio 2009, 8:43
Località: Ferrara
Contatta:

Re: Passare da ciclo fisso ad altro senza G80...

Messaggio da safe60 » mercoledì 24 gennaio 2018, 20:17

Sulla base di quanto riportano Gino e shine, quanto meno il controllo potrebbe dare un messaggio di avvertimento per informare dei potenziali
pericoli. E' sorprendente il fatto che sul manuale Fanuc (2200 pagine !) non sono riuscito a trovare nessun riferimento sulla correttezza o meno di tralasciare il G80. Siamo tutti d'accordo sul fatto che .. G80 e' molto meglio, ma di solito i controlli cnc sono piuttosto severi.

@gino : se sei pratico di Fanuc e G68.2 dai un' occhiata al thread che sto per aprire su quel comando. Avrei bisogno di pareri..
@shine : mi piace come e' formattato l'output del programma di verifica che hai postato. E' per caso l'interprete stand alone di LinuxCnC ?
More Maiorum

Rispondi

Torna a “G-code”