Codice G per la programmazione CNC

Marti Deans Novembre 18, 2022 8 min read

This post is also available in: Deutsch (Tedesco) English (Inglese)

In questo articolo parleremo della componente fondamentale di ogni programmazione CNC: il codice G.

g-code

Sai cosa si dice delle nozioni fondamentali: imparale per prima cosa e le ricorderai per sempre. Lo stesso vale per la programmazione delle macchine CNC. Sebbene le nuove tecnologie di produzione si diffondano, i fondamenti della lavorazione delle parti con un programma CNC ti rimarranno impressi per tutta la vita.

Il codice G in sintesi

I produttori di tutto il mondo utilizzano la programmazione CNC per controllare gli utensili di una macchina e produrre pezzi. Il cuore di questo processo di produzione automatizzato è costituito da una serie di istruzioni che indicano a un macchinario CNC dove e come muoversi. Queste istruzioni sono chiamate Codice G (G-Code).

Il codice G è stato creato negli anni ’60 dall’Electronics Industry Association (EIA). Sebbene il linguaggio ufficiale sia documentato come RS-274D, tutti si riferiscono ad esso come codice G. Il perché? Molti dei termini o dei singoli frammenti di codice che compongono questo linguaggio iniziano con la lettera G.

Anche se il codice G dovrebbe essere uno standard universale, scoprirai che molte aziende produttrici di macchine CNC hanno sviluppato il loro gusto unico. Tutti apprezziamo un buon gelato, ma una Haas potrebbe essere alla fragola e una Tormach al cioccolato. A causa di questa differenza nei gusti del codice G, è fondamentale capire come il proprio macchinario utilizza il codice G.

Perché esistono differenze nei gusti del codice G? La questione è legata alle capacità di ogni macchina. Prendiamo una macchina in grado di elaborare una rotazione del sistema di coordinate in base agli input della sonda. Avrai bisogno di una serie di comandi in codice G in grado di attivare o disattivare questa rotazione. Un’altra macchina che non ha questa capacità di regolazione non avrà bisogno di questo codice G.

In caso di dubbi, fai sempre riferimento alla documentazione della tua macchina CNC mentre leggi il resto di questo articolo. Ti illustreremo le nozioni di base, ma non è detto che la tua macchina non debba seguire un percorso leggermente diverso per raggiungere la stessa destinazione finale.

Blocchi di Codice G

Gli standard del codice G sono stati pubblicati all’epoca in cui le macchine avevano una piccola quantità di memoria. A causa di questa limitazione di memoria, il codice G è un linguaggio estremamente compatto e conciso che a prima vista potrebbe sembrare arcaico. Prendiamo ad esempio questa riga di codice:

G01 X1 Y1 F20 T01 M03 S500

In questa singola riga, stiamo dando alla macchina una serie di istruzioni:

Linee multiple di codice G come queste si combinano per formare un programma CNC completo. Le macchine CNC leggono il codice una riga alla volta, da sinistra verso destra e dall’alto verso il basso, come se leggessero un libro. Ogni serie di istruzioni si trova su una linea separata o su un blocco.

Programmi in codice G

L’obiettivo di ogni programma di codice G è quello di produrre pezzi nel modo più sicuro ed efficiente possibile. Per raggiungere questo obiettivo, in genere, i blocchi di codice G sono disposti in un ordine particolare come il seguente:

  1. Avvia il programma CNC.
  2. Carica l’utensile richiesto.
  3. Attiva il mandrino.
  4. Attiva il refrigerante.
  5. Spostati in una posizione al di sopra del pezzo.
  6. Avvia il processo di lavorazione.
  7. Disattiva il refrigerante.
  8. Disattiva il mandrino.
  9. Allontanati dal pezzo verso una posizione sicura.
  10. Termina il programma CNC.

Questo flusso è un programma semplice che utilizza un solo strumento per un’unica operazione. In pratica, in genere si ripetono i passaggi da 2 a 9. Ad esempio, il programma in codice G riportato di seguito comprende tutti i blocchi di codice precedenti con sezioni ripetute dove necessario:

Example of a CNC G-code program with explanations of each code block

Modali e codici di indirizzo

Come altri linguaggi di programmazione, il codice G può ripetere un’azione all’infinito finché non viene interrotta. Questo processo di looping utilizza un codice modale, che agisce fino a quando non viene disattivato o modificato con un altro codice modale. Ad esempio, M03 è un codice modale che fa girare un mandrino all’infinito finché non gli ordini di fermarsi con M05. Ora, aspetta un attimo. Questa parola (ricorda: una parola è un piccolo pezzo di codice) non inizia con la G, ma è comunque un codice G. Le parole che iniziano con una M sono codici macchina e attivano o disattivano funzioni della macchina come il refrigerante, il mandrino e i morsetti. Ne elencheremo alcuni comuni nella prossima sezione, ma puoi trovare un elenco dei codici M della tua macchina nella sua documentazione.

Il codice G include anche un elenco completo di codici di indirizzo. Puoi considerarli come il dizionario del codice G che definisce particolari comportamenti. I codici di indirizzo iniziano con la lettera di designazione, come G, e seguono con una serie di numeri. Ad esempio, X2 definisce un codice di indirizzo per la coordinata X, dove 2 è il valore sull’asse X su cui spostare la macchina.

