Il codice G (codice geometrico) definisce la struttura e il movimento di una macchina CNC: posizionamento, interpolazione lineare, percorsi circolari e velocità di avanzamento. Il codice M (codice vario) controlla il comportamento e il funzionamento esterno della macchina: rotazione del mandrino, flusso del liquido di raffreddamento, cambi utensile e arresti del programma. In breve: codice G = dove si muove la macchina. Codice M = come funziona la macchina.
Nella maggior parte dei casi si usano entrambi. Il codice G senza codice M crea un percorso utensile senza rotazione del mandrino né raffreddamento. Il codice M senza codice G attiva le funzioni della macchina ma non esegue alcun movimento. Insieme, costituiscono il fondamento di ogni processo di lavorazione CNC automatizzato mai realizzato.
Cos'è il codice G?
Il codice G è un linguaggio di programmazione per il controllo numerico, non un linguaggio di programmazione tradizionale. Utilizza comandi alfanumerici per descrivere i movimenti degli utensili, in modo che le macchine CNC sappiano come tagliare i materiali. I comandi sono scritti in blocchi lineari e solitamente consistono in una lettera seguita da un numero, che definisce azioni specifiche.
% O1001 (La mia parte) G21 (Unità metriche) G90 (Posizionamento assoluto) G00 X0 Y0 Z50 (Movimento rapido) G01 Z-5 F100 (Avanzamento lineare) G02 X10 Y10 I5 J0 (Interpolazione circolare) M30 (Fine programma) %
Migliori G00 dice alla macchina: "Questo è un movimento di posizionamento rapido". G01 significa interpolazione lineare del feed. Questo G02 Crea un taglio circolare in senso orario. Il codice G è puramente geometrico: determina dove si muove l'utensile e a quale velocità, non lo stato dell'hardware ausiliario della macchina.
Precisione geometrica
La programmazione CNC moderna si basa in larga misura sui codici G modali che definiscono lo stato operativo della macchina, non solo la sua posizione. Il loro corretto utilizzo è fondamentale per la sicurezza e la precisione:
G54 (Sistema di coordinate di lavoro 1) G17 (Selezione piano XY) G41 D01 (Compensazione utensile sinistra) G43 H01 Z10 (Compensazione lunghezza utensile) G40 (Annulla compensazione utensile) G49 (Annulla compensazione lunghezza utensile)
G54, G17, G41e G43 Indicare al controllore della macchina esattamente come interpretare le dimensioni fisiche e i sistemi di coordinate utilizzati. Una semplice coordinata con la selezione errata del piano fornisce alla macchina una logica di taglio errata. I controllori CNC attribuiscono grande importanza ai codici di impostazione geometrica durante l'elaborazione dei percorsi utensile: si tratta di un segnale diretto di sicurezza e precisione.
Cos'è il codice M?
Il codice M è un linguaggio di controllo per macchine utensili. Permette di selezionare le funzioni hardware e di applicare ad esse le regole operative. Un comando in codice M è tipicamente costituito dalla lettera M seguita da un numero, che attiva relè interni o controllori logici programmabili (PLC) all'interno della macchina CNC.
/* Avviare il mandrino in senso orario a 2000 giri/minuto */ M03 S2000 /* Attivare il raffreddamento a flusso continuo */ M08 /* Eseguire un cambio utensile all'utensile n. 2 */ M06 T02
Il codice M può essere applicato e strutturato in alcuni modi specifici a seconda dei parametri del controllore della macchina:
Esecuzione standard: posizionata su una riga separata o accanto a un movimento in codice G per essere eseguita simultaneamente. Buona prassi per le operazioni standard.
Mantenimento della modalità: rimane attiva finché non viene esplicitamente annullata da un altro codice M (ad esempio, M08 attivazione liquido di raffreddamento rimane attivo finché M09 disattiva liquido di raffreddamento).
Uno per blocco: molti controllori più vecchi o più rigidi richiedono che venga eseguito un solo codice M per riga di codice per evitare conflitti nei comandi dei relè. Evitare di combinare più codici M per garantire un comportamento prevedibile della macchina.
Codice G vs Codice M: le 5 differenze principali
| Caratteristica | G-Code | Codice M |
|---|---|---|
| Ciò che fa | Definisce percorsi utensile, coordinate e movimento | Controlla l'hardware, le funzioni ausiliarie e gli stati |
| Sintassi | Comandi come: G00, G01, G90 | Comandi come: M03, M06, M30 |
| Può funzionare da solo? | Sì, la macchina si muoverà, ma senza il mandrino/liquido di raffreddamento. | No, l'hardware si accende ma non esegue alcun taglio. |
| Influisce sulla precisione? | Sì, definisce le dimensioni e le tolleranze esatte dei componenti. | Indirettamente — tramite cambi utensile, raffreddamento e velocità del mandrino |
| Dove vive | All'interno del corpo principale del programma CNC (file .nc) | Insieme al codice G all'interno degli stessi file di programma |
Il codice G risponde alla domanda "dove deve andare l'utensile?" Il codice M risponde alla domanda "cosa deve fare l'hardware?" A G01 Il comando indica al controllore della macchina che si tratta di un movimento di taglio lineare. Il codice M indica se il mandrino è in rotazione e se il liquido di raffreddamento viene spruzzato durante tale movimento.
Il codice G è matematicamente indipendente. Una sequenza di codice G valida muove gli assi della macchina senza alcun codice M: semplicemente non taglierà il metallo. Il codice M dipende interamente dal contesto di lavorazione perché necessita di un percorso utensile per rendere utili le sue funzioni hardware. Inoltre, un codice G correttamente strutturato garantisce tolleranze geometriche ristrette e finiture superficiali uniformi, mentre il codice M supporta il processo mantenendo l'utensile a una temperatura adeguata e alla giusta velocità di rotazione.
Come funzionano insieme il codice G e il codice M
Ecco un esempio pratico della stessa operazione senza codice M e con codice M:
Solo codice G:
G90 G21 G00 X50 Y50 Z10 G01 Z-5 F200 G01 X100 Y50 G00 Z50
Questo si traduce in un movimento dell'utensile a secco, senza alimentazione elettrica. Il percorso fisico è presente – posizionamento, avanzamento nel pezzo e retrazione – ma non c'è rotazione del mandrino né raffreddamento, il che significa che l'utensile si romperebbe e si schianterebbe se fosse presente del materiale.
Aggiungi il codice M:
G90 G21 M06 T01 M03 S2500 G00 X50 Y50 Z10 M08 G01 Z-5 F200 G01 X100 Y50 G00 Z50 M09 M05
Ora lo stesso percorso utensile viene visualizzato come un'operazione di taglio completamente funzionale con selezione dell'utensile, rotazione del mandrino e raffreddamento attivo. La geometria non è cambiata, solo lo stato fisico della macchina. Questa separazione è ciò che rende modulare la programmazione CNC: è possibile cambiare l'utensile di taglio o la strategia di raffreddamento aggiornando i codici M senza modificare le coordinate del codice G sottostante.
La cascata e la gerarchia nella programmazione CNC
La "gerarchia" nella programmazione CNC descrive come il controllore della macchina gestisce le operazioni quando più codici sono presenti nello stesso blocco. Tre fattori determinano il modo in cui la macchina esegue le operazioni:
Ordine di esecuzione: i controllori leggono blocco per blocco, ma all'interno di un blocco, i codici M spesso si attivano prima o dopo i codici G a seconda dei parametri specifici della macchina.
Stati modali: quando un comando è modale (come G90 o M03), rimane attivo finché non viene annullato intenzionalmente. La comprensione degli stati modali impedisce alla macchina di trasferire un comando precedente in una nuova operazione.
Sovrascritture: gli interruttori fisici sulla macchina CNC possono sovrascrivere le velocità di avanzamento e le velocità del mandrino programmate, ma il codice programmato funge sempre da logica di base.
Programmazione CNC moderna nel 2026
La programmazione CNC si è evoluta notevolmente. Funzioni che anni fa richiedevano calcoli manuali sono ora gestite da macro avanzate e piattaforme software intuitive.
Programmazione conversazionale
I controllori conversazionali gestiscono le operazioni di base direttamente sulla macchina. Gli operatori inseriscono le dimensioni e la macchina genera automaticamente il codice G e il codice M necessari. Insieme, questi sistemi eliminano la necessità di digitare manualmente ogni coordinata.
/* Logica delle variabili macro */ #100 = 50.0 (Punto di partenza X) #101 = 25.0 (Punto di partenza Y) G00 X#100 Y#101
Automazione CAM avanzata
I moderni sistemi CAM rispondono al modello CAD digitale. Le piattaforme CAM calcolano percorsi utensile complessi a 5 assi ed elaborano in post-produzione il codice G e il codice M esatti, adattati ai singoli controllori delle macchine, rendendo i programmi realmente portabili tra diverse aree di produzione.
G05.1 Q1 (Modalità di lavorazione ad alta velocità) G43.4 H01 (Controllo del punto centrale dell'utensile per 5 assi)
Ciò consente alla macchina di elaborare blocchi di pre-elaborazione e di regolare le velocità di avanzamento in modo fluido, evitando solchi senza che il programmatore debba calcolare manualmente i punti di decelerazione.
Ottimizzazione del percorso utensile
I sistemi CNC avanzati consentono a una macchina di rispondere a feedback fisici, come l'usura dell'utensile o il carico del mandrino, cosa che in precedenza era possibile solo con l'intervento dell'operatore.
/* Il controllo adattivo regola l'avanzamento in base al carico del mandrino */ G31 P1 (Funzione di salto per la misurazione automatica e gli aggiornamenti dell'offset)
Quale dovresti imparare per primo: il codice G o il codice M?
Impara prima il codice G. Puoi scrivere un percorso utensile completo e strutturalmente valido usando solo il codice G. Il codice M, invece, richiede un percorso fisico da supportare: non ha senso avviare un mandrino se l'utensile non ha spazio per muoversi.
Un percorso di apprendimento pratico: iniziate con il codice G per comprendere i sistemi di coordinate, l'interpolazione e le velocità di avanzamento. La maggior parte degli operatori può essere produttiva con il codice G e il codice M di base in poche settimane. Padroneggiarli – comprendendo a fondo la logica modale, scrivendo variabili macro efficienti e ottimizzando i percorsi utensile ad alta velocità – richiede più tempo ed è davvero prezioso. Per coloro che desiderano accelerare il proprio apprendimento, i moderni simulatori CAM offrono ambienti digitali che consentono di esercitarsi con il codice G e il codice M in modo sicuro e in tempo reale.
Codice G: piani cartesiani, movimenti lineari, interpolazione circolare, compensazioni.
Codice M: controllo del mandrino, sistemi di raffreddamento, cambio utensile, arresto del programma.
Macro: logica, variabili, istruzioni condizionali, interrogazione automatizzata.
Codice G, codice M e software CNC
Comprendere il codice G e il codice M ti rende un programmatore CNC migliore, non solo un operatore più abile nella pressione dei pulsanti. Quando sai che un ciclo di foratura è una combinazione di coordinate in codice G e comandi del mandrino in codice M, programmi percorsi utensile che si traducono direttamente in movimenti efficienti della macchina, anziché in movimenti che sprecano tempo prezioso.
Questa è l'idea centrale alla base degli strumenti di produzione assistita da computer (CAM). Quando i programmatori lavorano con parametri reali della macchina, e non solo con approssimazioni visive su uno schermo, il divario tra progettazione digitale e produzione fisica si riduce. Ciò che è presente nella simulazione è ciò che viene tagliato. Non c'è una fase di traduzione in cui un operatore deve indovinare cosa intendesse il programmatore.
Il software CAM moderno visualizza sullo schermo i percorsi utensile reali, percorsi creati con codice G e codice M effettivi, gli stessi inviati al controllore della macchina. Quando si regola una velocità di avanzamento o una strategia di taglio nel software CAM, si modificano esattamente le stesse proprietà che un operatore modificherebbe nel controllore. L'output è un percorso verificato. .nc file che fa riferimento direttamente a quegli stati della macchina.
Domande frequenti: Codice G vs Codice M
D: Qual è la differenza tra codice G e codice M?
Il codice G definisce la geometria e il movimento di una macchina CNC: posizionamento, linee, archi e velocità. Il codice M controlla le funzioni hardware: rotazione del mandrino, raffreddamento e cambio utensile. Codice G = dove si muove. Codice M = come funziona.
D: Dovrei imparare prima il codice G o il codice M?
Innanzitutto, impara il codice G. Esso costituisce la base della programmazione CNC, definendo i percorsi utensile e i movimenti. Il codice M completa il codice G controllando le funzioni della macchina. Una volta padroneggiato il codice G, l'apprendimento del codice M e della programmazione macro migliorerà la tua capacità di automatizzare e ottimizzare le operazioni.
D: Una macchina CNC può funzionare senza codice M?
Sì, ma si limiterà a muovere gli assi senza eseguire tagli o lavorazioni meccaniche. Il codice M è essenziale per abilitare funzioni hardware come la rotazione del mandrino, il flusso del liquido di raffreddamento e il cambio utensile, che sono fondamentali per le operazioni CNC pratiche.
D: Il codice M può funzionare senza il codice G?
No. Il codice M attiva le funzioni hardware, ma senza il codice G per definire i movimenti, la macchina rimarrà ferma e non eseguirà alcuna operazione di lavorazione.
D: Cos'è il codice G modale e perché è importante?
I comandi G-Code modali rimangono attivi finché non vengono esplicitamente annullati, come ad esempio G90 (posizionamento assoluto) o G41 (compensazione utensile). Ciò riduce la necessità di codifica ripetitiva, migliora la leggibilità del programma e velocizza l'elaborazione da parte del controllore.
D: Il codice G o il codice M influiscono sul tempo di ciclo?
Entrambi. Un codice G efficiente riduce al minimo i movimenti non necessari e il taglio a vuoto, diminuendo il tempo di ciclo. Il codice M influisce sul tempo di ciclo meccanicamente, ad esempio durante i cambi utensile (M06) o l'accelerazione del mandrino (M03).
D: Che cos'è un post-processore CNC?
Un post-processore è un software che converte i percorsi utensile generati dal CAM nei dialetti G-Code e M-Code specifici richiesti da una macchina CNC, garantendo la compatibilità con marchi come Haas, Fanuc e Mazak.
D: Una macchina CNC può funzionare utilizzando solo il codice G?
No. Mentre il codice G definisce i movimenti, il codice M è necessario per attivare le funzioni essenziali della macchina, come la rotazione del mandrino e il flusso del liquido di raffreddamento. Entrambi sono indispensabili per completare le operazioni di lavorazione.
D: In che modo i codici M variano tra le diverse marche di macchine CNC?
I codici M sono specifici per ogni macchina e possono variare significativamente tra le diverse marche. Ad esempio, M03 (rotazione del mandrino in senso orario) è standard, ma altri codici come M06 (cambio utensile) o M30 (fine programma) possono avere implementazioni diverse a seconda del produttore.
D: Cosa succede se un programma non contiene il comando M30 alla fine?
Senza il comando M30, la macchina CNC non si ripristinerà al punto di partenza del programma né si arresterà correttamente. Ciò può lasciare la macchina in uno stato attivo, richiedendo un intervento manuale per il ripristino.
D: I codici G per un tornio CNC sono diversi da quelli per una fresatrice CNC?
Sì. Sebbene molti codici G siano condivisi, alcuni sono specifici per il tipo di macchina. Ad esempio, G71 (ciclo di tornitura di sgrossatura) viene utilizzato nei torni, mentre G17 (selezione del piano XY) è specifico per le fresatrici.
D: Quali codici sono considerati modali e quali non modali?
I codici modali rimangono attivi finché non vengono annullati, come ad esempio G90 (posizionamento assoluto) o G01 (interpolazione lineare). I codici non modali, come G04 (tempo di permanenza), si applicano solo alla riga su cui sono scritti e non sono persistenti.
D: Come posso trovare l'elenco dei codici M per la mia specifica macchina?
Consulta il manuale d'uso o la guida di programmazione della tua macchina CNC. Produttori come Haas, Fanuc e Mazak forniscono documentazione dettagliata che include un elenco completo dei codici M supportati e delle relative funzioni.
Sintesi
Il codice G e il codice M sono distinti ma inseparabili. Il codice G conferisce significato e struttura al percorso della macchina: è su di esso che si basano coordinate, dimensioni e tolleranze. Il codice M fornisce la capacità operativa: alimenta il mandrino e impedisce il surriscaldamento dell'utensile.
Nel 2026, entrambi rimangono i fondamenti di tutto nella produzione CNC. Il software CAM va e viene. La progettazione delle macchine si evolve. Il codice G e il codice M sono rimasti stabili per decenni e lo rimarranno per i decenni a venire. Comprenderli a fondo – non solo le basi, ma anche gli stati modali, la gerarchia dei controllori, le variabili macro e le tecniche ad alta velocità – è una delle competenze più durature nella lavorazione di precisione.
Elenco dei codici G più comuni per la lavorazione CNC
| Code | Significato | Code | Significato |
|---|---|---|---|
| G00 | Posizionamento rapido | G56 | Sistema di coordinate di lavoro G56 |
| G01 | Interpolazione lineare | G57 | Sistema di coordinate di lavoro G57 |
| G02 | Interpolazione circolare in senso orario | G58 | Sistema di coordinate di lavoro G58 |
| G03 | Interpolazione circolare in senso antiorario | G59 | Sistema di coordinate di lavoro G59 |
| G04 | Tempo di permanenza | G65 | Chiama il programma Macro |
| G05 | Attiva la modalità ad alta precisione | G68 | Rotazione delle coordinate |
| G10 | Input dati programmabile | G69 | Annullare la rotazione delle coordinate |
| G17 | Piano XY | G73 | Ciclo di foratura a intermittenza ad alta velocità |
| G18 | Piano XZ | G76 | Ciclo di alesatura fine |
| G19 | Piano YZ | G80 | Annulla ciclo fisso |
| G20 | Unità imperiali | G81 | Ciclo di perforazione |
| G21 | Unità metrica | G82 | Ciclo di foratura con sosta (P) |
| G28 | Ritorno al punto di riferimento | G83 | Ciclo di foratura Peck |
| G40 | Annulla Compensazione del raggio di taglio | G84 | Toccando Ciclo |
| G41 | Compensazione sinistra del raggio di taglio | G85 | Ciclo noioso |
| G42 | Compensazione del raggio di taglio | G86 | Ciclo di alesatura grossolana |
| G43 | Compensazione positiva della lunghezza dell'utensile | G87 | Ciclo di alesatura posteriore |
| G44 | Compensazione negativa della lunghezza dell'utensile | G90 | Modalità coordinate assolute |
| G49 | Annulla compensazione lunghezza utensile | G91 | Modalità di coordinate incrementali |
| G52 | Sistema di coordinate locali | G94 | Alimentazione al minuto |
| G53 | Sistema di coordinate della macchina | G95 | Alimentazione per giro |
| G54 | Sistema di coordinate di lavoro G54 | G98 | Ritorno al punto di partenza del ciclo fisso |
| G55 | Sistema di coordinate di lavoro G55 | G99 | Ritorno al punto R del ciclo fisso |
Elenco dei codici M comuni per la lavorazione CNC
| Codice M | Funzione | Codice M | Funzione |
|---|---|---|---|
| M00 | Arresto programma Program | M01 | Arresto programma opzionale |
| M02 | Fine del programma (reset) | M03 | Mandrino in senso orario |
| M04 | Rotazione del mandrino in senso antiorario | M05 | Arresto del mandrino |
| M08 | Refrigerante acceso | M09 | Refrigerante spento |
| M10 | Avanzamento della contropunta | M11 | Contropunta |
| M12 | Morsetto a mandrino | M13 | Mandrino sbloccato |
| M14 | Controllo della posizione del mandrino | M15 | Controllo della velocità del mandrino |
| M20 | Morsetto per mandrino | M21 | Sbloccare il mandrino |
| M24 | Controllo della posizione del secondo mandrino | M25 | Controllo della velocità del secondo mandrino |
| M32 | Lubrificazione su | M40 | Posizione neutra dell'ingranaggio del mandrino |
| M41 | Ingranaggio del mandrino in posizione bassa | M42 | Ingranaggio mandrino in posizione alta |
| M68 | Morsetto idraulico a mandrino | M69 | Sblocco del mandrino idraulico |
| M78 | Avanzamento della contropunta | M79 | Contropunta |
| M98 | Chiamata al sottoprogramma | M99 | Fine del sottoprogramma |
Rivolgiti a Essengold per i servizi di lavorazione CNC.
Comprendere il codice G e il codice M è fondamentale per la programmazione CNC, ma il vero successo nei progetti di lavorazione richiede competenza, precisione e capacità produttive avanzate. Collaborare con un'officina meccanica o un macchinista qualificato, esperto in accuratezza geometrica e tecnologie CNC all'avanguardia, può fare la differenza. Cerchi un partner affidabile per dare vita al tuo progetto di lavorazione CNC?
Essengold Siamo un'azienda leader e affidabile nei servizi di lavorazione CNC. Offriamo una qualità eccellente a prezzi competitivi, garantendo la produzione di componenti con precisione ed efficienza. Il nostro team di macchinisti, ingegneri e programmatori esperti analizzerà i vostri modelli CAD 3D e utilizzerà la programmazione CAM avanzata per produrre componenti che soddisfino le vostre specifiche esatte. Come possiamo aiutarti? Ottieni risultati eccezionali per il tuo prossimo progetto di lavorazione!


