De programmerbare funksjonene til CNC-maskinverktøy er delt inn i to kategorier:
Én kategori brukes til å kontrollere verktøybanen, dvs. bevegelsen til hver mateakse, slik som lineær/sirkulær interpolasjon, matekontroll, koordinatsystemopprinnelsesforskyvning og transformasjon, innstilling av dimensjonsenhet, verktøyforskyvning og kompensasjon osv. Denne kategorien av funksjoner kalles forberedende funksjoner, bestående av bokstaven G etterfulgt av to sifre, også kjent som G{{3}koder.
Den andre kategorien funksjoner kalles hjelpefunksjoner, som brukes til å fullføre programutførelseskontroll, spindelstyring, verktøystyring, hjelpeutstyrsstyring osv. Blant disse hjelpefunksjonene brukes Tx x for verktøyvalg, og Sx xxx brukes til å kontrollere spindelhastigheten. Andre funksjoner implementeres ved hjelp av M-koder som består av bokstaven M etterfulgt av to sifre.
1. Vanlige G-kodefunksjoner
G00 Posisjonering (Rask Travers)
G01 Lineær interpolasjon (matingshastighet)
G02 Sirkulær interpolering med klokken
G03 Sirkulær interpolasjon mot klokken
G04 Pause, presis stopp
G09 Nøyaktig stopp
G17 Velg X/Y-plan
G18 Velg Z/X-plan
G19 Velg Y/Z-plan
G27 Retur og sjekk referansepunkt
G28 Gå tilbake til referansepunkt
G29 Retur fra referansepunkt
G30 Gå tilbake til andre referansepunkt
G40 Avbryt Verktøyradiuskompensasjon
G41 Venstre verktøyradiuskompensasjon
G42 Høyre verktøyradiuskompensasjon
G43 Verktøylengdekompensasjon +
G44 Verktøylengdekompensasjon -
G49 Avbryt verktøylengdekompensasjon
G52 Angi lokalt koordinatsystem
G53 Velg Maskinkoordinatsystem
G54 Velg arbeidsstykkekoordinatsystem 1
G55 Velg emnekoordinatsystem 2
G56 Velg arbeidsstykkekoordinatsystem 3
G57 Velg arbeidsstykkekoordinatsystem 4
G58 Velg emnekoordinatsystem 5
G59 Velg arbeidsstykkekoordinatsystem 6
G60 Enkel-posisjonering
G61 Nøyaktig stoppmodus
G64 Kuttemodus
G65 Makro programanrop
G66 Modal makroprogramkall
G67 Avbryt modalt makroprogramkall
G73 Dypt hull boring fast syklus
G74 Omvendt gjengeboring fast syklus
G76 Finboring fast syklus
G80 Avbryt fast syklus
G81 Fast syklus for boring
G82 Fast syklus for boring
G83 Dypt hull boring fast syklus
G84 Tapping fast syklus
G85 Kjedelig fastsyklus
G86 Kjedelig fast syklus
G87 Omvendt boring fast syklus
G88 Kjedelig fast syklus
G89 Kjedelig fast syklus
G90 Absolutt Value Command Mode
G91 Inkrementell verdi kommandomodus
G92 Arbeidsstykkets nullpunktinnstilling
G98 Fast syklus Tilbake til utgangspunktet
G99 Fast syklus Retur til R-punkt
2. Vanlige M-kodefunksjoner
M00 Programpause
M01 Betinget programstopp
M02 Programslutt
M03 Spindel fremoverrotasjon
M04 Spindel omvendt rotasjon
M05 Spindelstopp
M06 Verktøybytte
M08 Kjøling på
M09 Avkjøling
M18 Spindelretning Avbryt
M19 Spindelorientering
M29 Stiv anboring
M30 Programslutt og gå tilbake til programoverskrift
M98 subrutineanrop
M99 Subrutine Slutt Retur/Gjenta utførelse
3. Vanlig aritmetikk
Tillegg: #i=#j + #k
Subtraksjon: #i=#j - #k
Multiplikasjon: #i=#j * #k
Divisjon: #i=#j / #k
Sinus: #i=SIN[#j]
Arcsine: #i=ASIN[#j]
Cosinus: #i=COS[#j]
Invers cosinus: #i=ACOS[#j]
Tangent: #i=TAN[#j]
Arctangens: #i=ATAN[#j]
Kvadratrot: #i=SQRT[#j]
Absolutt verdi: #i=ABS[#j]
Avrunding: #i=RUNDE[#j]
Heltallsavrunding: #i=FIX[#j]
Heltall avrundes ned: #i=FUP[#j]
Naturlig logaritme: #i=LN[#j]
Eksponentiell funksjon: #i=EXP[#j]
ELLER: #i=#j ELLER #k
XOR: #i=#j X ELLER #k
OG: #i=# OG #k
Konverter fra BCD til BIN: #i=BIN[#j]
Konverter fra BIN til BCD: #i=BCD[#j]
4. Logiske operatører
EQ: lik
NE: Ikke lik
GT: Større enn
GE: Større enn eller lik
LT: Mindre enn
LE: Mindre enn eller lik
5. Programoverføring og løkker
Ubetinget overføring: GOTO
Betinget overføring: IF [betinget uttrykk]
HVIS [betinget uttrykk] GÅ TIL n, hvis betingelsen er oppfylt, hopp til programsegment n
IF [betinget uttrykk] THEN, f.eks.: IF [#I=#J] THEN #K=0
6. Sløyfeuttalelser
WHILE [betinget uttrykk] Dom (m=1,2,,3)
…
Hvis betingelsen er oppfylt, kjør programmet fra Dom til ENDm (til betingelsen ikke lenger er oppfylt); ellers, kjør programmet etter





