La sezione Codici supportati e capacità del parser descrive l’intera funzionalità
dell’interprete G-code in NCPlayer, inclusi i formati di comando supportati, i gruppi modali,
la macroprogrammazione, l’aritmetica, le condizioni, i cicli e le funzioni avanzate.
Il parser è progettato per lavorare con programmi in stile FANUC
(in particolare 0i-MB), ma è compatibile anche con altri controllori se correttamente configurato.
1. Formati di codici G/M supportati
Codici G:
Gruppi modali standard:
G0 — posizionamento rapido.
G1 — interpolazione lineare.
G2 / G3 — interpolazione circolare CW/CCW con supporto per:
Parametro R (raggio dell’arco).
Parametri I, J, K (centro dell’arco in modalità ABS o INC).
Variabili locali: #1 – #33 (azzerate su M99 se il parametro è abilitato).
Variabili comuni: #100 – #199.
Variabili globali: #500 – #531.
Variabili di sistema: secondo FANUC (ad es. #5001 per la posizione X corrente).
Operazioni matematiche:
Addizione, sottrazione, moltiplicazione, divisione, elevamento a potenza.
Precedenza delle parentesi e calcoli annidati.
Funzioni FANUC:
SIN, COS, TAN, ASIN, ACOS, ATAN.
ABS, ROUND, FIX, FUP, MOD, SQRT.
Supporto per funzioni annidate, ad es. SIN[FIX[#100+0.4]].
Sostituzione di indirizzi nei comandi: X[#500], F[#101+10], ecc.
3. Costrutti logici
IF [condizione] GOTO Nxxx — salto al numero di riga.
IF [condizione] THEN ... — esegue il comando se la condizione è vera.
Operatori logici: AND, OR, XOR (condizioni annidate fino a 3 livelli).
Confronti: EQ, NE, GT, LT, GE, LE.
WHILE [condizione] DOx ... ENDx — cicli condizionali.
Contatori di ciclo e protezione contro i loop infiniti.
4. Sottoprogrammi
Definizione di sottoprogramma: Oxxxx.
Chiamata: M98 Pxxxx Lnn — con supporto dell’argomento L.
Ritorno: M99 (con azzeramento delle variabili locali se il parametro è abilitato).
Supporto per G65 Pxxxx con passaggio di argomenti (A, B, C... H, I, ecc.) direttamente nelle variabili locali.
Chiamate ricorsive con controllo della profondità dello stack.
5. Altre funzionalità
Supporto sia della modalità assoluta (G90) sia di quella incrementale (G91) all’interno dello stesso programma.
Normalizzazione automatica del codice: allineamento degli spazi, rimozione di EOB superflui, gestione corretta dei commenti.
Conversione diretta del formato degli archi:
R → IJK (in modalità ABS o INC).
IJK → R.
Parsing con pre-sostituzione delle variabili prima della simulazione.
Espansione in linea dei sottoprogrammi per una simulazione completa del percorso utensile.
Nota: il parser di NCPlayer è in continua evoluzione. Le versioni future estenderanno il supporto
ai codici specifici dei controllori Syntec, Siemens e altri.