I codici G e i codici M sono il linguaggio che le macchine a controllo numerico (CNC) comprendono.
Nell'articolo precedente abbiamo spiegato i cinque sistemi principali di una macchina CNC e il loro funzionamento integrato. In questo articolo, ci addentreremo nel mondo della programmazione CNC, imparando i due principali tipi di istruzioni utilizzate per controllare una macchina utensile.
Questo articolo utilizza il formato del codice CNC FANUC come esempio principale.
- Quando ho iniziato a lavorare in fabbrica, il programma non aveva alcun senso per me.
- Cosa sono i codici G e i codici M?
- Codici G e M essenziali per principianti di CNC
- G90 e G91 — Coordinate assolute e incrementali
- Come si muove G90 G28 Z0.?
- Come si muove G91 G28 Z0.?
- Da G54 a G59 — Selezione del sistema di coordinate di lavoro
- I codici M indicano alla macchina quale funzione attivare.
- Codici M CNC comuni
- Perché ogni programma CNC necessita di un blocco di inizializzazione di sicurezza
- Esempio completo del programma FANUC
- Riepilogo: Comprensione dei codici G e dei codici M
- Supporto per lavorazione CNC da stampo in fusione
- Servizi di pressofusione di alluminio
Quando ho iniziato a lavorare in fabbrica, il programma non aveva alcun senso per me.
Ricordo ancora quando ho iniziato a lavorare in fabbrica.
Il mio istruttore mi ha consegnato un foglio di carta ricoperto di righe come queste:
O0001
G94 G40 G49 G80
T01 M06
G90 G00 G54 X0. Y0.
S3000 M03
G43 H01 Z100.
G01 Z-5. F200
...
G00 Z50.
M09
G49
G91 G28 Z0.
M30
Egli ha detto:
Innanzitutto, impara a leggere questo.
Ho fissato il programma a lungo. Ho riconosciuto alcune lettere, ma quasi tutto il resto mi sembrava incomprensibile.
In seguito, ho scoperto che questi codici seguono regole precise e non sono così complicati come sembrano a prima vista.
Un programma CNC contiene principalmente due tipi di istruzioni:
- Istruzioni che indicano all'utensile da taglio come muoversi?
- Istruzioni che indicano alla macchina quale funzione ausiliaria attivare
Il primo tipo si chiama codice G.
Il secondo tipo si chiama codice M.
Cosa sono Codici G e codici M?
I codici G indicano all'utensile di taglio come muoversi.
I codici G sono anche noti come codici di funzione preparatori.
La loro funzione principale è quella di definire il movimento dell'utensile da taglio, tra cui:
- Posizionamento rapido
- Taglio lineare
- Interpolazione circolare
- movimento di coordinate assolute
- Movimento incrementale delle coordinate
- Selezione del sistema di coordinate di lavoro
- Ritorno di riferimento della macchina
Il codice AG inizia con la lettera G, seguito da due cifre.
Per esempio:
G00
G01
G54
G90
Prima di apprendere i singoli comandi, è importante comprendere la differenza tra codici G modali e non modali .
Codici G modali
Un codice modale rimane attivo anche dopo essere stato programmato.
Continua a influenzare i blocchi di programma successivi finché non viene sostituito da un altro codice G dello stesso gruppo.
Ad esempio, dopo la programmazione:
G01
la macchina CNC continuerà a utilizzare l'interpolazione lineare nei blocchi seguenti, anche quando G01 non viene scritto di nuovo.
La modalità rimane attiva fino a quando non viene impartito un altro comando di movimento, come ad esempio G00, G02, o G03, lo sostituisce.
Codici G non modali
Un codice non modale è efficace solo nel blocco di programma in cui compare.
Viene eseguito una sola volta e non rimane attivo nei blocchi successivi.
Per esempio:
G04
è un comando di permanenza. Influisce solo sul blocco di programma corrente.
Codici G e M essenziali per principianti di CNC
I seguenti comandi sono tra i codici più importanti per chiunque inizi a imparare la programmazione CNC. Le spiegazioni che seguono rispettano la struttura e gli esempi forniti nell'articolo originale.
G00 — Posizionamento rapido
G00 sposta l'utensile di taglio in una posizione specifica alla velocità di traslazione rapida della macchina.
Di solito viene utilizzato per il posizionamento piuttosto che per il taglio.
Esempio:
G00 X100. Y50. Z200.
Questo comando sposta rapidamente l'utensile verso:
- X = 100mm
- Y = 50mm
- Z=200 mm
Importante avviso di sicurezza
G00 non si muove necessariamente lungo un percorso rettilineo controllato.
È possibile che più assi si muovano simultaneamente alla loro massima velocità. A seconda del controllo della macchina e delle distanze tra gli assi, il percorso utensile effettivo può essere diagonale o a gomito.
Per questo motivo, non usare mai G00 maneggiare con noncuranza l'utensile da taglio in prossimità del pezzo in lavorazione, del dispositivo di fissaggio, dei morsetti o del piano della macchina.
Quando ci si avvicina al pezzo, utilizzare un movimento di avanzamento controllato come G01.
G01 — Taglio lineare
G01 muove l'utensile di taglio lungo una linea retta a una velocità di avanzamento specificata.
È uno dei comandi di taglio più comunemente utilizzati nella lavorazione CNC.
Esempio:
G01 X50. Y50. F300.
Questo comando sposta l'utensile in linea retta verso:
- X = 50mm
- Y = 50mm
La velocità di alimentazione è:
F300
L'unità di misura del valore F dipende dalla modalità di alimentazione attiva.
Secondo G94
La velocità di alimentazione viene misurata al minuto:
mm/min
Secondo G95
La velocità di avanzamento viene misurata per ogni giro del mandrino:
mm/rev
Le fresatrici CNC sono comunemente utilizzate G94.
G02 e G03 — Interpolazione circolare
G02 and G03 vengono utilizzati per realizzare percorsi utensile circolari o ad arco.
G02
Interpolazione circolare in senso orario.
G03
Interpolazione circolare in senso antiorario.
La direzione viene normalmente valutata guardando dalla direzione positiva dell'asse selezionato verso la direzione negativa.
Per un arco nel piano XY, questo normalmente significa guardare dall'asse Z positivo verso il pezzo in lavorazione.
Esempio con un valore R:
G02 X50. Y0. R25. F200.
Questo comando sposta l'utensile in senso orario per:
- X = 50mm
- Y = 0mm
- Raggio = 25 mm
- Velocità di avanzamento = 200 mm/min
Esempio con offset di centro:
G03 X0. Y50. I0. J25. F200.
Questo comando sposta l'utensile in senso antiorario utilizzando I and J per definire l'offset del centro dell'arco.
Un modo semplice per ricordare
G02 = Clockwise
G03 = Counterclockwise
Quando si lavora sul piano XY, la direzione deve essere vista dalla direzione positiva dell'asse Z verso la direzione negativa dell'asse Z.
G90 e G91 — Coordinate assolute e incrementali
G90 and G91 sono due comandi che i principianti del CNC spesso confondono.
G90 — Programmazione a coordinate assolute
Sotto G90, tutte le coordinate programmate si riferiscono all'origine del sistema di coordinate attualmente attivo.
Per esempio:
G90 G00 X50.
Questo significa:
Spostarsi nella posizione di coordinate assolute X = 50 mm.
Ciò non significa spostarsi di altri 50 mm dalla posizione attuale.
Un semplice paragone è quello di inserire una destinazione specifica in un sistema di navigazione.
G91 — Programmazione a coordinate incrementali
Sotto G91, ogni valore di coordinata rappresenta una distanza di movimento relativa alla posizione attuale dell'utensile.
Per esempio:
G91 G00 X50.
Questo significa:
Spostarsi di altri 50 mm nella direzione positiva dell'asse X rispetto alla posizione attuale.
Ciò non significa spostarsi alla coordinata assoluta X = 50 mm.
Un semplice paragone significa:
Proseguite per altri 500 metri, poi girate a destra.
Confronto tra G90 e G91
| Comando | Tipo di coordinate | Significato di X50 |
|---|---|---|
| G90 | Coordinate assolute | Spostarsi su X = 50 mm |
| G91 | Coordinate incrementali | Spostarsi di altri 50 mm dalla posizione attuale |
G28 — Ritorno al punto di riferimento della macchina
G28 comanda all'asse della macchina di tornare al suo punto di riferimento preimpostato.
Il formato base è:
G28 X_ Y_ Z_
I valori X, Y e Z definiscono un punto intermedio.
Sotto G90, il punto intermedio viene interpretato come una coordinata assoluta.
Sotto G91, il punto intermedio viene interpretato come un movimento incrementale.
Questo concetto di punto intermedio è la chiave per capire perché G91 G28 Z0. viene comunemente usato al posto di G90 G28 Z0..
Che cos'è il punto intermedio?
Quando la macchina esegue un G28 Nel comando, l'asse non si sposta semplicemente in un unico passaggio fino al punto di riferimento della macchina.
Il movimento normalmente si compone di due fasi:
- Spostarsi al punto intermedio programmato
- Spostamento dal punto intermedio al punto di riferimento della macchina.
La modalità di coordinate programmata determina la posizione di quel punto intermedio.
Come si muove G90 G28 Z0.?
Supponiamo che l'utensile da taglio si trovi attualmente in:
Z50.
Consideriamo ora il seguente comando:
G90 G28 Z0.
Sotto G90, il valore Z0. è una coordinata assoluta nel sistema di coordinate attualmente attivo.
Pertanto, il movimento avviene in due fasi:
- L'asse Z si sposta prima dalla sua posizione attuale alla posizione assoluta
Z0. - Si sposta quindi da
Z0.al punto di riferimento della macchina
Prima di eseguire un comando di ritorno G28, la compensazione della lunghezza dell'utensile viene spesso annullata.
In questa situazione, spostandosi prima nella posizione delle coordinate di lavoro Z0. può causare lo spostamento dell'utensile verso il basso, in direzione del pezzo in lavorazione.
Se il punto zero del pezzo si trova sulla superficie superiore del pezzo, l'utensile di taglio può muoversi direttamente sul pezzo stesso.
Ecco perché si usa:
G90 G28 Z0.
Senza una piena comprensione della posizione intermedia si può creare un serio rischio di collisione.
L'articolo originale sottolinea che l'utensile può prima spostarsi verso la coordinata zero del pezzo prima di tornare alla posizione di riferimento della macchina.
Come si muove G91 G28 Z0.?
Ora considera:
G91 G28 Z0.
Sotto G91, Z0. rappresenta un movimento incrementale di zero.
In altre parole, la posizione attuale dell'utensile viene utilizzata come punto intermedio.
Il movimento avviene nel modo seguente:
- L'asse Z si muove di una distanza incrementale pari a zero
- La posizione attuale diventa il punto intermedio
- L'asse Z ritorna quindi al punto di riferimento preimpostato della macchina.
Poiché il movimento intermedio programmato è zero, l'utensile non si sposta prima nella posizione di coordinate di lavoro. Z0..
Invece, inizia a tornare dalla sua posizione attuale verso il punto di riferimento dell'asse Z della macchina.
Ecco perché i programmi CNC utilizzano comunemente:
G91 G28 Z0.
Il significato è:
Utilizzare la posizione Z corrente come punto intermedio, quindi riportare l'asse Z al punto di riferimento della macchina.
Questa logica di movimento è la ragione principale per cui l'articolo originale raccomanda G91 G28 Z0. anziché G90 G28 Z0. per questa situazione.
Confronto tra G90, G28 e G91, G28
| Comando | Punto intermedio | Rischio o effetto principale |
|---|---|---|
G90 G28 Z0. | Z0 assoluto nel sistema di coordinate attivo | L'utensile può inizialmente muoversi verso il punto zero del pezzo. |
G91 G28 Z0. | Nessun movimento incrementale rispetto alla posizione attuale | La posizione attuale diventa il punto intermedio prima del ritorno di riferimento |
Formato di programmazione FANUC comune
G91 G28 Z0.
Commento:
The Z-axis makes a zero incremental move and then returns to the machine Z reference point.
Da G54 a G59 — Selezione del sistema di coordinate di lavoro
G54 è uno dei comandi del sistema di coordinate di lavoro più comunemente utilizzati.
Dopo aver impostato l'origine del pezzo durante la ricerca del bordo, la tastatura o l'impostazione dell'utensile, i valori delle coordinate vengono inseriti nel G54 compensazione del lavoro.
Quando il programma contiene:
G54
la macchina lo interpreta come:
Utilizzare l'origine del pezzo memorizzata in G54.
Ulteriori sistemi di coordinate di lavoro includono:
G55
G56
G57
G58
G59
Questi rappresentano il secondo, il terzo, il quarto e il sesto sistema di coordinate standard.
Sono utili per:
- Lavorazione di più pezzi
- Utilizzo di più apparecchi
- Programmazione di diverse posizioni del pezzo
- Esecuzione di più offset di lavoro in un'unica configurazione
I codici M indicano alla macchina quale funzione attivare.
I codici M sono anche noti come codici di funzione vari o codici di funzione ausiliaria.
A differenza della maggior parte dei codici G, i codici M normalmente non definiscono la posizione dell'utensile di taglio.
Controllano invece funzioni di supporto della macchina, come ad esempio:
- Avvio e arresto del mandrino
- Cambio utensili
- Attivazione e disattivazione del liquido di raffreddamento
- Messa in pausa del programma
- Fine del programma
- Chiamata di un sottoprogramma
L'articolo originale elenca i seguenti codici M di uso comune.
Codici M CNC comuni
| codice M | Funzione | Esempio o spiegazione |
|---|---|---|
| M03 | Rotazione in avanti del mandrino | Utilizzato con un valore S, come ad esempio S3000 M03 |
| M04 | Rotazione inversa del mandrino | Utilizzato per utensili speciali o per alcune operazioni di filettatura. |
| M05 | Arresto del mandrino | Il mandrino dovrebbe normalmente fermarsi prima di un cambio utensile. |
| M06 | Cambio utensile automatico | Utilizzato con un comando T, come T02 M06 |
| M08 | Refrigerante attivo | Attiva il liquido di raffreddamento durante il taglio |
| M09 | Liquido di raffreddamento spento | Interrompe l'erogazione del liquido di raffreddamento prima del cambio utensile o del completamento del programma. |
| M00 | Arresto del programma | Attende che l'operatore prema il pulsante AVVIO CICLO |
| M01 | Fermata facoltativa | Si arresta solo quando l'interruttore di ARRESTO OPZIONALE è attivato |
| M30 | Fine programma e ripristino | Normalmente utilizzato al termine di un programma completo |
| M98 | Chiamata di sottoprogramma | Esegue una sottoprogramma specificata, a volte con un conteggio di ripetizioni |
Perché ogni programma CNC necessita di un blocco di inizializzazione di sicurezza
C'è una regola che gli operatori CNC di solito ricordano dopo aver assistito anche a una sola collisione grave tra macchine:
Ogni programma CNC dovrebbe iniziare con un blocco di inizializzazione della sicurezza.
Una tipica linea di sicurezza in formato FANUC è:
G90 G94 G40 G49 G80
Questa riga elimina le condizioni modali potenzialmente pericolose rimaste attive da un programma precedente.
G90 — Seleziona la modalità coordinate assolute
G90
Ciò impedisce che il nuovo programma venga eseguito accidentalmente sotto G91 Modalità incrementale lasciata attiva dal programma precedente.
Senza G90una coordinata intesa come posizione assoluta potrebbe essere interpretata come una distanza di movimento aggiuntiva.
G94 — Selezionare la velocità di alimentazione al minuto
G94
Questo seleziona la velocità di alimentazione al minuto, normalmente espressa in:
mm/min
Impedisce al programma di utilizzare accidentalmente G95 avanzamento per giro lasciato attivo da un'altra operazione.
G40 — Annulla Compensazione del raggio di taglio
G40
Ciò annulla la compensazione attiva del raggio di taglio.
Previene un precedente G41 or G42 valore di compensazione derivante dalla modifica imprevista del percorso utensile programmato.
G49 — Annulla la compensazione della lunghezza dell'utensile
G49
Ciò disattiva la compensazione attiva della lunghezza dell'utensile.
Ciò impedisce che un precedente offset H continui a influenzare la posizione dell'asse Z nel nuovo programma.
G80 — Annulla i cicli preimpostati
G80
Ciò annulla le operazioni di foratura, alesatura, maschiatura o altri cicli preimpostati.
Impedisce che un ciclo di foratura rimasto attivo dal programma precedente venga ripetuto inaspettatamente nel nuovo programma.
L'articolo originale evidenzia questi comandi come essenziali per eliminare le condizioni modali residue prima dell'inizio del programma di lavorazione.
Una semplice regola di sicurezza da ricordare.
G40 G49 G80 clear the previous compensation and cycles.
G90 G94 establish the correct coordinate and feed modes.
In parole semplici:
Elimina prima le vecchie impostazioni, poi imposta la nuova modalità di programma.
Perché questo blocco di sicurezza è importante
Immagina che il programma precedente sia terminato mentre G43 La compensazione della lunghezza dell'utensile era ancora attiva.
Il programma successivo inizia direttamente con G54, senza prima annullare il restante compenso.
Quando l'asse Z si abbassa, il controllo potrebbe continuare ad applicare l'offset di lunghezza dell'utensile precedentemente impostato. Di conseguenza, l'utensile potrebbe spostarsi di decine di millimetri più del previsto e urtare il pezzo in lavorazione.
Un breve blocco di inizializzazione può prevenire costosi incidenti a utensili, pezzi in lavorazione, dispositivi di fissaggio, mandrini o macchinari.
Esempio completo del programma FANUC
Ora combiniamo i codici G e i codici M in un semplice programma.
O0001
G94 G40 G49 G80
T01 M06
G90 G00 G54 X0. Y0.
S3000 M03
G43 H01 Z100.
G01 Z-5. F200
...
G00 Z50.
M09
G49
G91 G28 Z0.
M30
Il programma mostrato nel codice sorgente utilizza il cambio utensile, la selezione dell'offset di lavoro, il controllo del mandrino, la compensazione della lunghezza dell'utensile, l'avanzamento di taglio, l'arresto del refrigerante, l'annullamento della compensazione e il ritorno del riferimento dell'asse Z.
Spiegazione riga per riga
Numero del programma
O0001
Definisce il numero del programma CNC.
Inizializzazione della sicurezza
G94 G40 G49 G80
Questa riga:
- Seleziona la velocità di alimentazione al minuto
- Annulla la compensazione del raggio di taglio
- Annulla la compensazione della lunghezza dell'utensile
- Annulla i cicli preimpostati attivi
Per una protezione aggiuntiva, molti programmi includono anche G90 nella riga di inizializzazione della sicurezza:
G90 G94 G40 G49 G80
Cambio utensile
T01 M06
In questo modo viene selezionato l'utensile 1 ed viene eseguito un cambio utensile automatico.
Seleziona Offset di lavoro e spostati nella posizione iniziale
G90 G00 G54 X0. Y0.
Questa riga:
- Seleziona la programmazione a coordinate assolute
- Seleziona il posizionamento rapido
- Attiva il sistema di coordinate di lavoro G54
- Si sposta rapidamente verso X0 e Y0
Avviare il mandrino
S3000 M03
Questo avvia il mandrino in direzione di avanzamento a:
3000 rpm
Attiva la compensazione della lunghezza dell'utensile
G43 H01 Z100.
Questa riga:
- Attiva la compensazione positiva della lunghezza dell'utensile
- Utilizza l'offset di lunghezza utensile H01
- Posiziona l'asse Z a 100 mm
Inserire l'utensile nel pezzo in lavorazione
G01 Z-5. F200
Questo sposta l'utensile in linea retta verso:
Z = -5 mm
con una velocità di alimentazione pari a:
200 mm/min
Ritirarsi su un piano di volo sicuro.
G00 Z50.
Questo ritrae rapidamente l'utensile per:
Z = 50 mm
Chiudere il circuito di raffreddamento
M09
Questo disattiva il sistema di raffreddamento.
Annulla la compensazione della lunghezza dell'utensile
G49
Ciò annulla la compensazione attiva della lunghezza dell'utensile.
Riportare l'asse Z al punto di riferimento.
G91 G28 Z0.
Questo utilizza la modalità incrementale.
L'asse Z esegue innanzitutto uno spostamento incrementale di zero, il che significa che la sua posizione attuale diventa il punto intermedio. Quindi ritorna al punto di riferimento dell'asse Z della macchina.
Terminare il programma
M30
Questo termina e riavvia il programma.
Riepilogo: Comprensione dei codici G e dei codici M
I codici G e i codici M svolgono due funzioni diverse ma complementari in un programma CNC.
Codici G
I codici G controllano principalmente il movimento dell'utensile e le modalità di coordinate.
Esempi importanti includono:
G00— Posizionamento rapidoG01— Taglio lineareG02— Interpolazione circolare in senso orarioG03— Interpolazione circolare in senso antiorarioG90— Programmazione a coordinate assoluteG91— Programmazione a coordinate incrementaleG28— Ritorno al punto di riferimento della macchinaG54— Selezionare il primo sistema di coordinate di lavoro
Codici M
I codici M controllano principalmente le funzioni ausiliarie delle macchine.
Esempi importanti includono:
M03— Avviare il mandrinoM05— Arrestare il mandrinoM06— Cambia strumentoM08— Aprire il circuito di raffreddamentoM09— Chiudere il circuito di raffreddamentoM30— Termina e riavvia il programma
Punti chiave da ricordare
- I codici modali rimangono attivi finché non vengono sostituiti da un altro codice dello stesso gruppo.
- I codici non modali si applicano solo al blocco di programma in cui compaiono.
G00Non deve essere utilizzato con noncuranza in prossimità del pezzo in lavorazione.G90utilizza coordinate assolute.G91utilizza coordinate incrementali.G28Normalmente si muove attraverso un punto intermedio prima di tornare al punto di riferimento della macchina.G90 G28 Z0.può innanzitutto spostare l'utensile verso la posizione di coordinate di lavoro assolute Z0.G91 G28 Z0.Utilizza la posizione corrente come punto intermedio prima di tornare al punto di riferimento Z.- Ogni programma dovrebbe iniziare con un blocco di inizializzazione di sicurezza come
G90 G94 G40 G49 G80.
Supporto per lavorazione CNC da stampo in fusione
Presso Cast Mold, la lavorazione CNC è una parte importante del nostro servizio di produzione completo.
Forniamo un supporto integrato che comprende:
- Progettazione di stampi per pressofusione
- Produzione stampi
- pressofusione di leghe di alluminio e zinco
- Lavorazione CNC
- Foratura e maschiatura
- Finitura superficiale
- Ispezione dimensionale
- Montaggio e spedizione
Per i componenti pressofusi, le caratteristiche lavorate a CNC sono spesso necessarie per:
- Fori di montaggio di precisione
- Discussioni
- Superfici di tenuta
- Posizioni dei cuscinetti
- Interfacce di assemblaggio
- Aree critiche di planarità
- Dimensioni a tolleranza ristretta
Grazie alla combinazione di attrezzature, pressofusione, lavorazione CNC, trattamento superficiale e ispezione, aiutiamo i clienti a ridurre i tempi di comunicazione tra i diversi fornitori e a migliorare la coerenza dimensionale nella produzione in serie.
Per la valutazione del progetto, si prega di fornire:
- Disegni 2D
- Modelli 3D
- Requisiti materiali
- Quantità annua
- Requisiti di finitura superficiale
- Tolleranze critiche
- Requisiti di ispezione
Servizi di pressofusione di alluminio
Scopri di più sui nostri servizi di pressofusione di alluminio ad alta pressione in Cina.



