Le informazioni che servono per partire senza perdere il controllo del pezzo
- La domanda principale non è “che sintassi usare”, ma quale logica di lavorazione conviene impostare.
- Un programma leggibile parte quasi sempre da piano, offset, utensile, mandrino e avanzamento.
- Su Siemens i cicli standard sono utilissimi, soprattutto per foratura ripetuta e lavorazioni tecniche ricorrenti.
- La differenza tra un listato pulito e uno fragile sta spesso in gestione delle modalità e ritorno sicuro al rapido.
- I controlli finali non sono un dettaglio: simulazione, dry run e coerenza del setup evitano la maggior parte degli errori costosi.
Cosa cerca davvero chi vuole esempi su SINUMERIK
Qui l’intento è chiaramente pratico: chi lavora su una macchina CNC non vuole una definizione astratta, ma un modello da leggere, adattare e portare in officina con criterio. Io partirei sempre da questa idea: un buon esempio non serve a copiare blocchi alla cieca, ma a capire la sequenza corretta delle azioni.
Quando si cercano esempi su Siemens, in realtà si cercano spesso tre cose diverse: un listato base da cui partire, un ciclo già pronto per non riscrivere tutto ogni volta e un modo per evitare gli errori tipici di chi passa da un controllo all’altro. È per questo che, più che spiegare “che cos’è il CNC”, ha senso mostrare come si costruisce un programma che lavori davvero.
- Capire dove si imposta il riferimento pezzo.
- Vedere dove entrano utensile, mandrino e feed.
- Riconoscere quando conviene usare un ciclo e quando no.
- Imparare a leggere il listato senza confondere movimento, compensazione e fine programma.
Una volta chiarito questo, diventa molto più semplice leggere anche blocchi apparentemente diversi tra loro, perché la struttura di fondo resta sempre la stessa.

