Programabilne funkcije CNC alatnih strojeva podijeljene su u dvije kategorije:
Jedna se kategorija koristi za kontrolu putanje alata, tj. pomicanje svake osi posmaka, kao što je linearna/kružna interpolacija, kontrola posmaka, pomak i transformacija ishodišta koordinatnog sustava, postavka jedinice dimenzija, pomak alata i kompenzacija, itd. Ova kategorija funkcija naziva se pripremnim funkcijama, a sastoji se od slova G nakon kojeg slijede dvije znamenke, također poznate kao G-kodovi.
Druga kategorija funkcija naziva se pomoćnim funkcijama, koje se koriste za dovršetak kontrole izvršenja programa, kontrole vretena, kontrole alata, kontrole pomoćne opreme, itd. Među ovim pomoćnim funkcijama, Tx x se koristi za odabir alata, a Sx xxx se koristi za kontrolu brzine vretena. Ostale funkcije implementirane su pomoću M-kodova koji se sastoje od slova M nakon kojeg slijede dvije znamenke.
1. Često korištene funkcije koda G-
G00 Pozicioniranje (brzi hod)
G01 Linearna interpolacija (brzina napredovanja)
G02 Kružna interpolacija u smjeru kazaljke na satu
G03 Kružna interpolacija u smjeru suprotnom od kazaljke na satu
G04 Stanka, precizno zaustavljanje
G09 Precizno zaustavljanje
G17 Odaberite ravninu X/Y
G18 Odaberite ravninu Z/X
G19 Odaberite ravninu Y/Z
G27 Referentna točka povratka i provjere
G28 Povratak na referentnu točku
G29 Povratak s referentne točke
G30 Povratak na drugu referentnu točku
G40 Otkaži kompenzaciju radijusa alata
G41 Kompenzacija radijusa lijevog alata
G42 Kompenzacija radijusa desnog alata
G43 Kompenzacija duljine alata +
G44 Kompenzacija duljine alata -
G49 Otkaži kompenzaciju duljine alata
G52 Postavite lokalni koordinatni sustav
G53 Odaberite koordinatni sustav stroja
G54 Odaberite koordinatni sustav obratka 1
G55 Odaberite koordinatni sustav obratka 2
G56 Odaberite koordinatni sustav obratka 3
G57 Odaberite koordinatni sustav obratka 4
G58 Odaberite koordinatni sustav obratka 5
G59 Odaberite koordinatni sustav obratka 6
G60 Pozicioniranje u jednom-smjeru
G61 Način preciznog zaustavljanja
G64 Način rezanja
G65 Makro programski poziv
G66 Modalni poziv makro programa
G67 Otkaži poziv modalnog makro programa
G73 Fiksni ciklus bušenja dubokih rupa
G74 Fiksni ciklus narezivanja obrnutog navoja
G76 Fiksni ciklus finog bušenja
G80 Poništi fiksni ciklus
G81 Fiksni ciklus bušenja
G82 Fiksni ciklus bušenja
G83 Fiksni ciklus bušenja dubokih rupa
G84 Fiksni ciklus narezivanja
G85 Fiksni ciklus bušenja
G86 dosadni fiksni ciklus
G87 Obrnuti fiksni ciklus bušenja
G88 Fiksni ciklus bušenja
G89 Fiksni ciklus bušenja
G90 Način naredbe apsolutne vrijednosti
G91 Način naredbe inkrementalne vrijednosti
G92 Postavka nulte točke obratka
G98 Fiksni ciklus Povratak na početnu točku
G99 Fiksni ciklus Povratak u R točku
2. Često korištene funkcije M koda
M00 Pauza programa
M01 Uvjetno zaustavljanje programa
M02 Kraj programa
M03 Vreteno prema naprijed
M04 Obrnuta rotacija vretena
M05 Zaustavljanje vretena
M06 Razmjena alata
M08 Hlađenje uključeno
M09 Isključeno hlađenje
M18 Poništi orijentaciju vretena
M19 Orijentacija vretena
M29 Kruto narezivanje
M30 Kraj programa i povratak na zaglavlje programa
M98 Poziv potprograma
M99 Potprogram Kraj Povratak/Ponavljanje izvršenja
3. Uobičajena aritmetika
Zbrajanje: #i=#j + #k
Oduzimanje: #i=#j - #k
Množenje: #i=#j * #k
Dijeljenje: #i=#j / #k
Sinus: #i=SIN[#j]
Arkusinus: #i=ASIN[#j]
Kosinus: #i=COS[#j]
Inverzni kosinus: #i=ACOS[#j]
Tangenta: #i=TAN[#j]
Arktangens: #i=ATAN[#j]
Kvadratni korijen: #i=SQRT[#j]
Apsolutna vrijednost: #i=ABS[#j]
Zaokruživanje: #i=ROUND[#j]
Zaokruživanje cijelog broja: #i=FIX[#j]
Zaokruživanje cijelog broja prema dolje: #i=FUP[#j]
Prirodni logaritam: #i=LN[#j]
Eksponencijalna funkcija: #i=EXP[#j]
ILI: #i=#j ILI #k
XOR: #i=#j X ILI #k
I: #i=# I #k
Pretvori iz BCD u BIN: #i=BIN[#j]
Pretvori iz BIN u BCD: #i=BCD[#j]
4. Logički operatori
EQ: Jednako
NE: Nije jednako
GT: Veće od
GE: Veće ili jednako
LT: Manje od
LE: Manje od ili jednako
5. Prijenos programa i petlje
Bezuvjetni prijenos: GOTO
Uvjetni prijenos: IF [uvjetni izraz]
IF [uvjetni izraz] GOTO n, ako je uvjet ispunjen, skoči na segment programa n
IF [uvjetni izraz] THEN, npr.: IF [#I=#J] THEN #K=0
6. Izjave petlje
WHILE [uvjetni izraz] Dom (m=1,2,,3)
…
Ako je uvjet ispunjen, izvršiti program od Dom do ENDm (sve dok uvjet više nije ispunjen); u suprotnom, izvršite program nakon





