Codice G - G-code

codici macchina
Paradigma Procedurale , Imperativo
Progettato da Istituto di Tecnologia del Massachussetts
Apparso per la prima volta Anni '50 (prima edizione)
Estensioni dei nomi dei file .gcode, .mpt, .mpf, .nc e molti altri
Principali implementazioni
molti, principalmente Siemens Sinumerik, FANUC , Haas , Heidenhain , Mazak . Generalmente esiste uno standard internazionale: ISO 6983.

Il codice G (anche RS-274 ) è il linguaggio di programmazione del controllo numerico computerizzato (CNC) più utilizzato . Viene utilizzato principalmente nella produzione assistita da computer per controllare macchine utensili automatizzate e ha molte varianti.

Le istruzioni del codice G vengono fornite a un controller della macchina (computer industriale) che indica ai motori dove muoversi, quanto velocemente muoversi e quale percorso seguire. Le due situazioni più comuni sono che, all'interno di una macchina utensile come un tornio o una fresa , un utensile da taglio viene spostato secondo queste istruzioni attraverso un percorso utensile che asporta materiale per lasciare solo il pezzo finito e/o, un pezzo non finito viene posizionato con precisione in uno qualsiasi dei nove assi attorno alle tre dimensioni rispetto a un percorso utensile e uno o entrambi possono spostarsi l'uno rispetto all'altro. Lo stesso concetto si estende anche a strumenti non taglienti come strumenti di formatura o brunitura, fotoplotting , metodi additivi come la stampa 3D e strumenti di misura.

implementazioni

La prima implementazione di un linguaggio di programmazione a controllo numerico è stata sviluppata presso il MIT Servomechanisms Laboratory alla fine degli anni '50. Nei decenni successivi, molte implementazioni sono state sviluppate da molte organizzazioni (commerciali e non). Il codice G è stato spesso utilizzato in queste implementazioni. La principale versione standardizzata utilizzata negli Stati Uniti è stata stabilita dall'Electronic Industries Alliance nei primi anni '60. Una revisione finale è stata approvata nel febbraio 1980 come RS-274-D . In altri paesi viene spesso utilizzato lo standard ISO 6983 , ma molti paesi europei utilizzano altri standard. Ad esempio, in Germania viene utilizzata la norma DIN 66025 e in Polonia si utilizzavano precedentemente PN-73M-55256 e PN-93/M-55251.

Estensioni e variazioni sono state aggiunte indipendentemente dai produttori di controlli e dai produttori di macchine utensili e gli operatori di un controllore specifico devono essere consapevoli delle differenze tra i prodotti di ciascun produttore.

Una versione standardizzata del codice G, nota come BCL (Binary Cutter Language), viene utilizzata solo su pochissime macchine. Sviluppato al MIT, BCL è stato sviluppato per controllare le macchine CNC in termini di linee rette e archi.

Negli anni '70 e '90, molti costruttori di macchine utensili CNC hanno tentato di superare le difficoltà di compatibilità standardizzandosi sui controller di macchine utensili costruiti da Fanuc . Siemens era un altro dominatore del mercato nei controlli CNC, specialmente in Europa. Negli anni 2010 le differenze e le incompatibilità dei controller non sono così problematiche perché le operazioni di lavorazione sono generalmente sviluppate con applicazioni CAD/CAM in grado di emettere il codice G appropriato per una macchina specifica tramite uno strumento software chiamato post-processore (a volte abbreviato in un "inviare").

Alcune macchine CNC utilizzano la programmazione "conversazionale", che è una modalità di programmazione simile a una procedura guidata che nasconde il codice G o ignora completamente l'uso del codice G. Alcuni esempi popolari sono Advanced One Touch (AOT) di Okuma, ProtoTRAK di Southwestern Industries, Mazatrol di Mazak, Ultimax e Winmax di Hurco, Intuitive Programming System (IPS) di Haas e il software conversazionale CAPS di Mori Seiki.

G-code è iniziato come un linguaggio limitato che mancava di costrutti come loop, operatori condizionali e variabili dichiarate dal programmatore con nomi che includono le parole naturali (o le espressioni in cui usarli). Non era in grado di codificare la logica, ma era solo un modo per "collegare i punti" in cui il programmatore ha scoperto a mano molte delle posizioni dei punti. Le ultime implementazioni di G-code includono funzionalità di linguaggio macro un po' più vicine a un linguaggio di programmazione di alto livello . Inoltre, tutti i produttori primari (ad es. Fanuc, Siemens, Heidenhain) forniscono accesso ai dati PLC , come i dati di posizionamento degli assi e i dati degli utensili, tramite variabili utilizzate dai programmi NC. Questi costrutti semplificano lo sviluppo di applicazioni di automazione.

Codici specifici

I codici G, detti anche codici preparatori, sono qualsiasi parola in un programma CNC che inizia con la lettera G . Generalmente è un codice che dice alla macchina utensile quale tipo di azione eseguire, come ad esempio:

  • Movimento rapido (trasportare l'utensile il più rapidamente possibile tra un taglio e l'altro)
  • Avanzamento controllato in linea retta o ad arco
  • Serie di movimenti di avanzamento controllato che comporterebbe l'alesatura di un foro, un pezzo tagliato (instradato) a una dimensione specifica o una forma di profilo (contorno) aggiunta al bordo di un pezzo
  • Imposta informazioni sull'utensile come offset
  • Cambia sistema di coordinate

Ci sono altri codici; i codici tipo possono essere pensati come registri in un computer.

Nel corso degli anni è stato sottolineato che il termine "G-code" è impreciso perché "G" è solo uno dei tanti indirizzi di lettere nella lingua completa. Deriva dal senso letterale del termine, riferito a una lettera di indirizzo e ai codici specifici che possono essere formati con essa (ad esempio G00, G01, G28), ma ogni lettera dell'alfabeto inglese è usata da qualche parte nella lingua . Tuttavia, "codice G" è stabilito metonimicamente come nome comune della lingua.

Indirizzi delle lettere

Alcuni indirizzi a lettera vengono utilizzati solo in fresatura o solo in tornitura; la maggior parte sono utilizzati in entrambi. Di seguito sono riportate in grassetto le lettere visualizzate più frequentemente durante un programma.

Fonti: metà 2008; metà 2010; Verde et al. 1996.