La struttura minima di un programma Siemens leggibile
Se devo semplificare al massimo, io guardo sempre quattro punti: contesto geometrico, utensile, tecnologia e uscita sicura. Nei manuali SINUMERIK questa logica torna spesso, anche se la sintassi esatta cambia tra 808D, 828D, 840D sl e le diverse opzioni installate sulla macchina.
| Elemento | Funzione | Errore tipico |
|---|---|---|
| G17, G18, G19 | Selezionano il piano di lavoro | Fare fori o tornitura sul piano sbagliato |
| G90, G91 | Definiscono coordinate assolute o incrementali | Mescolare i due modi senza rendersene conto |
| G54 e offset simili | Portano il programma sullo zero pezzo | Partire dal riferimento macchina invece che dal pezzo |
| T, S, M | Richiamano utensile, mandrino e funzioni ausiliarie | Lavorare con tecnologia incompleta o incoerente |
| F | Imposta l’avanzamento | Usare un feed non adatto al tipo di ciclo |
| M30, M17, RET | Chiudono il programma o il sottoprogramma | Lasciare attiva una modalità che non dovrebbe restare in memoria |
Questa è la base. Se questa base non è chiara, anche il listato più corto può diventare ambiguo. Per questo io consiglio sempre di leggere prima la struttura, e solo dopo passare ai casi pratici.
N10 G17 G90 G54
N20 T1 M6
N30 S5000 M3
N40 G0 X0 Y0 Z50
N50 G1 Z-2 F200
N60 ...
N90 M30
Qui il punto non è il formato del file, ma la sequenza mentale: piano corretto, zero corretto, utensile corretto, movimenti coerenti e chiusura pulita. Da qui diventa naturale passare a un esempio completo di fresatura.
Un esempio di fresatura piana che mostra il flusso completo
Per una lavorazione semplice, come una tasca poco profonda o un contorno rettangolare, il codice diretto è spesso il modo più chiaro per capire cosa sta facendo la macchina. Io lo uso volentieri quando voglio leggere ogni passaggio, soprattutto in fase di apprendimento o di verifica del programma.
N10 G17 G90 G54
N20 T1 M6
N30 S6000 M3
N40 G0 X-10 Y-10 Z50
N50 G1 Z-2 F150
N60 G1 X50 F500
N70 Y30
N80 X-10
N90 Y-10
N100 G0 Z50
N110 M30
Questo esempio fa tre cose essenziali: si posiziona in rapido, entra in taglio con un avanzamento controllato e poi torna in sicurezza in Z. La quota di lavoro è volutamente semplice, perché lo scopo è capire la sequenza, non costruire un ciclo industriale ottimizzato.
Se la tua macchina richiede la compensazione lunghezza utensile in ISO mode, la inserirai prima dell’ingresso in materiale e la cancellerai quando esci dal profilo. Io non la metto qui apposta, perché voglio che il flusso resti leggibile e non si confonda la traiettoria con la compensazione.
Il vantaggio di questo approccio è chiaro: vedi ogni riga, quindi capisci subito dove stai forzando il controllo e dove invece stai lavorando in modo corretto. Quando il pezzo diventa ripetitivo, però, conviene passare ai cicli.
Foratura ripetuta con CYCLE81 e chiamata modale
Qui il controllo Siemens mostra uno dei suoi punti forti. Nei cicli di foratura, la chiamata modale riduce la ripetizione e rende il listato più pulito: la documentazione SINUMERIK sottolinea infatti che la funzione modale è particolarmente utile proprio per la foratura.
DEF REAL RTP=5, RFP=2, SDIS=1, DP=-12, DPR=0
N10 G17 G90 G54
N20 T2 M6
N30 S1800 M3
N40 MCALL CYCLE81 (RTP, RFP, SDIS, DP, DPR)
N50 G0 X40 Y40
N60 X80
N70 X120
N80 MCALL
N90 M30
In questo schema, MCALL attiva il ciclo in modo modale, così la macchina esegue la foratura a ogni blocco di avanzamento successivo. I parametri più importanti sono il piano di ritrazione, il piano di riferimento, la distanza di sicurezza e la profondità finale; il principio è semplice, ma l’effetto sul listato è notevole.
Ci sono però due vincoli che non vanno ignorati. Primo: la chiamata modale non si annida, quindi un MCALL non deve contenere un altro richiamo modale. Secondo: per la stessa logica di sicurezza, la modalità va disattivata quando il tratto di foratura è finito, altrimenti la macchina continua a interpretare come cicli dei movimenti che non dovrebbero esserlo.
In pratica, questo è il punto in cui molti programmi diventano più robusti: invece di ripetere dieci volte lo stesso blocco, si imposta una volta il ciclo e poi si lascia lavorare il controllo. Da qui il passo successivo è capire cosa cambia quando il pezzo non è più una piastra da forare, ma un particolare tornito.
Tornitura semplice e differenze che non conviene sottovalutare
Su tornio la logica rimane simile, ma cambiano il piano, il modo in cui leggi le coordinate e il tipo di attenzione che devi dare al mandrino e alla compensazione utensile. Io parto quasi sempre da G18, perché la lavorazione avviene sul piano ZX e non sul piano XY come in fresatura.
N10 G18 G90 G54
N20 T0101
N30 G97 S1200 M3
N40 G0 X52 Z2
N50 G1 Z0 F0.2
N60 G1 X40
N70 G1 Z-30
N80 G0 X100
N90 M30
Questo esempio è volutamente essenziale, ma mostra bene la differenza concettuale: il pezzo viene affrontato lungo Z, mentre X governa il diametro o il raggio a seconda della configurazione macchina. Se passi da fresatura a tornitura senza cambiare mentalità, l’errore più comune è proprio questo: leggere il programma con la logica del centro di lavoro invece che con quella del tornio.
Un’altra differenza concreta riguarda gli avanzamenti e i cicli. In tornitura è facile ritrovarsi con valori di feed pensati per il modo sbagliato, oppure con una compensazione utensile lasciata attiva troppo a lungo. Io controllo sempre due cose prima della prova: la posizione sicura in X e Z e la coerenza tra avanzamento, utensile e materiale.
Se la macchina lavora in dialetto ISO, la documentazione Siemens ricorda anche che il linguaggio ISO e quello Siemens non vanno mischiati nello stesso blocco. È una regola semplice, ma nei trasferimenti da esempi diversi è una delle cause più banali di errore.
Quando usare codice diretto, cicli standard o programmazione conversazionale
Non esiste un unico modo giusto di programmare. La scelta dipende dal tipo di pezzo, dalla ripetitività del lavoro e dal livello di controllo che vuoi mantenere sul percorso. Io ragiono così: se il pezzo è semplice e voglio leggere tutto, scrivo codice diretto; se il compito è ripetitivo, uso i cicli; se il setup deve essere rapido e l’operatore non ha bisogno di un listato completo, la programmazione conversazionale può essere più efficiente.
| Approccio | Quando lo preferisco | Vantaggi | Limiti |
|---|---|---|---|
| Codice diretto | Contorni semplici, test, apprendimento | Massimo controllo e massima trasparenza | Più lungo da scrivere, più facile sbagliare un blocco |
| Cicli standard | Foratura, maschiatura, pattern ripetitivi | Listato pulito, meno ripetizione, meno errore umano | Meno intuitivi se non conosci i parametri |
| ShopMill o ShopTurn | Piccole serie, set-up rapido, lavoro da bordo macchina | Più veloce da impostare per operazioni comuni | Più dipendente dall’interfaccia e dalla macchina specifica |
Qui conta molto la realtà dell’officina. Se hai una commessa piccola, la velocità di preparazione può valere più della massima eleganza del listato. Se invece devi standardizzare il lavoro o passarlo ad altri, un codice diretto ben scritto resta più leggibile nel tempo.
Io aggiungo sempre un criterio in più: quanto è facile sbagliare il pezzo al primo avvio? Se la risposta è “molto”, allora preferisco una soluzione che renda evidente dove si trova il controllo, cosa sta facendo il ciclo e dove si interrompe il movimento.
I controlli che faccio prima di mandare il programma in macchina
Prima di premere start, io non guardo mai solo il codice. Guardare solo il codice è il modo più rapido per perdere un dettaglio meccanico o tecnologico che poi compare come errore sul pezzo. I controlli che faccio sono pochi, ma sono quelli che salvano tempo e materiale.
- Verifico che il piano di lavoro sia quello giusto per la lavorazione.
- Controllo che lo zero pezzo corrisponda al setup reale.
- Confermo che utensile, numero correttore e lunghezza siano coerenti.
- Simulo il programma, poi faccio un dry run con avanzamenti ridotti.
- Controllo che i cicli modali siano stati chiusi prima di movimenti liberi.
- Rileggo la parte finale per evitare uscite in rapido verso quote non sicure.
Questa routine è molto più utile di qualsiasi formula generale. Anche con un listato corretto, un errore di offset, un piano sbagliato o una compensazione rimasta attiva possono cambiare completamente il comportamento della macchina. Per questo io considero il controllo finale non come una formalità, ma come parte integrante della programmazione.
Se hai questi punti sotto controllo, gli esempi diventano davvero utili: non restano frammenti da copiare, ma un metodo per costruire programmi più chiari, più sicuri e più facili da adattare alle diverse lavorazioni. Ed è proprio questa la differenza tra un codice che “si legge” e un codice che produce pezzi buoni.