PROGRAMMAZIONE CNC

INDICE CONTENUTI
Linguaggio ISO
     Sintassi delle funzioni
Sistema di coordinate nel tornio
     Esempio di calcolo delle coordinate
     Esempio di programmazione 1
     Esempio di programmazione 2
Principali codici ISO

Un programma CNC è un insieme di istruzioni espresse in un linguaggio comprensibile alle macchine utensili CNC. Le istruzioni sono raggruppate in frammenti chiamati blocchi o linee di codice. Quella che segue è un esempio di linea di codice

N120 G00 X100 Z-15.50 M8

Attualmente esistono diversi linguaggi di programmazione, ma sono tutte evoluzioni di un linguaggio base chiamato linguaggio ISO Standard.

LINGUAGGIO ISO STANDARD

Il linguaggio ISO standard, detto per semplicità linguaggio ISO ha l’enorme vantaggio di essere compreso da tutti i computer montati a bordo delle macchine CNC. Si compone di quattro gruppi di funzioni fondamentali

  • Funzioni N (da Numbers) … specificano solo il numero della linea di codice
  • Funzioni M (da Miscellaneous = varie) … gestiscono funzioni ausiliarie (apertura refrigerante, rotazione torretta portautensili, ecc.)
  • Funzioni T (da Tool = utensile) … definiscono l’utensile da usare per ogni lavorazione
  • Funzioni G (da General) … servono a programmare tutti i movimenti degli assi della macchina

SINTASSI DELLE FUNZIONI
Per sintassi si intende come devono essere scritte le istruzioni affinché il computer della macchina CNC sia in grado di comprenderle e interpretarle.

Sintassi delle funzioni N – È la seguente: lettera N seguita da un numero intero compreso tra 1 e 9999 (p. es. N10, N20, N25, ecc.). Praticamente la funzione N serve a numerare le linee di codice che compongono il programma.

Anche se è tecnicamente possibile numerare le linee di codice in multipli di 1 (p. es. N1, N2, N3, ecc.) si preferisce numerarle in multipli di 10 perché se ci si dimentica di qualche istruzione intermedia c’è sempre la possibilità di aggiungerla in un secondo momento.

Sintassi delle funzioni M – È la seguente: lettera M seguita da un numero intero (p. es. M3, M8, M30, ecc.). A seconda del numero le funzioni attivano qualche comando nella macchina utensile.

Sintassi delle funzioni T – È la seguente: lettera T seguita da quattro numeri (p. es. T0103, T0305, ecc.). I primi due numeri rappresentano il numero dell’utensile montato sulla torretta portautensili, i secondi due numeri rappresentano il correttore associato all’utensile selezionato. Per esempio, T0105 significa utensile 01 con correttore 05.

NOTA. La funzione T da sola non cambia l’utensile, dice solo al computer quale utensile va impostato per la successiva lavorazione; per l’effettivo cambio dell’utensile bisogna sempre associare la funzione M6 che effettua la rotazione della torretta e porta l’utensile selezionato in posizione di lavoro.

N190 T0305 M6 – per esempio questa linea di codice dice al computer che la successiva lavorazione richiede l’utensile 03 (T0305) con correttore 05 (T0305) e poi contiene la funzione M6 per la rotazione della torretta che realizza il cambio dell’utensile.

Sintassi delle funzioni G – Le funzioni G sono più elaborate. In genere la sintassi è di questo tipo

Gnn Sxxx Fxxx

  • nn … è il codice della funzione G
  • S ed F … sono i parametri della funzione
  • xxx … sono gli argomenti dei parametri

I parametri S ed F sono di gran lunga i più comuni. Ecco il loro significato

  • Parametro S (da Spindle = mandrino) … specifica la velocità di rotazione del mandrino
  • Parametro F (da Feed = avanzamento) … gestisce la velocità di avanzamento

Al termine di questo articolo è riportato un elenco delle principali funzioni M e G del linguaggio ISO. Fai clic qui per andarci ora.

SISTEMA DI COORDINATE NEL TORNIO CNC

Nel tornio CNC si considerano due assi

Asse X … è l’asse dei diametri, positivo (+X) verso la torretta portautensili

Asse Z … l’asse del mandrino, positivo (+Z) verso la contropunta

Come punto di inizio occorre stabilire uno zero pezzo. Questo viene individuato sempre lungo l’asse Z del mandrino in una posizione a scelta del programmatore.

Schema di albero con zero pezzo lungo l'asse Z

Nel disegno qui sopra lo zero pezzo, che è sempre rappresentato dal simbolo Simbolo convenzionale zero pezzo, è stato posto all’estremità del pezzo lavorato. Questo è un buon punto perché agevola il calcolo di tutte le coordinate di programmazione.

Esempio di calcolo delle coordinate. Partendo dal pezzo rappresentato dalla figura qui sotto, si possono facilmente calcolare le coordinate dei punti da 1 a 8

Schema di albero per calcolo coordinate CNC

Si ottiene la seguente tabella di coordinate

Esempio tabella coordinate CNC

DA RICORDARE

  • Nel tornio, le coordinate X si danno sempre in base ai diametri, non ai raggi
  • I numeri decimali si esprimono con il punto, non con la virgola
  • Le coordinate sono sempre riferite allo zero pezzo

