La tabella delle macrovariabili in NCPlayer è un pannello interattivo che mostra i valori correnti
delle variabili #100–#199 (locali/definite dall’utente) e #500–#531 (comuni/persistenti), così come delle variabili di sistema
utilizzate in espressioni, condizioni e cicli G-code. La tabella si aggiorna in tempo reale durante la simulazione
e aiuta ad analizzare la logica dei macroprogrammi, fare il debug dei calcoli e tracciare gli effetti collaterali.
Scopo
Debug della logica: vedere facilmente come cambiano le variabili durante l’esecuzione di #i = ..., IF, WHILE/DO/END, G65, M98/M99.
Analisi delle espressioni: monitorare i valori in ingresso/uscita quando si usano SIN/COS/ROUND/FIX/FUP/ABS/SQRT/....
Ripetibilità: reimpostare rapidamente i valori delle variabili per rieseguire il programma partendo da uno stato “pulito”.
Informazioni visualizzate
Indice della variabile (ad es. #100, #512).
Valore corrente (numero/NaN se non ancora assegnata, oppure risultato di un’espressione).
Origine/ultima scrittura — riga del programma in cui la variabile è stata modificata l’ultima volta (se collegata).
Formato — valore grezzo e, se necessario, valore formattato (es. 30 → 30.0).
Come funziona
Il parser, durante la fase di pre-elaborazione, calcola e/o rinvia il calcolo delle espressioni che coinvolgono variabili #.
Il simulatore, durante l’esecuzione passo-passo, aggiorna la tabella a ogni assegnazione #i = ... e all’ingresso/uscita da sottoprogrammi/cicli.
Le dipendenze differite (ad es. X[#100]) vengono ricalcolate quando #100 cambia, e questo si riflette nella tabella.
Ambiti e particolarità
#100–#199 — variabili locali per il programma/la sessione di simulazione.
#500–#531 — variabili comuni (pseudo-persistenti), conservate all’interno dell’esecuzione corrente del simulatore.
Di sistema (#0, ecc.): mostrate quando vengono utilizzate in espressioni o operazioni di lettura.
Inizializzazione: le variabili non inizializzate appaiono vuote/NaN fino alla prima assegnazione.
Interazione
Pausa/passo: metti in pausa la simulazione ed esegui le righe passo-passo, osservando come cambiano i valori.
Filtro rapido: mostra solo gli indici che utilizzi (ad es. #100, #101, #500).
Reset dei valori: usa il pulsante Reset (se disponibile) per azzerare le variabili locali/comuni prima di una nuova esecuzione.
Esempi di utilizzo
#100 = ROUND[#101 + 10]
IF [#100 GT 50] THEN GOTO 120
WHILE [#9 LT #20] DO1
#9 = #9 + 1
END1
G65 P1000 A1 B#100 (Parameters to subprogram: #1, #2, ...)
In questi esempi, la tabella permette di vedere le fasi di arrotondamento, gli incrementi del contatore del ciclo
e i valori passati a G65, rendendo più semplice la verifica della logica.
Buone pratiche
Inizializzare le variabili prima dell’uso (#9 = 0) — questo rende la tabella più prevedibile.
Evitare dipendenze nascoste (riassegnazioni in profondità nelle sottoprogrammi senza commenti).
Commentare le assegnazioni chiave — la tabella mostrerà la riga sorgente, aiutandoti a navigare più velocemente.
Tabella variabili prima della simulazione:
Tabella variabili durante la simulazione:
Limitazioni e note
Alcune variabili di sistema possono essere di sola lettura — i loro valori dipendono dalla configurazione del simulatore.
Le espressioni profondamente annidate vengono valutate passo per passo; con una sintassi errata, il valore può diventare NaN — controlla il log di pre-elaborazione.
Il reset della simulazione cancella la tabella dei valori locali (le variabili comuni — secondo le impostazioni della sessione corrente).