Variabile Descrizione Informazioni di corollario
UN Posizione assoluta o incrementale dell'asse A (asse di rotazione attorno all'asse X) La rotazione positiva è definita come una rotazione in senso antiorario guardando da X positivo verso X negativo.
B Posizione assoluta o incrementale dell'asse B (asse di rotazione attorno all'asse Y)
C Posizione assoluta o incrementale dell'asse C (asse di rotazione attorno all'asse Z)
D Definisce il diametro o l'offset radiale utilizzato per la compensazione della fresa. D viene utilizzato per la profondità di taglio sui torni. Viene utilizzato per la selezione dell'apertura e per i comandi sui fotoplotter. G41 : compensazione taglierina sinistra, G42 : compensazione taglierina destra
E Avanzamento di precisione per filettatura su torni
F Definisce la velocità di avanzamento Le unità comuni sono la distanza per tempo per le frese (pollici al minuto, IPM o millimetri al minuto, mm/min) e la distanza per giro per i torni (pollici per giro, IPR o millimetri per giro, mm/giro)
G Indirizzo per i comandi preparatori I comandi G spesso indicano al controllo quale tipo di movimento si desidera (es. posizionamento rapido, avanzamento lineare, avanzamento circolare, ciclo fisso) o quale valore di offset utilizzare.
h Definisce l'offset della lunghezza dell'utensile;
Asse incrementale corrispondente all'asse C (ad es. su un tornio-mulino)
G43 : Compensazione lunghezza utensile negativa, G44 : Compensazione lunghezza utensile positiva
io Definisce il centro dell'arco nell'asse X per i comandi arco G02 o G03 .
Utilizzato anche come parametro all'interno di alcuni cicli fissi.
Il centro dell'arco è la distanza relativa dalla posizione corrente al centro dell'arco, non la distanza assoluta dal sistema di coordinate di lavoro (WCS).
J Definisce il centro dell'arco nell'asse Y per i comandi arco G02 o G03 .
Utilizzato anche come parametro all'interno di alcuni cicli fissi.
Stesse informazioni di corollario di cui sopra.
K Definisce il centro dell'arco nell'asse Z per i comandi arco G02 o G03 .
Utilizzato anche come un parametro all'interno di alcuni cicli di lavorazione, pari a L indirizzo.
Stesse informazioni di corollario di cui sopra.
l Conteggio loop ciclo fisso;
Specifica di quale registro modificare utilizzando G10
Conteggio loop a ciclo fisso: definisce il numero di ripetizioni ("loop") di un ciclo fisso in ogni posizione. Si presume che sia 1 a meno che non sia programmato con un altro numero intero. A volte viene utilizzato l' indirizzo K al posto di L. Con il posizionamento incrementale ( G91 ), una serie di fori equidistanti può essere programmata come un anello anziché come singole posizioni. Utilizzo
G10 : Specifica di quale registro modificare (offset pezzo, offset raggio utensile, offset lunghezza utensile, ecc.).
m Funzioni varie Codice azione, comando ausiliario; le descrizioni variano. Molti codici M richiedono funzioni macchina, motivo per cui le persone spesso dicono che la "M" sta per "macchina", anche se non era previsto.
n Numero di riga (blocco) nel programma;
Numero del parametro di sistema da modificare utilizzando G10
Numeri di riga (blocco): facoltativi, spesso omessi. Necessario per determinate attività, come l' indirizzo M99 P (per indicare al controllo a quale blocco del programma tornare se non quello predefinito) o le istruzioni GoTo (se il controllo le supporta). La numerazione N non deve essere incrementata di 1 (ad esempio, può essere incrementata di 10, 20 o 1000) e può essere utilizzata su ogni blocco o solo in determinati punti del programma.
Numero parametro di sistema: G10 consente la modifica dei parametri di sistema sotto il controllo del programma.
oh Nome del programma Ad esempio, O4501. Per molti anni è stato comune per i display di controllo CNC utilizzare glifi dello zero barrato per garantire la distinzione senza sforzo della lettera "O" dalla cifra "0". I controlli della GUI di oggi spesso hanno una scelta di caratteri, come fa un PC.
P Serve come indirizzo di parametro per vari codici G e M
  • Con G04 , definisce il valore del tempo di sosta.
  • Serve anche come parametro in alcuni cicli fissi, rappresentando i tempi di sosta o altre variabili.
  • Utilizzato anche nella chiamata e nella terminazione di sottoprogrammi. (Con M98 , specifica quale sottoprogramma chiamare; con M99 , specifica a quale numero di blocco del programma principale tornare.)
Q Peck incremento in cicli fissi Ad esempio, G73 , G83 (cicli di foratura a passo)
R Definisce la dimensione del raggio dell'arco o definisce l'altezza di ritrazione nei cicli fissi di fresatura Per i raggi, non tutti i controlli supportano l'indirizzo R per G02 e G03 , nel qual caso vengono utilizzati i vettori IJK. Per l'altezza di rientro, il "livello R", come viene chiamato, viene riportato a se si programma G99 .
S Definisce la velocità , velocità del mandrino o velocità di superficie a seconda della modalità Tipo di dati = intero. In modalità G97 (che di solito è l'impostazione predefinita), un numero intero dopo S viene interpretato come un numero di giri/min (rpm). In modalità G96 (Velocità di superficie costante o CSS), un numero intero dopo S viene interpretato come velocità di superficie —sfm ( G20 ) o m/min ( G21 ). Vedere anche Velocità e avanzamenti . Sulle macchine multifunzione (turn-mill o mill-turn), quale mandrino riceve l'input (mandrino principale o contromandrini) è determinato da altri codici M.
T Selezione dello strumento Per capire come funziona l'indirizzo T e come interagisce (o meno) con M06 , è necessario studiare i vari metodi, come la programmazione della torretta del tornio, la selezione dell'utensile fisso ATC (Automatic Tool Change, impostato da M06 ), la selezione dell'utensile a memoria casuale ATC , il concetto di "prossimo strumento in attesa" e strumenti vuoti. La programmazione su una particolare macchina utensile richiede la conoscenza del metodo utilizzato dalla macchina.
tu Asse incrementale corrispondente all'asse X (tipicamente solo controlli del gruppo tornio A)
Definisce anche il tempo di sosta su alcune macchine (invece di " P " o " X ").
In questi controlli, X e U evitano rispettivamente G90 e G91 . Su questi torni G90 è invece un indirizzo di ciclo fisso per la sgrossatura .
V Asse incrementale corrispondente all'asse Y Fino agli anni 2000, l'indirizzo V era usato molto raramente perché la maggior parte dei torni che usavano U e W non avevano un asse Y, quindi non usavano V. (Green et al. 1996 non hanno nemmeno elencato V nella loro tabella di indirizzi.) Questo è ancora spesso il caso, sebbene la proliferazione di utensili per tornio in tensione e lavorazione torni-fresatura abbia reso l'utilizzo dell'indirizzo V meno raro di quanto non fosse in passato (Smid 2008 mostra un esempio). Vedi anche G18 .
W Asse incrementale corrispondente all'asse Z (tipicamente solo controlli gruppo tornio A) In questi controlli, Z e W evitano rispettivamente G90 e G91 . Su questi torni G90 è invece un indirizzo di ciclo fisso per la sgrossatura .
X Posizione assoluta o incrementale dell'asse X.
Definisce anche il tempo di sosta su alcune macchine (invece di " P " o " U ").
Posizione assoluta o incrementale dell'asse Y
Z Posizione assoluta o incrementale dell'asse Z L'asse di rotazione del mandrino principale determina spesso quale asse di una macchina utensile è etichettato come Z.

Elenco dei codici G comunemente presenti su FANUC e controlli progettati in modo simile per fresatura e tornitura

Fonti: metà 2008; metà 2010; Verde et al. 1996.

Nota : Modale significa che un codice rimane in vigore fino a quando non viene sostituito o cancellato da un altro codice consentito. Non modale significa che viene eseguito solo una volta. Vedere, ad esempio, i codici G09, G61 e G64 di seguito.
Codice Descrizione Fresatura
( M )
Tornitura
( T )
Informazioni di corollario
G00 Posizionamento rapido m T Sui movimenti a 2 o 3 assi, G00 (a differenza di G01 ) tradizionalmente non si muove necessariamente su un'unica linea retta tra il punto iniziale e il punto finale. Muove ogni asse alla sua velocità massima fino a raggiungere la sua quantità vettoriale. Un vettore più corto di solito finisce per primo (a parità di velocità dell'asse). Questo è importante perché può produrre un movimento di dog-leg o di mazza da hockey, che il programmatore deve considerare, a seconda di quali ostacoli si trovano nelle vicinanze, per evitare un incidente. Alcune macchine offrono rapide interpolate come caratteristica per facilitare la programmazione (è sicuro assumere una linea retta).
G01 Interpolazione lineare m T Il codice cavallo di battaglia più comune per l'alimentazione durante un taglio. Il programma specifica l'inizio e il punto finale e il controllo calcola automaticamente ( interpola ) i punti intermedi da attraversare che producono una linea retta (quindi " lineare "). Il controllo calcola quindi le velocità angolari alle quali far girare le viti degli assi tramite i loro servomotori o motori passo-passo. Il computer esegue migliaia di calcoli al secondo e i motori reagiscono rapidamente a ogni input. Pertanto, il percorso utensile effettivo della lavorazione avviene con la data velocità di avanzamento su un percorso che è accuratamente lineare entro limiti molto piccoli.
G02 Interpolazione circolare, in senso orario m T Molto simile nel concetto a G01. Anche in questo caso, il controllo interpola i punti intermedi e comanda ai servomotori o ai motori passo-passo di ruotare la quantità necessaria affinché la vite di comando traduca il movimento nel corretto posizionamento della punta dell'utensile. Questo processo ripetuto migliaia di volte al minuto genera il percorso utensile desiderato. Nel caso di G02, l'interpolazione genera un cerchio anziché una linea. Come con G01, il percorso utensile effettivo della lavorazione avviene con la data velocità di avanzamento su un percorso che corrisponde esattamente all'ideale (nel caso di G02 , un cerchio) entro limiti molto piccoli. Infatti, l'interpolazione è così precisa (quando tutte le condizioni sono corrette) che la fresatura di un cerchio interpolato può ovviare ad operazioni come la foratura, e spesso trovare addirittura la noia. Indirizzi per raggio o centro arco: G02 e G03 prendono un indirizzo R (per il raggio desiderato sul pezzo) o indirizzi IJK (per i vettori componenti che definiscono il vettore dal punto iniziale dell'arco al punto centrale dell'arco). Cutter comp: sulla maggior parte dei controlli non è possibile avviare G41 o G42 in modalità G02 o G03 . Devi aver già compensato in un blocco G01 precedente . Spesso viene programmato un breve movimento lineare di entrata, semplicemente per consentire la compensazione della fresa prima che inizi l'azione principale, il taglio del cerchio. Cerchi completi: quando il punto iniziale dell'arco e il punto finale dell'arco sono identici, lo strumento taglia un arco di 360° (un cerchio completo). (Alcuni vecchi controlli non supportano questo perché gli archi non possono attraversare i quadranti del sistema cartesiano. Invece, richiedono quattro archi di un quarto di cerchio programmati uno dietro l'altro.)
G03 Interpolazione circolare, antioraria m T Stesse informazioni di corollario di G02.
G04 Dimorare m T Prende un indirizzo per il periodo di permanenza (può essere X , U o P ). Il periodo di sosta è specificato da un parametro di controllo, generalmente impostato su millisecondi . Alcune macchine possono accettare X1.0 ( s ) o P1000 ( ms ), che sono equivalenti.Scelta della durata della sosta : spesso la sosta deve durare solo una o due rotazioni complete del mandrino. Questo è in genere molto meno di un secondo. Quando si sceglie un valore di durata, tenere presente che una sosta prolungata è uno spreco di tempo di ciclo. In alcune situazioni, non importa, ma per la produzione ripetitiva ad alto volume (su migliaia di cicli), vale la pena calcolare che forse hai solo bisogno di 100mse puoi chiamarlo 200 per essere sicuro, ma 1000 è solo uno spreco (troppo lungo).
G05 P10000 Controllo del contorno ad alta precisione (HPCC) m   Utilizza un profondo buffer di previsione e l'elaborazione di simulazione per fornire una migliore accelerazione e decelerazione del movimento degli assi durante la fresatura dei contorni
G05.1 Q1. Controllo anteprima avanzato AI m   Utilizza un profondo buffer di previsione e l'elaborazione di simulazione per fornire una migliore accelerazione e decelerazione del movimento degli assi durante la fresatura dei contorni
G06.1 Lavorazione B-spline razionale non uniforme (NURBS) m   Attiva Non-Uniform Rational B Spline per la lavorazione di curve e forme d'onda complesse (questo codice è confermato nella programmazione ISO Mazatrol 640M)
G07 Designazione dell'asse immaginario m    
G09 Controllo stop esatto, non modale m T La versione modale è G61 .
G10 Inserimento dati programmabile m T Modifica il valore della coordinata di lavoro e degli offset utensile
G11 Annulla scrittura dati m T  
G17 Selezione del piano XY m    
G18 Selezione del piano ZX m T
G19 Selezione del piano YZ m    
G20 Programmazione in pollici m T Un po' raro tranne che negli Stati Uniti e (in misura minore) in Canada e Regno Unito. Tuttavia, nel mercato globale, la competenza sia con il G20 che con il G21 ha sempre qualche possibilità di essere necessaria in qualsiasi momento. Il consueto incremento minimo in G20 è un decimillesimo di pollice (0,0001"), che è una distanza maggiore rispetto al consueto incremento minimo in G21 (un millesimo di millimetro, 0,001 mm, cioè un micrometro ). la differenza fisica a volte favorisce la programmazione del G21.
G21 Programmazione in millimetri (mm) m T Prevalente in tutto il mondo. Tuttavia, nel mercato globale, la competenza sia con il G20 che con il G21 ha sempre qualche possibilità di essere necessaria in qualsiasi momento.
G28 Ritorno alla posizione iniziale (zero macchina, noto anche come punto di riferimento macchina) m T Prende indirizzi XYZ che definiscono il punto intermedio attraverso il quale la punta dell'utensile passerà nel suo percorso verso lo zero macchina. Sono in termini di zero pezzo (noto anche come zero programma), NON zero macchina.
G30 Ritorno alla posizione iniziale secondaria (zero macchina, noto anche come punto di riferimento macchina) m T Prende un indirizzo P che specifica quale punto zero della macchina utilizzare se la macchina ha più punti secondari (da P1 a P4). Prende gli indirizzi XYZ che definiscono il punto intermedio attraverso il quale passa la descrizione comando nel suo percorso verso lo zero macchina. Questi sono espressi in termini di zero pezzo (noto anche come zero programma), NON zero macchina.
G31 Funzione di alimentazione fino al salto m    Utilizzato per sonde e sistemi di misurazione della lunghezza dell'utensile.
G32 Filettatura a punto singolo, tipo longhand (se non si utilizza un ciclo, ad es. G76 )   T Simile all'interpolazione lineare G01 , tranne con sincronizzazione automatica del mandrino per filettatura a punto singolo .
G33 Filettatura a passo costante m    
G33 Filettatura a punto singolo, tipo longhand (se non si utilizza un ciclo, ad es. G76 )   T Alcuni controlli del tornio assegnano questa modalità a G33 anziché a G32.
G34 Filettatura a passo variabile m    
G40 Compensazione raggio utensile disattivata m T Disattivare la compensazione raggio fresa (CRC) . Annulla G41 o G42.
G41 Compensazione raggio utensile sinistra m T Attivare la compensazione del raggio della fresa (CRC) , a sinistra, per la fresatura concorde.
Fresatura: Data la fresa con elica destra e la direzione del mandrino M03 , G41 corrisponde alla fresatura concorde (fresatura concorde) . Prende un indirizzo ( D o H ) che chiama un valore di registro di offset per il raggio.
Tornitura: spesso non necessita di indirizzi D o H sui torni, perché qualunque utensile sia attivo chiama automaticamente i suoi offset di geometria con esso. (Ogni stazione della torretta è vincolata al proprio registro di offset della geometria.)

