Le funzioni programmabili delle macchine utensili CNC si dividono in due categorie:
Una categoria viene utilizzata per controllare il percorso utensile, ovvero il movimento di ciascun asse di avanzamento, come l'interpolazione lineare/circolare, il controllo dell'avanzamento, l'offset e la trasformazione dell'origine del sistema di coordinate, l'impostazione delle unità dimensionali, l'offset e la compensazione dell'utensile, ecc. Questa categoria di funzioni è chiamata funzioni preparatorie, costituite dalla lettera G seguita da due cifre, note anche come codici G-.
L'altra categoria di funzioni è chiamata funzioni ausiliarie, utilizzate per completare il controllo dell'esecuzione del programma, il controllo del mandrino, il controllo dell'utensile, il controllo dell'attrezzatura ausiliaria, ecc. Tra queste funzioni ausiliarie, Tx x viene utilizzata per la selezione dell'utensile e Sx xxx viene utilizzata per controllare la velocità del mandrino. Altre funzioni sono implementate utilizzando codici M-composti dalla lettera M seguita da due cifre.
1. Funzioni del codice G-di uso comune
Posizionamento G00 (traslazione rapida)
G01 Interpolazione lineare (velocità di avanzamento)
G02 Interpolazione circolare in senso orario
G03 Interpolazione circolare antioraria
G04 Pausa, Arresto Preciso
G09 Arresto preciso
G17 Seleziona il piano X/Y
G18 Seleziona il piano Z/X
G19 Seleziona il piano Y/Z
G27 Ritorno e verifica del punto di riferimento
G28 Ritorno al punto di riferimento
G29 Ritorno dal Punto di Riferimento
G30 Ritorno al secondo punto di riferimento
G40 Annulla la compensazione del raggio utensile
G41 Compensazione raggio utensile sinistro
G42 Compensazione raggio utensile destro
G43 Compensazione lunghezza utensile +
G44 Compensazione lunghezza utensile -
G49 Annulla la compensazione della lunghezza utensile
G52 Imposta il sistema di coordinate locali
G53 Seleziona il sistema di coordinate della macchina
G54 Seleziona il sistema di coordinate del pezzo 1
G55 Selezionare il sistema di coordinate del pezzo 2
G56 Selezionare il sistema di coordinate del pezzo 3
G57 Selezionare il sistema di coordinate del pezzo 4
G58 Selezionare il sistema di coordinate del pezzo 5
G59 Selezionare il sistema di coordinate del pezzo 6
G60 Posizionamento in-direzione singola
G61 Modalità di arresto preciso
G64 Modalità di taglio
G65 Chiamata del programma macro
G66 Chiamata programma macro modale
G67 Annulla la chiamata del programma macro modale
G73 Ciclo fisso di foratura profonda
G74 Ciclo fisso di maschiatura inversa
G76 Ciclo fisso di barenatura di precisione
G80 Annulla ciclo fisso
G81 Ciclo fisso di foratura
G82 Ciclo fisso di foratura
G83 Ciclo fisso di foratura profonda
G84 Ciclo fisso di maschiatura
G85 Ciclo fisso di alesatura
G86 Ciclo fisso noioso
G87 Ciclo fisso di barenatura inversa
G88 Ciclo fisso di alesatura
G89 Ciclo fisso di alesatura
G90 Modalità comando valore assoluto
G91 Modalità comando valore incrementale
G92 Impostazione del punto zero del pezzo
G98 Ciclo fisso Ritorno al punto iniziale
G99 Ciclo fisso Ritorno al punto R
2. Funzioni del codice M comunemente utilizzate
M00 Pausa del programma
M01 Arresto condizionale del programma
M02 Fine del programma
M03 Rotazione in avanti del mandrino
M04 Rotazione inversa del mandrino
M05 Arresto del mandrino
Cambio utensile M06
M08 Raffreddamento attivo
M09 Raffreddamento spento
Annullamento dell'orientamento del mandrino M18
Orientamento del mandrino M19
Maschiatura rigida M29
M30 Fine del programma e ritorno all'intestazione del programma
M98 Chiamata subroutine
M99 Fine della subroutine, ritorno/ripetizione dell'esecuzione
3. Aritmetica comune
Addizione: #i=#j + #k
Sottrazione: #i=#j - #k
Moltiplicazione: #i=#j * #k
Divisione: #i=#j / #k
Seno: #i=SIN[#j]
Arcoseno: #i=ASIN[#j]
Coseno: #i=COS[#j]
Coseno inverso: #i=ACOS[#j]
Tangente: #i=TAN[#j]
Arcotangente: #i=ATAN[#j]
Radice quadrata: #i=SQRT[#j]
Valore assoluto: #i=ABS[#j]
Arrotondamento: #i=ROUND[#j]
Arrotondamento numero intero: #i=FIX[#j]
Arrotondamento per difetto di numeri interi: #i=FUP[#j]
Logaritmo naturale: #i=LN[#j]
Funzione esponenziale: #i=EXP[#j]
OPPURE: #i=#j OPPURE #k
XOR: #i=#j X OR #k
AND: #i=# AND #k
Converti da BCD a BIN: #i=BIN[#j]
Converti da BIN a BCD: #i=BCD[#j]
4. Operatori logici
EQ: uguale a
NE: Non uguale a
GT: Maggiore di
GE: Maggiore o uguale a
LT: Meno di
LE: Minore o uguale a
5. Trasferimento di programmi e loop
Trasferimento incondizionato: GOTO
Trasferimento condizionale: IF [espressione condizionale]
IF [espressione condizionale] GOTO n, se la condizione è soddisfatta, salta al segmento di programma n
IF [espressione condizionale] THEN, ad esempio: IF [#I=#J] THEN #K=0
6. Istruzioni in loop
WHILE [espressione condizionale] Dom (m=1,2,,3)
…
Se la condizione è soddisfatta, eseguire il programma da Dom a ENDm (fino a quando la condizione non è più soddisfatta); in caso contrario, eseguire il programma dopo





