# Controllo numerico computerizzato

Un controllo numerico computerizzato (in lingua inglese Computerized Numerical Control), abbreviato CNC, designa una tecnologia meccatronica di misurazione e controllo applicata alla macchina utensile, che prende il nome di macchina a controllo numerico.

## Storia

Il controllo numerico ((EN) Numerical Control, NC) fu sviluppato a partire dagli anni '40 del XX secolo, dove a delle macchine utensili classiche motorizzate vennero implementati controlli a nastro perforato. Con l'aggiunta di servomeccanismi sempre più complessi a controllo di elettronica analogica e successivamente digitale. L'avvento del calcolo numerico computerizzato determinò la nascita del CNC negli anni '60.

## Hardware

Il CNC lavora con un PC industriale specifico, che può essere separato dal pulpito di controllo o direttamente integrato in esso. Moderni PC permettono di ottenere un tempo ciclo di lavoro al di sotto di un 1 millisecondo. Questo permette ad esempio di ottenere su una macchina utensile, che sia fresatrice o tornio, precisioni di posizionamento dell'ordine di 0,001 mm e velocità di taglio di 20000 mm/min.
La memorizzazione dei dati avvenne all'inizio con memorie SDRAM. Più tardi con disco rigido e poi con memoria flash.
Per la comunicazione con altre apparecchiature vi sono solitamente:
* Porta seriale RS-232 fino a 20 m, o RS-422 fino a 1200 m
* Porta Ethernet (LAN) fino a 100 m
o interfacce utente tipo PCMCIA, CompactFlash, USB

## Controllo

Il controllo di una macchina CNC segue quanto elaborato dal computer, le posizioni, gli angoli e i sensori di stato vari che dopo un calcolo di interpolazione rispetto allo stato impostato dal programma CNC comandano motori e altri attuatori. L'interpolazione avviene in millisecondi, permettendo alta precisione abbinata ad alta velocità di esecuzione.
La tecnologia CNC permette lavorazioni automatiche con più assi in uso contemporaneamente. Si può classificare un CNC secondo il numero di assi interpolabili contemporaneamente.

## Assi

I modelli più moderni possono avere fino a 5 assi simultaneamente.

## Punti di riferimento
### Punto zero macchina M

    l'origine delle coordinate macchina.

### Punto di riferimento R

    l'origine del sistema di misurazione.

### Punto di riferimento del mandrino T

    l'origine del mandrino.

### Punto zero del pezzo W

    l'origine delle coordinate del pezzo in lavorazione.

## Misurazione
### Misurazione assoluta (G90)

    le coordinate verranno impostate secondo l'origine assoluta del pezzo in lavorazione.

### Misurazione a catena (G91)

    o incrementale.

## Programmazione

Vi sono diversi metodi di programmazione. Nei moderni CNC vi è la possibilità di utilizzo di diversi metodi.

### Metodi di programmazione

* Programmazione manuale: jedes Zeichen des Programms von Hand eingeben/ändern
* Programmazione a macchina: CAD → CAM
* G-Code (DIN/ISO)
* Dialogo o shop floor programming (SFP): assistenza grafica, interrogazione parametri → immissione nel programma: DIN-PLUS, Turn Plus, Deckeldialog
* Programmazione parametrica
* Teach-in: paragonabile al “copiatura”
* Playback: registrazione → ripetizione: robot industriali per verniciatura

### Programmazione DIN/ISO o G-Code

La frase e l'indirizzo da fornire al controllo descritta nella norma DIN 66025/ISO 6983.

#### Esempio 1

Un esempio di G-Code per fresa CNC. A destra lo stesso esempio a "testo chiaro" su un controllo Heidenhain:
| G-Code | Heidenhain-„Klartext“ |
| N080 … N090 G00 X100 Y100 N100 Z0 N110 G01 Z-2 F10 N120 G01 X110 F20 N130 Y200 F15 N140 G00 Z10 N150 … | 80 … 90 L X+100 Y+100 R0 FMAX 100 L Z+0 R0 FMAX 110 L Z-2 R0 F10 120 L X+110 R0 F20 130 L Y+200 R0 F15 140 L Z+10 R0 FMAX 150 … |

#### Esempio 2 (con correttore di percorso)

Esempio per tornio CNC con correttore (G41/G42) durante la rifinitura:
| G-Code | Heidenhain-„Klartext“ |
| N080 … N090 G00 X-1,6 Z2 N100 G42 N110 G01 Z0 F10 N120 G01 X0 F20 N130 G03 X20 Z-10 I0 K-10 N140 G01 Z-50 N150 G01 X50 Z-100 N160 G40 N170 … | 80 … 90 L X-1,6 Z+2 R0 FMAX 100 L Z+0 RR F10 110 L X+0 RR F20 120 CT X+20 Z-10 RR 130 L Z-50 RR 140 L X+50 RR 150 … |

### Programmazione parametrica

È uno stile di programmazione avanzato simile a quello dei moderni linguaggi software. Quasi tutti i controlli numerici hanno la possibilità di programmare con questo paradigma.