I vari linguaggi utilizzati, infatti, fanno per lo più riferimento allo standard ISO 6983 che definisce gli elementi fondamentali di un linguaggio generico, adatto alla programmazione dei vari tipi di macchina utensile.
Lo standard di linguaggio ISO 6983 non costituisce, comunque, un'obbligo all'utilizzo da parte dei costruttori di CNC, che nella pratica adottano i codici principali dello standard, integrandoli con loro codici proprietari. Per le tantissime funzionalità offerte oggi dai controlli, quali: risoluzione automatica della geometria del piano, programmazione con enti virtuali, programmazione parametrica, gestione della correzione utensile con tavole o teste rotanti, gestione della correzione utensile su cinque assi, eccetera, ciascun costruttore ha definito in pratica i propri linguaggi o sottolinguaggi specializzati. Tali linguaggi specializzati hanno reso molto più agevole, flessibile, rapida ed efficace la programmazione di funzioni o geometrie complesse, ma hanno reso in pratica molto diversa la programmazione da controllo a controllo, vanificando in pratica l'obbiettivo primo dello standard:
un linguaggio unico di programmazione, indipendente dal tipo di controllo impiegato.
Definizioni
Programma
Si può definire un programma come una collezione ordinata di blocchi. L'ordine è quello di esecuzione. Il controllo leggerà tutto il programma e lo interpreterà un blocco alla volta, dal blocco di inizio fino al blocco di fine programma. A meno di specifiche istruzioni di salto o di interruzione, la lettura dei blocchi procede in successione.
Blocco
Il blocco è un'insieme di funzioni che saranno interpretate "tutte insieme", cioè in relazione tra loro. Il blocco viene spesso identificato come la "riga" di programma; questo non è del tutto corretto potendo un blocco occupare più righe sul video. La posizione delle funzioni all'interno del blocco, nei controlli più moderni è, con alcune eccezioni, libera; il controllo al momento dell'elaborazione del blocco determina la priorità nell'esecuzione dei singoli comandi che, unche se letti tutti insieme, vengono eseguiti separatamente. Ad esempio nel caso si sia programmato contemporaneamente il movimento di uno o più assi e l'accensione del mandrino, il CNC provvederà normalmente ad accendere il mandrino prima di muovere gli assi. Esempio: N10G01X100Y100Z100S1000F250M03
Funzione
La funzione è in pratica un comando, costituito da una lettera e da un numero che ne costituisce il valore. Le funzioni si classificano come "modali" o "non modali" a seconda del fatto che generino un comando con effetto permanente o temporaneo. Il comando di accensione mandrino, ed esempio, è modale perché il mandrino, una volta acceso, resta in moto fino all'eecuzione del relativo comando di arresto. Esempio: G01