G41 e G42 per la fresatura sono stati parzialmente automatizzati e ovviati (anche se non del tutto) da quando la programmazione CAM è diventata più comune. I sistemi CAM consentono all'utente di programmare come se si utilizzasse una fresa a diametro zero. Il concetto fondamentale di compensazione del raggio della fresa è ancora in gioco (cioè, che la superficie prodotta sarà a distanza R dal centro della fresa), ma la mentalità di programmazione è diversa. L'essere umano non coreografa il percorso utensile con un'attenzione cosciente e scrupolosa a G41, G42 e G40, perché il software CAM si occupa di questo. Il software ha varie selezioni di modalità CRC, come computer, controllo, usura, usura inversa, off , alcune delle quali non utilizzano affatto G41/G42 (buono per sgrossatura o ampie tolleranze di finitura) e altre che lo utilizzano in modo che l'offset di usura può ancora essere modificato in macchina (meglio per tolleranze di finitura strette).

G42 Compensazione raggio utensile a destra m T Attivare la compensazione raggio fresa (CRC) , a destra, per la fresatura convenzionale. Informazioni di corollario simili a quelle di G41 . Data la fresa con elica destra e la direzione del mandrino M03, G42 corrisponde alla fresatura convenzionale (fresatura in salita) .
G43 Compensazione offset altezza utensile negativa m   Prende un indirizzo, solitamente H, per chiamare il valore del registro di correzione lunghezza utensile. Il valore è negativo perché verrà aggiunto alla posizione della linea di misura. G43 è la versione comunemente usata (rispetto a G44).
G44 Compensazione offset altezza utensile positiva m   Prende un indirizzo, solitamente H, per chiamare il valore del registro di correzione lunghezza utensile. Il valore è positivo perché verrà sottratto dalla posizione della linea di misura. G44 è la versione usata raramente (vs G43).
G45 Offset asse incremento singolo m    
G46 Diminuzione singola dell'offset dell'asse m    
G47 Doppio incremento dell'offset dell'asse m    
G48 Doppia diminuzione dell'offset dell'asse m    
G49 Annullamento compensazione offset lunghezza utensile m   Annulla G43 o G44 .
G50 Definire la velocità massima del mandrino   T Accetta un intero indirizzo S , che viene interpretato come rpm. Senza questa funzione, la modalità G96 (CSS) farebbe girare il mandrino a "acceleratore completamente aperto" quando si avvicina molto all'asse di rotazione.
G50 Annullamento della funzione di ridimensionamento m    
G50 Registro di posizione (programmazione del vettore da zero pezzo a tooltip)   T Il registro di posizione è uno dei metodi originali per mettere in relazione il sistema di coordinate del pezzo (programma) con la posizione dell'utensile, che indirettamente lo collega al sistema di coordinate della macchina , l'unica posizione che il controllo "conosce". Non è più comunemente programmato perché da G54 a G59 (WCS) sono un metodo migliore e più nuovo. Chiamato tramite G50 per tornitura, G92 per fresatura. Questi indirizzi G hanno anche significati alternativi ( che vedi ). Il registro di posizione può ancora essere utile per la programmazione dello spostamento del punto di riferimento. L'interruttore "manuale assoluto", che ha pochissime applicazioni utili in contesti WCS, era più utile in contesti di registro di posizione perché permetteva all'operatore di spostare l'utensile ad una certa distanza dal pezzo (ad esempio toccando un 2.0000" gage) e poi dichiarare al controllo quale sarà la distanza da percorrere (2.0000).
G52 Sistema di coordinate locale (LCS) m   Sposta temporaneamente il programma zero in una nuova posizione. È semplicemente "un offset da un offset", ovvero un offset aggiuntivo aggiunto all'offset WCS . Ciò semplifica la programmazione in alcuni casi. L'esempio tipico è lo spostamento da una parte all'altra in una configurazione multiparte. Con G54 attivo, G52 X140.0 Y170.0 sposta lo zero del programma di 140 mm in X e 170 mm in Y. Quando la parte "laggiù" è terminata, G52 X0 Y0 riporta lo zero del programma alla normale G54 (riducendo l'offset di G52 a niente). Lo stesso risultato può essere ottenuto anche (1) utilizzando più origini WCS, G54/G55/G56/G57/G58/G59; (2) sui controlli più recenti, G54.1 P1/P2/P3/ecc. (fino al P48); o (3) utilizzando G10 per l'immissione di dati programmabili, in cui il programma può scrivere nuovi valori di offset nei registri di offset. Il metodo da utilizzare dipende dall'applicazione specifica del negozio.
G53 Sistema di coordinate macchina m T Prende le coordinate assolute (X,Y,Z,A,B,C) riferite allo zero macchina anziché allo zero programma. Può essere utile per il cambio utensile. Solo non modale e assoluto. I blocchi successivi vengono interpretati come "ritorno a G54 " anche se non esplicitamente programmati.
da G54 a G59 Sistemi di coordinate di lavoro (WCS) m T Hanno in gran parte sostituito il registro di posizione ( G50 e G92 ). Ogni tupla di offset degli assi mette in relazione lo zero del programma direttamente con lo zero della macchina. Lo standard è di 6 tuple (da G54 a G59), con estensibilità opzionale ad altre 48 tramite G54.1 da P1 a P48.
G54.1 da P1 a P48 Sistemi di coordinate di lavoro estesi m T Fino a 48 WCS in più oltre ai 6 forniti di serie da G54 a G59. Nota l'estensione in virgola mobile del tipo di dati G-code (in precedenza tutti i numeri interi). Anche altri esempi si sono evoluti (ad es. G84.2 ). I controlli moderni hanno l' hardware per gestirlo.
G61 Controllo stop esatto, modale m T Può essere cancellato con G64 . La versione non modale è G09 .
G62 Esclusione automatica dell'angolo m T  
G64 Modalità di taglio predefinita (annulla la modalità di controllo dell'arresto esatto) m T Annulla G61 .
G68 Ruota il sistema di coordinate m   Ruota il sistema di coordinate nel piano corrente fornito con G17 , G18 o G19 . Il centro di rotazione è dato con due parametri, che variano con l'implementazione di ciascun fornitore. Ruota con l'angolo fornito con l'argomento R. Questo può essere usato, ad esempio, per allineare il sistema di coordinate con una parte disallineata. Può anche essere usato per ripetere sequenze di movimento attorno a un centro. Non tutti i fornitori supportano la rotazione del sistema di coordinate.
G69 Disattiva la rotazione del sistema di coordinate m   Annulla G68 .
G70 Ciclo fisso, ciclo ripetitivo multiplo, per finitura (compresi i contorni)   T  
G71 Ciclo fisso, ciclo ripetitivo multiplo, per sgrossatura (enfasi sull'asse Z)   T  
G72 Ciclo fisso, ciclo ripetitivo multiplo, per sgrossatura (enfasi sull'asse X)   T  
G73 Ciclo fisso, ciclo ripetitivo multiplo, per sgrossatura, con ripetizione sagoma   T  
G73 Ciclo di foratura a passo per fresatura – alta velocità (NO svincolo completo da passo) m   Si ritrae solo fino a un incremento di gioco (parametro di sistema). Perché quando il rompitruciolo è la preoccupazione principale, ma l'intasamento dei trucioli dei flauti non lo è. Confronta G83 .
G74 Ciclo di foratura Peck per tornitura   T  
G74 Ciclo di maschiatura per fresatura, filetto sinistro , direzione mandrino M04 m   Vedere le note in G84 .
G75 Ciclo di scanalatura a passo per tornitura   T  
G76 Ciclo di foratura fine per fresatura m   Include OSS e spostamento (arresto del mandrino orientato e spostamento dell'utensile fuori dalla linea centrale per la ritrazione)
G76 Ciclo di filettatura per tornitura, ciclo ripetitivo multiplo   T  
G80 Annulla ciclo fisso m T Fresatura: annulla tutti i cicli come G73 , G81 , G83 , ecc. L'asse Z torna al livello iniziale Z o al livello R, come programmato ( rispettivamente G98 o G99 ).
Tornitura: Solitamente non necessaria sui torni, perché un nuovo indirizzo G del gruppo 1 ( da G00 a G03 ) annulla qualsiasi ciclo fosse attivo.
G81 Ciclo di foratura semplice m   Nessuna sosta incorporata
G82 Ciclo di foratura con sosta m   Sofferma a fondo foro (Z-profondità) per il numero di millisecondi specificato dal P indirizzo. Ottimo per quando la finitura del fondo del foro è importante. Buono per la perforazione a punti perché il divot si pulirà in modo uniforme. Si consideri la nota " scelta della durata della sosta " in G04 .
G83 Ciclo di foratura Peck (rientro completo da Peck) m   Ritorna al livello R dopo ogni beccata. Buono per eliminare i flauti dalle patatine . Confronta G73 .
G84 Maschiatura ciclo, filettatura destra , M03 direzione del mandrino m   G74 e G84 sono la "coppia" destra e sinistra per la maschiatura vecchia scuola con un portautensili non rigido (stile "testa di maschiatura"). Confronta la "coppia" di maschiatura rigida, G84.2 e G84.3 .
G84.2 Ciclo di maschiatura , filettatura destra , direzione mandrino M03 , portautensile rigido m   Vedere le note in G84 . La maschiatura rigida sincronizza la velocità e gli avanzamenti in base all'elica del filetto desiderata. Cioè, sincronizza i gradi di rotazione del mandrino con i micron di corsa assiale. Pertanto, può utilizzare un portautensili rigido per tenere il rubinetto. Questa funzione non è disponibile su macchine vecchie o nuove macchine di fascia bassa, che devono utilizzare il movimento "testa di maschiatura" ( G74 / G84 ).
G84.3 Ciclo di maschiatura , filettatura sinistrorsa , direzione mandrino M04 , portautensile rigido m   Vedere le note in G84 e G84.2 .
G85 ciclo di foratura, alimentazione/uscita m  
  • Buon ciclo per un alesatore.
  • In alcuni casi va bene per l'utensile di alesatura a punta singola, sebbene in altri casi la mancanza di profondità di taglio all'uscita sia dannosa per la finitura superficiale, nel qual caso si può usare invece G76 (OSS/shift).
  • Se necessario sostare sul fondo del foro, vedere G89 .
G86 ciclo di foratura, alimentazione/arresto mandrino/uscita rapida m   Lo strumento noioso lascia un leggero segno sulla via del ritorno. Ciclo appropriato per alcune applicazioni; per altri è invece possibile utilizzare G76 (OSS/shift).
G87 ciclo noioso, backboring m   Per il backboring . Ritorna solo al livello iniziale ( G98 ); questo ciclo non può utilizzare G99 perché il suo livello R si trova sul lato opposto del pezzo, lontano dalla testa del mandrino.
G88 ciclo di foratura, alimentazione/arresto mandrino/manuale m    
G89 ciclo noioso, alimentazione in/dwell/feed out m   G89 è come G85 ma con l'aggiunta della sosta in fondo al foro.
G90 Programmazione assoluta m T (B) Posizionamento definito rispetto allo zero pezzo.
Fresatura: Sempre come sopra.
Tornitura: a volte come sopra (gruppo Fanuc tipo B e design simile), ma sulla maggior parte dei torni (gruppo Fanuc tipo A e design simile), G90/G91 non vengono utilizzati per le modalità assolute/incrementali. Invece, U e W sono gli indirizzi incrementali e X e Z sono gli indirizzi assoluti. Su questi torni G90 è invece un indirizzo di ciclo fisso per la sgrossatura.
G90 Ciclo fisso, ciclo semplice, per sgrossatura (enfasi sull'asse Z)   T (A) Quando non serve per la programmazione assoluta (sopra)
G90.1 Programmazione arco assoluto m   I, J, K posizionamento definito rispetto allo zero pezzo.
G91 Programmazione incrementale m T (B) Posizionamento definito con riferimento alla posizione precedente.
Fresatura: Sempre come sopra.
Tornitura: a volte come sopra (gruppo Fanuc tipo B e design simile), ma sulla maggior parte dei torni (gruppo Fanuc tipo A e design simile), G90/G91 non vengono utilizzati per le modalità assolute/incrementali. Invece, U e W sono gli indirizzi incrementali e X e Z sono gli indirizzi assoluti. Su questi torni, G90 è un indirizzo di ciclo fisso per la sgrossatura.
G91.1 Programmazione arco incrementale m   I, J, K posizionamento definito rispetto alla posizione precedente.
G92 Registro di posizione (programmazione del vettore dallo zero pezzo alla punta dell'utensile) m T (B) Stesse informazioni di corollario del registro di posizione G50 .
Fresatura: Sempre come sopra.
Tornitura: a volte come sopra (gruppo Fanuc tipo B e design simile), ma sulla maggior parte dei torni (gruppo Fanuc tipo A e design simile), il registro di posizione è G50 .
G92 Ciclo di filettatura, ciclo semplice   T (A)  
G94 Avanzamento al minuto m T (B) Sui torni di tipo gruppo A, l'avanzamento al minuto è G98 .
G94 Ciclo fisso, ciclo semplice, per sgrossatura ( enfasi sull'asse X )   T (A) Quando non serve per la velocità di avanzamento al minuto (sopra)
G95 Avanzamento per giro m T (B) Sui torni di tipo gruppo A, l'avanzamento per giro è G99 .
G96 Velocità di superficie costante (CSS)   T Varia automaticamente la velocità del mandrino per ottenere una velocità di superficie costante. Vedi velocità e feed . Prende un intero indirizzo S , che viene interpretato come sfm in modalità G20 o come m/min in modalità G21 .
G97 Velocità costante del mandrino m T Accetta un numero intero di indirizzo S, che viene interpretato come giri/min (rpm). La modalità di velocità predefinita per parametro di sistema se non è programmata alcuna modalità.
G98 Ritorno al livello Z iniziale nel ciclo fisso m    
G98 Avanzamento al minuto (gruppo di tipo A)   T (A) L'avanzamento al minuto è G94 sul tipo di gruppo B.
G99 Ritorna al livello R nel ciclo fisso m    
G99 Avanzamento per giro (gruppo tipo A)   T (A) L'avanzamento per giro è G95 sul tipo di gruppo B.
G100 Misurazione della lunghezza dell'utensile m    

Elenco dei codici M comunemente presenti su FANUC e controlli progettati in modo simile per fresatura e tornitura

Fonti: metà 2008; metà 2010; Verde et al. 1996.

Alcuni controlli meno recenti richiedono che i codici M siano in blocchi separati (ovvero, non sulla stessa riga).

Codice   Descrizione Fresatura
( M )
Tornitura
( T )
Informazioni di corollario
M00 Sosta obbligatoria m T Non opzionale: la macchina si ferma sempre al raggiungimento di M00 nell'esecuzione del programma.
M01 Fermata opzionale m T La macchina si ferma a M01 solo se l'operatore preme il pulsante di arresto opzionale.
M02 Fine del programma m T Il programma termina; l'esecuzione può o non può tornare all'inizio del programma (a seconda del controllo); può o meno reimpostare i valori del registro. M02 era il codice di fine programma originale, ora considerato obsoleto, ma ancora supportato per la compatibilità con le versioni precedenti. Molti controlli moderni trattano M02 come equivalente a M30 . Vedere M30 per ulteriori discussioni sullo stato del controllo dopo l'esecuzione di M02 o M30.
M03 Mandrino acceso (rotazione oraria) m T La velocità del mandrino è determinata dall'indirizzo S , in giri al minuto ( modalità G97 ; impostazione predefinita) o piedi al minuto o [superficie] metri al minuto ( modalità G96 [CSS] in G20 o G21 ). La regola della mano destra può essere utilizzata per determinare quale direzione è in senso orario e quale è in senso antiorario.

Le viti con elica destra che si muovono nella direzione di serraggio (e le scanalature con elica destra che girano nella direzione di taglio) sono definite come si muovono nella direzione M03 e sono etichettate "in senso orario" per convenzione. La direzione M03 è sempre M03 indipendentemente dal punto di vista locale e dalla distinzione CW/CCW locale.

M04 Mandrino acceso (rotazione antioraria) m T Vedi commento sopra a M03.
M05 Arresto mandrino m T  
M06 Cambio utensile automatico (ATC) m T (a volte) Molti torni non utilizzano M06 perché l' indirizzo T stesso indicizza la torretta.
La programmazione su una particolare macchina utensile richiede la conoscenza del metodo utilizzato dalla macchina. Per capire come funziona l'indirizzo T e come interagisce (o meno) con M06, è necessario studiare i vari metodi, come la programmazione della torretta del tornio, la selezione dell'utensile fisso ATC, la selezione dell'utensile a memoria casuale ATC, il concetto di "prossimo utensile in attesa" e strumenti vuoti.
M07 Refrigerante acceso (nebbia) m T  
M08 Refrigerante acceso (allagamento) m T  
M09 Raffreddamento spento m T  
M10 Pinza per pallet inserita m   Per centri di lavoro con cambio pallet
M11 Blocca pallet disattivato m   Per centri di lavoro con cambio pallet
M13 Mandrino acceso (rotazione in senso orario) e refrigerante inserito (inondazione) m   Questo codice M fa il lavoro sia di M03 che di M08 . Non è insolito che modelli di macchine specifici abbiano tali comandi combinati, che rendono i programmi più brevi e scritti più rapidamente.
M19 Orientamento del mandrino m T L'orientamento del mandrino è più spesso chiamato all'interno dei cicli (automaticamente) o durante l'impostazione (manualmente), ma è anche disponibile sotto il controllo del programma tramite M19 . L'abbreviazione OSS (arresto del mandrino orientato) può essere vista in riferimento a un arresto orientato all'interno dei cicli.

L'importanza dell'orientamento del mandrino è aumentata con l'avanzare della tecnologia. Sebbene la fresatura di contorni a 4 e 5 assi e il puntamento singolo CNC dipendano dagli encoder di posizione del mandrino da decenni, prima dell'avvento dei diffusi sistemi di utensili motorizzati e fresa- torni/torni -fresatura, non era così spesso rilevante nel "regolare" (non "speciale") affinché l'operatore (anziché la macchina) conosca l'orientamento angolare di un mandrino così com'è oggi, tranne in alcuni contesti (come cambio utensile , o cicli di barenatura G76 con rientro utensile coreografato ). La maggior parte della fresatura di feature indicizzate attorno a un pezzo tornito è stata eseguita con operazioni separate sulle impostazioni della testa di indexaggio ; in un certo senso, le teste di indicizzazione sono state originariamente inventate come apparecchiature separate, da utilizzare in operazioni separate, in grado di fornire un orientamento preciso del mandrino in un mondo in cui altrimenti per lo più non esisteva (e non era necessario). Ma poiché la lavorazione CAD/CAM e CNC multiasse con più assi di taglio rotativo diventa la norma, anche per applicazioni "normali" (non "speciali"), i macchinisti ora si preoccupano spesso di far passare praticamente qualsiasi mandrino a 360° con precisione.

M21 Specchio, asse X m    
M21 Contropunta in avanti   T  
M22 Specchio, asse Y m    
M22 Contropunta all'indietro   T  
M23 Specchio OFF m    
M23 Estrazione graduale del filo ON   T  
M24 Estrazione graduale del filo OFF   T  
M30 Fine del programma, con ritorno all'inizio del programma m T Oggi, M30 è considerato il codice di fine programma standard e riporta l'esecuzione all'inizio del programma. La maggior parte dei controlli supporta ancora il codice di fine programma originale, M02 , solitamente trattandolo come equivalente a M30. Informazioni aggiuntive: confrontare M02 con M30. Innanzitutto, M02 è stato creato, nei giorni in cui ci si aspettava che il nastro perforato fosse abbastanza corto da essere unito in un ciclo continuo (motivo per cui sui vecchi controlli, M02 non attivava il riavvolgimento del nastro). L'altro codice di fine programma, M30, è stato aggiunto in seguito per accogliere nastri perforati più lunghi, che venivano avvolti su una bobina e quindi dovevano essere riavvolti prima che potesse iniziare un altro ciclo. Su molti controlli più recenti, non c'è più differenza nel modo in cui i codici vengono eseguiti: entrambi agiscono come M30.
M41 Selezione marcia – marcia 1   T  
M42 Selezione marcia – marcia 2   T  
M43 Selezione marcia – marcia 3   T  
M44 Selezione marcia – marcia 4   T  
M48 È consentito l'override della velocità di avanzamento m T MFO (override avanzamento manuale)
M49 L'override dell'avanzamento NON è consentito m T Impedisci MFO (override avanzamento manuale). Questa regola viene solitamente chiamata anche (automaticamente) all'interno dei cicli di maschiatura o di filettatura a punto singolo, dove l'avanzamento è precisamente correlato alla velocità. Stessa cosa con SSO (override della velocità del mandrino) e pulsante di mantenimento dell'avanzamento. Alcuni controlli sono in grado di fornire SSO e MFO durante il threading .
M52 Scarica ultimo utensile dal mandrino m T Anche mandrino vuoto.
M60 Cambio pallet automatico (APC) m   Per centri di lavoro con cambio pallet
M98 Chiamata sottoprogramma m T Prende un indirizzo P per specificare quale sottoprogramma chiamare, ad esempio "M98 P8979" chiama il sottoprogramma O8979.
M99 Fine sottoprogramma m T Solitamente posizionato alla fine del sottoprogramma, dove restituisce il controllo dell'esecuzione al programma principale. L'impostazione predefinita è che il controllo ritorni al blocco successivo alla chiamata di M98 nel programma principale. Il ritorno a un numero di blocco diverso può essere specificato da un indirizzo P. M99 può essere utilizzato anche nel programma principale con il salto di blocco per un ciclo infinito del programma principale sul lavoro da barra sui torni (fino a quando l'operatore non attiva il salto di blocco).
M100 Ugello pulito Alcune stampanti 3D hanno una routine predefinita per pulire l'ugello dell'estrusore nella direzione X e Y spesso contro un raschietto flessibile montato nell'area di scarico.

Programma di esempio

Questo è un programma generico che dimostra l'uso di G-Code per trasformare una parte di 1" di diametro per 1" di lunghezza. Supponiamo che una barra di materiale sia nella macchina e che la barra sia leggermente sovradimensionata in lunghezza e diametro e che la barra sporga di più di 1" dalla faccia del mandrino. (Attenzione: questo è generico, potrebbe non funzionare su qualsiasi macchina reale! Prestare particolare attenzione al punto 5 di seguito.)

Campione
Blocco/Codice Descrizione
% Segnala l'inizio dei dati durante il trasferimento dei file. Originariamente utilizzato per interrompere il riavvolgimento del nastro, non necessariamente per avviare il programma. Per alcuni controlli (FANUC) il primo LF (EOB) è l'inizio del programma. ISO usa %, EIA usa ER (0x0B).
    O4968 (OPTIONAL PROGRAM DESCRIPTION OR COMMENT) Esempio di programma faccia e svolta. I commenti sono racchiusi tra parentesi.
N01 M216 Attiva il monitoraggio del carico
N02 G20 G90 G54 D200 G40 Unità pollici. Modalità assoluta. Attiva offset pezzo. Attiva l'offset utensile. Disattivare la compensazione del raggio di punta dell'utensile.
Significato: questo blocco è spesso chiamato blocco sicuro o blocco di sicurezza. I suoi comandi possono variare ma di solito sono simili a quelli mostrati qui. L'idea è che un blocco di sicurezza dovrebbe sempre essere fornito nella parte superiore di qualsiasi programma, come impostazione predefinita generale, a meno che non esista una ragione molto specifica/concreta per ometterlo. Il blocco di sicurezza è come un controllo di integrità o una lista di controllo preflight : garantisce esplicitamente condizioni che altrimenti sarebbero implicite, lasciate solo a supposizioni. Il blocco di sicurezza riduce il rischio di incidenti e può anche riorientare in modo utile il pensiero degli umani che scrivono o leggono il programma in condizioni di fretta.
N03 G50 S2000 Imposta la velocità massima del mandrino in giri/min — Questa impostazione influisce sulla modalità Velocità di superficie costante
N04 T0300 Indice della torretta sull'utensile 3. Cancellare l'offset di usura (00).
N05 G96 S854 M03 Velocità di superficie costante [varia automaticamente la velocità del mandrino], 854 sfm , avvia la rotazione oraria del mandrino
N06 G41 G00 X1.1 Z1.1 T0303 M08 Abilitare la modalità di compensazione del raggio della fresa, posizione rapida a 0,55" sopra la linea centrale assiale (1,1" di diametro) e 1,1 pollici positivi dall'offset pezzo in Z, attivare il refrigerante a flusso
N07 G01 Z1.0 F.05 Avanzare orizzontalmente a una velocità di 0,050" per giro del mandrino finché l'utensile non è posizionato a 1" positivo dall'offset pezzo
N08 X-0.016 Far avanzare l'utensile leggermente oltre il centro: l'utensile deve percorrere almeno il suo raggio di punta oltre il centro della parte per evitare una capesante residua di materiale.
N09 G00 Z1.1 Posizionamento rapido; ritrarre alla posizione di partenza
N10 X1.0 Posizionamento rapido; prossimo passaggio
N11 G01 Z0.0 F.05 Feed-in tagliando orizzontalmente la barra a 1" di diametro fino al datum, 0,05 pollici/giro
N12 G00 X1.1 M05 M09 Sgomberare il pezzo, fermare il mandrino, spegnere il refrigerante
N13 G91 G28 X0 Asse X iniziale: restituisce la posizione iniziale della macchina per l'asse X
N14 G91 G28 Z0 Asse Z iniziale — ritorno alla posizione iniziale della macchina per l'asse Z
N15 G90 Torna alla modalità assoluta. Spegni il monitoraggio del carico
N16 M30 Arresto del programma, riavvolgimento all'inizio del programma, attesa dell'inizio del ciclo
% Segnala la fine dei dati durante il trasferimento dei file. Originariamente utilizzato per contrassegnare la fine del nastro, non necessariamente la fine del programma. ISO usa %, EIA usa ER (0x0B).
Percorso utensile per programma

Diversi punti da notare:

  1. C'è spazio per uno stile di programmazione, anche in questo breve programma. Il raggruppamento dei codici nella riga N06 avrebbe potuto essere disposto su più righe. Ciò potrebbe aver reso più semplice seguire l'esecuzione del programma.
  2. Molti codici sono modali , nel senso che rimangono in vigore fino a quando non vengono cancellati o sostituiti da un codice contraddittorio. Ad esempio, una volta selezionato il taglio a velocità variabile (CSS) (G96), rimane attivo fino alla fine del programma. Durante il funzionamento, la velocità del mandrino aumenta man mano che l'utensile si avvicina al centro del pezzo per mantenere una velocità di superficie costante. Allo stesso modo, una volta selezionato l'avanzamento rapido (G00), tutti i movimenti dell'utensile sono rapidi finché non viene selezionato un codice di avanzamento (G01, G02, G03).
  3. È pratica comune utilizzare un monitor di carico con macchinari CNC. Il monitoraggio del carico arresta la macchina se i carichi del mandrino o dell'avanzamento superano un valore preimpostato impostato durante l'operazione di impostazione. I compiti del monitor di carico sono vari:
    1. Prevenire danni alla macchina in caso di rottura dell'utensile o errore di programmazione.
      1. Ciò è particolarmente importante perché consente una "lavorazione a luci spente" sicura, in cui gli operatori preparano il lavoro e lo iniziano durante il giorno, quindi tornano a casa per la notte, lasciando le macchine in funzione e tagliando i pezzi durante la notte. Poiché nessun essere umano è in giro per ascoltare, vedere o annusare un problema come uno strumento rotto, il monitoraggio del carico svolge un importante compito di sentinella. Quando rileva una condizione di sovraccarico, che suggerisce semanticamente un utensile spento o rotto, comanda l'arresto della lavorazione. Al giorno d'oggi è disponibile la tecnologia per inviare un avviso a qualcuno in remoto (ad esempio, il proprietario addormentato, l'operatore o l'operatore proprietario) se lo si desidera, che può consentire loro di intervenire e riavviare la produzione, quindi andarsene ancora una volta. Questa può essere la differenza tra redditività o perdita su alcuni lavori perché la lavorazione a luci spente riduce le ore di lavoro per parte.
    2. Avvertire di uno strumento che sta diventando smussato e deve essere sostituito o affilato. Quindi, a un operatore che si occupa di più macchine viene detto da una macchina, essenzialmente: "Metti in pausa ciò che stai facendo laggiù e vieni a occuparti di qualcosa qui".
  4. È pratica comune portare rapidamente l'utensile in un punto "sicuro" vicino al pezzo, in questo caso a 0,1" di distanza, e quindi iniziare ad alimentare l'utensile. Quanto è vicina quella distanza "sicura" dipende dalla preferenza del programmatore e/o operatore e la condizione massima del materiale per la materia prima.
  5. Se il programma è sbagliato, c'è un'alta probabilità che la macchina vada in crash o che spinga l'utensile contro il pezzo, la morsa o la macchina ad alta potenza. Questo può essere costoso, specialmente nei nuovi centri di lavoro. È possibile intervallare il programma con arresti opzionali (codice M01) che consentono l'esecuzione del programma in modo frammentario a scopo di test. Le soste opzionali rimangono nel programma ma vengono saltate durante il normale funzionamento. Fortunatamente, la maggior parte dei software CAD/CAM viene fornita con simulatori CNC che visualizzano il movimento dell'utensile durante l'esecuzione del programma. Al giorno d'oggi gli oggetti circostanti (mandrino, morsetti, attrezzatura, contropunta e altro) sono inclusi nei modelli 3D e la simulazione è molto simile a un intero videogioco o a un ambiente di realtà virtuale, rendendo molto meno probabili crash imprevisti. Molte moderne macchine CNC consentono inoltre ai programmatori di eseguire il programma in modalità simulazione e osservare i parametri operativi della macchina in un particolare punto di esecuzione. Ciò consente ai programmatori di scoprire errori semantici (al contrario di errori di sintassi) prima di perdere materiale o strumenti a causa di un programma errato. A seconda delle dimensioni della parte, i blocchi di cera possono essere utilizzati anche a scopo di test. Inoltre, molte macchine supportano l'override dell'operatore sia per la velocità che per l'avanzamento che possono essere utilizzate per ridurre la velocità della macchina, consentendo agli operatori di interrompere l'esecuzione del programma prima che si verifichi un arresto anomalo.
  6. Per scopi didattici, i numeri di riga sono stati inclusi nel programma sopra. Di solito non sono necessari per il funzionamento di una macchina e aumentano le dimensioni dei file, quindi sono raramente utilizzati nel settore. Tuttavia, se nel codice vengono utilizzate istruzioni di ramificazione o loop, i numeri di riga potrebbero essere inclusi come destinazione di tali istruzioni (ad es. GOTO N99).
  7. Alcune macchine non consentono più codici M nella stessa riga.

Ambienti di programmazione

Gli ambienti di programmazione di G-code si sono evoluti parallelamente a quelli della programmazione generale, dai primi ambienti (ad esempio, scrivere un programma con una matita, digitarlo in una perforatrice) agli ambienti più recenti che combinano CAD ( progettazione assistita da computer ), CAM ( produzione assistita da computer ) e editor di codici G ricchi di funzionalità. (Gli editor di codice G sono analoghi agli editor XML , utilizzando i colori e i rientri semanticamente [più altre funzionalità] per aiutare l'utente in modi che gli editor di testo di base non possono. I pacchetti CAM sono analoghi agli IDE nella programmazione generale.)

Due cambiamenti di paradigma di alto livello sono stati (1) l'abbandono della "programmazione manuale" (con nient'altro che una matita o un editor di testo e una mente umana) per i sistemi software CAM che generano automaticamente il codice G tramite postprocessori (analogo allo sviluppo di tecniche visive in programmazione generale), e (2) abbandonare i costrutti hardcoded per quelli parametrici (analogo alla differenza nella programmazione generale tra l'hardcoding di una costante in un'equazione rispetto a dichiararla una variabile e assegnarle nuovi valori a piacimento; e all'oggetto orientato approccio in generale). La programmazione CNC macro (parametrica) utilizza nomi di variabili intuitivi, operatori relazionali e strutture di loop, proprio come fa la programmazione generale, per acquisire informazioni e logica con semantica leggibile dalla macchina. Mentre la vecchia programmazione CNC manuale poteva descrivere solo istanze particolari di parti in forma numerica, la programmazione macro descrive astrazioni che possono essere facilmente applicate in un'ampia varietà di istanze. La differenza ha molti analoghi, sia prima dell'era dell'informatica che dopo il suo avvento, come (1) la creazione di testo come bitmap rispetto all'utilizzo della codifica dei caratteri con glifi ; (2) il livello di astrazione dei disegni tecnici tabulati , con molti numeri di trattini delle parti definiti parametricamente dallo stesso disegno e da una tabella di parametri; o (3) il modo in cui l' HTML è passato attraverso una fase di utilizzo del markup del contenuto per scopi di presentazione, quindi è maturato verso il modello CSS . In tutti questi casi, uno strato di astrazione superiore ha introdotto ciò che mancava semanticamente.

STEP-NC riflette lo stesso tema, che può essere visto come un altro passo lungo un percorso iniziato con lo sviluppo di macchine utensili, maschere e dispositivi di fissaggio e controllo numerico, che hanno tutti cercato di "integrare l'abilità nell'utensile". I recenti sviluppi di G-code e STEP-NC mirano a costruire le informazioni e la semantica nello strumento. Questa idea non è nuova; fin dall'inizio del controllo numerico, il concetto di un ambiente CAD/CAM end-to-end è stato l'obiettivo delle prime tecnologie come DAC-1 e APT . Quegli sforzi andavano bene per grandi aziende come GM e Boeing. Tuttavia, le piccole e medie imprese hanno attraversato un'era di implementazioni più semplici di NC, con codice G "collega i punti" relativamente primitivo e programmazione manuale fino a quando CAD/CAM non è migliorato e diffuso in tutto il settore.

Qualsiasi macchina utensile con un gran numero di assi, mandrini e stazioni utensile è difficile da programmare bene manualmente. È stato fatto nel corso degli anni, ma non facilmente. Questa sfida esiste da decenni nella programmazione di macchine a vite CNC e transfer rotativo, e ora si presenta anche con i nuovi centri di lavoro di oggi chiamati "turn-mills", "mill-turns", "macchine multitasking" e "macchine multifunzione". Ora che i sistemi CAD/CAM sono ampiamente utilizzati, la programmazione CNC (come con il codice G) richiede CAD/CAM (al contrario della programmazione manuale) per essere pratica e competitiva nei segmenti di mercato serviti da queste classi di macchine. Come dice Smid, "Combina tutti questi assi con alcune funzionalità aggiuntive e la quantità di conoscenza necessaria per avere successo è abbastanza schiacciante, per non dire altro". Allo stesso tempo, tuttavia, i programmatori devono ancora comprendere a fondo i principi della programmazione manuale e devono pensare in modo critico e indovinare alcuni aspetti delle decisioni del software.

Da circa la metà degli anni 2000, sembra che si stia avvicinando "la morte della programmazione manuale" (cioè della scrittura di righe di codice G senza assistenza CAD/CAM). Tuttavia, è attualmente solo in alcuni contesti che la programmazione manuale è obsoleta. Al giorno d'oggi molta programmazione CAM avviene tra persone arrugginite o incapaci di programmazione manuale, ma non è vero che tutta la programmazione CNC può essere eseguita, o eseguita altrettanto bene o in modo efficiente , senza conoscere il codice G. La personalizzazione e il perfezionamento del programma CNC sulla macchina è un'area pratica in cui può essere più semplice o più efficiente modificare direttamente il codice G piuttosto che modificare i percorsi utensile CAM e rielaborare il programma.

Realizzare pezzi da taglio vivi su macchine controllate da computer è stato reso più facile e più difficile dal software CAD/CAM. Il codice G scritto in modo efficiente può essere una sfida per il software CAM. Idealmente, un macchinista CNC dovrebbe conoscere bene sia la programmazione manuale che quella CAM in modo che i vantaggi sia della CAM a forza bruta che dell'elegante programmazione manuale possano essere utilizzati dove necessario. Molte macchine più vecchie sono state costruite con una memoria del computer limitata in un momento in cui la memoria era molto costosa; 32K è stato considerato molto spazio per i programmi manuali, mentre i moderni software CAM possono pubblicare gigabyte di codice. CAM eccelle nell'eseguire rapidamente un programma che può richiedere più memoria della macchina e richiedere più tempo per l'esecuzione. Questo spesso rende molto utile la lavorazione di una bassa quantità di pezzi. Ma è necessario trovare un equilibrio tra il tempo necessario per creare un programma e il tempo necessario al programma per smontare la macchina. È diventato più facile e veloce realizzare solo poche parti sulle macchine più recenti con molta memoria. Ciò ha messo a dura prova sia i programmatori manuali che i macchinisti manuali. Dato il naturale turnover in pensione, non è realistico aspettarsi di mantenere un ampio pool di operatori altamente qualificati nella programmazione manuale quando il loro ambiente commerciale per lo più non è più in grado di fornire le innumerevoli ore di profonda esperienza necessarie per costruire tale abilità; eppure la perdita di questa base di esperienza può essere apprezzata, e ci sono momenti in cui un tale pool è gravemente mancato perché alcune esecuzioni CNC non possono ancora essere ottimizzate senza tale abilità.

Abbreviazioni usate da programmatori e operatori

Questo elenco è solo una selezione e, ad eccezione di alcuni termini chiave, evita per lo più di duplicare le numerose abbreviazioni elencate in abbreviazioni e simboli del disegno tecnico .

Abbreviazione Espansione Informazioni di corollario
APC cambio pallet automatico Vedi M60 .
ATC cambio utensile automatico Vedi M06 .
CAD/CAM computer-aided design e produzione automatizzata  
antiorario Antiorario Vedi M04 .
CNC controllo numerico computerizzato  
CRC compensazione raggio fresa Vedere anche G40 , G41 e G42 .
CS velocità di taglio Riferendosi alla velocità di taglio (velocità di superficie) in piedi al minuto di superficie (sfm, sfpm) o metri al minuto (m/min).
CSS velocità di superficie costante Vedere G96 per la spiegazione.
CW senso orario Vedi M03 .
DNC controllo numerico diretto o controllo numerico distribuito  A volte indicato come "Alimentazione a goccia" o "Controllo numerico a goccia" a causa del fatto che un file può essere inviato "a goccia" a una macchina, riga per riga, tramite un protocollo seriale come RS232. DNC consente alle macchine con quantità limitate di memoria di eseguire file di dimensioni maggiori.
DOC profondità di taglio Si riferisce alla profondità (nella direzione Z) di un determinato taglio
EOB fine del blocco Il sinonimo G-code di fine riga (EOL) . Un carattere di controllo che equivale a newline . In molte implementazioni di G-code (come anche, più in generale, in molti linguaggi di programmazione ), un punto e virgola (;) è sinonimo di EOB. In alcuni controlli (soprattutto quelli più vecchi) deve essere digitato e visualizzato in modo esplicito. Altri software lo trattano come un carattere non stampabile/non visualizzato, proprio come le app di elaborazione testi trattano il pilcrow (¶).
E-stop arresto di emergenza  
EST esterno Sul pannello operativo, una delle posizioni del selettore di modalità è "esterna", talvolta abbreviata come "EXT", riferendosi a qualsiasi fonte di dati esterna, come nastro o DNC, in contrasto con la memoria del computer incorporata nel CNC stesso.
FIM movimento completo dell'indicatore  
FPM piedi al minuto Vedi SFM .
HBM alesatrice orizzontale Un tipo di macchina utensile specializzata nell'alesatura, in genere fori di grandi dimensioni in pezzi di grandi dimensioni.
HMC centro di lavoro orizzontale  
HSM lavorazione ad alta velocità Si riferisce alla lavorazione a velocità considerate elevate dagli standard tradizionali. Solitamente realizzato con speciali attacchi mandrino ad ingranaggi o con i più recenti mandrini ad alto numero di giri. Sulle macchine moderne, HSM si riferisce a una strategia di taglio con un carico di truciolo leggero e costante e un'elevata velocità di avanzamento, solitamente pari o prossima alla profondità di taglio completa.
HSS acciaio ad alta velocità Un tipo di acciaio per utensili utilizzato per realizzare frese. Ancora ampiamente utilizzato oggi (versatile, economico, capace) sebbene il metallo duro e altri continuino a erodere la sua quota di applicazioni commerciali a causa della loro maggiore velocità di rimozione del materiale.
in pollice (es)  
IPF pollici per flauto Conosciuto anche come carico del chip o IPT . Vedere indirizzo F e velocità di avanzamento .
IPM pollici al minuto Vedere indirizzo F e velocità di avanzamento .
DPI pollici per giro Vedere indirizzo F e velocità di avanzamento .
IPT pollici per dente Conosciuto anche come carico del chip o IPF . Vedere indirizzo F e velocità di avanzamento .
MDI inserimento dati manuale Una modalità di funzionamento in cui l'operatore può digitare righe di programma (blocchi di codice) e poi eseguirle premendo inizio ciclo.
MEM memoria Sul pannello operativo, una delle posizioni del selettore di modalità è "memoria", talvolta abbreviata come "MEM", riferendosi alla memoria del computer che è incorporata nel CNC stesso, in contrasto con qualsiasi fonte di dati esterna, come il nastro o DNC.
MFO sostituzione manuale della velocità di avanzamento La manopola oi pulsanti MFO consentono all'operatore o al macchinista CNC di moltiplicare il valore di avanzamento programmato per qualsiasi percentuale, tipicamente compresa tra il 10% e il 200%. Questo per consentire la messa a punto delle velocità e degli avanzamenti per ridurre al minimo le vibrazioni , migliorare la finitura superficiale , allungare la vita dell'utensile e così via. Le funzionalità SSO e MFO possono essere bloccate per vari motivi, ad esempio per la sincronizzazione della velocità e dell'avanzamento nella filettatura o anche per impedire "soldati"/"inseguimenti" da parte degli operatori. Su alcuni controlli più recenti, la sincronizzazione della velocità e dell'avanzamento nella filettatura è abbastanza sofisticata da rendere disponibili SSO e MFO durante la filettatura, il che aiuta con la regolazione fine delle velocità e degli avanzamenti per ridurre le vibrazioni sui filetti o nei lavori di riparazione che comportano la raccolta di thread esistenti.
mm millimetro (i)  
MPG generatore di impulsi manuale Facendo riferimento alla maniglia (volantino) (ogni clic della maniglia genera un impulso di ingresso servo)
NC controllo numerico  
OSS arresto orientato del mandrino Vedere i commenti su M19 .
SFM piedi di superficie al minuto Vedere anche velocità e avanzamenti e G96 .
SFPM piedi di superficie al minuto Vedere anche velocità e avanzamenti e G96 .
SPT filettatura a punto singolo  
SSO override della velocità del mandrino La manopola oi pulsanti SSO consentono all'operatore o al macchinista CNC di moltiplicare il valore della velocità programmata per qualsiasi percentuale, tipicamente compresa tra il 10% e il 200%. Questo per consentire la messa a punto di velocità e avanzamenti per ridurre al minimo le vibrazioni , migliorare la finitura superficiale , allungare la vita dell'utensile e così via. Le funzioni SSO e MFO possono essere bloccate per vari motivi, ad esempio per la sincronizzazione della velocità e dell'avanzamento nella filettatura, o anche per impedire " soldati"/"dogging" da parte degli operatori. Su alcuni controlli più recenti, la sincronizzazione della velocità e dell'avanzamento nella filettatura è abbastanza sofisticata da rendere disponibili SSO e MFO durante la filettatura, il che aiuta con la regolazione fine delle velocità e degli avanzamenti per ridurre le vibrazioni sui filetti o nei lavori di riparazione che comportano la raccolta di thread esistenti.
TC o T/C cambio utensile, cambio utensile  Vedi M06 .
TIR lettura totale dell'indicatore  
TPI fili per pollice  
USB Bus seriale universale Un tipo di connessione per il trasferimento dei dati
VMC centro di lavoro verticale  
VTL tornio a torretta verticale Un tipo di macchina utensile che è essenzialmente un tornio con l'asse Z ruotato verticalmente, che consente al frontalino di sedersi come un grande giradischi. Il concetto VTL si sovrappone al concetto di alesatrice verticale.

Guarda anche

Sviluppi estesi

Concetti simili

Preoccupazioni durante l'applicazione

Riferimenti

Bibliografia

link esterno