L’elenco completo dei codici di indirizzo comprende:

Examples of address code parameters

A un programma in codice G possono essere aggiunti diversi codici di caratteri speciali. In genere vengono utilizzati per avviare un programma, eliminare il testo o ignorare i caratteri. Includono:

Panoramica dei codici G e dei codici M

I codici G e M costituiranno la maggior parte del tuo programma CNC. I codici che iniziano con G preparano la tua macchina a eseguire un tipo specifico di movimento. I codici G più comuni che si incontrano più volte in ogni programma CNC sono:

G0 – Movimento rapido

Questo codice indica a una macchina di spostarsi il più velocemente possibile verso una posizione di coordinate specificata. G0 sposterà la macchina asse per asse, il che significa che si muoverà prima lungo entrambi gli assi e terminerà lo spostamento su quello che non è in posizione. Nella figura seguente è mostrato un esempio di questo movimento:

Diagram showing the motion of a G00 rapid move

G1 – Movimento lineare

Questo codice indica a una macchina di muoversi in linea retta verso una posizione coordinata con un avanzamento definito. Ad esempio, G1 X1 Y1 F32 sposterà la macchina verso le coordinate X1, Y1, con un avanzamento di 32.

G2, G3 – Arco in senso orario, arco in senso antiorario

Questi codici indicano alla macchina di muoversi in un arco verso una coordinata di destinazione. Due coordinate aggiuntive, I e J, definiscono la posizione centrale dell’arco, come mostrato di seguito:

Diagram showing CW and CCW arc interpolation using G02 and G03

G17, G18, G19 – Designazioni dei piani

Questi codici definiscono su quale piano verrà lavorato un arco. Per impostazione predefinita, la tua macchina CNC utilizzerà G17, che è il piano XY. Gli altri due piani sono mostrati nell’immagine sottostante:

Plane selection diagram showing XY, YZ, and ZX planes

G40, G41, G42 – Compensazione del diametro dell’utensile

Questi codici definiscono la compensazione del diametro della lama, o CDC, che permette a una macchina CNC di posizionare l’utensile a sinistra o a destra di un percorso definito. Un registro D memorizza la compensazione per ogni utensile.

Diameter offset table with example values in tool 1.

G43 – Compensazione della lunghezza dell’utensile

Questo codice definisce la lunghezza dei singoli utensili utilizzando l’altezza dell’asse Z. Ciò consente alla macchina CNC di capire dove si trova la punta di un utensile rispetto al pezzo su cui sta lavorando. Un registro definisce le compensazioni della lunghezza dell’utensile, dove H è l’offset della lunghezza dell’utensile e Z è la sua lunghezza.

Tool Length offset table with tool length value examples

G54 – Compensazione di lavorazione

Questo codice viene utilizzato per definire una compensazione, che determina la distanza tra le coordinate interne di una macchina e l’origine di un pezzo. Nella tabella sottostante, solo G54 ha una definizione di compensazione. Tuttavia, si possono programmare più compensazioni se un lavoro richiede la lavorazione contemporanea di più pezzi.

Work Offset table with values for a work offset included in the G54

Codici M

I codici M sono codici macchina che possono differire tra le macchine CNC. Questi codici controllano le funzioni della macchina CNC, come le direzioni del refrigerante e del mandrino. Alcuni dei codici M più comuni sono i seguenti:

Sample of common machine codes or m-codes

Cicli fissi in codice G

L’ultimo aspetto del codice G da toccare è quello dei cicli fissi. Sono simili ai metodi o alle funzioni della programmazione informatica. Consentono di eseguire un’azione complicata con poche righe di codice, senza dover digitare tutti i dettagli.

Prendiamo, ad esempio, il seguente ciclo fisso. In questo caso stiamo dicendo allo strumento CNC di creare un foro con una perforatrice in sole due righe di codice sulla sinistra. La stessa azione richiede oltre 20 righe di regolare codice G.

Canned Cycle vs Expanded G Code

Le basi prima di tutto

Anche se non finirai mai per scrivere il tuo programma CNC a

mano, la comprensione dei fondamenti del codice G ti darà una marcia in più nella tua carriera di programmatore CNC. Il comportamento di base rimane intatto tra i vari produttori, anche se il codice G effettivo differisce leggermente. In fin dei conti, si tratta di combinare coordinate, velocità di avanzamento e una serie di azioni definibili per muovere un utensile e lavorare un pezzo con successo.

Alcune guide consigliano di memorizzare i codici G e M più comuni. Anche se questo può funzionare, è la pratica a portare verso la perfezione! Utilizza e rinfresca continuamente le tue nozioni fondamentali sui codici G nel corso della tua carriera e vedrai che ti rimarranno impresse. Ecco un rapido quiz per vedere a che punto sei.

Sei pronto a mettere in pratica le tue conoscenze di programmazione CNC e del codice G? Prova Fusion 360 oggi stesso!

Get Fusion 360 updates in your inbox

By clicking subscribe, I agree to receive the Fusion 360 newsletter and acknowledge the Autodesk Privacy Statement.