ESEMPIO DI PROGRAMMAZIONE 1

Sfacciatura. Si vuole sfacciare una barra di diametro Ø 60 mm asportando 5 mm di sovrametallo in due passate.

La figura qui sotto mostra il percorso 012345670 dell’utensile per realizzare la lavorazione. I tratti in linea continua sono le passate di taglio, quelli in linea tratteggiata sono i movimenti rapidi. Questo schema deve sempre essere trascritto quando si progetta un ciclo CNC.

Schema di sfacciatura in due passate

Quando l’utensile avanza in rapido, affinché non si danneggi, dovrà sempre fermarsi prima della superficie del pezzo e ripartire in rapido solo dopo che si è disimpegnato del tutto dal pezzo in lavorazione.

Ricordiamo ancora una volta che, nel tornio CNC, le coordinate lungo l’asse X sono riferite ai diametri, non ai raggi.

Infine, le coordinate della posizione di cambio utensile (punto 0) possono variare da macchina a macchina. In questo esempio fissiamo una quota di svincolo di 30 mm a destra e sopra il pezzo grezzo.

Le coordinate saranno le seguenti

Tabella di coordinate per lavorazione CNC

Terminata l’analisi della geometria del pezzo si possono scegliere i parametri di taglio (avanzamento, velocità di taglio, ecc.). In questo esempio si assumono dei valori medi adatti per acciaio comune.

N10 G96 G94 S100 F0.2 M3 M8
N20 G00 X62 Z-2.5
N30 G01 X0 Z-2.5
N40 G01 X0 Z-1
N50 G00 X62 Z-1
N60 G00 X62 Z-5
N70 G01 X0 Z-2.5
N80 G01 X0 Z-3.5
N90 G00 X90 Z30
N100 M30

La riga N10 serve a impostare i parametri di taglio.

Dalla riga N20 alla N90 il programma impartisce alla macchina i comandi per la lavorazione in due passate.

La riga N100, con l’istruzione M30, arresta la macchina.

Le coordinate identiche tra due righe adiacenti (indicate in rosso) volendo si possono omettere per velocizzare la scrittura e il controllo del programma.

ESEMPIO DI PROGRAMMAZIONE 2

Tornitura cilindrica. Si vuole eseguire una tornitura cilindrica su una barra dal diametro Ø 60 mm al diametro Ø 48 mm per una lunghezza di 60 mm.

Il percorso dell’utensile è dato dalla sequenza 0123456347830 che comprende le passate di taglio (1-2, 5-7 e 7-8) e tutti i movimenti in rapido.

Lo spessore di truciolo da asportare sul raggio si trova con la formula

Formula per il calcolo dello spessore di truciolo da asportare in una tornitura cilindrica

Si decide di fare tre passate da 2 mm ciascuna. Inoltre si prevede un extra corsa di sicurezza in rapido di 2 mm sia in entrata (punti 4-1-5-7), sia in uscita (punti 3-4).

Schema di tornitura cilindrica tre passate

Ecco il programma che esegue la lavorazione

N10 G95 G96 S100 F0.2 M3 M7
N20 G00 X56 Z2
N30 G01 Z-60
N40 G01 X62
N50 G00 Z2
N60 G00 X52
N70 G01 Z-60
N80 G01 X62
N90 G00 Z2
N100 G00 X48
N110 G01 Z-60
N120 G01 X62
N130 G00 X90 Z30
N140 M30

Come si può osservare dal programma, quando l’utensile è anche solo parzialmente impegnato nel materiale occorre muoverlo con l’istruzione G01 (avanzamento lineare in modalità lavoro) per evitare di danneggiare l’utensile. Quando invece l’utensile è totalmente disimpegnato dal pezzo si può — anzi, si deve — muoverlo con l’istruzione G00 (avanzamento rapido).

PRINCIPALI CODICI ISO STANDARD

Funzioni M
M03 – Rotazione oraria del mandrino
M04 – Rotazione antioraria del mandrino
M06 – Cambio automatico dell’utensile
M08 – Apertura refrigerante
M09 – Chiusura refrigerante
M30 – Fine programma con ritorno all’inizio

Funzioni G
G00 – Movimento in rapido
G01 – Interpolazione lineare (moto di lavoro)
G02 – Interpolazione circolare oraria
G03 – Interpolazione circolare antioraria
G33 – Filettatura con passo costante
G40 – Cancellazione compensazione raggio utensile
G41 – Compensazione raggio utensile a sinistra
G42 – Compensazione raggio utensile a destra
G90 – Programmazione in coordinate assolute
G91 – Programmazione in coordinate incrementali
G94 – Avanzamento in mm/min
G95 – Avanzamento in mm/giro
G96 – Velocità di taglio in m/min (Vt)
G97 – Rotazione mandrino in giri/min

Sintassi
G00 X… Z… Coordinate del punto di arrivo
G01 X… Z… Coordinate del punto di arrivo
G02 X… Z… R… Coordinate del punto di fine arco e raggio
G03 X… Z… R… Coordinate del punto di fine arco e raggio
G94 F… Valore dell’avanzamento in mm/min
G95 F… Valore dell’avanzamento in mm/giro
G96 S… Valore della velocità di taglio in m/min
G97 S… Valore della rotazione mandrino in giri/min