Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ELECTRON
dal 1977 Alta Tecnologia
per la Macchina Utensile
CNC
Z32
MANUALE DI PROGRAMMAZIONE
Documento M96
C9 - 23.2.15
Questo manuale contiene informazioni destinate esclusivamente all’utente di prodotti D.Electron per consentirgli l’uso corretto delle
apparecchiature fornite. Nessuna parte di questo manuale può essere duplicata o fornita a terzi per uso diverso da quello indicato.
Le informazioni qui contenute sono state accuratamente controllate perché risultino esatte ed affidabili, ma la D.Electron non si assume
alcuna responsabilità per possibili inesattezze. La D.Electron si riserva anche di fare tutti i cambiamenti che essa riterrà opportuni per
migliorare le prestazioni o l’affidabilità dei suoi prodotti.
INDICE
D. ELECTRON i
CNC Z32 Programmazione Indice
ii D. ELECTRON
Indice CNC Z32 Programmazione
D. ELECTRON iii
CNC Z32 Programmazione Indice
5.2 SALTI..............................................................................................................................................................................178
5.2.1 Salto a una riga senza ritorno ...................................................................................................................................178
5.2.2 Salto a una serie di righe con ritorno........................................................................................................................179
iv D. ELECTRON
Indice CNC Z32 Programmazione
D. ELECTRON v
CNC Z32 Programmazione Indice
vi D. ELECTRON
Indice CNC Z32 Programmazione
11.2 ROTAZIONE..............................................................................................................................................................336
11.2.1 Moti assi e rotazione.............................................................................................................................................337
D. ELECTRON vii
CNC Z32 Programmazione Indice
viii D. ELECTRON
Indice CNC Z32 Programmazione
D. ELECTRON ix
CNC Z32 Programmazione Cap.1 - Organizzazione e struttura dei files
CAPITOLO 1
1.1 INTRODUZIONE
CARATTERI 'O' e '0'
La lettera 'O' e la cifra zero '0' sono spesso stampate in modo assai simile tra loro, tanto da
indurre in errore il programmatore anche esperto: si ricordi però che i codici di macchina dei due
caratteri sono diversi tra loro e che il CN non può (e NON DEVE) scambiarli tra loro.
Perciò, una volta per tutte, si prenda nota:
O => lettera dell'alfabeto 'O'
0 => cifra zero
NOTA IMPORTANTE
Lo Z32 è un controllo numerico con programmazione e struttura estremamente aperta: scopo di
questo manuale è servire da riferimento per le possibili prestazioni del CN, con particolare
riferimento a frese e centri di lavoro, ma non di descrivere particolari installazioni.
Il costruttore della macchina utensile, per configurare la macchina, installa sottoprogrammi, cicli
speciali, il programma della logica di funzionamento e quello delle tarature, che influenzano le
prestazioni e il comportamento dello Z32, si raccomanda di consultare accuratamente le
informazioni fornite dal costruttore stesso.
1.2 GENERALITÀ
Lo Z32 è un CNC a 32 bit per centri di lavoro, torni, frese, frese a copiare..., con eccezionali
caratteristiche di multiprocesso.
È stato progettato per supportare anche FMS e macchine utensili dove vengono eseguite più
lavorazioni fra loro indipendenti e contemporanee.
Lo Z32 è pienamente compatibile a livello di programma-pezzo con il predecessore Z16; un
programma di Z16 gira senza problemi su Z32. Ciò nonostante si raccomanda la massima
attenzione alla prima esecuzione, come se il programma fosse nuovo.
Lo Z32 è un CNC multiprocesso (ma non multiprocessore!), cioè è in grado di controllare più
lavorazioni (o addirittura più macchine contemporaneamente, sincronizzabili tra loro tramite la
logica programmabile.
In pratica lo Z32 contiene al suo interno più controlli numerici completi, ognuno collegato ad un
particolare gruppo di assi, eventualmente completi di mandrino.
Non esistono collegamenti obbligatori tra part-program e processo, l'unico vincolo è che il part-
program sia scritto per il processo dal quale è eseguito.
In questo manuale si danno le informazioni tecniche necessarie per la corretta programmazione
dello Z32 applicato a frese e centri di lavoro.
Lo Z32 deve svolgere i seguenti compiti principali:
− rilevamento e visualizzazione delle quote assi
− comando degli assi
− gestione della logica di macchina
D. ELECTRON 1
Cap.1 - Organizzazione e struttura dei files CNC Z32 Programmazione
PROCESSO 0 1 2 3 4 5
TABELLA PARAMETRI 125 122 119 116 113 110
TABELLA ORIGINI 126 123 120 117 114 111
TABELLA UTENSILI 127 124 121 118 115 112
TABELLA ORIGINI BASE 237 236 235 234 233 232
I files sono accessibili tramite l'attività di edit (modifiche o creazione di files). Possono essere
copiati dal disco rigido sul floppy disk e viceversa, oppure inviati a periferiche esterne o caricati da
periferiche esterne con i vari modi con cui lo Z32 comunica per via seriale oppure tramite rete
Ethernet (ved. manuali specifici).
2 D. ELECTRON
CNC Z32 Programmazione Cap.1 - Organizzazione e struttura dei files
Nota importante sull’esecuzione di part-program da disco per gli utilizzatori delle interfacce
WinTerm e ZTerm:
Quando un part-program su disco fisso ha dimensioni maggiori di 64KB, questo viene eseguito
direttamente da disco fisso in modalità DNC. A questo scopo, a seconda delle implementazioni,
può essere creato automaticamente dall'interfaccia utente un file “lanciatore” che richiama il
programma da eseguire in modlità DNC.
I part-program più piccoli di 64KB vengono come prima cosa copiati in memoria CMOS di Z32 e
successivamente eseguiti da CMOS (tutta questa operazione è automaticamente eseguita
dall'interfaccia in un modo assolutamente trasparente all'utilizzatore).
I file CMOS che vengono utilizzati dall'interfaccia utente per la creazione del file di richiamo (per
programmi superiori a 64KB) oppure per la copia in CMOS (per programmi inferiori a 64KB) sono di
default i seguenti:
PROCESSO 0 1 2 3 4 5
FILE CMOS UTILIZZATO 99 98 97 96 95 94
Per esigenze particolari, possono essere impostati file diversi.
D. ELECTRON 3
Cap.1 - Organizzazione e struttura dei files CNC Z32 Programmazione
1.2.3 Programma-pezzo
Per eseguire un pezzo, devono essere fornite allo Z32 tutte le informazioni relative: queste
informazioni costituiscono il PROGRAMMA-PEZZO (o PART-PROGRAM).
Perché le informazioni vengano correttamente interpretate dallo Z32 esse devono essere scritte
in un LINGUAGGIO che lo Z32 comprende.
Esiste uno standard internazionale di linguaggio di programmazione (norme ISO) che definisce
un possibile linguaggio standard per la programmazione dei controlli numerici: queste norme sono
purtroppo ferme da anni e costituiscono una seria limitazione alle possibilità di elaborazione dati dei
moderni calcolatori.
Il linguaggio di programmazione dello Z32 è compatibile con lo standard ISO per la massima
parte delle istruzioni ESECUTIVE, ossia che provocano immediatamente un risultato fisico sulla
macchina utensile (es. moti assi, esecuzione di funzioni ausiliarie).
In aggiunta alle istruzioni ISO lo Z32 esegue anche una quantità di istruzioni EVOLUTE ed
istruzioni di PROGRAMMAZIONE STRUTTURATA che non provocano un effetto fisico immediato
sulla macchina utensile, ma svolgono funzioni di predisposizione (calcolo di espressioni, salto a
sottoprogrammi, condizionamenti ecc...). Per evitare possibili confusioni, le righe di
programmazione possono essere o solo ISO, o solo "evolute", o solo di “programmazione
strutturata”, ossia non è possibile inserire nella stessa riga istruzioni ISO, EVOLUTE e/o
PROGRAMMAZIONE STRUTTURATA.
Le righe "evolute" si distinguono perché, subito dopo l'eventuale numero di riga (N...), hanno un
punto esclamativo '!' che apre il primo campo della riga evoluta.
Le righe di “programmazione strutturata” si distinguono perché, iniziano con due caratteri “-“
consecutivi.
Un programma-pezzo è costituito nell'ordine dalle seguenti parti:
− un titolo (che può essere qualsiasi ma non deve contenere il carattere '%')
− il carattere '%' (non obbligatorio)
− le righe significative del programma-pezzo, che possono essere ISO, EVOLUTE o di
PROGRAMMAZIONE STRUTTURATA senza ordine fisso.
Quando il programma-pezzo viene eseguito, i primi 40 caratteri della prima riga del programma
(che possono contenere un conciso codice di identificazione) vengono presentati sul video, in modo
da permettere all'operatore di riconoscere immediatamente il programma in corso di esecuzione.
PROGRAMMA-PEZZO
TITOLO 1 o più righe senza il carattere percento
%
N1 ...
.....
righe programma ISO O EVOLUTE
...
:OS eventuale sezione origini locali
X1=...
...
:PA eventuale sezione parametri locali
PP=...
4 D. ELECTRON
CNC Z32 Programmazione Cap.1 - Organizzazione e struttura dei files
...
:TL eventuale sezione utensili locali
T1#1 ...
...
ATTENZIONE
Si ricorda che la prima riga di un part-program non può essere una
destinazione di salto: questa limitazione può risultare più evidente se
manca il % iniziale perché la prima riga diventa operativa a tutti gli effetti.
ATTENZIONE
la presentazione dei caratteri semigrafici da parte dei programmi di
interfaccia video può in qualche caso non essere corretta perché i valori
dei caratteri >127 erano usati come segnale di video inverso da TERMS e
in certi casi anche da ZTERM, quindi al posto del carattere semigrafico
"standard" può essere presentato a video un carattere del tutto diverso a
video inverso o che altro. Si lascia all'utente la decisione se sopportare
questa riduzione di funzionalità per ottenere comunque la possibilità di
usare nel part-program caratteri semigrafici.
D. ELECTRON 5
Cap.1 - Organizzazione e struttura dei files CNC Z32 Programmazione
Esempio:
/N28 X0 Y0
Il movimento degli assi al punto 0,0 è fatto solo se sono abilitati i blocchi opzionali.
/N30 !GOP20!
Il salto al sottoprogramma P20 è fatto solo se sono abilitati i blocchi opzionali.
Il blocco opzionale può costituire destinazione di salto: in questo caso deve essere ricercato con
la barra iniziale.
Per esempio:
N60!GO/N30!
L'efficacia del comando di blocco opzionale può non essere immediata, per la presenza nello
Z32 di un 'serbatoio' di istruzioni preelaborate che consentono una maggiore rapidità di esecuzione:
la scelta se un blocco opzionale deve o no essere eseguito viene fatta al momento della
preelaborazione, per cui se il comando di blocco opzionale viene cambiato mentre il blocco è già
elaborato ma non ancora eseguito il nuovo comando non è eseguito.
I blocchi contenuti nel serbatoio possono essere intorno a una decina.
Alcune funzioni dello Z32 svuotano il serbatoio prima della loro esecuzione: se una di queste
funzioni (per esempio una 'M' o una sosta G4, anche di tempo nullo) viene programmata prima del
blocco opzionale non si ha più questa incertezza.
Per esempio:
...
N10 G0 X0 Y0
N11 G4 TT0 sosta di tempo zero
/N12 X10
...
Poiché il G4 al blocco N11 svuota il serbatoio, il comando di blocco opzionale è immediatamente
attivo sul blocco N12.
6 D. ELECTRON
CNC Z32 Programmazione Cap.1 - Organizzazione e struttura dei files
Per questo è necessario che, dopo un sezionamento programma, siano programmate tutte le
istruzioni necessarie a una corretta ripresa della lavorazione. In particolare, dopo un sezionamento
programma è obbligatoria la programmazione (o la conferma) dell'utensile programmato e
dell'utensile sul mandrino (T... M6).
Dopo il reset è attiva la sezione zero: tutte le istruzioni contenute nella sezione zero sono
comunque elaborate durante la ricerca blocco, anche se si ricerca una sezione diversa dalla zero.
Ciò accorcia il programma perché evita di dover riprogrammare a inizio di ogni sezione le
informazioni 'fisse’.
Esempio:
LAVORAZIONE COPERCHIO%
N1 G37OL
:1
N10 T1 M6
N11 S1000 M3
N12 OX1 OY1 OZ1 G0 X0 Y0
...
:2
N20 T2 M6
N21 OX2 OY2 OZ2
...
Non è necessario riprogrammare G37OL all'inizio di ogni sezione perché è contenuto nella
sezione zero, che viene sempre eseguita in ricerca blocco.
È lecito, e non porta problemi particolari, richiamare in una sezione righe appartenenti a un'altra
sezione.
Numero Il numero di sezione non è un parametro e deve essere intero (senza virgola né punto
sezione decimale).
Il numero sezione (programmato con i ":" a inizio riga ISO) può arrivare fino al massimo di
99999.
Non è necessario che le sezioni siano in ordine crescente di numero, ma per ragioni di
chiarezza si consiglia di mantenere questo ordine.
Le righe di sezionamento, quelle con il ":", non devono avere il numero di blocco N (devono
iniziare con ':').
Azzera Un sezionamento di programma opera anche l'azzeramento del numero progressivo (numero di
numero blocco).
progres- Qui di seguito si dà un esempio di struttura di programma con sezionamento. Le regole da
sivo seguire per ottenere un buon risultato sono molto semplici.
Nella sezione zero (che viene sempre letta in ricerca blocco):
− mettere le informazioni valide per tutto il programma
− non mettere cambio utensile (non è un errore, ma non è utile)
− mettere un sezionamento prima di ogni cambio utensile
− ricordarsi di programmare tutte le funzioni di macchina dopo ogni sezionamento
PROVA PER SEZIONAMENTO%
N1 G37OL G25XYZ OX1 OZ1
le informazioni della sezione zero vengono sempre lette in ricerca blocco
....
:1
D. ELECTRON 7
Cap.1 - Organizzazione e struttura dei files CNC Z32 Programmazione
N2 T1 M6
per certi tipi di cambio utensile si può anticipare la ricerca del prossimo utensile
N3 T2
...
devono essere date tutte le funzioni di macchina programma dell'utensile T1
N4 S100 M3 M41
:2
N20 T2 M6
qui si deve riconfermare T perché è nuova sezione
N21 T3
N22 S500 M3
N23 !GON6-N8!
le righe N6-N8 appartengono a un'altra sezione
N24 ...
In un programma sezionato come sopra, si può ricercare, con grande rapidità, qualsiasi inizio
sezione.
Per esempio:
3 ENTRA: :2
Il CN esegue le seguenti operazioni:
− legge ed acquisisce tutta la sezione zero
− salta le sezioni diverse dalla 2
− si posiziona all'inizio della sezione 2
Righe di sezionamento programma sono anche le righe introduttive delle sezioni locali di
parametri, origini ed utensili: esse sono fuori dal part-program e sono usate solo come
contrassegno.
Esempio:
...
:OS segnale inizio sezione locale origini
X1= 10.121
...
La riga :OS non genera operazioni né deve essere elaborata come riga di part-program, serve
solo per contrassegnare l'inizio della sezione locale origini.
8 D. ELECTRON
CNC Z32 Programmazione Cap.1 - Organizzazione e struttura dei files
Le righe ISO sono costituite da un numero di riga (non necessario) e da una serie di istruzioni
elementari.
D. ELECTRON 9
Cap.1 - Organizzazione e struttura dei files CNC Z32 Programmazione
Alcune istruzioni elementari, dopo l'indirizzo, possono avere, al posto del valore numerico, una
combinazione di caratteri (vedere p. es. origini), oppure possono avere, dopo il valore numerico,
una 'coda’ descrittiva (vedere p. es. G25, G27, G28, G29).
INDIRIZZI Gli indirizzi sono costituiti, secondo le norme ISO, da una singola lettera dell'alfabeto: poiché
questa è una limitazione troppo gravosa, lo Z32 ammette, come si vedrà meglio al capitolo dedicato
ai parametri, indirizzi di uno, due o tre caratteri ed alcuni vettori con l’indice come PAR[ ], PAL[ ].
Per esempio:
X normalmente assegnato all'asse X
M funzione ausiliaria
MA funzione ausiliaria
10 D. ELECTRON
CNC Z32 Programmazione Cap.1 - Organizzazione e struttura dei files
F feed
PAR[ ] parametro con indice
Gli indirizzi determinano il tipo particolare di operazione che il CN deve eseguire: alcuni indirizzi
sono definiti dal costruttore della macchina utensile (per esempio i nomi assi), altri possono essere
definiti dall'utente finale (parametri utente), mentre altri hanno funzioni già prefissate (parametri di
sistema ecc.). In particolare sono già fissati:
G funzioni preparatorie
M, MA, MB, MC funzioni ausiliarie
F feed
S speed
O origini supplementari
T, TA, TB utensile programmato, attuale, futuro
PAL[ ] parametro con indice per comunicazioni con logica programmabile
Numerosi altri indirizzi hanno un significato specifico (ved. capitolo dedicato parametri).
VALORI
NUMERICI Gli indirizzi sono seguiti, per completare l'istruzione elementare, da un valore numerico.
I valori numerici possono essere introdotti direttamente oppure, come si vedrà meglio al
paragrafo relativo, come risultato di una ESPRESSIONE matematica.
Quando i valori numerici sono introdotti direttamente essi sono programmati come numeri con
virgola o punto decimale, con le seguenti regole:
− deve essere sempre programmato almeno un valore (lo zero si programma con una o più
cifre ‘0’)
− per l’input numerico vengono accettati numeri che abbiano un massimo di 9 cifre
significative, prima o dopo la virgola o punto decimale (per l'esattezza il massimo numero
significativo accettato è 1.000.000.009). Oltre viene errore programma CN1D14.
− gli zeri iniziali della parte intera possono essere omessi, anche se la parte intera è zero e
c'è una parte frazionaria
− la separazione tra la parte intera e la parte decimale è segnalata dalla virgola ',' o
indifferentemente dal punto '.'
− non devono esserci caratteri né spazi all'interno del numero
Per es., per programmare 0,1 all'indirizzo X si può programmare indifferentemente:
X.1
X .1
X,1
X0,1
X 0.1
X .100
X00000,1000
D. ELECTRON 11
Cap.1 - Organizzazione e struttura dei files CNC Z32 Programmazione
X123456,2
X0,1234567
Carattere “;” a inizio riga che qualifica tutta la riga come commento
Durante la messa a punto di un part-program può essere utile commentare temporaneamente
una riga.
Il modo previsto dalle norme ISO di dichiarare un commento è racchiuderlo tra parentesi tonde,
per esempio:
(RIGA DI COMMENTO)
ma se la riga da commentare contiene una formula matematica con parentesi tonde risulta
difficile utilizzare parentesi tonde che racchiudano tutto, per esempio, se si racchiude tra parentesi
la riga:
HA<(HX*2)/HY>
si ottiene:
(HA<(HX*2)/HY>)
ma questa scrittura non è ammessa, perché la parentesi tonda chiusa dopo HX*2 termina il
commento. L’esecuzione della riga porta ad un errore di sintassi CN1D14.
È stato perciò introdotto un modo molto semplice di considerare una riga commento, qualunque
sia il contenuto al suo interno: basta mettere un carattere “;” all’inizio della riga, per esempio:
;HA<(HX*2)/HY>
in questo caso tutta la riga è considerata un commento.
12 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
CAPITOLO 2
2. FUNZIONI PREPARATORIE G
2.1 FUNZIONI G
Le funzioni con indirizzo G si chiamano 'preparatorie' in quanto predispongono il controllo a
interpretare successive istruzioni.
G0 Il numero che segue G identifica la particolare funzione alla quale è predisposto lo Z32. Il valore
G00 che segue G deve essere sempre un valore numerico (NON può essere il risultato di una
espressione). La G non è un parametro.
Solo alcune funzioni G (ossia solo alcuni valori numerici) sono interpretate ed eseguite dallo Z32:
se si programma una G non implementata lo Z32 dà l'apposito allarme.
Le funzioni sono quelle previste dalle norme ISO, con alcuni adattamenti. In particolare:
− gli zeri iniziali delle G possono essere omessi (G00 diventa G0)
− possono essere programmate nello stesso blocco più funzioni G: in questo caso le G sono
riconosciute dal CN ed eseguite via via che vengono incontrate nella riga programmata: in
caso di programmazione di più G contrastanti resta attiva l'ultima G programmata.
− di seguito a particolari funzioni G possono essere specificati dei dati aggiuntivi che ne
completano la definizione.
Modali Si chiameranno MODALI le funzioni G il cui effetto si mantiene anche nei blocchi successivi a
quello in cui sono programmate: le funzioni G modali sono normalmente annullate da apposite altre
funzioni G.
Con Alcune G richiedono l'ARRESTO della macchina: il profilo deve essere completamente definito al
arresto momento della loro esecuzione. Non deve perciò essere in corso una contornatura con profilo aperto
né una contornatura con compensazione raggio.
Queste particolari G saranno indicate nel seguito come CON ARRESTO. Se si programmano
queste G in un punto vietato della traiettoria il CN dà apposito allarme.
Altre funzioni (M, MA, MB, MC, T, O) richiedono l'arresto, come si vedrà meglio ai paragrafi relativi.
D. ELECTRON 13
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
La velocità durante gli spostamenti in G0 è ottimizzata per la massima rapidità di movimento, senza
superare il rapido definito per ciascuno degli assi in moto.
Se più assi sono in moto, la maggiore rapidità si ha quando almeno uno degli assi va al suo rapido:
le velocità degli altri assi sono ridotte in proporzione per mantenere il movimento rettilineo. Per
esempio, si abbiano X e Y rapido a 10 m/min, Z rapido a 5 m/min, assi tutti a quota iniziale zero:
N10 G0 X100 Y100 X=Y=10 m/min=14,142 m/min in traiettoria
N10 G0 X100 Z10 X=10 m/min, Z=1 m/min
N10 G0 X10 Z100 Z=5 m/min, X=0.5 m/min
ATTENZIONE
La programmazione di G1 da solo (senza quote) su una riga è lecita, ma ha
un significato particolare (moto rettilineo APERTO, vedere capitolo dedicato
alla programmazione dei profili) e non ha solo il significato di predisporre un
moto in G1.
Per esempio:
14 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
...
N10 G1
N11 X0 Y0
...
non è ammessa: al blocco 11 dà errore CN3414 PRECEDENTE APERTO
2.1.5 G4 - sosta
Attiva solo nel blocco, con arresto.
Il tempo di sosta è pari al valore del parametro 'TT', che può essere programmato nello stesso
blocco oppure in un blocco precedente. Se dall'inizio dell'esecuzione non è mai stato programmato 'TT'
il tempo di sosta è zero. Il parametro 'TT' definisce il tempo di sosta in secondi e decimali.
Nella esecuzione della sosta si può avere una incertezza nel tempo effettivo di qualche decina di
millisecondi a causa dei cicli di lavoro del microprocessore.
Per ottenere tempi di sosta (TT) molto bassi è possibile attivare la “modalità sosta G4 precisa in
regime di G113X”, per dettagli vedere funzioni G200 HX11 / G200HX12.
D. ELECTRON 15
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Esempio:
...
N10 TT2.5
N11 G4 (SOSTA DI 2.5 SECONDI)
...
16 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
ATTENZIONE
La programmazione di una G10 elimina la limitazione alla accelerazione
seconda impostata da NTAR. Vedere help tarature su “opzioni globali moti
assi”.
In generale, la G10 agisce nel seguente modo:
− viene eliminata la fase finale di avvicinamento 'dolce'
− viene eliminato il tempo di posizionamento (se esiste)
− si passa al blocco successivo a una certa distanza dal punto finale (definibile in taratura)
che può essere superiore alla soglia di posizionamento
Gli effetti negativi della G10 sono:
− un possibile overshoot sul punto finale (gli assi possono andare oltre il punto programmato
perchè arrivano con eccessiva accelerazione).
− il passaggio al movimento successivo quando gli assi sono ancora lontani dal punto
programmato (da qualche centesimo a qualche decimo a seconda delle tarature). Se gli
assi restano vivi nel movimento successivo sono richiamati alla posizione corretta: in
condizioni normali l'asse rientra nelle precisioni di macchina in pochi decimi di secondo.
In generale quindi è sconsigliato l'uso della G10 quando:
− il sorpasso del punto finale può essere dannoso
− è subito necessaria la precisione degli assi posizionati (non c'è tempo per il successivo
recupero della posizione)
D. ELECTRON 17
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
− uno o più assi posizionati sono bloccati (con G29) subito dopo il posizionamento (non
essendo più vivo, l'asse non viene richiamato in posizione)
Esempio:
TASCA CON MOTO TERZO ASSE %
N1 G25XYZ G0 X0 Y10 Z0
N2 R10 F1000 G109E
N3 G42 X0 Y0 QF0
N4 G1 X10
N5 Y15
N6 X25 Z30
N7 Y0
18 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
N8 X50
N9 G40
N10 M2
La G109E alla riga N2 è necessaria per risolvere la tasca in correzione raggio, i movimenti sono
quelli normali fino a N4 compresa.
Qui si ha una rotazione intorno allo spigolo, che non viene terminata perché il diametro fresa è
maggiore della larghezza della tasca (diametro fresa 20 mm, larghezza tasca 15 mm).
Tutti i movimenti successivi vengono eliminati fino alla rotazione intorno allo spigolo di uscita N7
(X25) Y0.
Quindi il movimento del centro utensile è composto di due rotazioni incomplete, una intorno allo
spigolo di entrata e una intorno allo spigolo di uscita, per “appoggiare” la fresa sugli spigoli della tasca.
Il blocco N6 che contiene la salita a Z30 viene eliminato, e quindi la salita viene fatta al primo
movimento che viene effettivamente eseguito.
I movimenti del centro fresa dell’esempio sono perciò composti da:
- movimenti a quota Z0 fino allo spigolo X10 Y0
- arco (incompleto) a quota Z0 intorno allo spigolo X10 Y0
- arco (incompleto) intorno allo spigolo X25 Y0 a quota crescente da Z0 a Z30
- proseguimento a Z30 fino a fine traiettoria
Eliche
Il tratto piano su cui agisce G12 può essere qualsiasi, lineare o circolare, inclusi i tratti di attacco e
distacco dal profilo (G41 e G42). Nel caso che il tratto nel piano sia circolare, è eseguita una
interpolazione elicoidale.
Attenzione: in tratti geometrici circolari G2/G3 è consentito programmare un terzo asse senza la
previa programmazione del G12. Per dettagli vedere paragrafo "Profili su tre assi" nel capitolo
Geometria".
Poiché G12 pone limitazioni alla programmazione (pendenza, correzione raggio ecc.) deve essere
programmata solo quando è necessaria, ed immediatamente disattivata quando non serve più.
Esempio:
...
(SENZA CORREZIONE RAGGIO)
N20 G0 X0 Y0 Z0 F1000
N21 G12 G2 X50 Y0 I25 J0 Z5 (ELICA)
N22 G1 X100 Z0 (RETTA INCLINATA)
N23 G13
...
(CON CORREZIONE RAGGIO)
N50 G0 X0 Y0 Z0
N51 G12
N52 G41 X50 Y0 QF0 Z2 (RACCORDO ELICOIDALE)
N53 G1 X60 Z4 (RETTA INCLINATA)
N54 G13
N55 G2 X60 Y-10
N56 G40
...
D. ELECTRON 19
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Lo scambio può essere effettuato con la funzione G16, che permette di ridirigere gli assi su nuovi
indirizzi.
Per esempio, ammettiamo che una macchina contenga, nell'ordine, gli assi X Y Z B C. L'ordine è
importante perché la ridirezione avviene in base all'ordine: i caratteri che seguono G16 sono assegnati
agli assi fisici nello stesso ordine in cui sono elencati.
La situazione "normale" corrisponde quindi a:
G16XYZBC
Ammettiamo che si abbia un programma in cui debbano essere scambiati gli assi X e Z, ossia
quando è programmato l'asse X si deve muovere Z e quando è programmato Z si deve muovere X.
- uno spazio o il fine riga interrompono la sequenza dei caratteri e quindi la G16
- i nomi assi ammessi sono i caratteri dell'alfabeto maiuscolo esclusi FGIJKLMNORST altrimenti
viene errore programma CN1D14
- se i caratteri che seguono G16 sono in numero minore degli assi continui della macchina gli assi
residui rimangono invariati
- dopo la G16 se tra gli assi risultanti ci sono ripetizioni di nomi assi viene errore CN1D14. Per
esempio, se una macchina ha gli assi XYZBC e viene programmata G16ZX il risultato è G16ZXZBC,
quindi Z è ripetuto e viene errore programma
- con G53 attiva (assi riferiti all'origine base) oppure se è in corso un sottoprogramma di sistema
(ciclo fisso o M speciale) la G16 viene sospesa. Ciò impedisce che la G16 possa interferire col
funzionamento di programmi essenziali di sistema
- oltre che per le quote programmate, la ridirezione degli assi è attiva per gli assi individuati da G25,
G28, G29, G43, G44, KM, KD.
- la ridirezione degli assi è attiva per tutti i movimenti programmati, in lavoro e in rapido, ma non
cambia il significato di I J, che comunque sono associati al primo e secondo asse della terna di lavoro.
La programmazione di G25 con assi ridiretti mette di nuovo a posto le corrispondenze
20 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 21
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Nelle figure sono riportate alcune situazioni derivate dalle norme ISO 841: si noti, nel caso che si
muova il pezzo, la differenza tra l'asse fisico (la direzione del movimento) e l'asse geometrico (la
traccia ideale lasciata dall'utensile sul pezzo in conseguenza del moto fisico). In questo caso il moto
fisico è contraddistinto dall'apice (X', Y' ecc.).
La figura 1A rappresenta la stessa macchina della fig. 1, di cui conserva la nomenclatura e il senso
di moto degli assi, ma con mandrino orientato in verticale anziché in orizzontale: si noti come la terna
corretta è G25ZXY. Analogamente, se si fa il caso della macchina 2 (nata con testa verticale)
trasformata in orizzontale, la terna corretta è ancora G25ZXY.
Nel caso che sia programmata una terna errata (ossia col primo e secondo asse del piano
scambiati) lo Z32 non può accorgersi dell'errore (che può non essere un errore se si ipotizza un
mandrino che lavora 'dal di sotto'), ed esegue i movimenti che sarebbero propri di una macchina col
tipo di assi programmati: apparirà all'operatore che siano scambiati tutti i movimenti circolari (G2 con
G3 e G41 con G42).
Esempio:
...
(QUI È ATTIVO G25XYZ)
N10 G0 X0 Y0 Z0
N11 B0
N12 G25BYZ
N13 G2 B30 Y0 I15 J0
N14 G25XYZ
...
22 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 23
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
24 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Questo ciclo automatico non viene fatto se è attiva la G98, che non ammette al suo interno funzioni
che richiedano l'arresto. L'allarme CN3A14 ASSE NON VIVO può quindi venire solo se si tenta di
programmare un asse non vivo con G98 attiva.
Se si programma un asse non vivo, e l'asse è già sotto la soglia di posizionamento definita in
taratura, il movimento programmato viene ignorato e quindi non si genera l'inutile ciclo di
sblocco/blocco, con notevole risparmio di tempo.
Naturalmente se l'asse è vivo viene eseguito qualsiasi movimento, anche se di lunghezza inferiore
alla soglia di posizionamento.
Il ciclo di sblocco/blocco viene comunque generato se l'asse non vivo è uno dei tre della terna di
lavoro attiva al momento, ma dovrebbe essere una situazione decisamente non usuale: gli assi della
terna di lavoro infatti sono tipicamente sempre vivi.
Nel caso che si programmasse l'origine sulla stessa riga, del movimento dell’asse morto, ad
esempio:
G29B ... (l'asse B è "morto")
OB1 B0
verrà forzata comunque l'esecuzione del ciclo di sblocco e blocco dell'asse stesso.
Ciò significa che, se nella stessa riga dove è programmato il movimento è programmata anche
l'origine, ci sarà sempre il ciclo di sblocco e blocco dell'asse, anche se l'asse è già posizionato e quindi
rimane fermo. Sarà compito del programmatore, se vuole eliminare questo ciclo, spezzare la riga in
due e programmare l'origine in una riga precedente.
Se viene programmato un asse morto con, nella stessa riga, la programmazione di G53 o G54.
Per esempio:
N100 G53 B10 X20 (B è un asse morto)
L’asse morto l'asse viene comunque reso vivo, anche se compie un movimento nullo.
D. ELECTRON 25
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Deve essere specificato un solo asse, tra quelli definiti come continui dalle tarature di macchina.
Se si vogliono disattivare più assi, si può programmare G29 più volte nella stessa riga o in righe
diverse.
Per esempio: G29X G29A chiede al CN di abbandonare l'asse X e l'asse A.
È lecita, e non ha effetto, la richiesta di disattivare un asse non attivo.
La disattivazione dell'asse si ha dopo gli eventuali moti assi contenuti nella riga.
Nel caso di assi ciclici devono essere tenute presenti alcune particolarità, vedere a proposito nel
capitolo “Prestazioni speciali” il paragrafo “Assi continui ciclici”.
Per l'esempio vedere G28.
26 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 27
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
L'entrata nella G33 (filettatura), cioè l’aggancio al primo filetto sincronizzato col passaggio per lo
zero del mandrino è morbida, pur senza allungare la fase di presa del filetto, grazie a un anticipo
calcolato con cui si muove l'asse lineare che entra in filettatura.
È inoltre possibile definire nelle impostazioni macchina il tempo di attacco della G33, cioé la rampa
iniziale di accelerazione quando inizia una filettatura. Per questa prestazione riferirsi alle specifiche del
costruttore della macchina utensile.
28 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Esempio 1:
G0 X0 Y0 Z0
M3 S200
G34 K2 I0.5 Z30 filettatura con passo crescente di 0.5 mm/giro a partire dal
passo iniziale 2 fino a Z30
G33 Z50 filettatura con passo uguale a quello finale raggiunto nel
blocco precedente fino a Z50, pone incremento passo = 0
G35 Z70 filettatura a passo decrescente che però non essendo stato
programmato I dopo la G33 si comporta come una filettatura a
passo fisso
Esempio 2:
G0 X0 Y0 Z0
M3 S200
G34 K2 I0.5 Z30 filettatura con passo crescente di 0.5 mm/giro a partire dal
passo iniziale 2 fino a Z30
G33 Z50 filettatura con passo uguale a quello finale raggiunto nel
blocco precedente fino a Z50, pone incremento di passo = 0
G35 Z70 I0.25 filettatura a passo decrescente di 0.25 mm/giro a partire dal
passo del blocco precedente fino a Z70
Esempio 3:
G0 X0 Y0 Z0
M3 S200
G34 K2 I0.5 Z30 filettatura con passo crescente di 0.5 mm/giro a partire dal
passo iniziale 2 fino a Z30
G33 Z50 K3 filettatura con passo 3 fino a Z50 ATTENZIONE: se il passo
finale raggiunto nel blocco precedente non è 3 si ha un salto di
passo
G35 Z70 I0.25 filettatura a passo decrescente di 0.25 mm/giro a partire dal
passo del blocco precedente fino a Z70
Esempio 4:
G0 X0 Y0 Z0
M3 S200
G34 I0.5
K5 Z30 filettatura con passo crescente di 0.5 mm/giro a partire dal
passo iniziale 5 fino a Z30
G35 Z60 filettatura a passo decrescente di 0.5 mm/giro a partire dal
passo finale del blocco precedente fino a Z60 (da G34 a G35
si mantiene l’incremento programmato I0.5)
Esempio 5:
G0 X0 Y0 Z0
M3 S200
G34 I0.9
K5 Z50 filettatura con passo crescente di 0.9 mm/giro a partire dal
passo iniziale 5 fino a Z50
D. ELECTRON 29
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
G35 Z60 K4 I0.8 filettatura a passo decrescente di 0.8 mm/giro a partire dal
passo 4 fino a Z60. ATTENZIONE c’è un salto di passo dato
che il passo finale del blocco precedente non è certamente 4.
G36*
G36* chiede al CN di forzare il numero progressivo di operazione (usato nella ricerca blocco) al
valore successivamente specificato.
Attiva solo nel blocco.
Dopo G36* deve essere programmato il numero a 8 cifre (max 16777216) che si desidera
introdurre nel numero progressivo. Gli zeri iniziali possono essere omessi. Per esempio:
G36 * 200
forza il numero progressivo al valore di 200.
Può essere utile in caso di programmi ciclici, ossia che non trovano mai la M2 perché a fine
programma c'è un salto senza ritorno all'inizio.
Esempio:
PROGRAMMA CONTINUO %
N1 G36*0
N2 ...
...
N100 M0 (CAMBIA PEZZO E PREMI START)
N101 !GON1!
Con questo programma si imposta un ciclo continuo di lavorazione: l'operatore deve cambiare il
pezzo a fine programma e premere START per eseguire la lavorazione sul nuovo pezzo. Se non ci
fosse il G36*0 all'istruzione N1, il numero progressivo si incrementerebbe indefinitamente, tanto da
rendere impossibile una eventuale ricerca blocco. Col G36*0 invece il numero progressivo riprende da
zero e la ricerca blocco si esegue normalmente.
G36H/G36S halt/start
Chiedono al CN di arrestare (H) e di riprendere (S) il conteggio del numero progressivo.
Modali. Al reset è attivo G36S.
Sono utili nel caso che il programmatore non voglia turbare il regolare avanzamento del numero
progressivo nel caso di operazioni che dipendono da situazioni di macchina contingenti, oppure nel
caso che non si voglia permettere la ricerca blocco all'interno di una sequenza di operazioni.
Durante l'esecuzione di M speciali o cicli fissi di sistema il numero progressivo è automaticamente
bloccato al valore iniziale (equivale a una operazione G36H all'inizio del sottoprogramma e una
30 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
operazione G36S alla fine del sottoprogramma). Non è perciò mai possibile una ricerca blocco
all'interno di M speciali o cicli fissi di sistema. Per la natura dei problemi coinvolti, sono prestazioni da
riservare al costruttore della macchina utensile o a programmatori molto esperti.
Esempio:
...
N10 G0 X0 Y0 Z0 F1000
N11 M70 ciclo di misura del tastatore
N12 !IF AM<9000 ;GON16!
N13 G36H da questo punto il numero progressivo non cambia
N14 T<T>M6 il cambio utensile cerca l'utensile sostitutivo
N15 G36S riprende il conteggio
N16 ... qui il numero progressivo è sempre lo stesso
...
G36R/G36W read/write
G36R/G36W chiedono al CN rispettivamente di leggere il numero progressivo nel parametro HX e
viceversa di scrivere nel numero progressivo il contenuto del parametro HX.
Attive solo nel blocco, con arresto.
Servono a manipolare il numero progressivo nel caso di ripetizione di operazioni.
Anche queste prestazioni sono da riservare al costruttore della macchina utensile o a
programmatori molto esperti. L'esempio deve considerarsi esclusivamente didattico.
Si abbia una macchina con apparecchio per il controllo dell'integrità utensile durante la lavorazione,
collegato alla logica di macchina che permette di eseguire movimenti in G62. Se durante il movimento
è rivelato utensile usurato si vuole cambiare l'utensile e ripetere il movimento, senza variare il normale
flusso del numero progressivo.
...
N20 G0 X0 Y0 Z0
N21 G1 G62 F1000 Z-20
N22 !IF AM<9000;GON26!
... qui cambia l'utensile e ripete
N23 G36H Z100 T<T> M6 utensile sostitutivo
N24 G36R HX<HX-2> G36W G36S ripristina vecchio numero
N25 !GON20! ripete le operazioni
N26 ...
D. ELECTRON 31
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
32 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Modale.
Annulla G39: al reset è attiva G38.
D. ELECTRON 33
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
34 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Attenzione: la funzione G45 può essere definita come trasparente al RESET e/o all'accensione
(l'ultimo stato programmato permane anche dopo un RESET e/o al successivo riavvio). Per questa
prestazione consultare il costruttore della macchina utensile.
Il parametro L non viene modificato da G45.
Esempio. Nei commenti sono riportate le quote del visualizzatore del CN, (gli assi non si muovono):
...
N10 G45 G0 X0 Y0 Z0
N11 L100 (X=0, Z=0)
N12 G43Z (X=0, Z=-100)
N13 G44Z (X=0, Z=+100)
N14 G43X (X=-100, Z=0)
N15 G45 (X=0, Z=0)
D. ELECTRON 35
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
...
N10 G37OL OX1 OY0 OZ0 L0 G0 X0 Y0 Z0 G43Z G54
N11 L57,5 (X=0, Z=-57,5)
N12 G53 (X=+68.3, Z=0)
N13 OX2 L100 (X=+68.3, Z=0)
N14 G54 (X=+10, Z=-100)
...
:OS
X1=-68.3
X2=-78.3
36 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 37
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Se si programma il movimento di un asse morto, che quindi dovrebbe essere attivato e disattivato,
esce il messaggio di allarme: CN6214 CAMBIO ASSI VIVI + G33/G34/G35/G63
Durante la G63 non sono attivi gli overrides (assi e mandrino) e feed-hold. Il reset e lo stop sono
attivi ma possono essere disabilitati in logica se il costruttore della macchina utensile lo ritiene
necessario.
Per usare la G63 occorre che la macchina sia predisposta. In particolare occorre:
− il rilevatore sul mandrino collegato al CN
− gestione in logica programmabile della inversione a volo del mandrino e delle sicurezze di
velocità mandrino raggiunta.
È consigliabile che il costruttore fornisca un ciclo fisso di maschiatura rigida che gestisca le
eventuali funzioni ausiliarie relative al mandrino.
L'errore di inseguimento (una volta in un senso e una volta nell'altro) con cui si muovono gli assi
con G113P attiva (moti morbidi) non è compatibile con la maschiatura rigida. I moti morbidi vengono
automaticamente sospesi durante i movimenti di maschiatura rigida.
L'entrata nella G63 (maschiatura rigida), cioè l’aggancio al primo filetto sincronizzato col passaggio
per lo zero del mandrino è morbida, pur senza allungare la fase di presa del filetto, grazie a un anticipo
calcolato con cui si muove l'asse lineare che entra in maschiatura rigida.
È inoltre possibile definire nelle impostazioni macchina il tempo di attacco della G63, cioé la rampa
iniziale di accelerazione quando inizia una maschiatura rigida. Per questa prestazione riferirsi alle
specifiche del costruttore della macchina utensile.
38 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
raccordi (RR)
smussi (RB)
centro di rotazione (IR, JR)
centro asse specularità (IS, JS)
feed (F)
fattori aggiuntivi sulle quote di assi lineari (KDX, KDY, KDZ, ...)
parametro DM (distanza da effettuare in lavoro in movimento G61)
- Dopo l'attivazione del comportamento forzato NON vengono modificate le seguenti grandezze:
lunghezze utensile (L, LX, LZ)
raggio utensile (R)
valore delle origini
In questo modo le tabelle utensili e le tabelle origini continuano ad essere valide (e riferite all’unità
di misura definita in taratura), qualsiasi sia la modalità impostata.
- Gestione della feed
Prendendo per esempio una macchina in millimetri forzata in pollici con G70.
-> Prima della funzione G70 la feed viene espressa in mm/min (funzionamento normale)
-> Dopo la funzione G70, se programmata, la feed è in pollici/min
-> Dopo la funzione G70, se la feed NON viene riprogrammata, resta attiva la feed precedente.
Esempio:
F1000 (in mm/min)
G1 ...
...
G70 (forzatura macchina in pollici)
G1 X... Y... (qui la feed resta 1000 mm/min)
...
F100 (programmata feed dopo G70, significa 100 pollici/min)
- Le funzioni G70/G71 sono compatibili con l'RTCP testa e tavola e con le rototraslazioni G116 con
le seguenti precisazioni:
-> i parametri X Y Z di traslazione nella funzione G116 devono essere espressi in pollici/millimetri
a seconda della programmazione della G70/G71
-> i parametri I J K X Y Z della funzione G118 devono essere espressi in pollici/millimetri a
seconda della programmazione della G70/G71
-> i parametri I J K della funzione G117 devono essere espressi in pollici/millimetri a seconda
della programmazione della G70/G71
-> i parametri I J K della funzione G120 devono essere espressi in pollici/millimetri a seconda
della programmazione della G70/G71
-> i parametri I J K della funzione G122 devono essere espressi in pollici/millimetri a seconda
della programmazione della G70/G71
- La funzione G105 restituisce le quote in pollici/millimetri coerentemente con la programmazione di
G70 (quote restituite in pollici) oppure G71 (quote restituite in millimetri)
- I parametri I RA della funzione G114 devono essere espressi in pollici/millimetri a seconda della
programmazione della G70/G71
D. ELECTRON 39
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
40 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
- distanze assi
- distanza interpolata
- feed reale
- feed programmata
- G70/G71 e attività di Z32
La forzatura G70/G71 ha effetto in attività 1 (Automatico), 12 (Semiautomatico o MDI), 3 (Ricerca
blocco).
In attività 4 (JOG) non ha effetto, ma non viene eliminata; chiariamo con due esempi:
Esempio 1 (macchina in mm da taratura):
- lancio in automatico un part program che forza i pollici
- arresto l’esecuzione del part-program, con il tasto STOP, dopo che la forzatura è stata attivata
- premo ESC
- entro in JOG, a questo punto la forzatura non ha più effetto (viene sospesa)
- i movimenti eseguiti in JOG saranno senza forzatura
- ritorno in automatico (la forzatura viene ripristinata)
- riprendo l’esecuzione del part-program che avrà di nuovo la forzatura attiva
Esempio 2 (macchina in mm da taratura):
- in semiautomatico programmo la forzatura in pollici
- eseguo dei movimenti assi che saranno affetti dalla forzatura
- premo ESC
- entro in JOG, a questo punto la forzatura non ha più effetto (viene sospesa)
- i movimenti eseguiti in JOG saranno senza forzatura
- ritorno in semiautomatico (la forzatura viene ripristinata)
- rieseguo dei movimenti che risentiranno nuovamente dell’effetto della forzatura
La forzatura G70/G71 viene eliminata quando si entra in attività 7 (Zero assi), attività 8 (Moto assi in
ciclo di velocità), attività 11 (Taratura automatica)
D. ELECTRON 41
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
ATTENZIONE
Il valore di HX deve essere programmato prima di G91 (le funzioni G vengono
elaborate durante l'ANALISI della riga, che procede con lo stesso ordine di
programmazione), quindi se si programma:
G91 HX10
42 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 43
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Esempio:
N1 G0 X0 Y0 (rapido)
N2 G93 F1000 (attiva G93, tempo di 1/1000 di minuto)
N3 G1 X0.5 (500 mm/min)
N4 Y2 (2000 mm/min)
N5 X0 Y0 (2061.5 mm/min)
N6 G0 X10 Y10 (rapido)
Regole:
- non c'è alcun controllo della feed programmata e della lunghezza del tratto programmato: se la
lunghezza del tratto è zero risulta una feed zero
- se gli assi sono in pollici non cambia nulla: il significato della G93 è comunque di impostare
l'inverso del tempo in minuti nel quale devono essere eseguiti i tratti successivi
- la G93 disattiva la G94, G95, G33 e G131 ed è disattivata da G94, G95 e G131
44 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 45
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
46 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Questa prestazione è particolarmente utile per i torni, ma può essere valida anche per le frese, per
le quali sarà significativa solo per il secondo effetto (feed di jog uguale all'eventuale feed
programmata). Per questa prestazione riferirsi alle specifiche del costruttore della macchina utensile.
D. ELECTRON 47
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Lo Z32 prevede un altro modo di scambio dati tra logica e part-program: i parametri PAL[ ] vedere
capitolo dedicato ai parametri, paragrafo “Parametri con indice”.
48 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
ATTENZIONE
Il programmatore si assicuri che ad ogni G102 corrisponda una e una sola
G103, e che non sia possibile, per esempio per giri di programma dovuti a
salti condizionati, saltare una G103 o eseguirne una di troppo: le G103
successive andrebbero a ripristinare stati diversi da quelli voluti, con
conseguenze imprevedibili.
Per il programmatore di cicli fissi di sistema e dei sottoprogrammi associati alle M speciali, si
consiglia di non usare la G53/G54 per sospendere e poi riattivare le correzioni, ma piuttosto di usare la
G102 seguita da G53 a inizio sottoprogramma, e G103 a fine programma per ripristinare lo stato.
Questo per non avere problemi in caso di richiamo di sottoprogrammi speciali dall'interno di
sottoprogrammi speciali.
Ci sono infatti in memoria DUE SOLE informazioni sullo stato di G53: una per lo stato normale
(utente) e una per lo stato speciale (riservata al costruttore); una eventuale G54 nel sottogramma
speciale chiamato cancellerebbe quindi anche la eventuale G53 del sottoprogramma speciale
chiamante. Nell'esempio un ciclo fisso di foratura con conteggio dei fori fatti.
CICLO FISSO DI FORATURA %
N1 G102
... (CICLO FISSO NORMALE)
N80 G37PL
N81!:RPN1=HA!HA=HA+1!:WPN1=HA!
N82 G103 G26
Si noti che il ripristino dello stato precedente fatto dalla G103 non significa ripristino delle origini o
delle lunghezze precedenti. Rimangono invece validi i nomi delle origini e il valore del parametro L
esistenti prima di G103.
La G103 provoca anche l'attivazione del parametro L come correttore e il ricalcolo di tutte le origini
solo se cambia per effetto della G103 lo stato di validità delle origini (G53/54) oppure della lunghezza
(G43/44/45). Nell'esempio sono esaminate alcune situazioni (scarsamente pratiche ma istruttive dal
punto di vista teorico).
...
N8 G0 G54 G43Z G37OG OX0 OY0 OZ0
N8,5 L0 X0 Y0 Z0 tutti gli assi sono a zero, non ci sono origini né lunghezze
N9!L=100! Z non cambia perché L è programmato in riga evoluta
N10 G102
N11 G103 poiché non cambia stato di origini o lunghezze, non sono ricalcolate
le correzioni e quindi Z non cambia
D. ELECTRON 49
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
N12 G102
N13 G53 non cambia nulla perché non ci sono origini e L non era attiva
N14 G103 poiché lo stato cambia da G53 a G54 vengono ricalcolate le origini
e la correzione lunghezza. La quota Z diventa -100
N15 G102
N16 OX1 è attivata l'origine globale X1, la quota X diventa p.e. +50
N17 G103 rimane attiva l'origine globale OX1, la quota X rimane +50
N18 G102
N19 G53 viene disattivata l'origine, la quota X diventa 0
N20 G103 cambia lo stato e quindi l'origine è ricalcolata: X=+50
N21 G37OL attivata la sezione locale. Resta attiva OX1 globale
N22 G102
N23 G53 sono disattivate le origini
N24 G103 qui cambia lo stato di G53 e sono ricalcolate le origini: la origine X1
globale a suo tempo programmata viene riattivata. Poiché la origine
X1 era globale, è ripristinata come globale, anche se sono attive le
origini locali
50 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Con la G105 le quote rilevate (riferite all'origine e correzioni attive al momento) sono trasferite nei
parametri quote assi. Il trasferimento delle quote avviene per tutti e soli gli assi continui, inclusi gli assi
non vivi.
Esempio della evoluzione delle quote e dei parametri quota.
PROGRAMMA quota fisica X parametro X
% +250 +250
G105 +250 +250
G0 X10 +10 +10
OX1 (+300 da origine base) -290 +10
G105 -290 -290
X<X> -290 -290
ATTENZIONE
La quota trasferita è quella reale misurata, e non quella comandata. Queste
due quote possono essere diverse per errori di posizionamento (che
comunque devono essere molto piccoli per rientrare sotto la soglia di
posizionamento).
Per esempio, se si comanda X10 e l'asse va alla quota 9,998 la G105 acquisisce la quota 9,998 e
non la quota 10.
Nel caso di assi ciclici vedere nel capitolo “Prestazioni speciali” il paragrafo “Assi continui ciclici”.
D. ELECTRON 51
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
52 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
G109U G109V
Le G109U e G109V servono per modificare il controllo della velocità in correzione raggio.
Lo Z32, in correzione raggio, tende a tenere costante la velocità di lavoro nel punto di contatto
dell'utensile col profilo programmato.
Se il profilo contiene un arco interno il centro utensile (se il raggio è positivo!) percorre un arco più
stretto dell'arco programmato. Se si tenesse costante la velocità del centro utensile si potrebbero
avere velocità eccessive alla periferia.
In questi casi perciò lo Z32 diminuisce automaticamente la velocità del centro utensile.
Questo automatismo può essere non valido se in realtà il raggio è fittizio, ossia se non rappresenta
il raggio reale (caso in cui un CAM ha precalcolato la traiettoria del centro dell'utensile torico e il raggio
R impostato nel CN è solo la variazione, in più o in meno, rispetto al raggio teorico).
La G109U elimina l'ottimizzazione della velocità da parte del CN e forza velocità Uniforme.
La G109V (attiva al reset) ripristina l'ottimizzazione della velocità in correzione raggio.
G109X
La G109X serve in casi particolari di profilo chiuso.
Lo Z32, in correzione raggio, esamina alcuni tratti in avanti sul profilo (da 3 con G109A a 7 con
G109E) ed elimina i tratti intermedi se l'utensile interferisce.
In caso di profilo chiuso composto di pochi tratti (meno di quelli esplorati in avanti) il CN può
decidere che c'è interferenza tra l'ultimo tratto e il primo e quindi eliminare tutto il profilo.
La G109X, se programmata in un punto intermedio di un profilo, forza il CN ad acquisire tutti i tratti
già programmati e che siano anche geometricamente chiusi: se programmata in un punto intermedio
di un profilo chiuso impedisce il controllo dell'interferenza tra il primo e l'ultimo tratto e quindi
l'eliminazione del profilo.
G109R G109N
È inoltre possibile programmare:
G109R forza raccordo nello spigolo interno
G109N annulla G109R
L'inserimento di un raccordo in uno spigolo interno che provoca errore di programmazione
"PROFILO INCOMPATIBILE", risolve in pratica la situazione di errore .
La G109R può essere programmata immediatamente prima dei blocchi che provocano la
situazione di errore facilitandone la rilevazione.
G109S G109T
Le funzioni G113A o G113B servono per ricostruire l’andamento curvilineo di una traiettoria
programmata per punti, ossia con una sequenza indefinita di segmenti rettilinei.
Come specificato nel manuale dell’alta velocità, un arco di cerchio interrompe la sequenza dei
segmenti arrotondabili.
D. ELECTRON 53
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Normalmente il CAM tiene conto delle dimensioni dell’utensile nello sviluppo del programma a
punti, e quindi non è necessario usare la correzione raggio sul controllo numerico.
In qualche caso, e limitatamente a profili piani, l’utente vuole usare la correzione raggio di Z32 per
adattare il profilo a un utensile usurato senza dover generare un altro profilo CAM.
Su spigoli interni le funzioni G113A o G113B e l’alta velocità continuano a funzionare correttamente,
ma su spigoli esterni il sistema di correzione raggio introduce degli archi di raccordo per ottenere la
rotazione dell’utensile intorno allo spigolo, che impediscono la ricostruzione della curva, e quindi si
generano rallentamenti molto sensibili.
Con G109S è possibile forzare il sistema di correzione raggio di Z32 a non introdurre l’arco di
raccordo ma a proseguire il segmento fino alla bisettrice dello spigolo, per consentire un corretto
funzionamento delle funzioni G113A o G113B e quindi evitare i rallentamenti.
G109S (modale, non attiva al reset) forza la correzione sulla bisettrice, mentre con G109T (modale,
attiva al reset) si ripristina il normale funzionamento di Z32 con l’introduzione dell’arco di raccordo.
Essendo la G109S modale può essere programmata una volta sola a inizio programma, per
esempio:
La prosecuzione della traiettoria fino alla bisettrice provoca un allungamento del segmento che può
essere molto forte ed indesiderato per spigoli acuti. Per esempio, col caso limite di spigolo di 180 gradi
si avrebbe un allungamento infinito.
Poiché con spigoli acuti non sarà possibile nessun arrotondamento (G113A o G113B), e per evitare
queste possibili indesiderate uscite di traiettoria, la G109S ha efficacia solo su spigoli di angolo fino a
91 gradi. Per spigoli con angolo maggiore viene introdotto il normale arco di raccordo che limita con
sicurezza la traiettoria nell’intorno dello spigolo.
G109Y
Correzione raggio G41/G42 modo taglio
La normale correzione raggio di Z32 è studiata per macchine ad asportazione di truciolo, in cui
l'obbiettivo è rispettare il profilo, ossia si ammette che parti anche importanti di profilo non siano
lavorate se l'utensile ha dimensioni superiori alle concavità del profilo.
La semplice correzione raggio inserita nel CN Z32 esplora fino a 7 tratti in avanti alla ricerca delle
concavità da evitare. Nel caso di profili complessi composti da numerosi tratti di piccola lunghezza si
possono incontrare situazioni in cui il profilo non può essere risolto e quindi derivano errori CN2B14
"PROFILO INCOMPATIBILE".
54 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Questa strategia non è l'ottima per le macchine da taglio termico per lamiera (plasma, laser ecc…).
In questo caso infatti:
- se ci sono punti in cui l'utensile non "entra" in una concavità, è meglio rovinare la zona stretta di
entrata piuttosto che non eseguire il taglio
- in nessun caso è utile l'allarme profilo incompatibile, anche se il profilo non è analizzabile: è
meglio in ogni caso eseguire un taglio imperfetto, che produce un pezzo spesso recuperabile, invece
che arrestare il taglio, che sicuramente produce un pezzo scarto e provoca perdite di tempo non
indifferenti per la ripresa della lavorazione.
La funzione G109Y predispone lo Z32 alla correzione raggio "modo taglio", che segue la strategia
sopra descritta. Essa è dedicata alle macchine da taglio termico e deve essere programmata prima
della correzione raggio (ossia prima di G41/G42). Una volta programmata la G109Y è modale e
permanente: il suo effetto si può eliminare solo con un reset o col lancio di un nuovo part-program.
Quando attiva la speciale modalità G109Y è consentito programmare funzioni “con arresto” durante
la correzione raggio. Quindi, per esempio, durante la correzione raggio con G109Y attiva sono
programmabili e non generano errore:
- le funzioni ausiliarie M, MA, MB, MC
- la sosta G4
Se durante la correzione raggio con G109Y attiva è programmata una funzione con arresto le
operazioni sono:
- completamento del profilo in correzione raggio come se fosse programmata una G40 (fine
correzione raggio)
- esecuzione della funzione con arresto
- ripresa della correzione raggio dal punto di interruzione
È evidente che il profilo eseguito con e senza funzione con arresto può essere diverso, in
dipendenza dal punto in cui questa funzione è programmata.
Per esempio, se c’è uno spigolo interno a 90 gradi entrambi i tratti (di entrata e di uscita) sono
normalmente accorciati per rispettare le pareti, ma se proprio sullo spigolo è programmata una
funzione con arresto il tratto di entrata non viene accorciato ma viene eseguito completamente, quindi
il taglio (non puntiforme) va a intaccare il lato di uscita e il tratto di uscita assume una diversa
inclinazione per recuperare l’errore.
È compito del sistemista predisporre le funzioni con arresto in punti adeguati del profilo, in cui
questo comportamento sia tollerabile.
Se non è attiva la G109Y il comportamento non cambia, ossia le funzioni con arresto sono vietate
durante la correzione raggio.
Generalità
Le macrofunzioni G110 consentono di progettare macro di svuotatura.
L'uso della G110 è in generale riservato al progettista della macro: il programmatore del pezzo
passa alla macro pochi parametri che individuano il profilo, l'inclinazione di passata, l'incremento di
passata.
La macro, tramite le macrofunzioni G110, si incarica di determinare i punti di intersezione, le
passate, i ritorni rapidi ecc.
D. ELECTRON 55
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Prelunghezze
AN... AP...
Nella G110 sono usati i parametri 'prelunghezza', sia in entrata che in uscita.
Per prelunghezza si intende la distanza percorsa dal centro utensile da inizio profilo al punto
specificato.
Con questi parametri è individuato in modo semplice ed univoco qualsiasi punto su un profilo.
56 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
− gli zeri iniziali devono essere omessi (la riga zero è N0)
− i decimali sono indicati con la virgola e non col punto
− non devono esserci zeri decimali non significativi
− sono ammessi fino a 4 interi e 3 decimali oppure 5 interi con solo due decimali
− se ci sono più righe con lo stesso numero viene assunta come valida la prima da inizio
programma
− non è necessario che il numero di riga inizio sia inferiore al numero di riga fine: basta che
la riga fine sia raggiunta a partire dalla riga inizio.
Esempi (numero riga e HX corrispondente):
N0 HX0
N1 HX1
N1,3 HX1,3
N1.3 errore punto decimale
N1234,567 HX1234,567
N 37 errore spazio intermedio
N12345,56 HX12345,56
N03 errore zero iniziale
N12,30 errore zero decimale non significativo
N12345,567 errore troppi numeri significativi
D. ELECTRON 57
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Diversamente il progettista della macro potrà non programmare il valore numerico reale di HR :
potrà allora compiere operazioni di incremento e decremento rispetto al valore iniziale che viene fornito
in uscita dalla macrofunzione primopunto (G110T0..).
In particolare con HR HR+K la retta di passata viene spostata di un incremento.
Specifiche tecniche
Analisi G110T1
Chiamata: G110T1Py (y=0, 1, 2)
58 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Funzione: ricerca sul profilo specificato e a partire dalla prelunghezza specificata la prima
intersezione negativa e la prima successiva positiva con la retta di passata (intersezione positiva
significa che il profilo attraversa la retta di passata in direzione concorde all'incremento)
Parametri di entrata:
HX HY numero riga inizio e fine
HT pendenza retta di passata
HR altezza retta di passata
K incremento di passata
AN prelunghezza iniziale
Parametri di uscita:
AN prelunghezza intersezione negativa (-1 se non trovata)
HX HY quote intersezione negativa (HX 1.o asse, HY 2.o asse)
AP prelunghezza intersezione positiva (-1 se non trovata)
HR HT quote intersezione positiva (HR 1.o asse, HT 2.o asse)
Note:
− se si desidera conoscere la prima intersezione positiva e la successiva negativa basta
invertire in entrata il segno di K
− se ci sono altre intersezioni prima della prelunghezza iniziale AN non sono prese in
considerazione
− le intersezioni possono cadere in un punto intermedio dei tratti di profilo
− se il punto di profilo corrispondente alla prelunghezza di entrata è già negativo rispetto alla
retta di passata la G110 restituisce che la prima intersezione negativa coincide col punto
iniziale
− non sono generati movimenti assi
Contorno G110T2
Chiamata: G110T2Py (y= 0, 1, 2)
Funzione: esegue il tratto di profilo compreso fra la prelunghezza iniziale e la prima intersezione
positiva con la retta di passata
Parametri di entrata:
HX HY numero riga inizio e fine
HT inclinazione retta di passata
HR altezza retta di passata
K incremento di passata
AN prelunghezza iniziale
Parametri di uscita:
AN prelunghezza intersezione positiva (-1 se non trovata)
Note:
- se non trova intersezione esegue il profilo a partire dalla prelunghezza iniziale fino alla fine
- se si vuole contornare fino alla intersezione negativa basta invertire l'incremento K in ingresso
- per cause di organizzazione interna durante il contorno si ha un rallentamento a fine di ogni
tratto programmato
In G110T2, se G114 attiva, non rallenta a fine di ogni tratto
D. ELECTRON 59
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Il profilo eseguito con G110T2 (contorno), per necessità di semplificazione dei calcoli interni, non ha
una velocità continua, così come avrebbe se fosse eseguito direttamente.
Si ha un forte rallentamento alla fine di ogni tratto elementare che costituisce il profilo.
Il rallentamento non c’è se è attiva la G114: in questo caso la parte di profilo eseguita con G110T2
ha le stesse velocità che avrebbe se eseguita direttamente.
Si noti che la G114 non è compatibile con la G95 (velocità di taglio in mm/giro) e quindi questa
prestazione è poco significativa per i torni, che usano in prevalenza la G95.
In G110T2, se in entrata AN<0 esegue il contorno in continuo
L'entrata in G110T2 con AN<0 assume un significato particolare: quello di eseguire tutto il contorno
indicato come se fosse eseguito direttamente.
In pratica se AN<0 la G110T2 equivale a:
− GOPx salto al programma che contiene il profilo da eseguire
− GON..-N.. salto alla serie di righe che definiscono il profilo
− G26 alla fine della serie di righe
Quindi, con AN<0 la G110T2:
− non fa rallentamento a fine di ogni tratto, anche con G114 non attiva
− ignora la retta di passata, e non tenta intersezioni
esegue tutto il profilo, incluso il tratto iniziale di trasferimento tra il punto attuale del centro fresa
e il punto iniziale del profilo
Quote G110T5
60 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
G110T7
Contorno su un profilo fino a una certa prelunghezza (riservata a D.Electron).
G110T8
Analisi geometrica del profilo (riservata a D.Electron).
D. ELECTRON 61
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Suggerimenti pratici
La G110 permette di realizzare macro di sgrossatura/svuotatura anche di notevole complessità.
Sarà bene però che il progettista della macro tenga presente alcuni aspetti dell'uso della G110 non
proprio evidenti in prima battuta, per evitare problemi in caso di profili con condizioni geometriche
limite.
62 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 63
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
La G112 è attiva solo nel blocco ed è una funzione che richiede l'arresto degli assi. Non può essere
programmata durante la correzione raggio o comunque quando ci sono elementi di profilo non risolti.
2.1.62 G113P - G113F - G113X scelta tra moto proporzionale, feed-forward, MODO X
Z32 ha tre modi di interpolazione:
− il modo "normale" ha l'anticipo della velocità (feed-forward), che permette grandi precisioni di
movimento (l'errore di inseguimento è molto basso, praticamente zero anche a velocità
elevate)
− il modo con "errore proporzionale" non ha l'anticipo di velocità e quindi l'errore di
inseguimento non è trascurabile, ma i movimenti sono più "morbidi" del modo normale.
− il “MODO X” unisce la migliore precisione del modo “normale” ed il miglior grado di finitura
del modo proporzionale (morbido).
Il modo proporzionale (morbido) è attivo con G98 (interpolazione solo lineare ottimizzata per piccoli
tratti). Ci possono essere però situazioni in cui la morbidezza del movimento è utile anche fuori della
G98.
Sono state perciò attivate tre opzioni nella G113:
− G113P attiva il modo proporzionale (morbido)
− G113F attiva il modo con feed-forward (rigido) - N.B. Funzione obsoleta, usare G113X.
64 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Per macchine di minore rigidità (grandi dimensioni) e superfici sculturate è possibile che si abbiano
risultati migliori con la G113P, in quando la maggiore precisione dei movimenti imposta dalla G113X
comporta maggiori accelerazioni che possono eccitare oscillazioni meccaniche che alla fine segnano il
pezzo. La validità e la applicabilità di questa prestazione devono essere valutate dal costruttore caso
per caso.
Per attivare il “MODO X” si deve programmare G113X, che è modale e disattiva G113P e G113F.
Con G113X attiva non ha effetto programmare G113L (8 mS) e G113S (gestione standard della
velocità): sono ignorate.
Con G113X attiva non ha effetto la G113C, che opera solo con moti morbidi G113P.
La G113X viene sospesa durante i movimenti di maschiatura rigida G63 ed i movimenti di misura
G61, G62.
Perché la G113X possa dare le sue migliori prestazioni occorre avere introdotto nel controllo
numerico vari parametri di taratura, cosa che è facilmente ottenibile con la funzione G125.
Dopo aver sostituito o cambiato le tarature di azionamenti o schede del CN. deve essere eseguita
la funzione G125 prima di poter usare la G113X.
La G113X ha effetto su tutti i movimenti, incluso il rapido G0, che vengono eseguiti con un errore di
inseguimento minimo anche durante le rampe di accelerazione e decelerazione. Rispetto alla G113F
(che ha il minimo errore di inseguimento) si ha una riduzione dell’errore di un fattore almeno 10: da
alcuni decimi di millimetro a pochissimi centesimi.
Nelle impostazioni di macchina viene definito quale modo di interpolazione è attivo al reset. Per
ulteriori dettagli consultare la documentazione del costruttore della macchina utensile.
Queste funzioni fanno parte del sistema dell’Alta velocità, per maggiori dettagli sul funzionamento e
le strategie di uso vedere il manuale relativo M146 “Alta velocità”.
G113X, G113X KA1, G113X KA2 e sistemi di tipo tornio
Le funzioni G113X, G113X KA1 e G113X KA2 sono state sviluppate per l'esecuzione di part-
program descritti con molti punti ravvicinati tipici di sistemi tipo fresa. Queste funzioni sono pertanto da
non utilizzare su sistemi di tipo tornio. Per maggiori informazioni chiedere a D.Electron.
D. ELECTRON 65
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Prima dell'attivazione di G113X KA1 occorre che tutti gli assi interessati al movimento (ossia tutti gli
assi vivi) siano in precedenza stati tarati con la funzione G125 KA1.
Queste funzioni fanno parte del sistema dell’Alta velocità, per maggiori dettagli sul funzionamento e
le strategie di uso vedere il manuale relativo M146 “Alta velocità”.
66 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Queste funzioni fanno parte del sistema dell’alta velocità; per maggiori dettagli vedere il Manuale
relativo M146 “Alta velocità”.
G113A / G113B e sistemi di tipo tornio
Le funzioni G113A e G113B sono state sviluppate per l’esecuzione di part-program descritti con
molti punti ravvicinati tipici di sistemi tipo fresa. Queste funzioni sono pertanto da non utilizzare su
sistemi di tipo tornio. Per maggiori informazioni chiedere a D.Electron.
D. ELECTRON 67
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
HR: errore cordale massimo nella ricostruzione della curvatura originale (usato solo se
programmate G113A o G113B, espresso in mm o pollici
J: fattore di morbidezza del jerk. Valore intero da 0 a 6.
K: massima accelerazione di traiettoria espressa sempre in mm al secondo quadro
All’accensione, ad inizio programma, oppure programmando G114KA0, questi parametri assumono
i valori impostati nelle tarature della macchina.
Questa funzione fa parte del sistema dell’Alta Velocità, per maggiori dettagli vedere il Manuale
relativo M146 ”Alta Velocità”.
A) Righe operative
Sono le righe che "fanno" qualcosa, ossia che contengono movimenti assi, o funzioni ausiliarie.
68 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 69
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
N1 X0 Y0 Z0 0 0 0 0 0 0
N3 X3 Y2 Z1 13 3 22 2 31 1
N4 G116 X0 Y0 Z0 13 3 22 2 31 1
N5 X0 Y0 Z0 10 0 20 0 30 0
N6 G116 I90 10 0 20 0 30 0
N7 X50 60 50 20 0 30 0
N8 Y20 60 50 20 20 50 0
N9 Z30 60 50 -10 20 50 30
N11 X45 60 45 65 20 50 50
N12 Y50 60 45 65 50 80 50
N13 Z40 50 45 65 50 80 40
N21 X0 Y0 Z0 0 0 0 0 0 0
70 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Il fatto che sia possibile programmare un solo asse di rotazione alla volta è una limitazione
necessaria per ottenere la massima chiarezza relativamente all'ordine in cui devono essere fatte le
eventuali rotazioni multiple: non porta infatti lo stesso risultato programmare per esempio prima una
rotazione intorno a X e poi intorno a Y, oppure prima intorno a Y e poi intorno a X
Rotazioni intorno a più assi possono essere ottenute programmando in cascata (su righe
successive) le varie rotazioni nell'ordine desiderato.
2.1.73 G118 HR1 - RTCP per tavola girevole con movimenti combinati lineari/rotativi
Modale.
La speciale funzione G118 HR1 serve per la gestione dell’RTCP (rotation tool centre point) con
movimenti combinati tra assi rotativi e lineari, di una macchina utensile avente una tavola girevole
monorotativa o birotativa “tilting” (uno o due assi inclinati comunque rispetto alla terna di assi
principali).
Il formato generale per l'attivazione della G118 è:
G118N HR1 [KA…] [RA…] [X… Y… Z…]
oppure
G118 ‘nome asse’ HR1 [KA…] [RA…] [X… Y… Z…]
Per una descrizione dettagliata sull'uso e sul funzionamento vedere l'apposito manuale M154
“Rotazioni (RTCP)”.
D. ELECTRON 71
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
2.1.75 G118S - RTCP statico con programmazione quote assi tavola girevole.
Modale.
La speciale funzione G118S serve per la gestione dell’RTCP (rotation tool centre point) tavola.
La G118S calcola le correzioni da applicare agli assi lineari (XYZ) dovute alle quote programmate
degli assi tavola.
La funzionalità della G118S è equivalente alla G118 HR2 con la differenza che:
- G118 HR2 calcola la traslazione dell'origine in funzione delle quote attuali degli assi rotativi tavola
- La G118 S calcola la traslazione dell'origine in funzione delle quote degli assi rotativi programmate
sulla stessa riga di programmazione della G118S.
Il formato generale per l'attivazione della G118S nel caso monorotativo è:
G118S quota asse tavola [KA…] [RA…] [X… Y… Z…]
oppure nel caso birotativo possono essere:
G118S quota asse trainante quota asse trainato [KA…] [RA…] [X… Y… Z…]
G118S quota asse trainante [KA…] [RA…] [X… Y… Z…]
G118S quota asse trainato [KA…] [RA…] [X… Y… Z…]
Per una descrizione dettagliata sull'uso e sul funzionamento della prestazione vedere l'apposito
manuale M154 “Rotazioni (RTCP)”.
72 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
ATTENZIONE
Con G119 attiva i fine corsa software sono disabilitati su tutti gli assi, perché
i rilevatori possono essere a quote non significative e quindi possono
impedire il movimento. Spetta all'operatore mettere in atto la massima
cautela per evitare collisioni e danni.
In ogni caso, per cautela, Z32 attiva automaticamente la condizione di TEST
(riduzione del rapido a 1/5) quando G119 è attiva.
2.1.77 G120 - RTCP per tavola girevole - coordinate del centro tavola
La funzione G120 fa parte del sistema di gestione RTCP per tavola girevole (G118). La G120
svolge lo scopo di fornire al sistema le coordinate del centro tavola ovvero le coordinate del centro di
rotazione.
La forma di programmazione è:
G120 [RA…] I… J… K…
Per una descrizione dettagliata sull’uso e sul funzionamento vedere l’apposito Manuale M154
“Rotazioni (RTCP)”.
D. ELECTRON 73
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
G122 I… J… K…
Per una descrizione dettagliata sull’uso e sul funzionamento vedere l’apposito Manuale M154
“Rotazioni (RTCP)”.
74 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
ATTENZIONE
Le righe relative ai movimenti bloccati non sono visualizzate, a meno che non contengano funzioni
ausiliarie.
Disattivazione
Programmando G123KA0 si eliminano sia la limitazione positiva che quella negativa, ma
rimangono attive tutte le predisposizioni (limiti, KA3 o KA4) programmati.
Per ripristinare la limitazione positiva precedente basterà programmare G123KA1 senza nessuna
quota e per ripristinare quella negativa G123KA-1 senza nessuna quota.
Programmazione limiti G123 con quota già fuori del campo di lavoro
Consideriamo adesso il caso (per semplicità ci riferiremo ad un solo asse) di programmazione di
limiti con G123 con la quota già al di fuori di tali limiti: ad esempio si ha X=80 e si programma
G123KA1X30.
Si deve distinguere il caso di G123KA3 (modo allarme) e di G123KA4 (modo limitazione).
G123KA3 caso 1:
G0X100
D. ELECTRON 75
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
G123KA3
G123KA1X30 unico limite positivo sulla X
G0X40 allarme CN5614 G123 KA3 QUOTA OLTRE I LIMITI
G123KA3 caso 2:
G0X100
G123KA3
G123KA1X30 unico limite positivo sulla X
G0X10 X va a 10 (entro i limiti programmati)
G123KA3 caso 3:
G0X100
G123KA3
G123KA1X30 unico limite positivo sulla X
G0Z200 Z va a 200
G0Y300 Y va a 300
G0X50 allarme CN5614 G123 KA3 QUOTA OLTRE I LIMITI
G123KA4 caso 1:
G0X100
G123KA4
G123KA1X30 unico limite positivo sulla X
G0X40 X va a 30 anche se programmato 40
G123KA4 caso 2:
G0X100
G123KA4
G123KA1X30 unico limite positivo sulla X
G0X10 X va a 10, che è entro il limite della G123
G123KA4 caso 3:
G0X100
G123KA4
G123KA1X30 unico limite positivo sulla X
G0Z200 Z va a 200
G0Y300 Y va a 300
G0X50 X va a 30 anche se programmato 50
76 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
ESEMPIO 2%
G0X20Y20Z20
G123KA1X30Y40Z50 limiti positivi
G123KA-1X-10Y-15Z-20 limiti negativi
G0X-60Y-60Z-60 punto finale X=-10, Y=-15, Z=-20
G0X60 X si ferma a 30
G0Y80 Y si ferma a 40
M2
ESEMPIO 3%
G0 X0 Y0 Z0
G123 KA1 Y20 unico limite positivo: max Y =+20
G123 KA5 abilita il modo "arresto"
G1 F1000 X5 movimento eseguito
X-10 Y25 Z-20 movimento non eseguito perché Y fuori limite
X-12 Z30 movimento non eseguito perchè Y è ancora fuori limite
Y10 movimento è eseguito come se fossero programmati X-12 Y10 Z30
D. ELECTRON 77
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Se viene programmata G124 con G117 non attiva l'effetto è nullo, anche se non viene dato nessun
allarme.
Le due attivazioni: G124 oppure G124KA1 sono equivalenti
Se mentre è attiva G124 viene disattivata G117 si ha l'immediata disattivazione anche di G124.
Se mentre è attiva G124 viene programmato uno degli assi rotativi legati a G117 si ha il messaggio
di allarme CN5814 G124+ASSE ROTATIVO DI G117
Dal punto precedente consegue che l'unico modo di muovere gli assi rotativi legati a G117 con la
G124 attiva è quello di usare i volantini ad essi collegati.
Disattivazione
Programmando G124KA0 si ha la disattivazione dei volantini legati agli assi rotativi di G117 e tali
assi possono essere da ora in avanti di nuovo programmati.
Esempi di programmazione
Supponiamo di avere una macchina con testa birotativa ed assi XYZABC, dove A e B sono i due
assi rotativi legati alla G117, mentre C è un altro asse rotativo non interessato a G117.
Esempio 1:
G0X0Y0Z0A0B0C0
G117
G0A20B30X40
G124 da qui in poi si possono muovere A e B solo tramite i volantini
G0X10Y10Z10C40 ok (asse C non collegato a G117)
G0A10 allarme CN5814 perchè programmato asse A
Esempio 2:
G0X0Y0Z0A0B0C0
G117
G0A30B40X40
G124 da qui in poi si possono muovere A e B solo tramite i volantini
G0X10Y15Z25C30 ok (asse C non collegato a G117)
G0Z0X0Y0C0 ok
G124KA0 volantini A e B disattivati: A e B sono nuovamente programmabili
G0A15B35X10 ok
Esempio 3:
G0X0Y0Z0A0B0C0
G124 non ha effetto perchè la G117 non è attiva
G117
G0A30B40X40 A e B possono essere programmati
G124 da qui in poi si possono muovere A e B solo tramite i volantini
G0X10Y15Z25C30 ok (asse C non collegato a G117)
G0Z0X0Y0C0 ok
G117KA0 la disattivazione di G117 disattiva anche G124: A e B sono
nuovamente programmabili
78 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
G0A15B35X10 ok
2.1.82 G125 - G125 KA1 - G125 KA101 - taratura assi per alta velocità
Per ottenere le migliori prestazioni dal controllo degli assi col “MODO X”, che si attiva con la G113X
o G113X KA1 o G113X KA2, è consigliabile effettuare più di una taratura G125 (almeno due) per ogni
asse interessato.
Le G125, G125 KA1 o G125 KA101, che devono essere eseguite in semiautomatico oppure in
automatico da part-program, consentono di ricavare in modo semplice, rapido, ripetibile e preciso
queste tarature, che sarebbero altrimenti piuttosto complesse da determinare.
Queste funzioni fanno parte del sistema dell’Alta Velocità, per maggiori dettagli vedere il Manuale
relativo M146 “Alta Velocità”.
La descrizione del sistema (ovviamente interessa solo l'utente che ha una macchina predisposta
per il lock di processo) è contenuta nel manuale M252 “Lock di processo”.
D. ELECTRON 79
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
assi XYZ, senza considerare il moto programmato degli assi rotativi e gli eventuali moti di
trascinamento che il moto dei rotativi induce sugli assi lineari.
Infatti il moto di trascinamento è un movimento che non genera una velocità relativa tra punta
utensile e pezzo, poiché serve proprio a mantenere la punta utensile ferma rispetto al pezzo.
- con RTCP attiva e con G131 attiva la feed programmata sarà riferita ai soli assi lineari
- dalla feed programmata e dalla lunghezza del movimento degli assi lineari si ricava il tempo di
esecuzione del movimento degli assi lineari
- a questo punto viene calcolata una nuova feed espressa come l'inverso del tempo sopra calcolato
ed il comportamento è quello che si avrebbe se fosse stata programmata una G93 con tale feed.
- il formato generale per l’attivazione di G131 è:
G131 I…
- sulla riga di attivazione di G131 si può specificare il parametro I seguito da un numero positivo che
individua la massima velocità che potranno avere gli assi rotativi coinvolti nel movimento. Se tale
parametro non viene specificato la velocità massima sarà saturata al rapido.
ATTENZIONE:
- se la feed così calcolata dovesse risultare troppo elevata per qualcuno degli altri assi coinvolti nel
movimento, questa verrà opportunamente limitata.
- al tendere a zero della lunghezza del movimento degli assi lineari gli assi rotativi avranno una
velocità sempre maggiore che verrà eventualmente saturata al massimo ammissibile specificato con il
parametro I. Se il parametro I non è stato programmato nella riga di G131 la velocità massima sarà
saturata al rapido.
- in blocchi con lunghezza del movimento degli assi lineari nullo i rotativi andranno al loro massimo
consentito (parametro I o rapido).
- in blocchi dove non sono programmati assi lineari i rotativi andranno al loro massimo consentito
(parametro I o rapido).
- se nel movimento sono presenti pure moti di trascinamento indotti sugli assi XYZ dal moto degli
assi rotativi RTCP, e tali moti fanno si che la velocità degli assi XYZ sia troppo alta, questa sarà
limitata in tempo reale in modo da farla rimanere sempre nei limiti consentiti per gli assi XYZ.; questo
si traduce in una velocità non costante tra punta utensile e pezzo.
- in un movimento molto lungo si potranno avere variazioni di velocità dovute all'effetto del moto
indotto sugli assi lineari dal moto degli assi rotativi legati all'RTCP.
- G131 non influenzerà G0
- Quando si programma G131 vengono eliminate G93 o G94 o G95 viceversa con G131 attiva
programmando G93 o G94 o G95 viene eliminata G131.
Nota sulla G131 usata con G132 “lavorazioni cammes”:
- con G132 KA1 si avrà una velocità costante per qualsiasi lunghezza dei blocchi di movimento,
mentre con G132 KA2 e G132 KA3 la velocità sarà costante per blocchi con movimenti corti, ma
tenderà a non esserlo più per blocchi con movimenti lunghi: questo è dovuto al fatto che
programmando in G132 KA2 e G132 KA3 pure gli assi lineari si può avere una variazione del raggio di
rotazione del cilindro (G132 KA2) o della tavola (G132 KA3) all’interno del blocco.
80 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 81
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
- se è programmato KA1 sono obbligatori anche HX, HY, HR e quattro assi, con i quattro valori +-1,
+-2, 3, 4
- la programmazione della I è facoltativa, se non è programmata viene assunto il valore di default di
500 mm/min, se è programmata il massimo valore di I è 2000 mm/min
- gli elementi che compongono la riga possono essere forniti in qualsiasi ordine
- tutti i valori numerici possono essere programmati con espressioni (per esempio può essere
comodo HR<R-10> per indicare che il raggio usato dal CAM era 10 mm e che quindi la differenza è il
raggio attuale R meno il raggio del CAM)
- la G132 è incompatibile con G53/G54 (errore CN3914 <<FORMULA + G53/G54>>)
- la G132 è compatibile con lo RTCP e con qualsiasi tratto geometrico programmato (lineare,
circolare ecc.)
- con G132 attiva possono essere programmati anche gli assi lineari: il movimento di correzione si
somma a quello programmato.
Altre precisazioni sulle modalità di esecuzione dei movimenti in tempo reale:
- all'attivazione della G132 le correzioni partono da zero e si portano a quelle calcolate con un
raccordo che parte con un certo ritardo (servono almeno 0,25 gradi di almeno un asse rotativo) e dura
il tempo necessario al recupero dell'intera correzione, quindi il tratto immediatamente successivo alla
G132 deve essere in aria per non generare profili errati
- alla disattivazione (dopo G132 KA0) si ha il movimento inverso di recupero della correzione:
anche qui è necessario un movimento in aria per evitare errori
- durante la ricerca blocco la correzione non è attiva. Alla ripresa della lavorazione si ha il raccordo
iniziale come all'attivazione della G132
- durante la lavorazione la velocità massima di correzione (per ognuno dei due assi lineari) è
limitata a quella programmata (default 500 mm/min). Se la geometria richiede velocità superiori si
hanno errori di correzione che possono essere recuperati in un tempo successivo, non appena le
velocità rientrano nei limiti ammessi
- le correzioni sono calcolate in base alle direzioni dei movimenti assi, e sono amplificate dalla
differenza raggio programmata con HR. Quindi il grado di finitura dipende dalla regolarità della
programmazione, ma anche dall'entità della differenza raggio, che deve essere contenuta il più
possibile (ben al di sotto del limite concesso al parametro HR che è di 8,192 mm)
82 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 83
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
dove:
(asse1) è il nome dell'asse lineare programmato e che è uno dei due assi del piano tavola
(v1) può assumere i due soli valori +1 oppure -1, per indicare che la correzione calcolata deve
essere applicata all'asse1 con il suo segno o con il segno opposto
(asse2) è il nome dell'altro asse lineare del piano tavola che però non viene mai programmato nei
movimenti del part-program ed è sempre uguale alla quota, lungo asse2, del centro di rotazione della
tavola
(v2) può assumere i due soli valori +2 oppure -2, per indicare che la correzione calcolata deve
essere applicata all'asse2 con il suo segno o con il segno opposto
84 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
(asse3) è il nome dell'asse rotativo (il cui asse di rotazione è perpendicolare al piano tavola
individuato da asse1 ed asse2)
(v3) può assumere i due soli valori +3 oppure -3: +3 indica che una rotazione positiva dell’asse3
equivale ad uno spostamento positivo dell’asse2, -3 indica che una rotazione positiva dell’asse 3
equivale ad uno spostamento negativo dell’asse2.
(vasse1) valore numerico, in millimetri, che individua la quota del centro di rotazione della tavola,
secondo la coordinata asse1, rispetto all'origine attiva
(vr) valore numerico, in millimetri, che rappresenta la differenza tra il raggio usato dal CAM per il
calcolo del percorso, ed il raggio utensile in macchina. Il massimo valore ammesso è 8,192 mm.
(vf) è la massima velocità, in mm/min, con cui il CN muove gli assi lineari per effettuare le correzioni
Esempio:
G132 KA3 Y1 X-2 C-3 HX10 HR-0.5 I1800
Introduce una correzione per cammes polari in cui:
- gli assi lineari sono Y (primo asse lineare) ed X (secondo asse lineare)
- il piano perpendicolare all’asse di rotazione della tavola è il piano XY
- l'asse rotativo con asse di rotazione perpendicolare al piano tavola è l’asse C
- una rotazione positiva di C equivale ad un movimento negativo di X
- la correzione sull'asse X ha segno opposto al valore teorico calcolato
- il centro di rotazione della tavola ha coordinata 10 nel sistema di riferimento con origine sull’
origine attiva dell’asse Y
- il raggio utensile usato è inferiore di 0.5 millimetri rispetto a quello usato dal CAM
- la massima velocità di correzione è 1800 mm/min
La disattivazione della correzione è fatta programmando:
G132 KA0
Alcune precisazioni sulla sintassi di programmazione della G132 KA3:
- i valori delle lunghezze e delle velocità sono espresse in mm e mm/min anche se la macchina è in
pollici
- i parametri asse1, asse2, asse3, HX, HR ed i relativi valori sono obbligatori
- il parametro I è opzionale e se non è programmato viene assunto per default il valore di 500
mm/min; se è programmato il massimo valore è 2000 mm/min
- gli elementi della riga possono essere inseriti in qualsiasi ordine
- i valori numerici si possono programmare pure attraverso espressioni (es: HR<R-10>)
- G132 KA3 è incompatibile con G53/G54
- G132 KA3 è compatibile con RTCP
- con G132 attiva si possono programmare sia assi lineari che rotativi: il movimento di correzione
sui due assi lineari asse1 ed asse2 si somma a quello programmato lungo questi due assi
Altre precisazioni sulle modalità di esecuzione dei movimenti in tempo reale:
- all'attivazione della G132 KA3 le correzioni partono da zero e si portano a quelle calcolate con un
raccordo che parte con un certo ritardo (servono almeno 0,03125 gradi dell’asse rotativo oppure 0,1
mm di un asse lineare) e dura il tempo necessario al recupero dell'intera correzione, quindi il tratto
immediatamente successivo alla G132 KA3 deve essere in aria per non generare profili errati
- alla disattivazione (dopo G132 KA0) si ha il movimento inverso di recupero della correzione:
anche qui è necessario un movimento in aria per evitare errori
D. ELECTRON 85
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
- durante la ricerca blocco la correzione non è attiva. Alla ripresa della lavorazione si ha il raccordo
iniziale come all'attivazione della G132 KA3
- durante la lavorazione la velocità massima di correzione (per ognuno dei due assi lineari) è
limitata a quella programmata (default 500 mm/min). Se la geometria richiede velocità superiori si
hanno errori di correzione che possono essere recuperati in un tempo successivo, non appena le
velocità rientrano nei limiti ammessi
- le correzioni sono calcolate in base alle direzioni dei movimenti assi, e sono amplificate dalla
differenza raggio programmata con HR. Quindi il grado di finitura dipende dalla regolarità della
programmazione, ma anche dall'entità della differenza raggio, che deve essere contenuta il più
possibile (ben al di sotto del limite concesso al parametro HR che è di 8,192 mm)
2.1.90 G133 KA0 ÷ KA5 - per gestione doppio mandrino e mandrini tavola
Questa prestazione è riservata a macchine multimandrino e deve essere supportata dal PLC di
macchina. Consultare il costruttore della macchina utensile per eventuali dettagli.
Con G133 KA0 si attiva il mandrino principale, con G133 KA1 si attiva il mandrino ausiliario, con
G133 KA da 2 a 5 si attiva uno dei quattro possibili mandrini tavola (che devono essere definiti ed
abilitati dal costruttore, altrimenti viene allarme CN2C14 PARAMETRI INCOMPATIBILI.
Se insieme a G133 non è programmato KA o sono programmati valori diversi da 0 1 2 3 4 5 viene
allarme CN2C14 PARAMETRI INCOMPATIBILI.
La G133 non può stare nella stessa riga insieme a G134 altrimenti viene allarme CN2C14
PARAMETRI INCOMPATIBILI.
Se la macchina non supporta i multimandrini la programmazione di G133 genera un allarme
CN1D14 ERRORE PROGRAMMA.
Al reset e a inizio programma è automaticamente attivato il mandrino principale.
Il tipo di comportamento del mandrino che viene abbandonato (può continuare la sua rotazione
oppure arrestarsi) dipende dal PLC di macchina, consultare il costruttore della macchina utensile.
2.1.91 G134 KA0 ÷ KA3 - commutazione macchina tipo fresa/macchina tipo tornio
Questa prestazione è riservata a macchine con doppia funzionalità di fresa oppure di tornio e deve
essere supportata dal PLC di macchina. Consultare il costruttore della macchina utensile per eventuali
dettagli.
Le differenze tra la gestione di una fresa e di un tornio sono:
- per la fresa la lunghezza utensile è data dal parametro "L" che vale sull'asse programmato con
G43 mentre per il tornio ci sono due parametri (contemporanei) "LX" e "LZ" che correggono la
lunghezza utensile in direzione dei due assi X e Z.
- nell'attività 4 di presa in macchina delle lunghezza utensile per la fresa si rileva la lunghezza
utensile "L" mentre per il tornio sono possibili le due lunghezze "LX" e "LZ".
- solo nel tornio è possibile (con G107) attivare la programmazione diametrale sull'asse X, e quindi
la presa delle origini e delle lunghezze nell'attività 4 specificando col carattere "D" il diametrale.
- la programmazione di M6 per la fresa comporta anche l'arresto del mandrino (è come se
contenesse un M5) mentre per il tornio il mandrino non si arresta.
Con la G134 KA0 si forza il funzionamento fresa mentre con G134 KA1, G134 KA2 o G134 KA3 si
forza il funzionamento tornio.
Se non è programmato KA o sono programmati valori diversi da 0,1,2,3 viene allarme CN2C14
PARAMETRI INCOMPATIBILI.
86 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 87
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
… (programmazione fresa)
G134KA2 (ripristina la modalità tornio)
Funzionamento della G134 KA1
Questa funzionalità è riservata a macchine in cui gli assi fresa X e Z sono usati anche come assi
tornio.
Prima di forzare il funzionamento tornio si deve attivare il piano di lavoro XZ valido per il tornio (per
esempio con G25XZY), altrimenti viene errore CN 2C14 PARAMETRI INCOMPATIBILI.
Funzionamento della G134 KA2
Questa funzionalità consente di attivare il funzionamento tornio anche se non sono usati gli assi XZ
della fresa come assi XZ del tornio.
Sintassi generale di programmazione:
G16… G134 KA2
La G16 programmata nella stessa riga della G134 KA2 consente di definire il nome degli assi che
devono funzionare come XZ del tornio. Le due funzioni devono essere separate da uno o più spazi
altrimenti viene allarme CN1D14 ERRORE PROGRAMMA
Per esempio, ammettiamo che una fresa abbia gli assi XYZ come tre assi principali (numeri logici
0,1,2) e che si voglia far funzionare come tornio in cui:
- l'asse Y della fresa diventa diametrale del tornio (quindi asse X del tornio)
- l'asse X della fresa diventa longitudinale del tornio (asse Z del tornio)
- l'asse Z della fresa diventa un terzo asse del tornio (asse Y del tornio)
Si dovrà programmare:
G16ZXY G134 KA2
Dopo l'esecuzione di questa riga sarà disponibile una macchina tornio con assi XZ convenzionali,
ottenuti però col movimento degli assi Y ed X della fresa, quindi è implicita in questa riga anche la
definizione del nuovo piano di lavoro ZX, come se dopo la G134 KA2 fosse stata programmata una
G25ZX.
Se prima della G134 KA2 erano attive diverse G16 o G25, queste sono congelate e ripristinate
automaticamente quando la G134 KA2 è annullata dalla G134 KA0 che ripristina la fresa.
Se non si programma G16 insieme alla G134 KA2 è come se si fosse programmata una G16 che
riconferma gli assi principali della macchina (ossia G16XYZ). Anche se G16 non è programmata sono
comunque congelate eventuali G16 e G25 attive in precedenza, che sono poi ripristinate da G134 KA0.
Sotto JOG (attività 4), anche se è attiva la G134 KA2, si muovono comunque gli assi fisici definiti
nelle tarature macchina, ossia non è attiva l'eventuale ridirezione degli assi ottenuta con la G16 di
G134 KA2.
Funzionamento della G134 KA3
La funzione G134 KA3 permette di attivare la modalità di tipo tornio specificando sulla riga di
programmazione quale tra gli assi X e Z sarà usato come diametrale e quale come longitudinale.
Sintassi (identica per macchine in mm e in pollici):
G134 KA3 X0 Z1 (attiva Z come diametrale e X longitudinale)
G134 KA3 X1 Z0 (attiva X come diametrale e Z longitudinale)
Caratteristiche:
Con arresto (come le G134 KA0,KA1,KA2).
Dà allarme CN2C14 PARAMETRI INCOMPATIBILI, se:
- non sono programmati X e Z con una delle due combinazioni indicate
88 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Funzione G135 I1
Durante l'esecuzione di una traiettoria la funzione G135 I1 permette di modificare la gestione dei
rallentamenti dovuti a cambiamenti di curvatura (aumentando o diminuendo il jerk di curvatura
applicato nei punti in cui avviene un cambio di curvatura, come le transizioni retta-cerchio o cerchio-
cerchio).
Se la G135 I1 viene usata per ottenere un aumento del jerk di curvatura, nei punti in cui la curvatura
della traiettoria cambia, si noteranno minori rallentamenti della macchina, il tempo di esecuzione sarà
più basso.
Se la G135 I1 viene usata per ottenere una diminuzione del jerk di curvatura, nei punti in cui la
curvatura della traiettoria cambia, si noteranno maggiori rallentamenti della macchina, il tempo di
esecuzione sarà più alto.
La sintassi di programmazione è:
G135 I… [HX…]
G135 I0 Annulla gestione avanzata G135 I1
Programmazione per ottenere un aumento della velocità di esecuzione:
G135 I1 Attiva gestione G135 I1, nessun aumento del jerk di curvatura
G135 I1 HX0 Nessun aumento del jerk di curvatura
G135 I1 HX1 Aumento del jerk di curvatura di 2 volte
G135 I1 HX2 Aumento del jerk di curvatura di 4 volte
D. ELECTRON 89
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Funzione G135 J1
La G135 J1 separa la gestione degli assi rotativi usati in RTCP dalla gestione degli altri assi
macchina. Con la G135 J1 è possibile definire una tolleranza di arrotondamento applicata ai soli assi
rotativi in RTCP, diversa dalla tolleranza applicata agli altri assi macchina (specificata tramite
parametro RA della funzione G114).
Sintassi:
G135 J… [HY…]
G135 J0 Annulla la gestione avanzata G135 J1
G135 J1 HY0.1 Attiva la gestione avanzata G135 J1 con tolleranza assi rotativi di 0.1 mm
Nota: il parametro HY è la tolleranza in gradi applicata agli assi rotativi in RTCP.
90 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
oppure a:
G136 TT0.002 HX1 G1 F5000 X100
In tutti e tre i casi la micrososta comandata con G136 viene eseguita subito dopo il movimento
X100.
La funzione G136 deve essere supportata dal PLC di macchina. Consultare il costruttore della
macchina utensile per eventuali dettagli.
D. ELECTRON 91
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
92 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
K=J per utensile azzerato nel centro nel caso di fresa torica
KA=specifica il tipo di fresa:
KA0 o non programmato per fresa sferica
KA1 per fresa torica
Il caso di fresa cilindrica è un caso particolare della fresa torica avente il parametro J=0
Se la terna non viene programmata nella riga di attivazione di G141, si prende come terna di G141
la terna di assi di lavoro attualmente valida.
asse3 deve essere l’asse lungo cui giace l’utensile (tale asse lo si può eventualmente variare
prima di programmare G141 tramite G43 o G44).
Le correzioni calcolate da G141 avranno un verso dipendente dal fatto che la lunghezza utensile sia
positiva (G43) oppure negativa (G44) e quindi saranno sommate o sottratte alle quote programmate a
seconda del caso.
Dopo l'attivazione della G141 è necessario che ciascun movimento contenente almeno una delle
quote della terna scelta per G141, contenga tutte e tre le componenti del versore normale alla
superficie di lavorazione, anche se non sono variate rispetto al blocco precedente.
Nei blocchi di movimento successivi all’attivazione di G141, possono comparire pure quote di assi
non della terna di G141.
Nelle righe di programma successive all’attivazione di G141, sono possibili blocchi di movimento
che non contengano nessun asse della terna e nessuna componente del versore normale.
Ad esempio consideriamo la situazione seguente:
Z,Y,X = assi della terna
A,B,C = altri assi non della terna
I,J,K = componenti versore normale
G141 Z Y X I1 ;correzione su fresa sferica azzerata in punta, terna ZYX con utensile che giace
lungo X
....
X10 Y5 Z6 I0.707 J0.707 K0 ;riga corretta
X10 Y5 I0.707 J0.707 ;riga non corretta: manca K
A10 ;riga corretta non compare nessun asse della terna né componente versore
B10 X5 Y10 Z9 I1 K0 ;non corretta: manca versore J
.....
Disattivazione
G141 viene disattivata programmando G140, funzione senza alcun parametro
G141 I2 ;attivazione
....
G140 ;disattivazione
D. ELECTRON 93
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
- G141 non è riprogrammabile se prima non viene disattivata con G140, altrimenti si verifica allarme
CN7B14 G141 + G43,G44,G41,G42,G2,G3
- Se si programma G141 con le funzioni G2, G3, G41, G42 attive viene allarme CN7B14 G141 +
G43,G44,G41,G42,G2,G3
- Se G141 viene programmata senza nessuno dei parametri I, J e K si ha allarme CN2C14
PARAMETRI INCOMPATIBILI
- Se si programma G141 con i parametri I e K deve necessariamente essere K=0 o K=I, altrimenti
si verifica allarme CN2C14 PARAMETRI INCOMPATIBILI
- Se si programma G141KA1 con J e K deve necessariamente essere K=0 o K=J, altrimenti si
verifica allarme CN2C14 PARAMETRI INCOMPATIBILI
- Per programmare G141 i tre assi della terna prescelta devono necessariamente esistere ed
essere assi lineari, altrimenti si verifica allarme CN5414 TARATURE MACCHINA INCONGRUENTI
- Se il terzo asse della terna prescelta non coincide con l'asse lungo cui è disposto l'utensile si
verifica allarme CN7C14 G141: ASSE UTENSILE NON VALIDO
- I movimenti programmati con G141 attiva se hanno programmata almeno una quota di un asse
della terna devono avere programmate tutte e tre le componenti del versore normale, altrimenti si
verifica allarme CN2C14 PARAMETRI INCOMPATIBILI
- G141 può essere programmata con KA che può essere solo o 0 (fresa sferica) o 1 (fresa torica),
altrimenti si verifica allarme CN2C14 PARAMETRI INCOMPATIBILI
- Se si programma G141 KA0 il parametro J non deve essere programmato o se viene
programmato deve essere 0, altrimenti si verifica allarme CN2C14 PARAMETRI INCOMPATIBILI
- Nella riga di attivazione di G141 se la terna specificata non è di seguito a G141 viene allarme
CN1D14 ERRORE PROGRAMMA
94 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
K seguito dal valore dello spostamento con segno, in mm o in pollici, se vogliamo che tale
spostamento avvenga lungo l'asse utensile. L'utensile, con G142 attiva dovrà sempre essere associato
ad uno tra gli assi X, Y o Z, (G43/G44) ma la sua direzione può essere ruotata in funzione della
rotazione della testa mandrino a cui è collegato: scegliendo K il movimento avverrà lungo la direzione
dell'asse utensile ruotato dagli assi rotativi testa e quindi in una direzione nello spazio che potrà
coinvolgere, in genere, il moto di tutti e tre gli assi X, Y e Z.
X seguito dal valore dello spostamento con segno, in mm o in pollici, se vogliamo che lo
spostamento sia eseguito lungo l'asse fisico numero logico 0.
Y seguito dal valore dello spostamento con segno, in mm o in pollici, se vogliamo che lo
spostamento sia eseguito lungo l'asse fisico numero logico 1.
Z seguito dal valore dello spostamento con segno, in mm o in pollici, se vogliamo che lo
spostamento sia eseguito lungo l'asse fisico numero logico 2.
K, X, Y e Z sono mutuamente esclusivi, uno solo tra KXYZ può essere programmato.
F velocità in mm/min. o pollici/min. alla quale compiere lo spostamento impostato.
Disattivazione
La funzione G143 disattiva la G142. Questa funzione G non ha parametri.
Note
- Se G142 viene programmata la prima volta, in un part-program, senza alcun parametro, saranno
presi come entità dello scostamento e della feed a cui eseguire tale spostamento i valori specificati
nelle impostazioni macchina (tarature). Riferirsi alle informazioni fornite dal costruttore della macchina.
- Se G142 viene riprogrammata senza alcun parametro nel part-program dopo una G143, verrà
riattivata con i precedenti parametri di attivazione.
- Una volta attivata, la G142 sarà efficace sia durante i movimenti in lavoro che durante quelli in
rapido.
- Durante il movimento di G142 la gestione dei finecorsa è diversa a seconda che sia stata
programmata G142K… oppure G142 lungo uno degli assi fisici X, Y o Z:
se è stata programmata G142X… o G142Y... o G142Z… la gestione dei finecorsa è quella che si
ha nei movimenti di JOG: se il movimento programmato con G142 porta l'asse oltre il finecorsa il
controllo esegue il movimento fino al finecorsa senza completarlo e senza dare allarme.
se è stata programmata G142K… il movimento viene eseguito attivando la G117 (RTCP) e quindi è
attiva la gestione dei finecorsa in tempo reale. Se il movimento programmato porta uno o più degli assi
coinvolti oltre il finecorsa tale movimento viene eseguito fino al raggiungimento del primo finecorsa
incontrato, alla fine si può avere anche un allarme di tipo CNEx13.
- Con G142 attiva quando si incontra una G53 si avrà una disattivazione temporanea di G142 che
verrà riattivata dalla successiva G54.
- Una volta eseguito lo spostamento programmato da G142 il CN darà l’allarme CN7E14 G142
ESEGUITA che potrà essere tolto solo con un RESET o con lo spegnimento della macchina.
- Nel caso di lock di processo (vedi G128, G129, G130) la G142 sul processo master forza una
uguale G142 anche sui processi slave collegati, nella sezione di programma in cui il lock è attivo.
Quando il lock non è attivo la G142 sul processo master funziona normalmente senza forzare la G142
sugli altri processi.
- Sempre nel caso di lock di processo, se la G142 è programmata nel part-program del processo
slave, questa viene temporaneamente disattivata quando il lock è attivo, ma funziona regolarmente
quando il lock non è attivo.
- Se NON sono presenti allarmi di tipo CN (escluso CN0013, CN0113, CNEx13, CNFx13) oppure
allarmi di tipo MU, quando si scatena la G142 il movimento viene comunque eseguito.
- Se al momento del movimento di G142 uno degli assi coinvolti non è vivo questo viene forzato
vivo ed alla fine del movimento è rimesso non vivo.
D. ELECTRON 95
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
- Se nel momento in cui arriva dal PLC il segnale per scatenare la procedura di G142 e questa è
momentaneamente sospesa da G53 il CN ferma comunque gli assi ma non esegue il movimento
programmato con G142. In questa condizione viene comunque dato l’allarme CN7E14 G142
ESEGUITA.
Restrizioni ed allarmi
- Se si programma G142 mentre l’utensile è associato ad un asse che non sia X, Y o Z, il controllo
dà allarme CN7F14 G142: ASSE UTENSILE NON VALIDO.
- Se con G142 attiva si associa l’utensile (tramite G43/G44) ad un asse che non sia X, Y o Z, il
controllo dà allarme CN7F14 G142: ASSE UTENSILE NON VALIDO.
- Per poter programmare G142K.. è necessario che nelle impostazioni di macchina venga definita
una "Gestione di G117 (RTCP testa)" come generalizzata, altrimenti il controllo dà allarme CN5414
TARATURE MACCHINA INCONGRUENTI. Consultare il costruttore della macchina utensile.
- Sulla riga di programmazione di G142 non devono essere programmati altri parametri al di fuori di
X, Y, Z, K ed F, né altre G, altrimenti il controllo dà allarme CN2C14 PARAMETRI INCOMPATIBILI.
- Nella riga di G142 può essere programmato uno solo tra X, Y, Z e K, altrimenti il controllo dà
allarme CN2C14 PARAMETRI INCOMPATIBILI.
- Il valore dello spostamento programmato con X, Y, Z o K può variare da –1000mm a +1000mm
(se macchina in pollici da –39.37 pollici a +39.37 pollici).
96 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Per quanto riguarda il movimento effettuato con i tasti di JOG dedicati, questo sarà alla velocità di 2
mm/min se il selettore di movimento è sul micrometrico, mentre sarà alla feed di lavoro programmata e
corretta con l'override (se però l'override è maggiore del 100% ci si limita al 100%) se il selettore di
movimento è su lavoro o su rapido.
Programmando sulla riga di G144 qualcosa che non sia il nome di un asse continuo si avrà allarme
CN1D14 ERRORE PROGRAMMA.
Programmando G144 senza nessun asse continuo si avrà allarme CN1D14 ERRORE
PROGRAMMA.
La G144 sospende la prestazione "OFFSETJOG" e la ripristina quando si riparte con la pressione
del tasto “start” (cioè G144 si appropria dei tasti dedicati di JOG anche se c'è la prestazione
OFFSETJOG attiva).
D. ELECTRON 97
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
G147
La G147 permette di definire il raggio degli assi master di feed rotativi per poter trasformare il
movimento dell'asse rotativo in un equivalente movimento lineare da poter usare per il calcolo della
feed sul percorso quando tale asse verrà usato come asse master di feed (la trasformazione viene
fatta moltiplicando lo spostamento espresso in radianti per il raggio associato all’asse).
Sintassi attivazione:
G147 Asse1 Raggio1, [Asse2 Raggio2], .....[AsseN RaggioN]
dove:
98 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Questa istruzione disattiva i raggi degli assi rotativi e ripristina la situazione di default (1 grado = 1
mm).
Al reset viene messo come valore di default per i raggi degli assi rotativi di G147 il valore 57.29578
mm, in modo da avere l'equivalenza 1 grado = 1 mm. Questo implica che se si programma un asse
rotativo come master di feed senza prima avergli associato un raggio, questo avrà associato il raggio
di default sopra descritto.
Esempio:
supponiamo di avere una macchina con assi X, Y, Z, A, B, C dove X, Y e Z sono assi lineari e A, B
e C sono assi rotativi. Programmando la seguente riga:
G147 A50 C100
dove:
DA = spostamento di A in gradi
DC = spostamento di C in gradi
57.29578 = numero di gradi di un radiante
DLA = spostamento lineare equivalente dell’asse A in mm
DLC = spostamento lineare equivalente dell’asse C in mm
G147 KA1
La G147 KA1, come G147, permette di definire il raggio per uno o più assi master di feed rotativi,
per poter trasformare il movimento dell’asse rotativo in un equivalente movimento lineare da usare per
il calcolo della feed sul percorso quando:
come è con G147:
- G148 attiva
- l’asse rotativo è un master di feed
oppure quando:
- G148 attiva
D. ELECTRON 99
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
- l’asse rotativo non è un asse master di feed, e nel movimento non è coinvolto nessun asse
master di feed
Sintassi attivazione:
G147 KA1 Asse1 Raggio1, [Asse2 Raggio2], .....[AsseN RaggioN]
dove:
Assei = nome asse
Raggioi = misura del raggio associato all’asse espresso in mm (o in pollici se la macchina è in
pollici)
Sintassi di disattivazione (come la G147):
G147 KA0
Esempi di programmazione con assi lineari X, Y, Z e asse rotativo A:
caso1:
G148 XA assi master di feed XA
G147KA1 A114.59 raggio che trasforma 1 grado in 2 mm
G1F5000X100A100 per il calcolo della feed il movimento di A vale 200mm e non
100gradi
caso2:
G148 XY assi master di feed XY
G147KA1 A114.59 raggio che trasforma 1 grado in 2 mm
G1F500X100Y150A100 l’asse A non entra nel calcolo della feed perché non è asse master
di feed e nel movimento ci sono assi master di feed
G1F50000Z100A50 per il calcolo della feed il movimento di A vale 100mm e non
50gradi perché G148 attiva e nel blocco non ci sono assi master di
feed
G148
La G148 definisce gli assi master della feed e riferisce la feed programmata solo a questi assi
(quelli nella riga di attivazione di G148).
La G148 è una funzione con arresto.
Sintassi attivazione:
G148 Asse1, [Asse2], ........[AsseN]
dove:
Assei = nomi assi continui
La programmazione di G148 deve sottostare alle seguenti regole:
- sulla riga di G148 deve essere programmato almeno un asse continuo, altrimenti si verifica
allarme CN2C14 - PARAMETRI INCOMPATIBILI
- è possibile programmare uno o più assi continui rotativi sulla riga di G148 senza aver
preventivamente specificato il loro raggio con la funzione G147. In questo caso, viene considerato il
raggio di default di 57.29578 mm (equivalenza 1 grado = 1 mm)
- si può programmare G148 solo se non è ancora attiva, altrimenti si verifica allarme CN2C14 -
PARAMETRI INCOMPATIBILI
- se con G148 attiva viene programmato un movimento dove nessun asse master di feed è
presente, la feed programmata sarà riferita a tutti gli assi del movimento, come se G148 non fosse
attiva
100 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
- se con G148 attiva si programma G131 o viceversa si avrà allarme CN8514 - G131+G148
Sintassi di disattivazione:
G148 KA0
Questo comando resetta tutti gli assi master di feed (nessun asse dopo questa istruzione è master
di feed) e riferisce nuovamente la feed programmata a tutti gli assi che compaiono nei movimenti.
Nel caso di G148 attiva la visualizzazione della feed reale viene riferita solo agli assi master di feed.
Se nessun asse master di feed si muove allora la feed reale viene visualizzata nel modo classico (cioè
riferita a tutti quanti gli assi del movimento).
Esempio:
supponiamo di avere una macchina con assi X, Y, Z, A, B, C dove X, Y e Z sono assi lineari e A, B
e C sono assi rotativi. Sia Ra=57.29578=raggio associato precedentemente ad A tramite la funzione
G147, programmando:
G0 X0 Y0 Z0 A0
G148 X A
F5000
G1 X50 A50 Y50
Il tratto G1 X50 A50 Y50 viene fatto a FEED=5000 sulla traiettoria definita da X ed A ma a FEED >
5000 sulla traiettoria definita da X Y ed A, e precisamente a FEED=6124.
Vediamo ora come tale valore della FEED viene calcolato.
Movimento lineare equivalente al movimento rotativo dell’asse A (raggio=57.29578):
DLA=DA * 57.29578 /57.29578 = DA = 50
DX = 50
DY = 50
La lunghezza della traiettoria in X ed A è:
DLXA = sqrt(50*50+50*50) = 50*sqrt(2) = 70.7107 mm
La lunghezza della traiettoria totale in X, Y ed A è:
DL = sqrt(DX*DX+DY*DY+DA*DA) = SQRT(50*50+50*50+50*50)= 86.6025 mm
Dunque se vogliamo che DLXA venga percorso a FEED 5000, la FEED sul percorso riferito a tutti e
tre gli assi programmati sarà:
FEED = 5000 * 86.6025 / 70.7107 = 6124
Nella tabella seguente sono riassunte alcune combinazioni di funzionamento delle funzioni G147,
G147KA1 e G148 per il controllo della velocità in movimento:
G148 G147
Caso Assi programmati Effetto
impostate
D. ELECTRON 101
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
102 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
ATTENZIONE: con la prestazione asse cilindrico attiva non è possibile fare uso dell'attivazione
automatica degli assi A e Y quando viene programmato un loro movimento e sono nello stato non vivo.
Come già detto, con entrambi gli assi A e Y non vivi, la programmazione di un movimento di uno
qualsiasi dei due assi provoca un allarme CN1D14.
D. ELECTRON 103
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
La visualizzazione della quota dell'asse cilindrico Y è sempre congruente con il raggio impostato,
anche se la programmazione dell'asse Y non è al momento attiva.
Regole e vincoli:
- Il minimo raggio programmabile con G149 è 1 mm
- Il massimo raggio programmabile con G149 è 5729.775 mm
- Se viene programmato un raggio al di fuori dei limiti viene un errore CN2C14 - PARAMETRI
INCOMPATIBILI.
- se l'asse vero A è un asse ciclico, ad ogni reset, all'accensione e alla programmazione della G149
si riduce la quota dell'asse cilindrico Y entro un giro della quota dell'asse vero A.
Vediamo di chiarire con un esempio:
asse vero A con ciclicità = 360 gradi
asse cilindrico Y
raggio del cilindro HR=57.295775 millimetri (questa misura del raggio fa si che lo spostamento di 1
grado dell'asse rotativo vero A comporti lo spostamento lineare di 1 millimetro dell'asse cilindrico Y
(perché DY mm = DA gradi*HR/57.295775)
Programma:
G149 HR57.295775
G28Y (attiva programmazione asse Y)
G0 Y0 (riporta Y a 0 mm)
G0 Y790 (a video Y=790, A=70)
Nota: in questo movimento l'asse A compie 2 giri più 70 gradi, (infatti 790=360*2+70).
A fine programma viene premuto reset.
Dopo la pressione del reset, vengono recuperati i giri interi fatti dall'asse Y, la quota di Y viene
riportata entro un giro dell'asse A ovvero viene portata al valore 70.
104 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Nella figura, il punto A rappresenta il centro utensile, ovvero il centro del settore raggiato. Il punto B
rappresenta la punta teorica dell’utensile.
La punta teorica è il punto di azzeramento dell’utensile, le quote assi visualizzate a video sono
D. ELECTRON 105
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
106 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
- può essere programmata più volte in un part-program, per consentire una ricerca veloce da parte
del supervisore
La G154 serve a dare certezza di funzionamento alla ricerca blocco per lunghezza, dato che la
lunghezza del primo movimento eseguito in automatico dipende dalla posizione fisica iniziale degli
assi, che è imprevedibile.
Di norma la G154 dovrebbe essere programmata subito dopo il raggiungimento di un punto certo
(altrimenti la successiva ricerca blocco può trovare un punto indeterminato, che dipende dalla
posizione iniziale della macchina). Per esempio per una macchina a due assi XY:
INIZIO PROGRAMMA%
G0 X100 Y90
G154
Anche dopo la G154, non sono conteggiati i movimenti:
- in G33/G84
- durante la G36H (halt)
- in MDI
- richiesti da sottoprogrammi di sistema (di conseguenza non si può ricercare all’interno di un
sottoprogramma di sistema, che normalmente è da considerare un blocco unico).
Nell’utilizzo della lunghezza si deve comunque tenere conto di alcuni fatti importanti:
- il trasferimento in memoria permanente della lunghezza è sempre in ritardo di qualche
millisecondo e quindi, soprattutto per elevate velocità di lavoro, la lunghezza memorizzata alla
ripresa della lavorazione può risultare inferiore a quella effettiva
- se è in funzione la G113X (che arrotonda gli spigoli) e la G154 è programmata su uno spigolo,
la lunghezza è misurata a partire dal punto più vicino allo spigolo, quindi si possono avere
scostamenti della lunghezza misurata in esecuzione rispetto a quella calcolata in ricerca blocco
se (per esempio a causa di un diverso punto di partenza) lo spigolo risulta diverso nei due casi.
La differenza di lunghezza tra ricerca blocco ed esecuzione è normalmente non superiore a 2
volte RA (indice di precisione della G113X)
D. ELECTRON 107
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Un file di dimensione NxM bytes, detto file raster, contiene in ciascun byte la percentuale di tratto
(un tratto è dato dalla distanza tra punto e punto su una riga orizzontale), centrato su un punto dell’area
raster, che deve essere incisa dal laser.
La corrispondenza tra i bytes del file ed i punti dell’area raster è la seguente: il primo bytes
corrisponde al punto P1 (basso sinistra), il secondo al punto successivo sulla stessa riga, e così via.
La dimensione del file raster deve essere di NxM bytes.
La G155 permette di eseguire una incisione, tramite laser, come sopra descritto.
La sintassi di programmazione è suddivisa in più righe ISO (intendiamo con X il primo asse,
l’orizzontale, dell’area raster, con Y il secondo asse, il verticale, dell’area raster, con P1 il punto in
basso a sinistra, con P2 quello in basso a destra, con P3 quello in alto a sinitra, con P4 quello in alto a
destra):
G155 HX1 "nome file raster completo di path"
G155 HX2 HR<X di P1> HT<Y di P1>
G155 HX3 HR(X di P2> HT<Y di P2>
G155 HX4 HR<(X di P3> HT<Y di P3>
G155 HX5 HR<X di P4> HT<Y di P4>
G155 HX6 HR<Numero Righe> HT<Numero Colonne)
La sintassi di disattivazione è
G155 HX0
La sequenza di programmazione delle righe ISO di G155 deve seguire l’ordine degli HX: G155
HX1, G155 HX2, etc..., altrimenti viene errore CN2C14 PARAMETRI INCOMPATIBILI.
G155 è incompatibile con la ricerca blocco e si verifica errore CN8A14 G155 + RICERCA BLOCCO
se si trova G155 programmata in ricerca blocco.
Le coordinate dei 4 punti P1÷P4 che delimitano l’area raster sono riferite all’origine attiva al
momento della loro programmazione.
Le varie righe ISO di programmazione G155 possono essere inframezzate da altre righe ISO che
non contengono G155.
Il file raster deve avere la dimensione corretta, cioè Nrighe x Mcolonne bytes, altrimenti viene errore
CN2C14 PARAMETRI INCOMPATIBILI.
Se il file raster specificato non esiste si verifica errore CN2C14 PARAMETRI INCOMPATIBILI.
Nessun controllo viene fatto sulla congruenza delle coordinate di P1, P2, P3 e P4 per la definizione
dell’area raster da incidere, che è quindi compito del programmatore dare in maniera coerente, pena
una incisione non corretta.
Dopo aver programmato G155 HX6 il CN è predisposto per eseguire i movimenti durante i quali
saranno dati gli impulsi al laser secondo quanto specificato nel file raster.
La modalità di incisione è quella di inviare impulsi al laser quando si esegue un movimento lungo
una riga orizzontale dell’area raster.
Se durante i movimenti di incisione il CN si trova senza più bytes per creare gli impulsi laser si
verifica allarme CN2B13 (ciò può avvenire se la TSR Z32DG (DOS) o Z32WINDG (Windows) non
legge abbastanza velocemente il file raster, ma è una situazione che non dovrebbe mai verificarsi).
La modalità di incisione può essere monodirezionale o bidirezionale:
- monodirezionale significa che si incide solo da sinistra a destra, cioè i movimenti con le incisioni
su ciascuna riga dell’area raster partono dalla sinistra della riga e vanno verso destra. Una volta che
abbiamo eseguito tutte le incisioni sulla riga percorsa si passa ad incidere sulla successiva riga ma
riposizionandosi all’inizio (sinistra) di questa riga.
108 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 109
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
N.B. Le coordinate dei 4 punti P1÷P4 che delimitano l’area raster sono riferite all’origine attiva al
momento della loro programmazione nelle righe di G155 e quindi non si dovrà cambiare origine dopo
averle programmate fino a che non verrà disattivata G155.
ATTENZIONE: G155 funziona con G117 e G118N, ma non funziona con G116 e G118NHR1
anche se non viene dato nessun allarme nel caso in cui si cerchi di attivare G155 con G118NHR1 o
con G116.
Esempio: supponiamo che la macro di gestione della prestazione raster sia nel file 201 di CMOS,
allora il programma chiamante potrebbe essere:
ZFP[1]400 (extracorsa)
ZFP[2]2 (sollevamento in mm per passate monodirezionali)
ZFP[3]1 (flag 0=bidir, 1=monodir)
ZFP[4]0 (X P1)
ZFP[5]0 (Y P1)
ZFP[6]25 (X P2)
ZFP[7]0 (Y P2)
ZFP[8]0 (X P3)
ZFP[9]20 (Y P3)
ZFP[10]25 (X P4)
ZFP[11]20 (Y P4)
ZFP[12]200 (numero righe: P1-P3 e P2-P4)
ZFP[13]250 (numero colonne: P1-P2 e P3-P4)
ZFP[14]10 (Z lavoro)
G155 HX1 C:\Z32\PPG\FILE.RST (file raster)
F50000 (feed di lavoro)
!GOP201! (salta a macro di gestione G155)
G155 HX0 (disattiva G155)
M2
110 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
G159 (che deve essere seguita da un nome asse) forza non ciclico l’asse. Esempio:
G158V forza l’asse V come ciclico
Altre informazioni:
- G158 e G159 sono modali con arresto
- al reset sono ripristinate le condizioni di taratura
- nella stessa riga dove sono contenute G158 o G159 non possono essere programmati HX o HY,
altrimenti viene allarme CN2C14 - PARAMETRI INCOMPATIBILI.
D. ELECTRON 111
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Non è consentita la programmazione di KA con valore diverso da 0, altrimenti viene errore CN2C14
PARAMETRI INCOMPATIBILI
Nota: il Reset e l'inizio esecuzione programma ripristinano le condizioni di taratura, come G160KA0.
G160 HT.. X.. Y.. Z.. (limita le velocità di rapido)
112 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Il parametro I2, programmato nella stessa riga della G163, richiede una speed mandrino due volte
più alta della velocità di entrata.
I (opzionale) è il moltiplicatore da applicare alla speed mandrino durante l'uscita.
Il campo ammissibile per I va da 0.5 a 4. Valori esterni a questo intervallo non sono accettati e la
velocità di uscita è fatta alla stessa velocità dell'entrata.
La G163 può eseguire anche maschiature sincronizzate profonde con rottura truciolo. Il parametro
J programmato nella stessa riga della G163 attiva la funzionalità di maschiatura sincronizzata
profonda.
La sintassi generalizzata di programmazione per G163 quindi è:
G163 XYZ K [I] J [HX]
dove:
- XYZ = punto finale di maschiatura
- K = passo del filetto
- I [opzionale] = moltiplicatore della velocità di uscita (default 1)
- J = lunghezza del singolo tratto di maschiatura in avanti (maschiatura profonda)
- HX [opzionale] = moltiplicatore di J per ottenere la lunghezza del ritorno indietro (default 1,5)
Nella stessa riga dove è programmata G163 non sono ammessi i parametri HY HR HT KA: se c'è
uno di questi parametri viene allarme CN2C14 parametri incompatibili.
Esempio:
G0 Z50 S1000 M3
G163 Z0 K1.5 I1.3 J10 HX2
richiede una maschiatura profonda (50 mm tra Z50 e Z0) con filetto passo 1,5 composta di:
- avanti per 10 mm a S1000
- ritorno indietro di 20 mm (perché HX2) a S1300 (perché I=1,3)
- ripetizione fino al completamento
Note supplementari:
- se la lunghezza della filettatura non è almeno K+0.005 (un giro + 5 micron) viene allarme CN2C14
PARAMETRI INCOMPATIBILI
- il pulsante di STOP o FEED-HOLD arrestano il mandrino in G163.
- la maschiatura in avanti è fatta per tratti costanti. Se J non è sottomultiplo esatto della profondità
di maschiatura il J viene automaticamente cambiato, in più di max 20% e poi in meno fino a quanto
serve, per arrivare a un sottomultiplo esatto della profondità richiesta.
- se il ritorno indietro comporta una quota di uscita oltre il punto iniziale (Z50 nell'esempio) l'uscita è
comunque limitata alla quota iniziale.
- se J<(2*K) (incluso J<0) viene errore CN2C14 PARAMETRI INCOMPATIBILI.
Speciale comportamento in caso di pressione del pulsante STOP
Con opportune impostazioni macchina è possibile attivare un comportamento speciale in caso di
pressione del pulsante di STOP durante una maschiatura, in particolare:
- non acquisire provvisoriamente lo STOP
- invertire immediatamente la rotazione mandrino (o mantenerlo in rotazione inversa se già
presente) ed estrarre l'utensile dal foro fino a inizio maschiatura prima di arrestare l'esecuzione.
Per dettagli riferirsi alle specifiche date dal costruttore della macchina utensile.
D. ELECTRON 113
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
114 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
2.1.119 G200 HX6 / G200 HX7 - modifica velocità di ricerca lenta in G61
La velocità di ricerca lenta in G61 è definita nelle tarature macchina.
Con questa funzione è possibile modificare da part-program la velocità di ricerca lenta. Esempio:
G200 HX6 HY500
Dopo questa istruzione la velocità di ricerca lenta di G61 diventa il 50% di quella in taratura.
La velocità di ricerca definita in taratura viene moltiplicata per HY/1000.
HX deve essere programmato nella stessa riga di G200 mentre HY può essere definito in righe
precedenti. Esempio:
HY500
G200 HX6
Il campo valido per HY è da 0 a 1500. Quindi con G200 HX6 la velocità di ricerca lenta di taratura
può essere diminuita fino a zero (ma attenzione, se si mette zero il movimento di ricerca non viene
effettuato) oppure può essere aumentata fino al 50%.
Valori esterni a questo intervallo sono limitati agli estremi, quindi valori di HY negativi agiscono
come 0, mentre valori maggiori di 1500 agiscono come 1500.
La forzatura della velocità di ricerca lenta permane fino a fine part-program, mentre viene eliminata
da un reset o inizio programma.
La disattivazione della forzatura e quindi il ripristino della taratura si ha con:
G200 HX7
oppure con:
G200 HX6 HY1000
2.1.120 G200 HX8 / G200 HX9 - maschiatura rigida senza inversione mandrino.
La funzione di maschiatura rigida G63 prevede che l’asse sia sempre rigidamente agganciato al
mandrino, che quindi deve invertire a fine maschiatura per il ritorno alla quota di partenza.
D. ELECTRON 115
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Da qualche tempo sono disponibili attrezzature che consentono una maschiatura “semirigida” con
inversione automatica del senso di rotazione, che quindi eliminano la necessità di inversione del
mandrino.
Per queste attrezzature il ciclo di maschiatura deve essere:
a) rotazione del mandrino
b) partenza dell’asse di maschiatura e aggancio alla rotazione mandrino
c) avanzamento di maschiatura
d) inversione dell’asse senza inversione del mandrino, con momentanea perdita del sincronismo e
nuovo aggancio in direzione inversa
e) ritorno al punto di partenza
È possibile forzare l’esecuzione di questo ciclo programmando G200 HX8 prima della G63, e
tornare al ciclo di maschiatura standard con G200 HX9. Esempio:
T57M6 (MASCHIATORE CON INVERSIONE PASSO 2)
G200 HX8
...
G63 Z-50 K2
...
G63 Z-50 K2
...
T58M6 (MASCHIATORE RIGIDO PASSO 1)
G200 HX9
...
G63 Z-80 K1
...
Al RESET e a inizio programma è attiva la modalità standard (maschiatura rigida con inversione
mandrino, G200 HX9).
La G200 HX8 è modale: rimane attiva fino al reset e può essere disattivata con G200 HX9.
Con G200 HX8 attiva il tempo di inversione dell’asse è il doppio del tempo di attacco morbido
definito in taratura per la G63, perché durante l’inversione si ha un gradino di velocità da positivo a
negativo che è quindi il doppio rispetto al gradino di velocità iniziale che va da zero alla velocità
positiva.
116 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
I 30 minuti sono complessivi di lavoro; non sono influenzati da RESET, cambio programma ecc…
Una volta scaduti i 30 minuti la G113XKA1 non può più essere usata.
I 30 minuti di prova si ripristinano con un ciclo di spegnimento/accensione della macchina.
2.1.122 G200 HX11 / G200 HX12 - modalità sosta G4 precisa sotto G113X
Funzionalità sviluppata per le macchine a taglio laser, ma utilizzabile anche per altri scopi.
Il tempo per la sosta G4 è programmato col parametro TT.
Se è attiva la G113X il tempo di sosta programmato viene allungato di un tempo totale di circa 140
millisecondi, dovuto ai tempi interni di calcolo, inoltre si ha un'incertezza del tempo di sosta che può
arrivare a 24 millisecondi dovuta alla sincronizzazione degli stati interni.
Ciò significa che il tempo di sosta minimo ottenibile programmando TT0 è di circa 140 millisecondi.
Poiché questo tempo può essere inutilizzabile per soste di tempi minimi è stata introdotta una
modalità "precisa" della sosta, attivabile da part-program con G200 HX11 e disattivabile con G200
HX12.
G200 HX11 / G200 HX12 sono modali, senza arresto.
Per compatibilità con i part-program esistenti al reset ed a inizio programma è attiva la modalità
standard (come G200 HX12).
Con modalità sosta precisa si elimina l'incertezza (ossia, i tempi di sosta sono esattamente ripetitivi)
e si possono ottenere tempi di sosta molto bassi con discretizzazione di 2 millisecondi.
Esempio di sezione di part-program:
...
G200 HX11
...
G4 TT0,002 (sosta precisa di circa 2 millisecondi)
...
G200 HX12
...
G4 TT0,002 (sosta di circa 142 millisecondi con incertezza di 24
millisecondi)
NOTA: la G200HX11 modalità sosta G4 precisa con G113X è riservata a casi speciali per i quali
può essere alternativamente usata la G136 (micrososta). Con la modalità sosta precisa la G4 diventa
(come la G136) una funzione senza arresto. Questo può portare ad una asincronia fra la riga
visualizzata e quella in corso di esecuzione.
2.1.123 G200 HX13 / G200 HX14 - per compatibilità all'indietro con Z16
Attenzione: si tratta di funzioni da usare solo in collaborazione col costruttore in casi speciali di
necessità di compatibilità all’indietro con Z16.
G200 HX13 attiva il "modo Z16 per G98", G200 HX14 lo disattiva. Sia G200HX13 che G200HX14
sono con arresto.
Al reset e inizio programma la G200HX13 è automaticamente annullata.
Lo scopo della funzione è una compatibilità all'indietro con Z16 in G98 (modo obsoleto di controllo
dei movimenti).
Per maggiori dettagli riferirsi alle specifiche del costruttore.
D. ELECTRON 117
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
2.1.124 G200 HX15 / G200 HX16 - elimina l'aumento apparente di RA per cerchi di
piccolo diametro
Prestazione particolarmente utile per macchine a taglio laser.
Il parametro RA programmato nella riga con G114 è utilizzato, con G113X attiva, per ammorbidire il
profilo programmato. L'effetto di RA è:
- sugli spigoli (dove è più utile l'ammorbidimento) la deviazione dalla traiettoria può essere diverse
volte RA
- sui cerchi di diametro grande (>100 volte RA) la deviazione dalla traiettoria è circa pari ad RA
- sui cerchi di diametro piccolo (<100 volte RA) la deviazione dalla traiettoria è gradualmente
aumentata per ottenere che un eventuale spigolo arrotondato con un arco di cerchio di raggio
molto piccolo sia eseguito almeno con la stessa morbidezza di uno spigolo vero e proprio.
Questo graduale aumento apparente di RA può essere dannoso nelle macchine a taglio laser
quando siano ad eseguire cerchi (fori) con diametro molto piccolo, perché la riduzione di diametro può
diventare inaccettabile.
È quindi stata introdotta la funzione di predisposizione G200 HX15 (annullata da G200 HX16) che
elimina l'aumento apparente di RA sui tratti circolari di diametro piccolo.
La G200 HX15 è con arresto parziale, ossia non può essere programmata durante la correzione
raggio o con profilo aperto (viene errore profilo incompatibile) ma non provoca una sosta.
2.1.125 G200 HX17 / G200 HX18 - tolleranza sulla programmazione del cerchio
Un cerchio può essere programmato, a partire da un punto definito precedente, con centro e punto
finale.
Se la geometria programmata è perfetta, il punto precedente (dal quale inizia il cerchio) e il punto
finale sono alla stessa distanza (pari al raggio) dal centro del cerchio.
Se la geometria non è perfetta invece il raggio individuato dal punto precedente e quello individuato
dal punto finale sono diversi e si genera uno “scalino” di quote.
Al di sopra di una certa tolleranza (circa 0,06 mm) il CN non accetta il profilo e genera un allarme
CN4614 PUNTO PRECEDENTE NON SUL CERCHIO.
Esistono però alcune applicazioni in cui la precisione con cui il CAM fornisce i profili è scarsa e la
tolleranza standard (0,06 mm) può essere superata.
È possibile estendere la tolleranza di circa 4 volte (quindi sono ammessi errori fino a circa 0,25
mm) programmando:
G200 HX17
L'effetto della G200 HX17 è trasparente al RESET e a inizio programma (ossia una volta
programmata permane fino allo spegnimento).
Attenzione: la funzione G200 HX17 può essere definita come permanente all'accensione (questo
rende il suo effetto permanente già all'avvio della macchina). Per questa prestazione consultare il
costruttore della macchina utensile.
Il ripristino della tolleranza standard più bassa si ottiene programmando:
G200 HX18
Spetta al programmatore valutare se la maggiore tolleranza è compatibile con le caratteristiche
della macchina.
118 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 119
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
120 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
X
G150KA3 G150KA1
TAG TAG
TAG TAG
G150KA5 G150KA7
NOTA: la figura si riferisce ad un piano di lavoro in cui il primo asse è l'asse Z e il secondo asse è
l'asse X, ovvero ad un piano di lavoro G25ZX. I codici di orientamento sono infatti da intendersi riferiti
al piano di lavoro. Se il piano di lavoro fosse diverso dal piano ZX (ad esempio XZ), la figura superiore
andrebbe rifatta con l'asse orizzontale pari al primo asse del piano (X) e l'asse verticale pari al
secondo asse del piano (Z).
Altri orientamenti utensile non sono supportati dalla prestazione.
- deve essere definito il parametro triletterale di part program TAG (può essere inserito anche in
tabella utensile) che specifica l'angolo minimo di tallonamento utensile, in gradi. L'angolo TAG
rappresenta l'angolo tra la parte utensile soggetta al tallonamento e il primo asse del piano di lavoro. Il
parametro TAG viene azzerato al reset.
- deve essere definito il raggio utensile R per la correzione raggio del profilo (se non si desidera la
correzione raggio, si deve programmare R0).
Restrizioni e condizioni di allarme:
- questa prestazione è usabile solo su una macchina di tipo tornio
- programmando G410/G420 senza che sia attiva una tra G150KA1/KA3/KA5/KA7 si verifica errore
CN1D14.
- con G410/G420 si possono programmare solo i movimenti del primo e del secondo asse del
piano, altrimenti si verifica errore CN1D14.
Funzionamento:
Una volta attivata G410 (o G420), nell'esecuzione di un profilo in correzione raggio, il CN tiene
conto dell'angolo di tallonamento utensile ed elimina i tratti di profilo che non sono lavorabili.
Il funzionamento è del tutto simile a quello di un profilo in correzione raggio:
G410 attiva una G41 più il “Galleggiamento anti-tallonamento utensile”
G420 attiva una G42 più il “Galleggiamento anti-tallonamento utensile”
G40 definisce la fine del profilo in correzione raggio con il “Galleggiamento anti-tallonamento
utensile”
La funzione G0 definisce la fine del profilo.
D. ELECTRON 121
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
Note:
- Nel caso di G410/G420 (galleggiamento anti-tallonamento utensile) i blocchi geometrici passati
per la simulazione sono quelli che si hanno prima dell'eventuale elaborazione dovuta al galleggiamento
anti-tallonamento, cioè sono i blocchi geometrici originali.
- Il parametro triletterale TAG, che specifica l'angolo minimo di tallonamento utensile, può essere
sia programmato da part-program che preso da tabella utensile.
- Il parametro TAG, eventualmente contenuto nella descrizione utensile, è accessibile da riga
evoluta di part-program, sia in lettura :R, :C che in scrittura :W, :S.
Esempio di profilo eseguito con utensile a spigolo vivo (raggio utensile = 0):
G0Z0X210
TAG30 (TAG può essere inserito in tabella utensile e non programmato)
R0 (R può essere inserito in tabella utensile e non programmato)
G150KA1
G420
G1Z0X200 X
Z-20 G150KA1
X180
TAG
Z-40
X210
G3I-50J210Z-60X210
G3I-70J210Z-80X210 Z
Z-95
G40
In figura si può notare:
- il profilo originale
- il percorso della punta dell'utensile
- le zone d'ombra non lavorate
Esempio di profilo con raggio utensile diverso da zero:
G0Z0X210
TAG30 (TAG può essere inserito in tabella utensile e non programmato)
R5 (R può essere inserito in tabella utensile e non programmato)
G150KA1
G420
G1Z0X200
X
Z-20
X180 G150KA1
Z-40
TAG
X210
G3I-50J210Z-60X210
G3I-70J210Z-80X210
Z-95 Z
G40
122 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Nella figura precedente, si vede l'effetto combinato della correzione raggio e del controllo del
tallonamento utensile.
In figura si può notare:
- il profilo originale
- il percorso del centro del settore raggiato dell'utensile
- le zone d'ombra non lavorate
D. ELECTRON 123
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
sugli ZFP[ ] corrispondenti. Se programmati doppiamente (es. MHA.. e NA..) l’ultimo, quello più a
destra sulla riga, prevale.
E, I, J = 3 parametri monoletterali float che vengono copiati rispettivamente in ZFP[576]-ZFP[578].
Gli ZFP[ ] riservati per G800 sono 50: ZFP[550]-ZFP[599], ma per ora da ZFP[579] a ZFP[599]
restano inutilizzati.
KA0 = resetta tutti i parametri ZFP[550]-ZFP[599]
KA1 = la funzione G800 KA1 può essere programmata esclusivamente dentro una macro attivabile
con G881-G899 o con G901-G999. Dice di associare i valori dei parametri AA, AB, AC che verranno
eventualmente programmati, non ai tre assi della terna G25 attiva, ma agli assi programmati
nell'ordine sulla riga di G881-G899 o G901-G999 che ha richiamato la macro dove è programmata
G800 KA1
KA2 = la funzione G800 KA2 può essere programmata esclusivamente dentro una macro attivabile
con G881-G899. Dice di associare i valori dei parametri AA, AB, AC che verranno eventualmente
programmati, non ai tre assi della terna G25 attiva, ma agli assi programmati con l'ultima G881-G899
programmata con uno o più nomi assi sulla riga. L'ordine di associazione è quello con cui compaiono
gli assi nella riga di G881-G899: AA al primo asse, AB al secondo, AC al terzo.
K0 = disattiva ciclo fisso e resetta tutti i parametri ZFP[550]-ZFP[599]
F = è consentita la programmazione della feed, parametro F.
(…) = è possibile inserire dei commenti nella riga di programmazione.
Ci sono 6 possibili modalità di programmazione di G800:
G800 Kn [MHA.. MHD..]
aggiorna gli ZFP corrispondenti ai parametri programmati, legge da disco il ciclo Cn, lo carica nella
subtemp 65 e lo attiva
G800 KA0
azzera tutti i parametri riservati a G800: ZFP[550]-ZFP[599]
G800 [MHA.. MHB..]
aggiorna gli ZFP corrispondenti ai parametri programmati
G800K0
equivale a G27C0 + G800KA0, cioè disattiva il ciclo fisso e resetta i parametri associati a G800
(ZFP[550] – ZFP[599])
G800 KA1
Associa i valori dei parametri AA, AB, AC, agli assi programmati nell'ordine sulla riga di G881÷G899
o G901÷G999 che ha richiamato la macro dove è programmata G800 KA1
G800 KA2
Associa i valori dei parametri AA, AB, AC, agli assi programmati con l’ultima G881÷G899
programmata
Regole e vincoli:
- programmare nella riga di G800 altri parametri oltre a quelli sopra elencati o qualsiasi altra cosa
(G, M etc....) porta ad un errore CN1D14 ERRORE PROGRAMMA
- G800 deve essere programmata all’inizio della riga ISO, possono precederla solo il numero di riga
e/o dei caratteri blank
G800 K1 MHB100 programmazione corretta
G800 K1 MHB100 programmazione corretta
K1 G800 MHB100 errore programma (CN1D14)
124 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
- se viene programmato KA0, KA1, KA2 o K0 non deve essere programmato alcun altro parametro
nella riga, altrimenti viene allarme CN1D14 ERRORE PROGRAMMA:
G800 KA0 programmazione corretta
G800 KA0 MHA100 errore programma (CN1D14)
G800 K1 KA0 errore programma (CN1D14)
- il valore dei parametri E, I, J, NA-NZ e MHA-MHZ può essere espresso o con un numero o con
una espressione valida per Z32 (tutti i parametri E, I, J, NA-NZ e MHA-MHZ sono float Z32)
- il valore del parametro K (numero ciclo fisso da caricare da disco) può essere espresso solo con
un numero intero da 1 a 9999 e non con una espressione; se inoltre il valore specificato è un numero
non intero ne viene presa solo la parte intera senza dare errore
- G800 KA1 e G800 KA2 possono essere programmate solo dentro una macro/ciclo richiamato
tramite G881-G899 o G901-G999, altrimenti si verifica errore CN1D14
- il valore del parametro KA può essere 0, 1 o 2 ed è esprimibile solo con i numeri 0, 1, 2 e non con
una espressione
- all’interno di cicli/macro programmati con G800/G801/G802, G881/899 e G901/999 si possono
programmare G800 KA0, G801 KA0, G802 KA0, G881-G899 KA0, G901-G999 KA0 e in cicli/macro
programmati con G881/G889 e G901/G999 si possono programmare G800 KA1 e G800 KA2,
nessuna altra tipologia di programmazione di tali G è ammessa, altrimenti si verifica errore CN1D14
- se si tenta di caricare da disco un ciclo fisso inesistente viene errore CN8214 G800/1/2 ERRORE
FILE SU DISCO
- se si tenta di caricare da disco un ciclo fisso che non entra nella memoria disponibile per le
subtemp viene errore CN8314 G800/1/2 MEMORIA PIENA
- N.B. Durante l’esecuzione di un ciclo fisso richiamato tramite G800 non ne vengono visualizzate le
righe.
D. ELECTRON 125
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
126 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Una macro di lavorazione richiamata come ciclo fisso si disattiva con un G27C0 o G802K0.
Non è possibile programmare una G802 dentro l'altra
MMA-MMZ = 26 parametri float che vengono copiati in ZFP[650]-ZFP[675]
NA-NZ = 26 parametri float che vengono copiati in ZFP[650]-ZFP[675]
Questi due gruppi di parametri triletterali e biletterali sono perfettamente equivalenti, essi non
vengono allocati nella memoria di Z32 con il valore programmato ma semplicemente il loro valore
viene trasferito nei parametri ZFP[ ] corrispondenti, quelli non programmati non hanno alcun effetto
sugli ZFP[ ] corrispondenti. Se programmati doppiamente (es. MMA.. e NA..) l’ultimo, quello più a
destra sulla riga, prevale.
E, I, J = 3 parametri monoletterali float che vengono copiati in ZFP[676]-ZFP[678]
Gli ZFP[ ] riservati per G802 sono 50: ZFP[650]-ZFP[699], ma per ora da ZFP[679] a ZFP[699]
restano inutilizzati
KA0 = resetta tutti i parametri ZFP[650]-ZFP[699]
K0 = disattiva ciclo fisso e resetta tutti i parametri associati ZFP[650]-ZFP[699]
F = è consentita la programmazione della feed, parametro F.
(…) = è possibile inserire dei commenti nella riga di programmazione.
HX1 = dice di richiamare la macro di lavorazione come ciclo fisso: in questo caso la gestione della
macro diviene uguale a quella del ciclo fisso (viene caricata nella subtemp S65 e viene attivata con un
G27S65 implicito). Questa impostazione serve ad abbinare una macro ad un ciclo di posizionamento.
HX0 = dice di richiamare la macro come macro di lavorazione, equivale a non programmare il
parametro HX
NomiAssiContinui = con G802 si possono programmare uno o più assi continui come parametri
(cioè programmando Y126 non si provoca un movimento di Y ma si dà al parametro Y il valore 126). In
“NomiAssiContinui” si possono programmare anche i parametri AA, AB e AC che corrispondono
rispettivamente al primo, secondo e terzo asse della terna di lavoro attiva.
Ci sono 5 possibili modalità di programmazione di G802:
G802 Kn [MMA.. MMD.. Assi..]
aggiorna gli ZFP corrispondenti ai parametri programmati, legge da disco la macro Mn, la carica
nella subtemp 67 e la richiama mandandola in esecuzione. Programma uno o più assi continui come
parametri.
G802 Kn HX1 [MMA.. MMD.. Assi..]
aggiorna gli ZFP corrispondenti ai parametri programmati, legge da disco la macro Mn, la carica
nella subtemp 65 e la attiva come ciclo fisso. Programma uno o più assi continui come parametri.
Quando viene programmato G802 con HX1 viene messo ZFP[700] = 1; ZFP[700] viene rimesso = 0
solo quando viene programmata una G802 senza il parametro K oppure se viene programmata
G802KA0 o G802K0 (vedi sotto)
G802 KA0
azzera tutti i parametri riservati a G802: ZFP[650]-ZFP[699] ed il parametro ZFP[700] (G802 HX1)
G802K0
equivale a G27C0 + G802KA0, cioè disattiva il ciclo fisso e resetta i parametri associati a G802
(ZFP[650]–ZFP[699]) ed il parametro ZFP[700] (G802 HX1)
G802 [MMA.. MMB.. Assi..]
aggiorna gli ZFP corrispondenti ai parametri programmati ed azzera il parametro ZFP[700] (G802
HX1)
Regole e vincoli:
D. ELECTRON 127
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
- programmare nella riga di G802 altri parametri oltre a quelli sopra elencati o qualsiasi altra cosa
(G, M etc....) porta ad un errore CN1D14 ERRORE PROGRAMMA
- G802 deve essere programmata ad inizio della riga ISO, possono precederla solo il numero di riga
e/o dei caratteri blank
G802 K1 MMB100 programmazione corretta
G802 K1 HX1 MMB100 programmazione corretta
K1 G802 MMB100 errore programma (CN1D14)
- se viene programmato KA0 o K0 non deve essere programmato alcun altro parametro nella riga,
altrimenti viene allarme CN1D14 ERRORE PROGRAMMA:
G802 KA0 programmazione corretta
G802 KA0 MMA100 errore programma (CN1D14)
G802 K1 KA0 errore programma (CN1D14)
- HX1 può essere programmato solo se nella riga è programmato pure K, altrimenti viene allarme
CN1D14 ERRORE PROGRAMMA:
G802 K2 HX1 programmazione corretta
G802 HX1 errore programma (CN1D14)
- il valore dei parametri E, I, J, NA-NZ e MMA-MMZ può essere espresso o con un numero o con
una espressione valida per Z32 (tutti i parametri E, I, J, NA-NZ e MMA-MMZ sono float Z32)
- il valore degli assi continui programmati come parametri può essere espresso o con un numero o
con una espressione valida per Z32
- il valore del parametro K (numero macro da caricare da disco) può essere espresso solo con un
numero intero da 1 a 9999 e non con una espressione; se inoltre il valore specificato è un numero non
intero ne viene presa solo la parte intera senza dare errore
- il valore del parametro KA deve sempre essere 0 ed è esprimibile solo con il numero 0 e non con
una espressione
- il valore del parametro HX può essere 0 o 1 ed è esprimibile solo con i numeri 0 o 1 e non con una
espressione
- all’interno di cicli/macro programmati con G800/G801/G802, G881/899 e G901/999 si possono
programmare G800 KA0, G801 KA0, G802 KA0, G881-G899 KA0, G901-G999 KA0 e in cicli/macro
programmati con G881/G889 e G901/G999 si possono programmare G800 KA1 e G800 KA2,
nessuna altra tipologia di programmazione di tali G è ammessa, altrimenti si verifica errore CN1D14
- se si tenta di caricare da disco una macro inesistente viene errore CN8214 G800/1/2 ERRORE
FILE SU DISCO
- se si tenta di caricare da disco una macro che non entra nella memoria disponibile per le subtemp
viene errore CN8314 G800/1/2 MEMORIA PIENA
- N.B. Durante l’esecuzione di una macro di lavorazione richiamata tramite G802 non ne vengono
visualizzate le righe.
128 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
Con queste funzioni si ha la possibilità di richiamare da part-program Z32 macro e cicli fissi
memorizzati in files sul disco fisso del computer.
La cartella su disco dalla quale vengono richiamati questi files è C:\Z32\MACRO.
I files su disco hanno come nome la stessa G che li richiama, e sono così codificati:
G881, G882.... G899, sono i cicli fissi
G901, G902.… G999, sono le macro di lavorazione
Vediamo in dettaglio ciascuna di queste funzioni G.
D. ELECTRON 129
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
130 D. ELECTRON
CNC Z32 Programmazione Cap.2 - Funzioni preparatorie
D. ELECTRON 131
Cap.2 - Funzioni preparatorie CNC Z32 Programmazione
132 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
CAPITOLO 3
3.1.1 M 'ISO'
M0 - stop
Arresta l'esecuzione del programma, che può essere ripreso premendo il pulsante di start.
Richiede anche stop mandrino e stop refrigeranti.
M1 - stop condizionato
Come M0, solo che l'efficacia di M1 è condizionata da un apposito ingresso di logica
programmabile: consultare il costruttore della macchina utensile per ulteriori dettagli.
Richiede anche stop mandrino e stop refrigeranti.
D. ELECTRON 133
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
M2 - fine programma
Fa uscire il controllo dal modo 'ESECUZIONE' e chiude le operazioni in automatico.
M3 - mandrino orario
Richiede moto mandrino orario alla velocità S precedentemente programmata.
M4 - mandrino antiorario
Richiede moto mandrino antiorario alla velocità S precedentemente programmata.
M5 - stop mandrino
Richiede l'arresto del mandrino.
Arresta anche i refrigeranti.
M6 - cambio utensile
Chiede che l'utensile (programmato come T nello stesso blocco o in blocchi precedenti)
sia montato sul mandrino.
Arresta anche il mandrino e i refrigeranti.
NOTA: per sistemi di tipo tornio la programmazione di una M6 non arresta il mandrino ed i
refrigeranti.
Dopo la esecuzione (non in ricerca blocco) di una M6 il CN prende atto della descrizione
dell'utensile montato sul mandrino e quindi aggiorna i parametri in conseguenza.
L’effettivo aggiornamento dei parametri in descrizione utensile avviene all'uscita (G26) dal
sottoprogramma di cambio utensile (vedere anche la gestione utensili).
M7 - eroga refrigerante n.1
Chiede che venga erogato il refrigerante n.1 .
M8 - eroga refrigerante n.2
Chiede che venga erogato il refrigerante n.2 .
M9 - stop refrigeranti
Chiede che venga cessata l'erogazione dei refrigeranti.
M19 - orientamento mandrino
Chiede che venga orientato il mandrino.
Richiede anche stop mandrino e stop refrigeranti.
3.1.2 M 'speciali'
Il costruttore della macchina utensile può definire fino a 48 M come 'speciali'. Quando lo Z32
deve eseguire una M speciale, abbandona l'esecuzione della riga in corso e salta a un
sottoprogramma M speciale predisposto dal costruttore della macchina utensile.
Se la riga contiene altre funzioni che dovrebbero essere eseguite dopo la M speciale, queste
funzioni non vengono eseguite. Una volta terminato il sottoprogramma associato alla M speciale il
programma viene ripreso dall'inizio della riga successiva.
Non possono essere definite come M speciali alcune M già decodificate e in parte gestite dallo
Z32, ossia:
M3, M4
M7, M8, M9
M19, M5
M0, M1, M2.
Stop
contablocchi Durante l'esecuzione del sottoprogramma associato alle M speciali è bloccato il conteggio del
Video non numero progressivo (ossia in ricerca blocco la M speciale è un solo blocco che non può essere
aggiornato ripreso in un punto intermedio.
La visualizzazione della riga in corso di esecuzione è anche sospesa durante la M speciale,
salvo che lo Z32 sia posto nel modo 'assistenza' con l'apposita procedura (ved. manuale impiego -
M95).
134 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
3.3 FEED
All'indirizzo F è assegnato, secondo le norme ISO, il significato di valore della velocità di
avanzamento.
La velocità è espressa in interi visualizzati/minuto al reset con G94, con G95 viene espressa in
interi visualizzati/giro, e con G93 viene espressa come inverso del tempo in minuti necessario per
eseguire il movimento.
Per esempio, se si tratta di assi rettilinei con visualizzazione di millimetri (e decimali micron),
programmare F100 significa 100 millimetri/minuto.
D. ELECTRON 135
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
Se si tratta di assi rotativi con visualizzazione di gradi (e millesimi di grado), programmare F100
significa 100 gradi/minuto.
Come ogni parametro, F può essere programmata con 9 cifre significative prima o dopo la
virgola o punto decimale. La F però ha anche l’effetto di impostare la velocità di lavoro : poiché le
velocità comandate non devono in nessuna occasione superare il rapido, il CN limita la velocità
fisica degli assi in funzione dei rapidi degli assi interessati al moto e del tipo di movimento
impostato.
In sintesi:
− durante movimenti in G1, con override al 100% e considerata l'inclinazione del
movimento, nessun asse deve superare la velocità del suo rapido divisa per 1.2 (con
override al 120% la velocità non supera il rapido).
− durante i movimenti in G2/G3 la feed con override al 100% non deve superare il minore
dei rapidi degli assi del piano di lavoro
Vedere anche il capitolo “Funzioni preparatorie ‘G’” nei paragrafi dedicati a G1 e G2/G3.
Queste limitazioni hanno effetto solo sulla velocità fisica degli assi non sul parametro F che
conserva il valore programmato. Per esempio, si abbiano gli assi:
X con rapido a 15 m/min
Y con rapido a 15 m/min
Z con rapido a 10 m/min
Il programma seguente genera le velocità (sulla traiettoria e con override al 100%) come
descritto in commento:
...
N10 G0 X0 Y0 Z0
N11 G1 F5000 X100 Y100 Z100 (5000 mm/min)
N12 F10000 X0 Y0 (10000 mm/min)
N13 Z100 (8333 mm/min)
N14 X100 (10000 mm/min)
N15 F99000 X200 (12500 mm/min)
...
Sempre fermo restando il valore del parametro F, il minimo incremento della velocità di
interpolazione è di circa 0,01 unità/minuto (ossia 0,01 mm/minuto nel caso di assi lineari).
3.4 SPEED
La S esprime la velocità del mandrino.
Come parametro, la S può essere programmata con 9 cifre significative prima o dopo la virgola
o punto decimale.
La determinazione della velocità effettiva del mandrino è fatta dalla logica programmabile.
Consultare anche le informazioni fornite dal costruttore della macchina utensile.
136 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
I nomi assi sono definiti nelle tarature di macchina: essi possono essere costituiti da uno o più
caratteri (assi biletterali), l’identificativo dell’asse (primo carattere) può essere scelto tra una delle
seguenti lettere:
A B C D H P Q U V W X Y Z
L’indice numerico per gli assi biletterali deve essere una cifra decimale tra 1 e 9.
La programmazione di assi con nome biletterale necessita di una particolare sintassi, per
dettagli vedere paragrafo “Assi con nome biletterale” (con indice numerico).
Le quote assi sono programmate col nome asse (uno o più caratteri che identificano un asse
continuo nelle tarature di macchina) seguito da un valore numerico.
Come parametro, le quote possono essere programmate con 9 cifre significative prima o dopo
la virgola o punto decimale: se durante gli spostamenti comandati uno o più assi escono dal campo
ammissibile di lavoro della macchina il CN segnala errore fine corsa.
Le quote assi sono programmate con le stesse unità di misura degli interi visualizzati.
Per esempio, se si tratta di assi lineari in cui sono visualizzati millimetri (e micron come terzo
decimale) programmare: X100,25 significa programmare 100,25 millimetri.
Se si tratta di assi rotativi in cui sono visualizzati gradi (e millesimi di grado), programmare:
A10,47 significa programmare 10,47 gradi.
Sulla stessa macchina gli assi, anche contemporanei, possono essere definiti con unità di
misura diverse da asse a asse (per esempio millimetri per asse lineare e gradi per asse circolare).
I tre assi della terna di lavoro possono essere programmati col loro nome (per esempio X, Y, Z
ecc.) oppure rispettivamente come
AA... primo asse della terna di lavoro
AB... secondo asse della terna di lavoro
AC... terzo asse della terna di lavoro
Per esempio se in un certo punto della esecuzione di un programma è attiva la terna di lavoro X
Y Z (ossia G25XYZ), programmare: AA100 AC125 è in tutto equivalente a programmare: X100
Z125.
Se fosse stata invece attiva la terna ZXY (G25ZXY), sarebbe stato equivalente a programmare:
Z100 Y125 .Questa possibilità è particolarmente utile per i cicli fissi e per i sottoprogrammi
standard, che possono essere completamente definiti in forma generica, non dipendente dalla terna
di lavoro in cui saranno utilizzati.
Consultare anche il capitolo “Funzioni preparatorie ‘G’”; paragrafo G25 - terna di assi di lavoro;
per la trattazione degli orientamenti degli assi.
D. ELECTRON 137
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
carattere “_”, è proibita nel caso in cui nelle tarature di macchina sia definito almeno un nome asse
biletterale. Nel caso di macchina con almeno un asse biletterale, non è possibile usare parametri
come “X_” oppure “A_” oppure “__”. È invece permesso usare parametri come “_X” o “_A”.
Gli esempi che seguono chiariscono le varie situazioni:
G1 F1000 Y20 Y_2=100 X_1=25,3
L'asse Y va a quota 20, Y2 va a quota 100, X1 a quota 25,3 (il carattere "=" di separazione è
obbligatorio per gli assi biletterali per coerenza sintattica)
G0 X_1=<X_1+3>
L'asse X1 aumenta la sua posizione di 3 (in un'espressione di riga ISO l'asse è individuato con
nome, underscore, indice e non deve essere seguito dal carattere "=" di separazione)
!X_1=X_1-Y_2+R!
Al parametro associato all'asse X1 è assegnato il valore dell'espressione (in riga evoluta il
carattere "=" usato come assegnazione è sufficiente per individuare il nome dell'asse biletterale,
mentre nelle espressioni di riga evoluta la sintassi è identica alle espressioni di riga ISO)
G0 X_1=1,35 _X12
L'asse X1 va a quota 1,35, al parametro _X è assegnato il valore 12
G0 X_1=1,35 X_12
La programmazione non è permessa (non è possibile programmare parametri letterali a due
caratteri di cui il secondo sia il carattere “_” se in macchina sono definiti uno o più assi biletterali)
138 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
3.7.1 Origini
L'indirizzo O indica allo Z32 che è programmata una origine supplementare.
Dopo O non si deve programmare un valore numerico, ma, come si vedrà più avanti, una
combinazione di lettere e numeri che identificano l'origine da attivare.
L'origine che interessa al programmatore può essere, per esempio, il punto a cui sono riferite le
quote del disegno. Questa origine può essere variabile anche all'interno di uno stesso programma,
per esempio perché si lavorano due pezzi diversi montati sulla stessa tavola, perché si devono
lavorare facce diverse del pezzo ecc.
Le quote programmate dovranno essere sempre riferite a questa origine. Le origini di lavoro a
disposizione del programmatore (ORIGINI SUPPLEMENTARI) sono contenute nella tabella origini,
che può essere nel file 'globale' numero 126, oppure come sezione 'locale' in coda al programma-
pezzo.
Origini in
La sezione 'globale' è attiva al reset e può essere ripristinata con G37OG. Le varie sezioni 'locali'
tabella
sono attivate programmando G37OL nel programma o sottoprogramma contenente la sezione che
Origini
si vuole attivare.
locali
Si faccia attenzione che, se si programma G37.. e la origine nella stessa riga, la G37 deve
precedere la origine:
N1 G37OL OX1
la origine X1 viene acquisita nel file locale
Una sezione origini, locale o globale, inizia con la riga: :OS
Nelle righe successive sono definite le singole origini, che sono contraddistinte dal nome asse a
cui si riferiscono, seguito da:
- un carattere che può essere qualsiasi carattere stampabile escluso lo spazio ed escluso lo
zero, che è riservato alla sola origine base
- due o tre caratteri numerici, escluso lo zero sul primo carattere
Per esempio, si può definire:
:OS
X1=20,47
Y4=+17,381
Y?=-11
XA=-318,963
Z431=108,8
Y16=-58
Viene riconosciuta l’origine solo se la stringa caratteristica dell’origine (per es. Y1=32,5) è a
inizio riga o è preceduta solo da blank.
La definizione dell’origine termina con il primo carattere blank o parentesi tonda aperta o fine
riga (0dh), qualsiasi altro carattere dopo questi viene ignorato.
Per ogni asse, e per ogni programma, si possono perciò definire circa 1148 origini, i caratteri
stampabili che possono essere usati sono:
a) 9 numeri
b) 26 lettere alfabetiche
c) circa altri 25 segni, tipo + - ' ; # (. ecc…
Il carattere * è sconsigliato in quanto, per le operazioni di lettura e scrittura (:R e :W, vedere
righe evolute) assume il particolare significato di origine attiva in quel momento.
La tabella origini occupa posto in memoria secondo quanto contiene: le origini non definite non
occupano memoria.
D. ELECTRON 139
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
La tabella origini può essere preceduta, per comodità dell'operatore, da una descrizione o
commento.
Esempio di tabella origini:
TABELLA ORIGINI SUPPLEMENTARI-PEZZO 4782-
:OS
X1=381
X2=390,86
Y1=-27,38
.....
Program- Per richiamare le varie origini all'interno di un programma si deve programmare di seguito:
mazione − la lettera 'O'
− il nome dell'asse interessato
− il carattere o i caratteri distintivi dell'origine.
Per esempio, se è presente ed attiva la tabella origini sopra indicata, programmare: OX1 OY1
significa riferire le quote dell'asse X al punto X = 381 e le quote dell'asse Y al punto Y = -27,38.
Le origini con caratteri numerici possono essere programmate con espressione, cioè il numero
dell'origine può essere il risultato di un'espressione, per esempio:
OX<1> equivale a OX1
OY<20+3> equivale a OY23
HX340 OZ<HX+5> equivale a OZ345
La programmazione delle origini richiede l'arresto (vedere capitolo “Funzioni preparatorie G” -
paragrafo funzioni G).
Al reset o all'accensione possono essere attive a seconda delle tarature macchina:
− le origini zero (base)
− le ultime origini attive in precedenza
− le origini 1 (OX1 ecc.) su tutti gli assi.
Per annullare la correzione origine supplementare si può programmare la origine zero. Per
esempio, programmare: OX0 OY0 significa annullare le origini supplementari relative agli assi X e
Y: dopo questa istruzione il CN riferisce le quote degli assi X e Y alla origine base.
Anche se è definita nella tabella origini, per esempio una X0=100 il CN, quando incontra la
istruzione: OX0 annulla le origini supplementari, ignorando la eventuale OX0 definita nella tabella
origini.
La funzione G53 (annullata da G54) sospende l'effetto delle origini supplementari ed attiva le
origini base.
È possibile salvare e ripristinare le origini attive, anche senza conoscerne il nome, per dettagli
vedere le funzioni G152 KA1 e G153 KA1.
140 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
D. ELECTRON 141
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
142 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
D. ELECTRON 143
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
3.8 PARAMETRI
Abbiamo già visto come molte funzioni di macchina sono programmate con una o due lettere
dell'alfabeto seguite da un valore numerico, per esempio: X100.
Oltre agli indirizzi sopra elencati e che corrispondono a particolari funzioni, sono possibili molte
altre combinazioni di due lettere: questi indirizzi identificano una entità, che chiameremo
'parametro’, di cui lo Z32 mette in memoria il valore, per poterlo poi utilizzare per scopi diversi.
Anche agli indirizzi di funzioni specifiche di macchina (esclusi N, G, O) corrispondono in
memoria dello Z32 dei valori numerici, che sono via via aggiornati durante lo svolgimento del
programma: anche queste entità possono essere considerate 'parametri'.
Nell'esempio fatto, dopo l'analisi della istruzione X100 (vedere anche capitolo “Esecuzione riga
ISO”) lo Z32 contiene, nella locazione assegnata ad X il valore 100. Il fatto di aver programmato X
implica anche che si dovrà muovere l'asse X, ma intanto nella locazione corrispondente a X è
scritto il valore programmato.
Il valore 100 assegnato al parametro X viene conservato in memoria dallo Z32 fino a che un
diverso valore non venga assegnato ad X, e può quindi essere utilizzato in seguito anche per scopi
diversi da quelli di far muovere l'asse fino a quota 100.
I parametri sono identificati da un 'indirizzo' (X nell'esempio precedente) che può essere a 1, 2 o
3 caratteri oppure dai parametri con indice PAR[ ], PAL[ ] ecc… Nella memoria dello Z32 sono
predisposte le locazioni per i seguenti gruppi di parametri:
1) NOMI ASSI
2) PARAMETRI DI SISTEMA
3) PARAMETRI UTENTE
4) PARAMETRI CON INDICE
5) PARAMETRI TRILETTERALI
Ad esclusione dell’array di parametri PRM[ ] che è unico per tutti i processi, tutti i parametri sono
di processo cioè si possono usare tutti su ogni processo.
144 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
D. ELECTRON 145
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
La D.ELECTRON potrà definire in seguito altri parametri per ampliare le prestazioni di software
dello Z32.
146 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
Sono possibili numerose altre combinazioni: alcune di queste sono usate dai costruttori di
macchine utensili per cicli fissi, sottoprogrammi standard, macroistruzioni ecc. Perché sia possibile
all'utente finale di usare senza problemi, così come sono, questi sottoprogrammi, è bene che i
simboli usati in questi sottoprogrammi non siano usati nei programmi principali che ne fanno uso.
In particolare, per i cicli fissi, sono stati normalizzati i seguenti significati:
HA inizio foro
HB fine foro
HC uscita lunga foro
HD diametro lavoro
HE uso interno cicli fissi
HF uso interno cicli fissi
HG uso interno cicli fissi
HH uso interno cicli fissi
HJ uso interno cicli fissi
La D.ELECTRON farà inoltre uso, anche nel seguito e per quanto possibile, sempre di simboli
che iniziano per H nei sottoprogrammi standard.
L'utente finale può anche usare i simboli usati nei sottoprogrammi, ma dovrà tenere conto che,
dopo una esecuzione del sottoprogramma, i valori di questi parametri VENGONO MODIFICATI (se
ne sconsiglia quindi l'uso).
D. ELECTRON 147
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
A tutti gli effetti, PAR[0], PAR[1], PAR[2], fino a PAR[512] sono parametri di part-program e
possono essere usati come i parametri a indirizzo alfabetico. Il formato numerico dei parametri
dell'array PAR[ ] è lo stesso floating-point dei parametri a indirizzo alfabetico.
I parametri a indirizzo alfabetico e i parametri PAR[ ] possono essere usati insieme nel part-
program. L'array PAR[ ] è completamente azzerato al reset.
L'indice che individua il parametro può essere una espressione aritmetica (stessa sintassi e
stesse funzioni delle espressioni aritmetiche delle righe evolute e tra parentesi acute, vedere
paragrafo seguente).
Per esempio è sintatticamente valido (ma è bene non esagerare nella complessità!):
!HX=12*HA/PAR[HA+PAR[HB+1]]!
Se l'indice programmato risulta non intero viene indirizzato l'elemento dell'array più vicino (ossia
l'indice calcolato viene arrotondato all'intero più vicino).
Se l'indice programmato risulta maggiore di 512 o minore di 0 viene allarme di programmazione
"INDICE NON VALIDO"
148 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
Esempio:
PRM[102]34.589 ;viene messo in PRM[102] il valore 34.589
Se viene referenziato un PRM[n] con n oltre il limite specificato si verifica allarme CN1D14 -
ERRORE PROGRAMMA.
Se avviene un errore di scrittura fisica in memoria CMOS di un parametro PRM[ ] si verifica un
allarme CN2713 - FALLITA SCRITTURA PRM[ ] IN CMOS.
Se all'accensione ci sono errori nei parametri PRM[ ] memorizzati nella memoria permanente
viene l'allarme CN0x10, dove x è un numero esadecimale maggiore di 8 (può essere
8,9,A,B,C,D,E,F).
In generale gli errori CN0x10 si presentano quando la batteria che mantiene permenente la
memoria durante lo spegnimento è esaurita o difettosa. La loro comparsa deve essere gestita dal
servizio assistenza.
ATTENZIONE: i parametri PRM sono parametri particolari, non indicati per l'uso in
formule matematiche. I parametri PRM (visti dal part-progam) sono infatti numeri troncati
alla terza cifra decimale (anche durante i conti).
Ad esempio: programmare PRM[4]< 1 / 10000 > darà 0 come risultato. Il risultato corretto
sarebbe 0.0001, ma essendo i PRM troncati alla terza cifra, si otterrà il valore 0.
Pertanto, i parametri PRM possono essere utilizzati per salvare dati, valori o
impostazioni, ma non per eseguire qualsiasi calcolo matematico.
D. ELECTRON 149
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
150 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
SET[23] = (G118) con il coseno direttore dell'angolo tra asse trainato ed asse Z (valida solo per
G118 birotativa)
SET[24] = (G118) con il coseno direttore dell'angolo tra asse trainante ed asse X
SET[25] = (G118) con il coseno direttore dell'angolo tra asse trainante ed asse Y
SET[26] = (G118) con il coseno direttore dell'angolo tra asse trainante ed asse Z
SET[27] = (G118) con la coordinata asse X del centro rotazione della tavola in mm
SET[28] = (G118) con la coordinata asse Y del centro rotazione della tavola in mm
SET[29] = (G118) con la coordinata asse Z del centro rotazione della tavola in mm
SET[30] = (G118) tipo G118 (mono o birotativa)
SET[31] = (G118) numero logico asse trainante
SET[32] = (G118) verso (passi/giro) asse trainante
SET[33] = (G118) numero logico asse trainato
SET[34] = (G118) verso (passi/giro) asse trainato
Con l'insieme di parametri SET[0]÷SET[34] si ha accesso ad un set di tarature di G117/G118
(RTCP) leggibili e scrivibili da sottoprogrammi di sistema e sottoprogrammi temporanei che
eseguono G8xx e G9xx. Tramite questi parametri si possono modificare tutte quante le tarature
riguardanti G118 e una parte di quelle riguardanti G117, come si può fare tramite il programma di
impostazioni macchina TARAT.
I parametri SET[...] sovrascrivono le tarature impostate dal programma TARAT.
Questi parametri danno la possibilità di avere un numero indefinito di set di tarature G118, a
seconda delle necessità dell'utente.
In un part-program, prima di programmare G118 si dovranno scrivere per mezzo dei parametri
SET[.] le tarature G118 desiderate: al momento dell'attivazione di G118 verranno usate le tarature
attualmente valide (ultime programmate) ed eventuali variazioni di tarature tramite i parametri
SET[.] programmate dopo l’attivazione di G118 non avranno alcun effetto fino a una successiva
riattivazione di G118.
ATTENZIONE: SET[32] e SET[34] sono due tarature che nel programma TARAT sono
denominate “passi/giro asse trainato” e “passi/giro asse trainante” di G118, ma l'unica informazione
che il CNZ32 usa di questi dati è il segno, che determina il verso positivo o negativo dell'asse
rotativo corrispondente, o il valore 0 che indica che G118 non è definita in taratura e che provoca
un errore CN5414 se si programma G118.
Per questo motivo tali tarature sono qui denominate "verso" in alternativa a "passi/giro" ed
hanno il seguente comportamento:
- in lettura:
SET[32] e SET[34] rendono:
-1 = (verso negativo) se il valore letto è negativo
1 = (verso positivo) se il valore letto è positivo
0 = se il valore letto è zero
- in scrittura:
SET[32] e SET[34] scrivono:
-1 = (verso negativo) se il valore passato da scrivere è negativo
1 = (verso positivo) se il valore passato da scrivere è positivo
0 = se il valore passato da scrivere è zero
N.B. "Verso positivo" indica che la quota dell'asse rotativo e il corrispondente angolo usato per il
calcolo delle correzioni di G118 hanno lo stesso segno. "Verso negativo" indica che la quota
D. ELECTRON 151
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
dell'asse rotativo e il corrispondente angolo usato per il calcolo delle correzioni di G118 hanno
segno opposto.
I parametri SET[35]÷SET[60] servono per variare le tarature dei fine corsa per i 13 assi continui.
Nel dettaglio i singoli parametri hanno il seguente significato:
SET[35] = fine corsa positivo asse con numero logico 0, in mm o gradi
SET[36] = fine corsa negativo asse con numero logico 0, in mm o gradi
SET[37] = fine corsa positivo asse con numero logico 1, in mm o gradi
SET[38] = fine corsa negativo asse con numero logico 1, in mm o gradi
...
SET[59] = fine corsa positivo asse con numero logico 12, in mm o gradi
SET[60] = fine corsa negativo asse con numero logico 12, in mm o gradi
Sono accessibili in lettura e scrittura e commutati di processo.
Nota: le dimensioni degli assi lineari sono in millimetri anche se la macchina è in pollici.
La modifica dei fine corsa rimane anche al RESET e a inizio programma, ma non è permanente
allo spegnimento: all'accensione sono attivati i fine corsa definiti in taratura.
Il nuovo fine corsa è scritto immediatamente con i parametri SET[35]÷SET[60], ma il suo effetto
può essere ritardato anche di molti blocchi perché non va a influenzare i blocchi eventualmente
presenti nel buffer del look-ahead. È compito dell'installatore curarsi delle eventuali
sincronizzazioni.
152 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
Al reset inoltre viene preso atto dell'utensile sul mandrino, la sua descrizione nella tabella utensili
è analizzata e i parametri relativi sono inizializzati secondo la descrizione utensile.
Al reset i parametri sono perciò tutti zero esclusi:
KP e KT inizializzati col valore 1
T inizializzato con l'utensile sul mandrino
TA e TB inizializzati col posto utensile sul mandrino
i parametri definiti nella descrizione dell'utensile che è sul mandrino, inizializzati con i valori
contenuti nella descrizione stessa (vedere anche gestione utensili)
Il valore dei parametri contenuto nella memoria dello Z32 è sempre l'ultimo programmato (in riga
ISO o in riga evoluta).
In particolare, le quote assi restano quelle programmate anche se per varie ragioni (correzione
lunghezza e raggio, origini, rototraslazioni ecc.) le quote effettivamente raggiunte sono diverse da
quelle programmate.
Fanno eccezione TA e TB (posto utensile attuale e futuro) che sono aggiornati direttamente
dallo Z32 in conseguenza di un cambio utensile o di una programmazione di T.
All'interno di una riga ISO possono essere assegnati valori a parametri qualsiasi, per utilizzarli in
successive elaborazioni. Per esempio, se si programma:
X10 XA12 XB14 XC-20
ai parametri X, XA, XB, XC sono assegnati i valori 10, 12, 14, -20.
Il fatto di avere programmato l'asse X comporta anche un moto dell'asse per portarsi alla quota
programmata, mentre il fatto di avere programmato XA XB XC non comporta movimenti assi, ma
solo un aggiornamento dei valori dei parametri, e un'aggiunta di XA, XB, XC alla lista dei parametri
noti se sono incontrati per la prima volta.
Se un parametro mai definito viene incontrato in una espressione il CN non dà allarme, ma
considera che il valore del parametro sconosciuto sia zero.
Durante l'esecuzione di un programma possono essere definiti al massimo 60 parametri diversi,
ma se un parametro ha valore zero non entra nel conto dei 60.
In altre parole, se a un parametro è assegnato il valore zero, esso viene tolto dalla lista dei
parametri noti e considerato come mai definito: ciò non genera errori perché al parametro mai
definito viene assegnato proprio il valore zero.
In caso di necessità quindi, il programmatore può 'cancellare’ i parametri dalla lista dei parametri
noti assegnando loro il valore zero. Ciò è consigliato soprattutto all'interno dei sottoprogrammi
standard (del costruttore o dell'utente finale) per i parametri usati come appoggio di risultati
intermedi per diminuire il numero dei parametri usati.
D. ELECTRON 153
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
− operatori matematici:
+ addizione
- sottrazione
* moltiplicazione
/ divisione
RQ radice quadrata
SN seno
CS coseno
AT arcotangente
− apertura e chiusura di parentesi tonde
Per esempio: X<100-R> significa che il parametro X assume il valore di 100 meno il valore del
raggio utensile (non noto al momento della programmazione), e che l'asse X dovrà spostarsi di
conseguenza.
È lecito richiamare nella espressione lo stesso parametro a cui sarà assegnato il valore
risultante: per tutta l'espressione il valore del parametro è quello precedente al calcolo della
espressione.
Per esempio:
X<X*X> elevare X al quadrato
X<X-10> diminuire X di 10
X<PAR[1]+PAR[0]> sommare i due parametri PAR
X<X+PAR[[PAR[0]]> sommare ad X il PAR con indice PAR[0].
Per esempio è sintatticamente valido (ma si consiglia di non esagerare nella complicazione!):
HX<12*HA/PAR[HA+PAR[HB+1]]>
Le operazioni di moltiplicazione e divisione sono prioritarie rispetto alle operazioni di somma e
sottrazione.
Per esempio:
3+4*2 = 3+8 = 11
4*2+3 = 8+3 = 11
4*2+2*7*3 = 8+42 = 50
Le parentesi possono essere usate per forzare una diversa priorità nella esecuzione delle
operazione. Per esempio:
(3+4)*2 = 7*2 = 14
4*(2+3) = 4*5 = 20
4*(2+2*7)*3 = 4*(2+14)*3 = 4*16*3 = 192
Possono essere usati fino a 10 livelli di parentesi.
Per esempio ha due livelli di parentesi l'espressione:
3+((2+3)*5-4/(5-3))*2 = 3+(5*5-4/2)*2 = 3+(25-2)*2 =
=3+23*2 = 3+46 = 49
Le parentesi devono essere prima aperte e poi chiuse, e devono essere tutte chiuse entro
l'espressione. Per esempio sono errate:
3+(2*3 manca una parentesi chiusa
(3+2)*3) troppe parentesi chiuse
3)+(2 prima chiusa e poi aperta
È lecito iniziare una espressione o un livello di parentesi con '+' o '-'. Per esempio:
154 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
D. ELECTRON 155
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
Si noti che i parametri memorizzati in CMOS sono sempre a due caratteri e che il secondo
carattere può essere un numero: i parametri usati nella programmazione invece possono avere uno
o due caratteri di cui il secondo non può essere un numero.
Oltre alla sezione 'globale' (file 125) dei parametri ci possono essere una o più sezioni 'locali' in
coda ad ogni programma o sottoprogramma. Con l'istruzione G37PL si attiva la sezione locale in
coda al programma, mentre l'istruzione G37PG attiva la sezione globale. Al reset è sempre attiva la
sezione globale.
156 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
D. ELECTRON 157
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
Il risultato è sicuramente 10 in quanto i calcoli interni sono fatti con grande precisione e quindi
l'errore è enormemente inferiore a 0.5 che rappresenta la "fascia di tolleranza".
Ma attenzione: anche la funzione NEI può dare dei risultati incerti se il risultato sta intorno a 0,5.
Per esempio:
HA.1 HX<NEI(HA*5)>
Qui il risultato può essere 0 oppure 1 in funzione delle approssimazioni di calcolo.
È da notare che se un programma oggi funziona bene ma è in condizioni di tolleranza
marginale, potrebbe non funzionare più con parametri anche leggermente diversi oppure
(molto importante) con future versioni di software di Z32 che potrebbero operare
approssimazioni diverse.
Si raccomanda perciò di prestare grande attenzione alle approssimazioni di calcolo e di
evitare condizioni di tolleranza "marginale" che possono portare a risultati apparentemente
incerti perché dipendenti da variazioni anche minime di parametri o condizioni di
funzionamento.
158 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
HA<100/25.4>
--END IF
Aggiusta il valore di HA in pollici o mm.
RST(1) considera anche la forzatura G70-G71 attiva al momento.
D. ELECTRON 159
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
160 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
D. ELECTRON 161
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
RST(28) restituisce il rapido del primo asse (normalmente X), RST(29) il rapido del secondo
asse (normalmente Y sulle frese) ecc... fino a RST(40) che restituisce il rapido del tredicesimo
asse.
Le unità di misura del valore restituito sono in unità visualizzate/minuto, quindi mm/minuto per gli
assi lineari e gradi/minuto per gli assi rotativi.
ATTENZIONE: l’unità di misura degli assi lineari è in mm/minuto anche per le macchine in
pollici.
RST(42) ÷ RST(44) differenza quote XYZ tra origine rotata e non rotata da G118
Le funzioni RST(42), RST(43) e RST(44) restituiscono il valore in mm della differenza, per i tre
assi XYZ al momento dell'attivazione di G118, tra le quote dell'origine attiva non rotata e quelle
dell'origine attiva rotata secondo le quote degli assi rotativi di G118.
RST(48) ÷ RST(50) quote misura AM BM CM di G61/G61KA1 nel sistema non rototraslato da G116
Le funzioni RST(48), RST(49) e RST(50) restituiscono le quote di misura AM, BM, e CM rese da
G61/G61KA1 nel sistema non rototraslato da una eventuale G116 attiva durante la misura.
In particolare:
se G61 o errore misura
- RST(48) = AM
- RST(49) = BM
- RST(50) = CM
se G61KA1 e misura terminata correttamente
- RST(48) = AM riportato nel sistema di riferimento non rototraslato da eventuale G116
- RST(49) = BM riportato nel sistema di riferimento non rototraslato da eventuale G116
- RST(50) = CM riportato nel sistema di riferimento non rototraslato da eventuale G116
162 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
D. ELECTRON 163
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
Le tre colonne della matrice rappresentano le componenti dei versori degli assi coordinati del
sistema di riferimento ruotato espressi nel sistema di riferimento oiginale.
Nel caso dell'esempio, dalle colonne della matrice, si ha:
X' = a11*X + a12*Y + a13*Z = 0*X + 0*Y + (-1)*Z = -Z
Y' = a21*X + a22*Y + a23*Z = (-1)*X + 0*Y + 0*Z = -X
Z' = a31*X + a32*Y + a33*Z = 0*X + 1*Y +0*Z = Y
dove X', Y' e Z' sono gli assi coordinati del sistema ruotato, X, Y e Z sono quelli del sistema
dritto o non ruotato.
RST(89) ÷ RST(91) variazione origini assi lineari per effetto della G139 (assi concorrenti)
Queste funzioni sono riservate ai programmatori di cicli fissi di sistema.
Le funzioni da RST(89) a RST(91) restituiscono i valori in mm impostate dalla G139 alle origini
dei tre assi lineari. Tali valori possono essere utilizzati per correggere la posizione del centro tavola,
RTCP tavola (G118), per effetto degli assi concorrenti G139, nel caso in cui la tavola sia mossa
dall'asse compensante di una coppia di assi concorrenti.
164 D. ELECTRON
CNC Z32 Programmazione Cap.3 - Funzioni M, Feed, Speed, Origini, Parametri
NOTE:
- lo stato di programmazione dei parametri relativi a G881÷G899 viene resettato dalla
programmazione di G880, di G800K0, di G800KA0 oppure se si scatena un reset di macchina,
mentre viene mantenuto tra successive programmazioni di altre G881÷G899: cioè se si programma
G881NA3 e poi si programma G881NB2 si avrà RST(92) = 1 (NA programmato) e RST(93) = 1 (NB
programmato).
- lo stato di programmazione dei parametri relativi a G901÷G999 non viene mantenuto tra
successive programmazioni di G901÷G999: cioè se si programma G901NA3 e poi si programma
G901NB2 si avrà RST(122) = 0 (NA non programmato) e RST(123) = 1 (NB programmato). Lo
stato di programmazione dei parametri relativi a G901÷G999 viene resettato dalla programmazione
di G900 oppure se si scatena un reset di macchina.
ATTENZIONE: nel caso di G9xx richiamata da un'altra G9xx rimane attivo lo stato dei parametri
programmati sulla G9xx chiamante. Esempio:
nel part-program c'è:
G901 NA10 I20
la macro associata a G901 richiama una G902 come segue:
.......
G902 NB20 J30 K40
.......
G26
in questo caso dopo la chiamata a G902 si avrà comunque lo stato di programmazione dei
parametri restituito dagli RST( ) non influenzato da quanto programmato sulla riga di G902:
RST(122) = 1 (NA programmato su riga G901)
RST(123) = 0 (NB non programmato su riga G901)
RST(149) = 1 (I programmato su riga G901)
D. ELECTRON 165
Cap.3 - Funzioni M, Feed, Speed, Origini; Parametri CNC Z32 Programmazione
166 D. ELECTRON
CNC Z32 Programmazione Cap.4 - Utensili, Esecuzione riga ISO
CAPITOLO 4
PROCESSO 0 1 2 3 4 5
TABELLA PARAMETRI 125 122 119 116 113 110
TABELLA ORIGINI 126 123 120 117 114 111
TABELLA UTENSILI 127 124 121 118 115 112
Si consiglia prudenza nell'uso delle sezioni locali, che devono essere usate solo se necessario e
in accordo col costruttore.
Al reset è attiva la sezione 'globale'. Le sezioni 'locali' sono attivate da G37TL, mentre la sezione
'globale' è ripristinata da G37TG.
Le sezioni attive delle tabelle utensili iniziano con la riga: :TL
:TL A partire dalla riga successiva al ':TL' si possono inserire le righe degli utensili, contenenti 'T',
numero dell'utensile e relativa descrizione con un numero totale di 247 caratteri; righe con
maggiore numero di caratteri provocano allarme CN1D14 quando l’utensile è montato sul
mandrino.
Lo spazio di memoria usato dalla tabella utensili è quello necessario agli utensili effettivamente
descritti: gli utensili non inseriti non occupano spazio di memoria.
Esempio di riga di descrizione utensile:
T231#34L100R20
Utensile 231, posto 34, lunghezza 100, raggio 20
Ogni riga di descrizione deve iniziare con la lettera T, seguita dal numero utensile (fino a 9 cifre
decimali intere gli zeri iniziali devono essere omessi) e dal carattere #. Nel nostro caso 'T231#'.
È IMPORTANTE che non ci siano spazi tra 'T' e '#' e che gli zeri iniziali siano omessi, altrimenti il
CN non riconosce l'utensile programmato.
L'utensile zero si descrive con 'T0#...' (un solo zero).
# Il numero che segue '#' indica il posto assegnato all'utensile nel magazzino, posto che verrà
Posto fornito alla logica per la ricerca. Nel nostro caso '34'. Gli zeri iniziali del posto possono essere
omessi.
D. ELECTRON 167
Cap.4 - Utensili, Esecuzione riga ISO CNC Z32 Programmazione
Dopo il posto utensile possono essere inserite una serie di istruzioni con le stesse modalità con
cui si programma una riga ISO (descrizione utensile). Nel nostro caso 'L100R20'.
Al momento del cambio utensile queste istruzioni ISO vengono normalmente eseguite dal CN,
così come se costituissero una riga successiva a quella del cambio utensili.
Nel nostro caso l'esecuzione della descrizione utensile porterebbe ad assegnare al parametro L
il valore 100, e al parametro R il valore 20.
La descrizione utensile ha la stessa efficacia di una riga ISO contenente le stesse istruzioni: la
Lunghezza programmazione di L nella descrizione utensile provoca perciò il ricalcolo delle correzioni lunghezza
utensile e origini. La reale esecuzione della riga descrizione utensile avviene all’uscita (G26) del
sottoprogramma di cambio utensile. Sul G26 finale del sottoprogramma si ha l’esecuzione della
descrizione dell’utensile montato sul mandrino, con inizializzazione dei parametri in essa contenuti
(vedere anche il capitolo delle origini).
Nella descrizione utensile possono essere inserite altre funzioni (F, S, M, ...) per abbreviare la
programmazione.
Possono essere descritti nella tabella utensili due o più utensili con identico 'posto': ciò permette
di gestire facilmente utensili multiuso, in quanto i diversi usi dello stesso utensile saranno
contrassegnati da un 'T' diverso ma con un posto '#' identico. La descrizione dell'utensile potrà
essere diversa in uno o più parametri, così da descrivere esattamente le caratteristiche dell'utensile
da usare.
Una limitazione alla definizione multipla dello stesso utensile c'è in caso di cambio utensile
'random'. Vedere paragrafo “Utensili multiuso e gestione random” più avanti.
L'utensile è programmato nel programma-pezzo col parametro T seguito da un numero fino a 9
cifre intere decimali. Gli zeri iniziali possono essere omessi (ma non è necessario ometterli).
Ricordare che gli zeri iniziali del numero dopo T devono essere omessi nella tabella utensili.
Per esempio:
T1234 indica che è programmato l'utensile 1234.
La programmazione delle T richiede l'arresto (vedere anche capitolo “Funzioni preparatorie G”
paragrafo “Funzioni G”).
La programmazione della T chiede al CN di comunicare alla logica di macchina quale è l'utensile
futuro, ma non provoca immediatamente il cambio utensile: il cambio utensile viene fatto con la
istruzione M6, che può essere programmata nella stessa riga oppure in righe successive.
All'accensione e a ogni inizio programma la descrizione dell'utensile montato sul mandrino viene
analizzata e i parametri programmati nella descrizione sono inizializzati di conseguenza.
Non è necessario che gli utensili siano inseriti in ordine crescente di T, anche se ciò è utile per
facilità di consultazione.
Esempio di sezione utensili:
:TL
T471#32 L100 R20(FRESA D40 HSS)
T472#32 L50 R30 (fisicamente è il 471, con correttori diversi)
T371#16
T12#27(PUNTA D10 HSS) L80 R5 S1000 F200
...
Per il corretto funzionamento del sistema, lo Z32 deve sempre conoscere quale utensile è
montato sul mandrino, anche passando da un programma all'altro e dopo uno spegnimento.
Poiché l'utensile che è montato sul mandrino può provenire dalla sezione globale o da una
qualsiasi delle sezioni locali, lo Z32 deve conoscere:
− il numero dell'utensile T
− il numero del file contenente la sezione da cui proviene l'utensile.
168 D. ELECTRON
CNC Z32 Programmazione Cap.4 - Utensili, Esecuzione riga ISO
Queste informazioni sono memorizzate dallo Z32 nella prima riga del file globale 127. per
esempio, se la prima riga della tabella contiene:
T12P3 significa che sul mandrino è montato l'utensile T12 proveniente dal programma 3.
Se non è contenuta l'informazione P... l'utensile è considerato proveniente dalla tabella globale.
La prima riga della tabella è aggiornata automaticamente dal CN ad ogni cambio utensile
effettuato: può essere modificata dall'operatore in caso di operazioni manuali sugli utensili.
Nel caso di scrittura ex novo della tabella utensili, occorre sempre inserire questa prima riga,
anche nel caso che il mandrino sia vuoto (consultare il costruttore della macchina utensile per il
numero utensile convenzionalmente assegnato all'utensile nullo: di solito T0 o T1).
Se manca la tabella utensili il CN dà allarme:
CN1D14 ERRORE PROGRAMMA
Se manca o è errata l'indicazione dell'utensile sul mandrino (1a riga tabella) oppure manca la
sezione utensili dalla quale proviene l'utensile sul mandrino il CN dà allarme:
CN2F14 UTENSILE
Se invece non esiste il file dal quale deve provenire l'utensile montato sul mandrino (per
esempio, la prima riga del file 127 è T10P40 e il file 40 non esiste) viene l'allarme:
CN0914 ERRORE FILE (file non esistente).
La sintassi della riga iniziale del file 127 che definisce l’utensile attivo, ammette solo le seguenti
strutture:
Tnn blanks 0DH
TnnPnn blanks 0DH
TnnPnnJnn blanks 0DH
Ogni altra struttura provoca errore utensile.
Per la descrizione del significato del parametro J vedere più avanti il paragrafo “Gestione delle
famiglie utensili”.
Dopo la prima riga e prima del ':TL' può essere inserita una descrizione qualsiasi, che viene
ignorata dallo Z32.
D. ELECTRON 169
Cap.4 - Utensili, Esecuzione riga ISO CNC Z32 Programmazione
ATTENZIONE
Questo esempio è da considerarsi solo un esempio didattico destinato al
costruttore della macchina utensile. L'utente finale dovrà seguire le
istruzioni date dal costruttore.
170 D. ELECTRON
CNC Z32 Programmazione Cap.4 - Utensili, Esecuzione riga ISO
D. ELECTRON 171
Cap.4 - Utensili, Esecuzione riga ISO CNC Z32 Programmazione
172 D. ELECTRON
CNC Z32 Programmazione Cap.4 - Utensili, Esecuzione riga ISO
D. ELECTRON 173
Cap.4 - Utensili, Esecuzione riga ISO CNC Z32 Programmazione
174 D. ELECTRON
CNC Z32 Programmazione Cap.4 - Utensili, Esecuzione riga ISO
D. ELECTRON 175
Cap.4 - Utensili, Esecuzione riga ISO CNC Z32 Programmazione
176 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
CAPITOLO 5
I vari campi sono eseguiti nello stesso ordine in cui sono scritti. Nei paragrafi che seguono si dà
il dettaglio delle istruzioni che possono costituire un campo di riga evoluta.
D. ELECTRON 177
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
Si noti che in questo caso (contrariamente a quanto accade in una riga ISO) non si ha un
movimento dell'asse X alla quota 100 (o 100-2*R): l'effetto di questo campo evoluto è solo quello di
assegnare al parametro X il valore 100 (o 100-2*R).
Se successivamente, in una riga ISO, si programma X<X> , si ha una riconferma del valore
assegnato a X nella riga evoluta e anche il movimento fino al valore finale
!HX=..; Con il campo: !CP! si ottiene la conversione dei parametri HX e HY, rappresentanti due
HY=..; coordinate cartesiane, nei corrispondenti in coordinate polari HR (raggio) e HT (angolo
CP! trigonometrico in gradi).
Dopo questo campo HR e HT contengono il risultato, HX e HY rimangono invariati. Per esempio
dopo la riga:
N10!HX=1;HY=1;CP! si ottiene: HR = 1,4142... HT = 45
Con il campo: !PC! si ottiene la conversione inversa.
Per esempio dopo la riga:
N10!HR=10;HT=30;PC! si ottiene: HX = 8,6602... HY = 5
Non è necessario che HX, HY, HR, HT, siano programmati nella stessa riga che contiene CP o
PC: essi possono essere programmati o determinati con calcolo anche in righe precedenti, ISO o
evolute.
5.2 SALTI
Sono possibili cinque tipi di salto:
− salto a una riga senza ritorno (GON...)
− salto a una serie di righe con ritorno (GON...-N...)
− salto a sottoprogramma con ritorno (GOP...)
− salto ad una riga all’interno di un sottoprogramma (GOP…-N…)
− salto ad una serie di righe all’interno di un sottoprogramma (GOP…-N…-N…)
Il numero di riga o il numero di programma possono essere parametrizzati (vedi paragrafo
dedicato più avanti su questo capitolo).
178 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
N14!X=100;Y=-11,5!GON36!
viene eseguita nel seguente ordine: a) assegna al parametro X il valore 100 ; b) assegna al
parametro Y il valore -11,5 ; c) salta alla riga N36
N14 !GON36! X=100! Y=-11,5!
viene eseguita così: a) salta alla riga N36 ; b) non sono variati i parametri X e Y
Questa prestazione serve, come si vedrà dopo, per condizionare l'esecuzione di campi a
situazioni particolari.
Caso particolare di salto senza ritorno è la interruzione della esecuzione di una riga evoluta,
ottenuta col campo: !EB!
!EB! Quando viene incontrato questo particolare campo la esecuzione della riga viene interrotta e
end bloc l'esecuzione prosegue dalla riga successiva. Esempio:
...
N10!IFHA>=10;EB!GON5!
N11...
Se HA è minore o uguale a 10 viene eseguito lo EB e quindi il programma prosegue con la riga
N11, altrimenti viene eseguito il salto a N5. (Vedere anche paragrafo “Condizionamenti” più avanti.
Agli effetti del ritorno da serie di righe, la riga in cui viene eseguito EB è da considerarsi
completata (vedere prossimo paragrafo “Salto a una serie di righe con ritorno”).
D. ELECTRON 179
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
180 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
Si faccia attenzione che il ritorno da serie di righe è effettuato solo se la riga fine non contiene
un salto esplicito che deve essere eseguito (con 'GO').
L'istruzione 'EB' e i salti impliciti a sottoprogrammi (cicli fissi, M speciali ...), anche se eseguiti
non impediscono il ritorno da serie di righe.
Esempio di programma errato:
N1!GON10-N30!
...
N10X0
N20Y10
N30!GON56!
...
Il ritorno dalla riga 30 non viene mai effettuato perché la riga viene interrotta per un salto a
un'altra riga.
D. ELECTRON 181
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
182 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
Programma principale:
...
N20 XA50 YA80 XB0 YB0 ZA-20 si definiscono i parametri
N21 !GOP90!
...
Sottoprogramma 90:
%N1G0AA<XB-R>AB<YB-R> posiziona sul vertice, compensa l'utensile
N2 G1 AC<ZA> scende col terzo asse
N3 AB<AB+YA+2*R> rifila lato sinistro
N4 AA<AA+XA+2*R> rifila lato superiore
N5 AB<YB-R> rifila lato destro
N6 AA<XB-R> G26 rifila lato inferiore e fine
D. ELECTRON 183
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
!GON<10000/3>! N3333,333
!GON<1000*100/3>! N3333,33
!GON<100+.001/10>! N100
!HA13!GON<48+HA>! N61
184 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
Come per i salti GO... se la G26 viene eseguita i campi successivi sono ignorati, e la riga non
viene riconosciuta come riga finale di un salto GON...-N...
È obbligatorio che il campo G26 termini col punto esclamativo e non contenga spazi, altrimenti
non viene riconosciuto e si ha un errore programma.
5.3 CONDIZIONAMENTI
Con questa istruzione si ordina allo Z32 di eseguire o non eseguire i successivi campi separati
da ';' fino al primo '!', a seconda che le condizioni specificate siano o no verificate.
Sintassi:
!IF (espr.1)<=>(espr.2);(campo A);(campo B);...!(campo C)!
Che significa: se il valore dell'espressione 1 è minore, uguale o maggiore (possono essere
usate una o due condizioni) del valore dell'espressione 2, allora continua ad eseguire normalmente
il prossimo campo (A), altrimenti salta fino al primo punto esclamativo e prosegui col campo
successivo (C).
Esempi:
N12 !IF X >= 3;GON30!
Se X è maggiore o uguale a 3 salta alla riga N30, altrimenti prosegui con la prossima riga (non
ci sono altri campi successivi).
N12!IFAA<>2;GON30!GON47!
Se AA è diverso (maggiore o minore) da 2 salta alla riga N30, altrimenti salta alla N47.
N12!XA=XA+1!IFXA>5;XA=5!
Incrementa XA di 1; ma se il risultato è maggiore di 5 , metti XA=5.
N12 !IF R=5;EB! R=R-1,5;IF R<5 ;R=5!GON1-N11!
Se R è 5 allora prosegui con la prossima riga (EB), altrimenti decrementi R di 1,5: se il risultato
è minore di 5 riporta R al valore di 5, poi ripeti le righe da 1 a 11 col nuovo R. Questa riga permette
di ripetere una serie di righe col parametro R decrescente in passi di 1,5 a partire dal suo valore
originario, limitando R a un minimo di 5. Dopo l'ultima passata con R pari a 5 prosegue.
N12!IFX<10;IFY<10;EB!GON63!
Se X è minore di 10 E ANCHE Y è minore di 10 continua, altrimenti salta alla riga 63.
N1 X10
...
N10 !R=R-1!IF R = 5;GON3!
...
N20 !GON1-N10!
Ripeti le righe da 1 a 10. Notare che la riga fine ha un salto, condizionato a R>=5: il ritorno dalla
riga 10 è fatto solo quando il ciclo è completato, ossia quando non viene eseguito il salto GON3
perché è diventato R<5.
ATTENZIONE
La condizione di '=' è verificata se i due risultati sono identici fino
all'ultimo decimale. Poiché le necessarie approssimazioni di calcolo
possono portare a errori sugli ultimi decimali, si consiglia sempre di
usare, per quanto possibile, le condizioni '<=' o '>=' al posto del semplice
'='.
D. ELECTRON 185
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
Per esempio:
...
N10 Z10
N11 ...
...
N20!Z=Z-0.1!IFZ=0;GON30!
N21 ...
N22 ! GON11 !
...
N30 ...
Nella riga N20 è usata la condizione Z=0 per il salto a N30, ma il programma non funziona
perché ci sono le approssimazioni. 0.1 in binario (lo Z32 esegue tutti i calcoli in binario) è un
numero periodico e quindi approssimato: sottratto 100 volte a 10 può non dare esattamente zero.
Il modo giusto di programmare è di mettere nella riga N20 la condizione minore o uguale che
viene sempre trovata.
186 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
espressione matematica di programma-pezzo (che nel caso più semplice può essere una
costante).
La memoria permanente interessata può essere:
− sezione parametri
− sezione origini
− un parametro della descrizione utensile programmato (T)
− un parametro della descrizione utensile su mandrino (S)
Il nome del parametro del programma-pezzo può essere a 1 o 2 caratteri (il secondo non
numerico), oppure i parametri di sistema DDL e DDR, con le regole descritte nel paragrafo relativo
ai parametri. Quello della memoria permanente è sempre a 2 caratteri se si tratta di parametri e da
2 fino a 6 caratteri nel caso di origini, mentre può essere a 1 o 2 caratteri, oppure i parametri di
sistema DDL, DDR, DLX, DLZ, TAG, TAO e TRC se si tratta della descrizione dell'utensile.
D. ELECTRON 187
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
ATTENZIONE
La scrittura di sezioni locali di parametri-origini-utensili da part-program
non deve essere fatta se sulla stessa sezione locale possono agire più
part-program contemporaneamente.
188 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
ATTENZIONE
La scrittura di sezioni locali di parametri-origini-utensili da part-program
non deve essere fatta se sulla stessa sezione locale possono agire più
part-program contemporaneamente.
ATTENZIONE
La modifica del posto utensile è in generale una operazione da riservare al
costruttore della macchina utensile nei suoi sottoprogrammi speciali.
Una errata modifica del posto utensile può portare a collisioni al momento
del cambio.
D. ELECTRON 189
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
190 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
!:SSDDL=0!
richiede di scrivere nella descrizione dell'utensile sul mandrino, il parametro DDL al valore 0
Nel caso di origini:
G37OL (attiva la sezione locale delle origini, per esempio del file 30)
!:SOX1<123.67>! (scrive nella sezione locale del file 30 OX1=123,67)
5.5 ALTRI
D. ELECTRON 191
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
192 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
Il modo di caricamento del programma messo in atto dal programma DOS di supporto è un
modo particolarmente veloce (si possono scrivere qualche decina di kbyte/secondo) ma per questo
c'è un prezzo da pagare: il file introdotto nello Z32 non è permanente, ossia non permane dopo lo
spegnimento e riaccensione del PC. D'altra parte, essendo il file permanente su disco la limitazione
appare non molto importante.
ATTENZIONE
È possibile editare (con attività 5) un file introdotto con :L, ma i risultati
sono validi solo finché il CN resta alimentato: non è garantito il risultato
se si spegne e si riaccende il PC, il file risulta sempre nullo.
Sono stati aggiunti i seguenti messaggi errore relativi a :L:
CN4E14 ERRORE :L FILE SU DISCO
Segnala che il programma DOS ha trovato un errore di lettura nell'accesso al file selezionato.
Non c'è il dettaglio preciso dell'errore, che può essere di varia natura: file o directory inesistente,
disco non pronto, errore di accesso al disco .... È compito dell'operatore rimuovere l'errore.
CN4F14 ERRORE :L FILE Z32
Segnala che Z32 dà errore nella scrittura del file. Anche qui non c'è dettaglio preciso. L'errore
può derivare da varie cause: memoria piena, file impegnato nello Z32, errore di scrittura .... Anche
in questo caso è compito dell'operatore rimuovere l'errore.
CN5014 ERRORE :L SCONOSCIUTO
Segnala un malfunzionamento nel colloquio tra Z32 e il programma di supporto. Se il
programma DOS è corretto questo tipo di errore non deve mai presentarsi.
D. ELECTRON 193
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
194 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
Questo comando somiglia al comando ":L" ma ha il numero file (obbligatorio per questa
prestazione) 254.
Questo numero di file rappresenta l'ordine codificato di eseguire il part-program residente su
disco in DNC e non con una installazione in memoria.
Se il numero file è 254 si ha che:
- il file non viene installato nella memoria Z32 ma viene eseguito in DNC. Ciò significa che il
file può avere una lunghezza qualsiasi (compatibilmente con la disponibilità del disco rigido)
- si ha una immediata esecuzione del file in DNC, senza necessità di un successivo GOP...
(come è richiesto nel caso di files installati in memoria)
Si possono ottenere varie prestazioni, per esempio quella di ripetere l'esecuzione di un file molto
lungo in posizioni via via rototraslate.
Esempio:
...
N2 Z30
N3 X0 Y0
N4 G1 Z0F100
N5 F300
N6 !:L254-P4523.PRG!
N7 QR<QR+30>
N8 !IF QR<360;GON2!
N9 Z30
N10 M2
Le righe da N2 a N8 sono ripetute 6 volte, in 6 diverse angolature distanti 30 gradi l'una
dall'altra.
Alcune specifiche per il file di part-program:
carattere % non consentito
Non deve avere in testa il carattere "%" (quindi il commento iniziale, se c'è, deve essere
racchiuso entro parentesi tonde come specificato dalle norme ISO).
Per compatibilità con una prestazione non documentata delle interfacce NTERM e ZTERM, è
fatta eccezione esclusivamente ad un carattere % sulla prima riga e solo a fine riga, (si
raccomanda comunque di evitare l'uso del carattere % nei programmi da eseguire in DNC.
concatenazione di righe di part-program col carattere "$" non permessa
La concatenazione di più righe col carattere "$" non è consentita in part-program eseguiti in
DNC.
D. ELECTRON 195
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
Se il programma Windnc non trova la riga richiesta (sia N destinazione di salto che N ritorno di
salto) viene allarme CN8614 ERRORE SALTO O RITORNO IN DNC
carico/scarico programmi con funzioni :L
Durante una esecuzione in DNC (con la funzione evoluta :L254-…) è possibile usare al suo
interno funzioni di carico/scarico programmi con con l’istruzione :L che risultano “annidate” dentro
l'originaria funzione :L254 che introduce la trasmissione in DNC.
Questa prestazione è possibile solo se il programma che fornisce il file in DNC è sotto Windows
in cui il part-program in DNC sia gestito dal programma D.Electron "Windnc" (Windnc almeno
versione 4.5.4 del 22.10.08), mentre non è possibile se Windnc è con versione più vecchia oppure
per installazioni DOS con interfacce TERMS o ZTERM. Questa prestazione è supportata a partire
da versioni di software Z32 for Windows V12.1 del 12/1/09.
196 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
D. ELECTRON 197
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
! è il carattere di apertura e chiusura campo (è valido anche il ";", escluso inizio riga).
- :Pn1-n2 sono obbligatori.
- n1 ed n2 individuano i caratteri delle stringhe video di visualizzazione speciale (sono disponibili
due intere righe, quindi 160 caratteri al massimo.
- I caratteri a video tra n1 ed n2 compresi sono cancellati e sostituiti con i dati da visualizzare.
- Stringhe ed espressioni sono opzionali, possono essere ripetuti più volte in qualsiasi ordine,
fino a riempire il numero di caratteri predisposto (n1-n2).
- Non viene mai scritto fuori dal campo delimitato da n1-n2. Se la stampa è più lunga viene
troncata senza generare allarme.
- Le stringhe possono contenere tutti i caratteri stampabili, salvo il doppio apice che serve come
delimitatore.
- Le espressioni possono essere tutte quelle inseribili nel part-program.
- I risultati delle espressioni sono stampati senza zeri iniziali e con un massimo di 3 cifre
decimali. Il massimo risultato visualizzabile è 999999,999. Risultati superiori sono saturati al
massimo senza dare allarme CN.
- È possibile specificare la formattazione dei valori (risultato di espressione) con il punto
decimale anziché con la virgola programmando la specifica “/.” Immediatamente doto :P.
- Non ci sono spazi né prima né dopo i risultati delle espressioni. Eventualmente aggiungerli.
- Se n1 o n2 sono incongruenti, mancano i caratteri di delimitazione ecc. viene allarme CN1D14
ERRORE PROGRAMMA.
- Dopo che è stata richiesta una visualizzazione con :P le visualizzazioni da logica (PLC) sono
congelate (anche nella zona fuori da n1-n2).
- Per cancellare i dati visualizzati e riprendere le eventuali visualizzazioni di dati di logica (PLC)
si deve programmare nel part-program un campo di riga evoluta con la forma seguente:
!:P /R!
Esempi:
!:P0-30 "HA="[HA]" HB="[HB]!
Visualizza i due parametri HA e HB, con descrizione.
!IF HA<0;:P0-60"VALORE ERRATO DI HA = "[HA]!
Visualizza solo se HA<0
!:P20-80"Risultato: "[12*4-PAR[18]+CS(HB-30)]!
Visualizza il risultato dell'espressione
198 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
La stampa di :D avviene nelle righe delle visualizzazioni speciali (quelle che si attivano con
CTRL R-V) e che sono raramente utilizzate. Se sono attive le visualizzazioni CTRL R-V il contenuto
di :D viene momentaneamente non presentato.
La sintassi dell’istruzione :D è la stessa del precedente :P, l’unica differenza è il comando di
apertura del campo speciale che diventa :D (“D” coma Display):
!:D /. n1 - n2 "stringa" [espressione] ...!
per i dettagli fare riferimento alla sintassi della istruzione :P.
Esempi:
!:D0-30 "HA="[HA]" HB="[HB]!
Visualizza i due parametri HA e HB, con descrizione.
!IF HA<0;:D0-60"VALORE ERRATO DI HA = "[HA]!
Visualizza solo se HA<0
!:D20-80"Risultato: "[12*4-PAR[18]+CS(HB-30)]!
Visualizza il valore dell'espressione
!IF HA>40;:D /R!
Se HA>40 cancella le visualizzazioni :D
HA100,123
!:D/.0-20 “PARAM. HA=”[HA]!
Visualizzerà la riga: PARAM. HA=100.123
La sintassi normale è:
!:F /. nfile "stringa" [espressione] "stringa"...!
Dove:
La stringa viene accodata al file richiesto, l’espressione viene calcolata e accodata al file
richiesto.
Esempi:
HA 45
!:F12"Valore nel punto 4: "[HA*2]!
Nel file 12 viene scritta la stringa: Valore nel punto 4: 90
HA100,123
!:F/.40"PARAM. HA="[HA]!
D. ELECTRON 199
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
Più stringhe ed espressioni possono essere contenute nel campo, fino ad un massimo di 160
caratteri. Gli eventuali caratteri in eccesso sono ignorati.
Sono validi numeri file da 1 a 99, ma il file non può essere lo stesso che è in esecuzione
automatica.
L'istruzione di riga evoluta :F permette di scrivere, da part-program, stringhe ascii in un file
CMOS. Lo scopo di questa istruzione è principalmente quella di compilare report di controllo della
produzione.
Se la dimensione del file CMOS supera i 64KB per effetto di un istruzione :F, sono
automaticamente cancellati i dati iniziali del file, più vecchi, per fare posto ai più recenti.
Attenzione: è comunque buona norma fare in modo che il file non superi mai 64KB perché
l'operazione di cancellazione dei byte iniziali può essere relativamente lunga (anche oltre 1
secondo) e quindi rallentare l'esecuzione del part-program.
Con una sintassi speciale si può ottenere la cancellazione totale del file:
!:F nfile /R!
Esempio:
!:F90/R!
Esegue la cancellazione del file 90.
5.5.9 File documentazione ("DOC") per ricerca blocco con blocco opzionale
Una riga di programma che inizia col carattere “/” viene eseguita da Z32 solo se è abilitata
dall’apposito selettore (blocco opzionale).
Se durante l’esecuzione lo stato del selettore non è fisso ma viene cambiato dall’operatore in
funzione delle sue esigenze risulta poi impossibile la ricerca blocco perché, anche se l’operatore
ricorda le scelte fatte durante l’esecuzione, è praticamente impossibile manovrare il selettore con la
rapidità che sarebbe necessaria.
È stata ora introdotta la possibilità di generare un file di “documentazione”, che registra i
comandi dati dall’operatore durante l’esecuzione. Queste informazioni rimangono memorizzate nel
file e sono utilizzate in ricerca blocco per ripetere le scelte.
Per compatibilità col funzionamento precedente la nuova modalità di esecuzione e ricerca
blocco è attivata da uno speciale comando contenuto nel part-program. Se questo comando manca
il funzionamento è identico al precedente, sia in esecuzione che in ricerca blocco.
Il funzionamento del file documentazione è diverso in esecuzione, quando il file viene scritto con
le scelte dell’operatore, e in ricerca blocco, quando le scelte fatte dall’operatore vengono lette dal
file.
Gli eventi che coinvolgono il file documentazione sono:
- comando iniziale di attivazione
- riga con blocco opzionale
- inizio sezione di programma
Attivazione del file “DOC”
L’attivazione del file “DOC” si ha col campo di riga evoluta:
!DOC>nnn!
DOC è il comando di attivazione del file di documentazione
200 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
D. ELECTRON 201
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
durante la lettura dal file DOC si rilevano errori il funzionamento passa a quello del file DOC
con errore come descritto al prossimo paragrafo
- se il file DOC è attivo (ossia nel programma è stata incontrata l’istruzione !DOC>...!) ma con
errore viene generato uno STOP (come con M0) per consentire all’operatore di ripetere la
scelta. La lettura dello stato del selettore del blocco opzionale e quindi la scelta se eseguire
o non eseguire la riga viene fatta quando viene premuto START per continuare la ricerca.
Sezionamento programma
Il sezionamento programma, che è ottenuto con una riga che inizia col carattere “:” seguito dal
numero sezione, consente una ricerca blocco molto più rapida, ma i blocchi opzionali nelle sezioni
che vengono “saltate” non vengono riconosciuti né decodificati.
Deve quindi essere opportunamente gestito nel file DOC per consentire la sincronizzazione del
puntatore in lettura con l’inizio sezione.
In esecuzione la riga di sezionamento genera nel file DOC una riga composta dal carattere “:” e
da cinque numeri che identificano la sezione. Sono scritti anche gli eventuali zeri iniziali.
Per esempio, la riga di part-program:
:456
genera una riga nel file DOC:
:00456
In ricerca blocco la riga di sezionamento richiede nel file DOC la ricerca della riga
corrispondente. La lettura delle scelte operatore riprende con le righe che seguono
immediatamente la riga di sezionamento.
Se il file DOC è in errore la riga di sezionamento viene ignorata ai fini del file DOC: le scelte
relative al blocco opzionale saranno comunque richieste all’operatore con uno STOP programma.
Esempio di part-program e di file DOC relativo
Esempio di part-program con attivazione di file DOC, installato nel file 4:
PROVE FILE DOC%
!DOC>102!
F500
G1X0Y0Z0
/X10
Y5
/X25
Y10
:4567
G0X0Y0Z0
/G1X20
Y10
M2
Dopo l’esecuzione di questo part-program, con blocco opzionale disabilitato, il file 102 (file DOC)
è il seguente:
DOC FILE PRG NR 004 21.08.99 16:37
0
0
:04567
202 D. ELECTRON
CNC Z32 Programmazione Cap.5 - Righe evolute, salti, condizionamenti, Read/Write
0
Gli “0” corrispondenti ai blocchi opzionali si trasformano in “1” se il selettore di blocco opzionale
è attivo in esecuzione.
D. ELECTRON 203
Cap.5 - Righe evolute, salti, condizionamenti, Read/Write CNC Z32 Programmazione
Se il numero non è accettabile (per esempio potrebbe essere un numero con troppe cifre
significative) compare un carattere "?" a destra che invita l'operatore a correggere il dato.
Collegato all'istruzione di input c’è l’allarme CN6314 <IN:...> STRINGA NON VALIDA.
L'introduzione del parametro è attiva sia in esecuzione che in ricerca blocco.
Per la ricerca blocco è interessante il collegamento delle istruzioni di INPUT col file DOC (che è
attivato con l'istruzione !DOC>numerofile!).
Se il file DOC non è attivo durante la ricerca blocco viene richiesto l'INPUT esattamente nello
stesso modo come richiesto durante l'esecuzione.
Se il file DOC è attivo durante l'esecuzione il parametro viene registrato nel file DOC in modo
tale da essere disponibile per l'eventuale ricerca blocco.
In ricerca blocco se il file DOC è attivo l'INPUT viene preso dal file DOC, ma se il file DOC risulta
corrotto o incongruente l'INPUT viene richiesto all'operatore, come nel caso di file DOC non attivo.
204 D. ELECTRON
CNC Z32 Programmazione Cap.6 - Funzioni di programmazione strutturata
CAPITOLO 6
D. ELECTRON 205
Cap.6 - Funzioni di programmazione strutturata CNC Z32 Programmazione
206 D. ELECTRON
CNC Z32 Programmazione Cap.6 - Funzioni di programmazione strutturata
D. ELECTRON 207
Cap.6 - Funzioni di programmazione strutturata CNC Z32 Programmazione
--IF condizione1
--IF condizione2
--IF condizione3
G26
--END IF
--END IF
--END IF
In questo caso il ritorno dal sottoprogramma G26 avviene correttamente al livello 3 di IF nel
sottoprogramma, i due livelli di IF più bassi sono scartati e l'esecuzione riprende nel programma o
sottoprogramma chiamante al corretto livello di IF del chiamante.
Una M2 (fine programma) può essere eseguita a livello di IF non zero. Per esempio è corretto:
--IF condizione1
M2
--END IF
Se viene programmato END IF senza che ci sia un IF aperto viene allarme CN6B14 END DI IF
SENZA IF
Analogamente, se viene programmato ELSE o ELSEIF senza che ci sia un IF aperto viene
allarme CN7314 ELSE O ELSEIF SENZA IF
ATTENZIONE: se il file termina durante un IF che non viene eseguito si possono avere allarmi
vari di difficile interpretazione. Vedere l'istruzione strutturata --OUT che aiuta nella comprensione di
questi casi.
È consentita la presenza contemporanea di istruzioni strutturate --IF e di istruzioni di salto non
strutturato (!GON…!) nello stesso file, questo permette una notevolissima flessibilità di
programmazione. Deve essere però cura del programmatore evitare che eventuali salti !GON…!
provochino uscite o ingressi indebiti da o in strutture --IF. Per esempio può dare errore questo
programma:
!GON1!
--IF condizione
N1 ...
--END IF
...
M2
La riga N1 fa uscire dalla struttura di IF in modo incontrollato, l'END IF arriva quando lo IF non è
stato correttamente aperto e quindi viene errore di programmazione.
Il salto a un sottoprogramma azzera la condizione di strutturato/non strutturato, quindi è
possibile da un programma con istruzioni strutturate saltare a un sottoprogramma che contiene
istruzioni tipo !GON… e viceversa.
È anche lecito, da un programma che contiene istruzioni strutturate, eseguire un salto a un
sottoprogramma con specifica della riga o di una serie di righe. Per esempio sono leciti:
--IF condizione
!GOP10-N35!
--END IF
oppure:
--IF condizione
!GOP10-N35-N70!
--END IF
208 D. ELECTRON
CNC Z32 Programmazione Cap.6 - Funzioni di programmazione strutturata
D. ELECTRON 209
Cap.6 - Funzioni di programmazione strutturata CNC Z32 Programmazione
210 D. ELECTRON
CNC Z32 Programmazione Cap.6 - Funzioni di programmazione strutturata
di programmazione. Deve essere però cura del programmatore evitare che eventuali salti !GON…!
provochino uscite o ingressi indebiti da o in strutture --DO.
D. ELECTRON 211
Cap.6 - Funzioni di programmazione strutturata CNC Z32 Programmazione
212 D. ELECTRON
CNC Z32 Programmazione Cap.6 - Funzioni di programmazione strutturata
impedita altrimenti si potrebbero avere malfunzionamenti. Per esempio, prendiamo questo schema
di programma:
--DEFINE P4
...
N1 G1 Z<Z-5>
...
G26
--END DEFINE
G0 X0 Y0 Z0
N1 ...
...
N20 !GON1!
...
Nel programma ci sono due righe N1, una dentro il DEFINE ed una fuori. La destinazione di
salto della riga N20 (!GON1!) non può essere la riga N1 dentro il DEFINE, questa è scartata perché
contenuta in un DEFINE, e quindi viene raggiunta la seconda riga N1 (fuori dal DEFINE) che è
verosimilmente la destinazione corretta.
ATTENZIONE: NON scrivere MAI righe --DEFINE o --END DEFINE spurie all'interno di un file!
Per valutare se una destinazione di salto (GON..) è o no dentro un DEFINE non viene fatta
un'analisi completa del file, ma sono solo cercate nel file le righe che contengono --DEFINE o --
END DEFINE (senza indagare se sono eseguibili o no) e la decisione se scartare o no la riga
trovata viene presa non appena si raggiunge una certezza.
Se il file contiene righe --DEFINE o --END DEFINE spurie si possono prendere decisioni
sbagliate. Esempio:
COMMENTO INIZIALE: IN QUESTO FILE NON SONO CONTENUTE RIGHE DEL TIPO:
--DEFINE
QUI INIZIA IL PROGRAMMA
%
...
N1 G0 X0
...
N4!GON1!
La riga N1, corretta destinazione di salto della riga N4, viene scartata perché l'analisi rapida
"vede" una riga di inizio DEFINE prima della riga N1 e quindi la scarta, senza accorgersi che quel
DEFINE è contenuto nel commento iniziale.
D. ELECTRON 213
Cap.6 - Funzioni di programmazione strutturata CNC Z32 Programmazione
Scopo di questa istruzione è rendere più chiaro il fatto che c'è stato un tentativo di leggere oltre
la fine del file. Se la programmazione è corretta questa riga è del tutto inutile.
Se però questa riga non viene inserita e c'è un errore di programmazione tale da proseguire la
lettura del programma oltre fine file (per esempio: un IF con condizione non vera che non è chiuso
dallo END IF, un GOTO a una LN che non viene trovata, un DEFINE senza un END DEFINE) si ha:
- nel caso di esecuzione da file interno, viene un errore CN1D14 ERRORE PROGRAMMA su
una riga nulla, perché viene letto il carattere 04 hex di chiusura del file che non è ammesso nelle
righe di un part-program
- nel caso di esecuzione da file interno con file chiuso irregolarmente (mancante di carattere 04
hex) viene un errore CMOS 5, lettura oltre fine file. Nota: il file di Z32 può essere chiuso
irregolarmente (mancante di carattere 04 hex) se è creato con un editor esterno, e viene inviato a
Z32 con i normali mezzi di comunicazione
- nel caso di esecuzione da DNC si ha un arresto in attesa di ulteriori istruzioni
In nessuno di questi casi è facile capire immediatamente che si sta leggendo oltre fine file: se si
inserisce la riga --OUT, che da' un errore programma e viene evidenziata come riga errata, si ha
una migliore comprensione del problema.
Questa riga deve essere inserita a fine file, dopo l'ultima istruzione eseguibile (normalmente M2
o G26). Per esempio:
M2
-- OUT
oppure:
G26
-- OUT
214 D. ELECTRON
CNC Z32 Programmazione Cap.6 - Funzioni di programmazione strutturata
D. ELECTRON 215
Cap.6 - Funzioni di programmazione strutturata CNC Z32 Programmazione
216 D. ELECTRON
CNC Z32 Programmazione Cap.6 - Funzioni di programmazione strutturata
Le subtemp sono sempre di utente, quindi da una subtemp non sono utilizzabili le risorse
protette di sistema.
8) Da una subtemp non si possono attivare sezioni locali di utensili, origini, parametri
All'interno di una subtemp non sono attivabili le sezioni locali utensili, origini, parametri.
Si ricorda che le sezioni locali si attivano, da un file CMOS, con le istruzioni G37TL (utensili),
G37OL (origini) e G37PL (parametri); se si usano queste istruzioni in una subtemp viene allarme
CN7914 ERRORE SUB TEMPORANEE.
9) Non è possibile la ricerca blocco con stringa all'interno di una subtemp
Non è possibile una ricerca blocco con stringa all'interno di una subtemp, ossia non c'è il
corrispondente del comando P… dell'attività 3 di ricerca blocco.
D. ELECTRON 217
Cap.6 - Funzioni di programmazione strutturata CNC Z32 Programmazione
218 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
CAPITOLO 7
Passaggio di parametri:
Il passaggio di parametri è effettuabile programmando i parametri da passare sulla stesa riga di
programma dove è programmata la G800. Nella riga di programma dove è presente una G800 non
è possibile programmare parametri diversi da quelli accettati per la programmazione dei cicli fissi.
Ad esempio, riferendosi al ciclo G800K1, è possibile impostare i parametri programmando:
G800 MHA0 MHB-20 MHC10
Un esempio di programmazione non corretta è la seguente:
G800 MHA0 MHB-20 MHC10 F1000
Dato che il parametro F non è espressamente programmabile nella riga della G800, la scrittura
corretta è la seguente:
F1000
G800 MHA0 MHB-20 MHC10
D. ELECTRON 219
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
e
G800 MHA0 MHB-20 MHC10 (programmazione parametri)
G800K1 (attivazione ciclo)
220 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MHA: quota di inizio foro
MHB: quota di fine foro
MHC: quota di uscita lunga
Descrizione ciclo:
1. Posizionamento in rapido nel piano
2. Avanzamento in rapido fino alla quota di inizio foro MHA
3. Eventuale avanzamento in lavoro a feed MHF fino alla quota MHD
4. Avanzamento in lavoro a feed F fino alla quota MHB
5. Eventuale sosta per MHT secondi
6. Ritorno rapido alla quota MHC
feed MHF
feed F MHC
G0
MHA
MHD
MHB
MHT
D. ELECTRON 221
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
MHA: quota di inizio foro
MHB: quota di fine foro
MHC: quota di uscita lunga
MHI: incremento in profondità prima dell’arresto per rottura truciolo
Tipo di gestione della rottura truciolo:
MHR: valore di distacco per rottura truciolo
se MHR > 0 si esegue il distacco e MHT viene ignorato
MHT: tempo di sosta per rottura truciolo
Deve essere programmato o MHR o MHT in funzione della tipologia di rottura truciolo
che si desidera.
Descrizione ciclo:
1. Posizionamento in rapido nel piano
2. Avanzamento in rapido fino alla quota di inizio foro MHA
3. Eventuale avanzamento a feed MHF fino alla quota MHD
4. Movimento in lavoro a feed F fino a raggiungere la quota MHB con rottura truciolo ogni
MHI mm, mediante:
- distacco dalla quota raggiunta di MHR mm se MHR > 0
- sosta di MHT secondi se MHR=0 e MHT>0
5. Ritorno rapido alla quota MHC
feed MHF
MHC
feed F
G0
MHA
MHR
MHI
MHB
222 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MHA: quota di inizio foro
MHB: quota di fine foro
MHC: quota di uscita lunga
MHI: incremento in profondità prima del ritorno per scarico truciolo.
Tale incremento viene ridotto in percentuale del 10% ad ogni movimento fino al
raggiungimentz del 50% del valore MHI iniziale, dopo di che si hanno incrementi
costanti.
MHZ: quota di scarico truciolo
Descrizione ciclo:
1. Posizionamento in rapido nel piano
2. Avanzamento in rapido fino alla quota di inizio foro MHA
3. Eventuale avanzamento in lavoro a feed MHF fino alla quota MHD
4. Movimento in lavoro a feed F per una lunghezza MHI
5. ritorno rapido alla quota di scarico truciolo MHZ
6. Eventuale sosta per un tempo MHT
7. Ritorno in rapido fino ad una distanza di sicurezza MHS dalla quota precedentemente
raggiunta
8. Movimento in lavoro per una lunghezza MHI ridotta in percentuale.
L'incremento in profondità viene ogni volta ridotto del 10 % fino a raggiungere il 50 % del
valore iniziale dopo di che si hanno incrementi costanti
9. I punti 5 , 6 , 7 , 8 vengono ripetuti fino a raggiungere la quota di fine foro MHB.
10. Ritorno rapido alla quota MHC
feed MHF
MHC
feed F
MHT
G0
MHZ
MHA
MHD
MHI
MHS
MHB
D. ELECTRON 223
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
MHA: quota di inizio foro
MHB: quota di fine foro
MHC: quota di uscita lunga
MHP: passo del maschio in millimetri, esempio MHP 1.25
MHM: tipo di maschiatura, rigida o con compensatore
MHM = 0: maschiatura rigida
MHM = 1: maschiatura con compensatore
MHP
G0 MHC
MHA
MHB
MHT MHW
224 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MHA: quota di inizio foro
MHB: quota di fine foro
MHC: quota di uscita lunga
Descrizione ciclo:
1. Posizionamento in rapido nel piano
2. Avanzamento in rapido fino alla quota di inizio foro MHA
3. Avanzamento in lavoro fino alla quota MHB
4. Eventuale sosta per MHT secondi
5. Ritorno in lavoro alla quota MHA
6. Ritorno rapido fino quota MHC se diversa da MHA
feed F
G0 MHC
MHA
MHB
MHT
D. ELECTRON 225
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
MHA: quota di inizio foro
MHB: quota di fine foro
MHC: quota di uscita lunga
Descrizione ciclo:
1. Posizionamento in rapido nel piano
2. Avanzamento in rapido fino alla quota di inizio foro MHA
3. Avanzamento in lavoro fino alla quota MHB
4. Eventuale sosta per MHT secondi
5. Se MHS=0 arresto mandrino ed eventuale sosta per MHW secondi
se MHS>0 orientamento mandrino, distacco di MHS mm lungo l'angolo MHQ
6. Ritorno rapido fino alla quota MHC
se MHS > 0 ritorno rapido in centro foro
7. Ripristino senso rotazione mandrino
feed F
MHC
G0
MHA
MHB
Stop
HS
M
MHG
226 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MHA: quota inizio foro
MHB: quota fine foro
MHC: quota uscita lunga
MHI: incremento dopo il quale fermarsi per rompere il truciolo
Tipo di gestione della rottura truciolo:
MHR: valore di distacco per rottura truciolo
se MHR > 0 si esegue il distacco e MHT viene ignorato
MHT: tempo di sosta per rottura truciolo se MHR = 0
Deve essere programmato o MHR o MHT in funzione della tipologia di rottura truciolo
che si desidera.
MHU: quota fine zona rottura truciolo - inizio zona scarico truciolo
MHL: incremento in profondità prima del ritorno per scarico truciolo
L'incremento viene ogni volta ridotto del 10% fino a raggiungere il 50% del valore
iniziale dopo di che s hanno incrementi costanti
MHZ: quota di scarico truciolo
Descrizione ciclo:
1. Posizionamento in rapido nel piano
2. Movimento in rapido fino alla quota di inizio foro MHA
3. Eventuale avanzamento a feed MHF fino alla quota MHD
4. Avanzamento in lavoro a feed F fino a raggiungere la quota MHU con rottura truciolo ogni
MHI mm, mediante:
- distacco dalla quota raggiunta di MHR mm se MHR > 0
- sosta di MHT secondi se MHR=0 e MHT > 0
5. Avanzamento in lavoro per una lunghezza pari a MHL
6. Ritorno rapido alla quota di scarico truciolo MHZ
7. Eventuale sosta per un tempo MHW
8. Ritorno in rapido fino ad una distanza di sicurezza MHS dalla quota precedentemente
raggiunta
9. Avanzamento in lavoro per una lunghezza MHL ridotta in percentuale.
L'incremento in profondità viene ogni volta ridotto del 10% fino a raggiungere il 50%
del valore iniziale dopo di che si hanno incrementi costanti.
10. I punti 6, 7, 8, 9 vengono ripetuti fino a raggiungere la quota di fine foro MHB.
11. Ritorno rapido alla quota MHC
D. ELECTRON 227
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
feed MHF
MHC
feed F
MHT
G0
MHA MHZ
MHD
MHI
MHU
MHL
MHS
MHB
Parametri obbligatori:
MHA: quota inizio foro
MHB. quota fine foro
MHC: quota uscita lunga
MHU: quota fine prima parete
MHV: quota inizio seconda parete
Descrizione ciclo
1. Posizionamento in rapido nel piano
2. Avanzamento in rapido fino alla quota di inizio foro MHA
3. Eventuale avanzamento a feed MHF fino alla quota MHD
4. Avanzamento in lavoro a feed F fino a raggiungere la quota HU con eventuale rottura
truciolo ogni MHI mm, mediante:
distacco dalla quota raggiunta di MHR mm se MHR > 0
sosta di MHT secondi se MHR=0 e MHT > 0
5. Rapido fino alla quota MHV
6. Avanzamento in lavoro a feed F fino a raggiungere la quota MHB con eventuale rottura
truciolo ogni MHI mm, mediante :
228 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
feed MHF
MHC
feed F
G0
MHA
MHD
MHI
MHU
MHV
MHI
MHB
Parametri obbligatori:
MHA: quota inizio foro
MHB: quota fine foro
MHC: quota uscita lunga
Zona intermedia:
MHU: quota fine zona alta - inizio zona intermedia
(MHJ): velocità di lavoro nella zona intermedia. Se MHJ=0, la Feed della zona intermedia è
uguale alla Feed della zona alta
(MHG): Speed nella zona intermedia. Se MHG=0, la Speed della zona intermedia è uguale
alla Speed della zona alta
D. ELECTRON 229
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Deve essere programmato o MHR o MHT in funzione della tipologia di rottura truciolo
che si desidera.
Descrizione ciclo
1. Posizionamento in rapido nel piano
2. Avanzamento in rapido fino alla quota di inizio foro MHA
3. Eventuale avanzamento a feed MHF fino alla quota MHD
4. Avanzamento in lavoro a feed F fino a raggiungere la quota MHU con eventuale rottura
truciolo ogni MHI mm, mediante:
distacco dalla quota raggiunta di MHR mm se MHR > 0
sosta di MHT secondi se MHR=0 e MHT > 0
5. Se MHG > 0 distacco di MHS mm dalla quota MHU, attivazione di MHG e sosta di MHW
secondi per attendere mandrino a regime
6. Avanzamento in lavoro a feed MHJ fino a raggiungere la quota MHV con eventuale rottura
truciolo ogni MHI mm, mediante:
distacco dalla quota raggiunta di MHR mm se MHR > 0
sosta di MHT secondi se MHR=0 e MHT > 0
7. Se MHH > 0 distacco di MHS mm dalla quota MHV, attivazione di MHH e sosta di MHW
secondi per attendere mandrino a regime
8. Avanzamento in lavoro a feed MHK fino a raggiungere la quota MHB con eventuale
rottura truciolo ogni MHI mm, mediante:
distacco dalla quota raggiunta di MHR mm se MHR > 0
sosta di MHT secondi se MHR=0 e MHT > 0
9. Ritorno rapido alla quota MHC
MHD
MHI
MHU
MHI
MHV
MHI
MHB
230 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MHB: quota fine foro
MHC: quota uscita lunga
MHD: diametro del foro
MHD > 0: lavorazione in senso antiorario (G3)
MHD < 0: lavorazione in senso orario (G2)
Descrizione ciclo
1. Posizionamento in rapido nel piano a centro foro
2. Se MHK > 0, attacco alla lavorazione alla quota MHA e discesa con moto a spirale fino al
raggiungimento della quota MHB.
La discesa viene effettuata incrementando la profondità di MHK a giro.
Se MHK = 0, discesa in lavoro fino alla quota MHB, attacco al profilo e lavorazione di
contornitura con un singolo giro.
Le passate di contornitura sono effettuate in senso orario o antiorario con il seguente
criterio:
MHD > 0: lavorazione in senso antiorario (G3)
MHD < 0: lavorazione in senso orario (G2)
3. Distacco dalla parete e ritorno a centro foro
4. Ritorno rapido alla quota MHC
MHD > 0
MHC
MHA
MHK
MHB
D. ELECTRON 231
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
MHB: quota fine perno
MHC: quota uscita lunga
MHD: diametro del perno
MHD > 0: lavorazione in senso antiorario (G3)
MHD < 0: lavorazione in senso orario (G2)
Descrizione ciclo
1. Posizionamento in rapido nel piano sul centro perno
2. Posizionamento sul punto di attacco, ad una distanza MHS dalla superficie del perno
3. Se MHK > 0, attacco alla lavorazione alla quota MHA e discesa con moto a spirale fino al
raggiungimento della quota MHB.
La discesa viene effettuata incrementando la profondità di MHK a giro.
Se MHK = 0, discesa in lavoro fino alla quota MHB, attacco al profilo e lavorazione di
contornitura con un singolo giro.
Le passate di contornitura sono effettuate in senso orario o antiorario con il seguente
criterio:
MHD > 0: lavorazione in senso antiorario (G3)
MHD < 0: lavorazione in senso orario (G2)
4. Distacco dalla parete
5. Ritorno rapido alla quota MHC
6. Ritorno a centro perno
MHD > 0
MHS
MHD
MHD < 0
MHC
MHA
MHK
MHB
232 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Passaggio di parametri:
Il passaggio di parametri è effettuabile programmando i parametri da passare sulla stesa riga di
programma dove è programmata la G801. Nella riga di programma dove è presente una G801 non
è possibile programmare parametri diversi da quelli accettati per la programmazione dei cicli fissi.
Ad esempio, riferendosi al ciclo G801K1, è possibile impostare i parametri programmando:
G801 MPX0 MPY0 MPJ10 MPK5 MPN5
Dato che il parametro F non è espressamente programmabile nella riga della G801, la scrittura
corretta è la seguente:
F1000
G801 MPX0 MPY0 MPJ10 MPK5 MPN5
La programmazione dei parametri e l’attivazione della macro è possibile sulla stessa riga o su
righe diverse.
Ad esempio sono equivalenti le seguenti istruzioni
G801K1 MPX0 MPY0 MPJ10 MPK5 MPN5 (programmazione parametri e
attivazione macro)
e
G801 MPX0 MPY0 MPJ10 MPK5 MPN5 (programmazione parametri)
G801K1 (attivazione macro)
D. ELECTRON 233
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Al termine della lavorazione i parametri del ciclo vengono azzerati, pertanto se si desidera
richiamare una nuova lavorazione, i parametri devono essere riprogrammati.
Nel caso in cui si utilizzi la macro di posizionamento per posizionare una lavorazione contenuta
in un file CMOS, è possibile abilitare la rotazione del il part-program durante i posizionamenti
(vedere l’esempio alla fine della descrizione delle macro di posizionamento).
È possibile inoltre non eseguire il posizionamento su un certo numero di punti a scelta del
programmatore:
il parametro FN determina quanti sono i punti che si desidera saltare. I valori inseriti nei
parametri PAR (da PAR[1] fino a PAR[FN]) determinano quali posizionamenti non effettuare.
La numerazione dei punti da saltare segue l’ordine con cui verranno eseguiti i posizionamenti.
Nota: Se si utilizza una macro di posizionamento per ripetere una lavorazione contenuta
all’interno di un file CMOS, il controllo farà uso dei parametri DA, DB e QR per traslare e ruotare la
lavorazione sui vari punti di posizionamento. Dovrà essere cura di chi struttura il programma di non
fare uso di tali funzionalità in modo da non entrare in contrasto con la macro di posizionamento.
234 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MPX, MPY: coordinate del punto iniziale
MPJ, MPK: incrementi sul primo e sul secondo asse del piano
MPN: numero di punti
MPK
MPX 0
MPJ
MPY
7.2.2 G801K2: LINEA DATI PUNTO INIZIALE, ANGOLO E DISTANZA FRA I PUNTI
Parametri obbligatori:
MPX, MPY: coordinate del punto iniziale
MPG: angolo di inclinazione della retta
MPP: distanza tra i punti
MPN: numero di punti
D. ELECTRON 235
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
P
MP
0 MPG
MPX
MPY
Parametri obbligatori:
MPX, MPY: coordinate del punto iniziale
MPA, MPB: coordinate del punto finale
MPN: numero di punti
MPB
MPX 0
MPA
MPY
236 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MPX, MPY: coordinate del punto iniziale
MPJ, MPK: incrementi sulla riga
MPV, MPW: incrementi sulla colonna
MPN: numero di punti sulla riga
MPM: numero di punti sulla colonna
MPV
MPJ
MPK
MPW
MP M
MPY
MPN
0 MPX
Parametri obbligatori:
MPX, MPY: coordinate del punto iniziale
MPP: distanza tra i punti sulla riga
MPG: angolo delle righe rispetto al primo asse del piano
MPQ: distanza tra i punti sulla colonna
MPT: angolo delle colonne rispetto al primo asse del piano
MPN: numero di punti sulla riga
MPM: numero di punti sulla colonna
D. ELECTRON 237
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MPT
MPP
MPQ
MP M
MPG
MPY
MPN
0 MPX
Parametri obbligatori:
MPX, MPY: coordinate del punto iniziale della prima riga
MPA, MPB: coordinate del punto finale della prima riga, punto iniziale dell’ultima colonna
MPC, MPD: coordinate del punto finale dell’ultima colonna
MPN: numero di punti sulla riga
MPM: numero di punti sulla colonna
MPD
MP M
MPB
MPY
MPN
238 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MPX, MPY: coordinate del centro della circonferenza
MPC: raggio della circonferenza (valore positivo o negativo)
Se MPC è positivo, i posizionamenti avvengono in senso antiorario
Se MPC è negativo, i posizionamenti avvengono in senso orario
MPA: angolo iniziale
MPN: numero di punti
MPL
MPA
MPY
MPC
0 MPX
D. ELECTRON 239
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
MPX, MPY: coordinate del centro della circonferenza
MPC: raggio della circonferenza (valore positivo o negativo)
Se MPC è positivo i posizionamenti vengono fatti in senso antiorario
Se MPC è negativo i posizionamenti vengono fatti in senso orario
MPA: angolo iniziale
MPN: numero di punti
MPP
MPA
MPY
MPC
0 MPX
240 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
MPX, MPY: coordinate del centro della circonferenza
MPC: raggio della circonferenza (valore positivo o negativo)
Se MPC è positivo i posizionamenti vengono fatti in senso antiorario
Se MPC è negativo i posizionamenti vengono fatti in senso orario
MPA: angolo iniziale
MPB: angolo finale
Se MPA = MPB, i punti vengono suddivisi sull’interna circonferenza a partire
dall’angolo iniziale.
MPN: numero di punti
M
PB
M PA
MPY
MPC
0 MPX
D. ELECTRON 241
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
MPX, MPY: coordinate del centro del rettangolo
MPG: angolo rotazione rettangolo
MPN: numero di punti sulla base del rettangolo
MPP: distanza fra i punti sulla base
MPM: numero di punti sull'altezza del rettangolo
MPQ: distanza fra i punti sull'altezza
MPP
MPQ
MPG
MPY
MP
M
N
MP
MPX
0
Parametri obbligatori:
MPX, MPY: coordinate del centro del rettangolo
MPG: angolo rotazione rettangolo
MPN: numero di punti sulla base del rettangolo
MPL: base del rettangolo
MPM: numero di punti sull'altezza del rettangolo
MPH: altezza del rettangolo
242 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
L
MP
MP
H
G
MP
MPY
MP
M
N
MP
MPX
0
Parametri obbligatori:
MPX, MPY: coordinate dello spigolo in basso a sinistra
MPG: angolo rotazione rettangolo
MPN: numero di punti sulla base del rettangolo
MPP: distanza tra i punti sulla base
MPM: numero di punti sull'altezza del rettangolo
MPQ: distanza tra i punti sull’altezza
P
MP
MP
Q
MPG
MP
M
MPY MPN
MPX
0
D. ELECTRON 243
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
MPX, MPY: coordinate dello spigolo in basso a sinistra
MPG: angolo rotazione rettangolo
MPN: numero di punti sulla base del rettangolo
MPL: base del rettangolo
MPM: numero di punti sull'altezza del rettangolo
MPH: altezza del rettangolo
L
MP
MP
H
G
MP
MP
M
N
MPY MP
MPX
0
244 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Passaggio di parametri:
Il passaggio di parametri è effettuabile programmando i parametri da passare sulla stesa riga di
programma dove è programmata la G802. Nella riga di programma dove è presente una G802 non
è possibile programmare parametri diversi da quelli accettati per la programmazione dei cicli fissi.
Rispetto alle G800 e G801, nella programmazione della G802 è possibile programmare le quote
degli assi continui per definire il punto di riferimento della macro (ad esempio il centro di una cava)
Ad esempio, riferendosi al ciclo G802K1, è possibile impostare i parametri programmando:
G802 X10 Y10 MMA0 MMB-20 MMC10
Dato che il parametro F non è espressamente programmabile nella riga della G802, la scrittura
corretta è la seguente:
F1000
G802 X10 Y10 MMA0 MMB-20 MMC10
La programmazione dei parametri e l’attivazione del ciclo fisso è possibile sulla stessa riga o su
righe diverse.
Ad esempio sono equivalenti le seguenti istruzioni
G802K1 X10 Y10 MMA0 MMB-20 MMC10 (programmazione parametri e
attivazione ciclo)
e
G802 X10 Y10 MMA0 MMB-20 MMC10 (programmazione parametri)
G802K1 (attivazione ciclo)
Al termine della lavorazione i parametri del ciclo vengono azzerati, pertanto se si desidera
richiamare una nuova lavorazione, i parametri devono essere riprogrammati.
D. ELECTRON 245
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Ad esempio:
G802 MMA0 MMB-30 MMC10 MMD60
G802K1 HX1 MMK1 MME2 MMW1 MMQ4
Si può notare che non sono programmate le quote del centro cava
La sospensione del ciclo fisso si opera con la funzione G27X (vedi introduzione ai cicli fissi
G800).
Usando una macro di lavorazione in congiunzione con una macro di posizionamento è possibile
utilizzare la rotazione della lavorazione (parametro MHR).
246 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Ciclo di svuotamento:
- Lo svuotamento avviene partendo dal centro verso l’esterno con movimento a spirale.
- La feed di lavoro nel piano è pari al parametro F
- La distanza tra le varie passate nel piano è funzione del parametro MMP, che definisce la
sovrapposizione tra le passate.
- Le passate nel piano possono essere effettuate in senso antiorario o in senso orario. Se il
parametro MMJ è pari a 0 le passate sono eseguite in senso antiorario (lavorazione in
concordanza con utensile che gira in M3), se MMJ è 1, le passate sono eseguite in senso
orario (lavorazione in discordanza con utensile che gira in M3).
- Il parametro MMS definisce il sovrametallo da lasciare.
- Se il parametro MMV è posto uguale ad 1, a fine svuotamento viene effettuata un’ulteriore
passata nel piano che toglie il sovrametallo MMS programmato. Questa eventuale ulteriore
passata viene eseguita con attacco e distacco circolare.
Incremento di passata:
-L’incremento di passata in profondità (parametro MMK) può essere eseguito a centro cava
in un preforo oppure con discesa in rampa.
Se il parametro MMW è 0, alla fine di ogni passata nel piano, l’utensile si stacca dalla
superficie lavorata di una quantità pari alla distanza di sicurezza (parametro MME), si
posiziona in rapido in centro cava ed effettua l’incremento di passata con feed pari a MMF.
Se il parametro MMW è 1, l’incremento di passata avviene con discesa in rampa. Il
parametro MMQ indica la pendenza massima della rampa. A seconda dell’ incremento di
passata da effettuare e del massimo angolo di rampa MMQ, la discesa viene effettuata con
un movimento a spirale intorno al centro cava con feed pari a MMF. Se il parametro MMQ
è nullo, la discesa viene effettuata con un unico movimento.
Sono utilizzabili utensili cilindrici e utensili torici. Il parametro R definisce il raggio fresa, nel
caso di utensili torici, il parametro MMU definisce il raggio dell’inserto.
Parametri obbligatori:
coordinate del centro cava (programmate con le quote degli assi)
MMD: diametro della cava
MMA: quota di inizio cava
MMB: quota di fine cava
MMC: quota di ritorno alto
MMK: profondità di passata
MME: distanza di sicurezza
D. ELECTRON 247
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MMP MMJ=0
AA, AB
MMJ=1
MMD
R MMC
MMS MME
MMA
MMK
MMB
MMU MMN
248 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Ciclo di svuotamento:
- Lo svuotamento avviene partendo dal centro verso l’esterno con passate parallele ai lati
della cava.
- La feed di lavoro nel piano è pari al parametro F
- La distanza tra le varie passate nel piano è funzione del parametro MMP, che definisce la
sovrapposizione tra le passate.
- Le passate nel piano possono essere effettuate in senso antiorario o in senso orario. Se il
parametro MMJ è pari a 0 le passate sono eseguite in senso antiorario (lavorazione in
concordanza con utensile che gira in M3), se MMJ è 1, le passate sono eseguite in senso
orario (lavorazione in discordanza con utensile che gira in M3).
- L’ultima passata nel piano viene eseguita con attacco e distacco circolare.
- Il parametro MMS definisce il sovrametallo da lasciare.
- Se il parametro MMV è posto uguale ad 1, a fine svuotamento viene effettuata un’ulteriore
passata nel piano che toglie il sovrametallo MMS programmato. Questa eventuale ulteriore
passata viene eseguita con attacco e distacco circolare.
Incremento di passata:
-L’incremento di passata in profondità (parametro MMK) può essere eseguito a centro cava
in un preforo oppure con discesa in rampa.
Se il parametro MMW è 0, alla fine di ogni passata nel piano, l’utensile si stacca dalla
superficie lavorata di una quantità pari alla distanza di sicurezza (parametro MME), si
posiziona in rapido in centro cava ed effettua l’incremento di passata con feed pari a MMF.
Se il parametro MMW è 1, l’incremento di passata avviene con discesa in rampa. Il
parametro MMQ indica la massima pendenza di rampa. A seconda dell’ incremento di
passata da effettuare e del massimo angolo di rampa MMQ, la discesa viene effettuata con
un movimento a ZIG ZAG con feed pari a MMF. Se il parametro MMQ è nullo, la discesa
viene effettuata con un unico movimento.
Sono utilizzabili utensili cilindrici e utensili torici. Il parametro R definisce il raggio fresa, nel
caso di utensili torici, il parametro MMU definisce il raggio dell’inserto.
Parametri obbligatori:
coordinate del centro cava (programmate con le quote degli assi)
MML: base della cava
MMH: altezza della cava
MMR: raggio del raccordo
MMA: quota di inizio cava
MMB: quota di fine cava
D. ELECTRON 249
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MMH
MML
MMC
MMS MME
R MMA
MMK
MMB
MMU MMN
250 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Il ciclo di lavorazione di questa macro è del tutto uguale alla macro di sgrossatura di cave
rettangolari dato il centro cava. L’unica differenza sta nel fatto che, al posto delle coordinate
del centro cava, vengono date le coordinate di uno spigolo della cava.
In questo caso i parametri AA e AB rappresentano uno spigolo della cava, MML e MMH sono
i due lati della cava. Il segno di MML e di MMH deve essere dato in accordo alla figura
sottostante:
MML>0
MMH>0 MMH<0
MML>0
MML<0
MMH>0 MMH<0
MML<0
Parametri obbligatori:
coordinate dello spigolo della cava (programmate con le quote degli assi)
MML: base della cava
MMH: altezza della cava
MMR: raggio del raccordo
MMA: quota di inizio cava
MMB: quota di fine cava
MMC: quota di ritorno alto
MME: distanza di sicurezza
MMK: profondità di passata
D. ELECTRON 251
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MMP
MMG
MMR
MMH
MML
MMC
MMS MME
R MMA
MMK
MMB
MMU MMN
252 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Ciclo di finitura:
- Il parametro MMV definisce da che parte vengono effettuati gli attacchi e i distacchi dal
profilo. Se MMV=0, gli attacchi vengono effettuati sulla parte destra, se MMV=1 sulla parte
sinistra della cava.
- Il parametro MMQ definisce il raggio di attacco e distacco dalla parete.
- La feed di lavoro è pari al parametro F
Incremento di passata:
- Il parametro MMK definisce la profondità di passata.
- Il parametro MMW gestisce la modalità di fresatura a spirale oppure con passate a quota
costante.
- Se MMW=0, la finitura viene eseguita con passate a quota costante. Ad ogni passata viene
eseguito un attacco e un distacco dal profilo di raggio MMQ con feed pari a MMF.
L’incremento di passata viene effettuato in rapido.
- Se MMW=1, anche nel caso di cave coniche, la lavorazione inizia con un attacco circolare
di raggio MMQ alla quota di inizio cava MMA, prosegue con un moto a spirale (durante ogni
giro la profondità viene incrementata di MMK), fino a raggiungere la quota di fondo cava
MMB. A questo punto viene ripetuto il profilo a quota costante MMB e viene eseguito il
distacco di raggio MMQ con feed MMF. Nel caso di finitura a spirale e di cava conica, il
parametro EC definisce l’errore cordale utilizzato per suddividere in punti il movimento a
spirale.
Sono utilizzabili utensili cilindrici, utensili torici e utensili sferici. Il parametro R definisce il
raggio fresa, nel caso di utensili torici, il parametro MMU definisce il raggio dell’inserto. Se
MMU=R, l’utensile è sferico.
Parametri obbligatori:
coordinate del centro cava (programmate con le quote degli assi)
MMD: diametro della cava
MMA: quota di inizio cava
MMB: quota di fine cava
MMC: quota di ritorno alto
MME: distanza di sicurezza
MMK: profondità di passata
D. ELECTRON 253
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MMJ=0
AA, AB
MMD MMJ=1
MMQ
R MMC
MMS MME
MMA
MMK
MMU MMB
MMN
254 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Ciclo di finitura:
- Il parametro MMV definisce la parete sulla quale vengono effettuati gli attacchi e i distacchi
dal profilo. Se MMV=0, gli attacchi vengono effettuati sulla parete di destra, se MMV=1
sulla parete di sinistra.
- Il parametro MMQ definisce il raggio di attacco e distacco dalla parete.
- La feed di lavoro è pari al parametro F
Incremento di passata:
- Il parametro MMK definisce la profondità di passata.
- Il parametro MMW gestisce la modalità di fresatura a spirale o a passate a quota costante.
La fresatura a spirale è possibile solo nel caso di cave cilindriche (MMN=0)
- Se MMW=0, la finitura viene eseguita con passate a quota costante. Ad ogni passata viene
eseguito un attacco e un distacco dal profilo di raggio MMQ con feed pari a MMF.
L’incremento di passata viene effettuato in rapido.
- Se MMW=1, nel caso di cave cilindriche, la lavorazione inizia con un attacco circolare di
raggio MMQ alla quota di inizio cava MMA, prosegue con un moto a spirale (durante ogni
giro la profondità viene incrementata di MMK), fino a raggiungere la quota di fondo cava
MMB. A questo punto viene ripetuto il profilo a quota costante MMB e viene eseguito il
distacco di raggio MMQ con feed MMF.
Sono utilizzabili utensili cilindrici, utensili torici e utensili sferici. Il parametro R definisce il
raggio fresa, nel caso di utensili torici, il parametro MMU definisce il raggio dell’inserto. Se
MMU=R, l’utensile è sferico.
Parametri obbligatori:
coordinate del centro cava (programmate con le quote degli assi)
MML: base della cava
MMH: altezza della cava
MMR: raggio del raccordo
MMA: quota di inizio cava
MMB: quota di fine cava
MMC: quota di ritorno alto
MME: distanza di sicurezza
MMK: profondità di passata
D. ELECTRON 255
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MMQ
MMG
MMR
AA, AB
MMH
MML
MMC
R MMS MME
MMA
MMK
MMB
MMU MMN
256 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Il ciclo di lavorazione di questa macro è del tutto uguale alla macro di finitura di cave
rettangolari dato il centro cava. L’unica differenza sta nel fatto che, al posto delle coordinate
del centro cava, vengono date le coordinate di uno spigolo della cava.
In questo caso i parametri AA e AB rappresentano uno spigolo della cava, MML e MMH sono
i due lati della cava. Il segno di MML e di MMH deve essere dato in accordo alla figura
sottostante:
MML>0
MMH>0 MMH<0
MML>0
MML<0
MMH>0 MMH<0
MML<0
Parametri obbligatori:
coordinate dello spigolo (programmate con le quote degli assi)
MML: base della cava
MMH: altezza della cava
MMR: raggio del raccordo
MMA: quota di inizio cava
MMB: quota di fine cava
MMC: quota di ritorno alto
MME: distanza di sicurezza
MMK: profondità di passata
D. ELECTRON 257
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MMQ
MMG
MMR
MMH
MML
MMC
R MMS MME
MMA
MMK
MMB
MMU MMN
258 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Geometria asola:
- Coordinate del centro asola
- Angolo di rotazione dell’asola (Parametro MMG)
- Lunghezza dell’asola (Parametro MML)
- Larghezza dell’asola (Parametro MMD)
Finitura (solo se TL = 0 o se TL = 2)
1. Posizionamento in rapido sul punto A (o B in funzione del segno di MML)
2. Discesa in rapido fino alla quota di sicurezza (MMA+MME)
3. Discesa alla profondità calcolata (profondità di passata in finitura MMH) con feed pari a
MMF
4. Contornitura di finitura
5. Ripetizione dei punti 3, 4 fino a raggiungere la quota di fondo asola MMB. Se viene
impostata una profondità di passata molto grande (maggiore della profondità dell’asola),
viene eseguita un’unica passata di finitura alla quota MMB.
D. ELECTRON 259
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
coordinate del centro asola (programmate con le quote degli assi)
MML: lunghezza dell’asola
MMD: larghezza dell’asola
MMA: quota di inizio asola
MMB: quota di fine asola
MMC: quota di ritorno alto
MME: distanza di sicurezza
Gestione tipologia di lavorazione:
MMV: tipo di lavorazione
MMV = 0: sgrossatura e finitura con lo stesso utensile
MMV = 1: solo sgrossatura
MMV = 2: solo finitura
MMK: profondità di passata in sgrossatura
MMH: profondità di passata in finitura
MMG
B A
MMD
AA, AB
MML
MMC
MMS MME
MMA
MMK, MMH
MMB
260 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Geometria dell’asola:
- Coordinate del centro asola
- Angolo di rotazione dell’asola (Parametro MMG)
- Lunghezza dell’asola in gradi (Parametro MML)
- Larghezza dell’asola (Parametro MMD)
- Raggio dell’asola (Parametro MMR)
Finitura:
1. Posizionamento in rapido sul punto A (o B in funzione del segno di MML)
2. Discesa in rapido fino alla quota di sicurezza (MMA+MME)
3. Discesa alla profondità calcolata (profondità di passata in finitura MMH) con feed pari a
MMF
4. Contornitura di finitura
5. Ripetizione dei punti 3, 4 fino a raggiungere la quota di fondo asola MMB. Se viene
impostata una profondità di passata molto grande (maggiore della profondità dell’asola),
viene eseguita un’unica passata di finitura alla quota MMB.
D. ELECTRON 261
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
coordinate del centro asola (programmate con le quote degli assi)
MML: lunghezza dell’asola
MMD: larghezza dell’asola
MMR: raggio di curvatura dell’asola
MMA: quota di inizio asola
MMB: quota di fine asola
MMC: quota di ritorno alto
MME: distanza di sicurezza
Gestione tipologia di lavorazione:
MMV: tipo di lavorazione
MMV = 0: sgrossatura e finitura con lo stesso utensile
MMV = 1: solo sgrossatura
MMV = 2: solo finitura
MMK: profondità di passata in sgrossatura
MMH: profondità di passata in finitura
MMR A
MMC
MMS MME
MMA
AA, AB MMG
MMK
MMH
MMB
MMD
MML
262 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Geometria dell’asola:
- Coordinate del centro di curvatura
- Angolo di rotazione dell’asola (Parametro MMG)
- Lunghezza dell’asola in gradi (Parametro MML)
- Larghezza dell’asola (Parametro MMD)
- Raggio dell’asola (Parametro MMR)
Finitura:
1. Posizionamento in rapido sul punto A (o B in funzione del segno di MML)
2. Discesa in rapido fino alla quota di sicurezza (MMA+MME)
3. Discesa alla profondità calcolata (profondità di passata in finitura MMH) con feed pari a
MMF
4. Contornitura di finitura
Ripetizione dei punti 3, 4 fino a raggiungere la quota di fondo asola MMB. Se viene impostata
una profondità di passata molto grande (maggiore della profondità dell’asola), viene
eseguita un’unica passata di finitura alla quota MMB.
D. ELECTRON 263
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Parametri obbligatori:
coordinate del centro di curvatura dell’asola (programmate con le quote degli assi)
MML: lunghezza dell’asola
MMD: larghezza dell’asola
MMR: raggio di curvatura dell’asola
MMA: quota di inizio asola
MMB: quota di fine asola
MMC: quota di ritorno alto
MME: distanza di sicurezza
Gestione tipologia di lavorazione:
MMV: tipo di lavorazione
MMV = 0: sgrossatura e finitura con lo stesso utensile
MMV = 1: solo sgrossatura
MMV = 2: solo finitura
MMK: profondità di passata in sgrossatura
MMH: profondità di passata in finitura
A
MMR
MML
AA, AB MMG
MMC MMD
MMS MME
MMA
MMK
B
MMH
MMB
264 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
coordinate del centro del foro (programmate con le quote degli assi)
MMD: diametro fondo filetto
MMQ: diametro foro
MMA: quota di inizio lavorazione
MMB: quota di fine lavorazione
MMC: quota di ritorno alto
MMP: passo filetto
MMK: profondità di passate per la sgrossatura del filetto. La lavorazione di sgrossatura
termina sul fondo filetto (MMD). Su questo diametro vengono eseguite le (eventuali) MMN
passate di lisciatura.
MMQ
MMB
D. ELECTRON 265
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MMQ
MMB MMH
266 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
coordinate del centro perno (programmate con le quote degli assi)
MMD: diametro esterno
MMQ: diametro fondo filetto
MMA: quota di inizio lavorazione
MMB: quota di fine lavorazione
MMC: quota di ritorno alto
MMP: passo filetto
MMK: profondità di passate per la sgrossatura del filetto. La lavorazione di sgrossatura
termina sul fondo filetto (MMD). Su questo diametro vengono eseguite le (eventuali) MMN
passate di lisciatura.
MMQ
MMB
D. ELECTRON 267
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
MMQ
MMB
268 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Parametri obbligatori:
coordinate del primo vertice dell’area rettangolare (programmate con le quote degli assi)
MMX: coordinata sul primo asse del piano di lavoro del secondo vertice dell’area rettangolare
MMY: coordinata sul secondo asse del piano di lavoro del secondo vertice dell’area
rettangolare
MMA: quota di avvicinamento in rapido
MMB: quota di spianatura
MMC: quota di ritorno alto
MMV=1 AA, AB
MMV=0 MMP
MMX, MMY
MMC
MMA MMB
D. ELECTRON 269
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
7.4 ESEMPI
Esempio1:
270 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Esempio2:
Uso della macro di posizionamento G801K7 con un part-program salvato nel programma CMOS
numero 40
S2000 M3 F800
(definisco nel programma P40 la figura da spostare sui punti del cerchio)
--DEFINE P40
G0X0Y0
Z2
G1Z0
Z-1
G1X10
Y5
X-10
Y-5
X10
Y0
G0X0Y0
Z2G0
G26
--END DEFINE
PAR[1]3
(Chiamo G801K7 per posizionare sui punti la figura memorizzata
nel programma CMOS numero 40 )
(MPF=40: posiziona il programma 40)
(MPR=1: ruota figure)
(richiamo macro di posizionamento)
G801K7 MPX10 MPY20 MPC100 MPA0 MPL0 MPN8 MPS1 MPW1 MPF40 MPR1
G0 Z50
G0 Z50
M2
D. ELECTRON 271
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Esempio 3:
Uso della macro di posizionamento G801K7 con un part-program salvato nel programma CMOS
numero 40
S2000 M3 F800
(definisco nel programma P40 la figura da spostare sui punti del cerchio)
--DEFINE P40
G0X0Y0
Z2
G1Z0
Z-1
G1X10
Y5
X-10
Y-5
X10
Y0
G0X0Y0
Z2G0
G26
--END DEFINE
272 D. ELECTRON
CNC Z32 Programmazione Cap.7 - Cicli fissi e macro di Z32
Esempio 4:
S2000 F1200 M3
G0 Z50
R5
(Parametri e richiamo ciclo fisso)
(MMA=0: quota superiore cava)
(MMB=-20: quota di fondo della cava)
(MMC=10: quota di uscita a fine lavorazione)
(MMD=60: diametro della cava)
(X,Y: centro cava)
(MMK=3: profondità di passata)
(MME=2: distanza di sicurezza)
G802 MMA0 MMB-20 MMC10 MMD80
G802K1 X10 Y10 MMK3 MME2
M2
D. ELECTRON 273
Cap.7 - Cicli fissi e macro di Z32 CNC Z32 Programmazione
Esempio 5:
Uso della macro di lavorazione G802K1 (sgrossatura di una cava circolare) come ciclo fisso:
S2000 F1200 M3
G0 Z50
R5
(Parametri e richiamo ciclo fisso)
(MMA=0: quota superiore cava)
(MMB=-10: quota di fondo della cava)
(MMC=10: quota di uscita a fine lavorazione)
(MMD=30: diametro della cava)
(X,Y: centro cava)
(HX=1: usa come ciclo fisso)
(MMK=3: profondità di passata)
(MME=2: distanza di sicurezza)
(MMW=1: discesa in rampa)
(MMQ=4:massima pendenza della discesa in rampa)
274 D. ELECTRON
CNC Z32 Programmazione Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti
CAPITOLO 8
D. ELECTRON 275
Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti CNC Z32 Programmazione
276 D. ELECTRON
CNC Z32 Programmazione Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti
D. ELECTRON 277
Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti CNC Z32 Programmazione
278 D. ELECTRON
CNC Z32 Programmazione Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti
D. ELECTRON 279
Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti CNC Z32 Programmazione
HA quota lavoro
HC uscita lunga
HD diametro foro
R raggio utensile
Programma 177:
FRESALESATURA INTERNA%
N1 !IFHD<=2*R;UT.GROSSO!
N2 G1 AC<HA>
N3 G2 AA<AA+HD/2-R> AB<AB> I<AA-HD/4+R/2> J<AB>
N4 AA<AA> AB<AB+.001> I<AA-HD/2+R> J<J>
N5 AA<I> AB<J> I<I+HD/4-R/2> J<J>
N6 G0 AC<HC> G26
Nota:
N1 dà errore (il campo !UT.GROSSO! è in errore sintassi) se il diametro foro non è maggiore del
diametro utensile; se invece il diametro foro è superiore il campo errato non è eseguito, quindi
l'errore di sintassi non è rilevato e quindi il lavoro prosegue regolarmente.
G27C9.... Composizione:
1. avanzamento in rapido fino a inizio foro
2. lavoro fino a fine foro
3. sosta
4. lavoro fino a inizio foro
5. rapido fino a uscita lunga
Parametri:
HA inizio foro
HB fine foro
HC uscita lunga
TT sosta
Programma 178:
FORATURA CON PAUSA E RITORNO IN LAVORO%
N1 G0 AC<HA>
N2 G1 G4 AC<HB>
N3 AC<HA>
N4 G0 AC<HC> G26
280 D. ELECTRON
CNC Z32 Programmazione Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti
D. ELECTRON 281
Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti CNC Z32 Programmazione
SOTTOPROGRAMMA 20
%
N1 G1 X<X> Y<Y>
N2 Y<Y-30>
N3 !IFKG=2;GON7!
N4 !IFKG<>1 ; ERRORE KG PRG. 20
N5 X<X+20> (ESEGUE FONDO PIANO)
N6 !GON9!
N7 X<X+10> Y<Y-5> (ESEGUE FONDO INCLINATO)
N8 X<X+10> Y<Y+5>
N9 Y<Y+30> (RISALE ALLA QUOTA INIZIALE)
N10 G26
Si noti come non sarebbe stato possibile l'uso di un ciclo fisso per la presenza della correzione
raggio (non possono esserci tratti in G0).
282 D. ELECTRON
CNC Z32 Programmazione Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti
D. ELECTRON 283
Cap.8 - Cicli fissi del costruttore e dell’utente e sottoprogrammi permanenti CNC Z32 Programmazione
284 D. ELECTRON
CNC Z32 Programmazione Cap.9 - Formule permanenti
CAPITOLO 9
9. FORMULE PERMANENTI
9.1 GENERALITÀ
Caratteristica dello Z32 è di poter programmare parametri e quote assi tramite formule
matematiche, per esempio:
X<HA+Y*0,01>
che significa: assegna al parametro 'X' e alla quota programmata sull'asse X il valore risultante
dal calcolo contenuto nella parentesi acuta (valore del parametro HA più un centesimo del valore
del parametro Y). I valori dei parametri interessati alla formula sono quelli istantanei al momento in
cui il CN analizza la riga.
È possibile imporre allo Z32, per i soli assi continui, di ricalcolare una formula in modo
permanente, ossia in tempo reale, durante l'esecuzione dei movimenti programmati, assumendo
come valore dei parametri assi il punto istantaneo interpolato, riferito alla origine attiva.
Questa funzione è ottenuta, all'interno di una riga ISO, programmando, sull'asse continuo
desiderato, la formula tra doppia parentesi acuta.
Per esempio:
X<<X+0,1*Y>>
Dopo la formula si possono programmare profili, movimenti in rapido ecc. in modo
assolutamente normale. I movimenti reali degli assi saranno però variati, al momento della loro
esecuzione, secondo la formula introdotta. Nel caso dell'esempio (per terna G25XYZ) si avrà una
INCLINAZIONE del 10% a destra di tutta la figura.
Possono essere programmate formule permanenti su tutti gli assi continui e vivi, anche sugli
assi non direttamente interessati al movimento. Ciò significa che, se per esempio una macchina ha
gli assi X, Y, Z e B, e tutti gli assi sono vivi (vedere funzione G28), programmando sull'asse B una
formula che ne lega il movimento agli altri assi, si può avere il moto contemporaneo di quattro assi
continui.
Le formule permanenti sono attive sia sui movimenti in lavoro sia sui movimenti in rapido.
L'introduzione di una formula permanente richiede al programmatore alcune precauzioni, che
saranno spiegate poi in dettaglio, che derivano dal modo col quale le formule sono inserite nel
sistema operativo Z32.
In assenza di formule permanenti, lo Z32 muove gli assi dopo aver compiuto una serie di
elaborazioni che sono:
1) analisi dei punti programmati ed eventuale loro ricalcolo con rototraslazione,
specularità, fattore di scala
2) determinazione delle traiettorie geometriche ed eventuale ricalcolo con correzione
raggio
3) controllo che le traiettorie calcolate siano entro i fine corsa della macchina
4) determinazione delle velocità di esecuzione e degli eventuali rallentamenti in funzione
delle velocità programmate, delle curvature e degli spigoli delle traiettorie calcolate
5) interpolazione delle traiettorie in tempo reale (ossia con calcolo dei punti successivi al
ritmo di circa 125 volte al secondo)
6) controllo degli errori fisici di inseguimento (sempre 125 volte al secondo) ed invio dei
comandi di moto a tutti gli assi vivi, per mantenere la macchina in traiettoria col minimo
errore.
D. ELECTRON 285
Cap.9 - Formule permanenti CNC Z32 Programmazione
A titolo di esempio, si riportano qui di seguito le figure ottenute con alcune formule semplici
realizzando un part-program riferito alla figura normale (cerchio con scritta Z32) e introducendo poi
le formule riportate in figura.
L'introduzione di una formula permanente richiede, tra i punti 5 e 6, un ulteriore passo, che deve
essere eseguito 125 volte al secondo:
5a) applicazione delle formule permanenti su tutti gli assi vivi interessati, e calcolo del punto,
sulla traiettoria deformata, corrispondente al punto già calcolato sulla traiettoria originaria
Inconvenienti Gli inconvenienti che possono derivare dall'introduzione di una formula permanente sono in
pratica:
Velocità − la velocità di esecuzione della traiettoria è costante e corrispondente alla velocità
programmata sulla traiettoria originaria. Le accelerazioni sono calcolate per la
traiettoria originaria. Sulla traiettoria deformata velocità e accelerazione sono anch'esse
deformate e quindi possono risultare sia inferiori che superiori. Ciò impone un controllo
ulteriore che la velocità non superi quella di rapido e può portare a errori di
inseguimento nel caso che la velocità aumenti troppo in punti critici del profilo
Fine corsa − i fine corsa non devono essere controllati sulla traiettoria originaria ma sulla traiettoria
deformata: ciò praticamente significa che i fine corsa devono essere controllati in
tempo reale insieme al punto 5a)
− al momento della introduzione della formula permanente ci può essere una differenza
anche rilevante tra il punto originario e il punto deformato: per ogni asse su cui è
introdotta la formula lo Z32 genera automaticamente un tratto di raccordo iniziale.
Analoga operazione deve essere eseguita al momento della disattivazione delle
formule permanenti
286 D. ELECTRON
CNC Z32 Programmazione Cap.9 - Formule permanenti
Limitazioni di − tutte le formule permanenti devono essere ricalcolate 125 volte al secondo: ciò pone
tempo limitazioni abbastanza stringenti alla complessità delle formule introdotte.
D. ELECTRON 287
Cap.9 - Formule permanenti CNC Z32 Programmazione
288 D. ELECTRON
CNC Z32 Programmazione Cap.9 - Formule permanenti
Il punto di partenza del movimento di raccordo è la quota dell'asse prima dell'attivazione della
formula, e il punto di arrivo la nuova quota calcolata con la formula attivata.
Il raccordo viene eseguito come tratto rettilineo in lavoro alla velocità F attiva al momento.
Se sono introdotte più formule relative ad assi diversi, per ognuna delle formule introdotte è
inserito un raccordo.
La programmazione di una formula permanente costituisce una ECCEZIONE nel
comportamento dello Z32, che esegue il raccordo relativo IMMEDIATAMENTE durante la fase di
analisi, e non attende la successiva fase di esecuzione (vedere capitolo "Sequenza di esecuzione
di una riga ISO”). I moti dello stesso asse programmati nella stessa riga, ma prima della formula,
non sono eseguiti ma sono conglobati nel raccordo.
Questa caratteristica permette, come si vedrà più avanti, di evitare il raccordo associato a una
formula permanente.
La situazione è assolutamente analoga nel caso di disattivazione o variazione della formula
permanente: anche in questo caso il punto macchina può subire uno spostamento dovuto alla
formula e quindi è necessaria l'introduzione del raccordo.
Si noti che la presenza anche di una sola formula permanente in una riga ISO comporta
l'annullamento di tutte le formule: poiché il raccordo è calcolato solo per le formule effettivamente
programmate, se non vengono 'richiuse' tutte le formule in precedenza attivate, si possono avere
allarmi CN 0113 o 0013 dovuti alla discontinuità di movimento risultante.
Negli esempi che seguono, anche con situazioni estreme probabilmente mai utili in pratica, è
illustrato il comportamento dello Z32 per quanto riguarda i raccordi.
Esempio 1
...
N10 OX1 OY1 OZ1 X0Y0Z0 F1000 attivazione dell'origine 1 e spostamento degli assi
nell'origine
N20 X<<X*0.9>> attivazione della formula permanente: il raccordo
iniziale è nullo perché il vecchio punto (X = 0) coincide
col nuovo punto (X = 0*0.9 = 0).
N30 X100 spostamento a X90 a causa della formula
N40 X<<>> disattivazione formula e raccordo finale da vecchio
punto calcolato con la formula (X = 90) al nuovo punto
(X = 100)
....
Esempio 2
...
N10 X100Y100Z0 OX1OY1OZ1 F1000
N20 X<<X*O.9>> Y<<Y*0.8>> si ha prima uno spostamento parallelo dell'asse X da
100 a 90 (velocità F1000) e poi uno spostamento
parallelo dell'asse Y da 100 a 80
N30 X200 spostamento dell'asse X da 80 a 160
N40 X<<>> disattivazione della formula X e raccordo finale da
X160 a X200. È un errore non avere disattivato anche
la formula Y: le conseguenze si vedono la prima volta
che viene programmato l'asse Y
N50 X100 l'asse X si sposta correttamente da 200 a 100)
D. ELECTRON 289
Cap.9 - Formule permanenti CNC Z32 Programmazione
Esempio 3
...
N10 X100Y100Z0 OX1OY1OZ1 F1000
N20 Y<<Y*0.8>> X<<X*0.9>> la sequenza dei raccordi è diversa dall'esempio 2
perché diverso è l'ordine di programmazione: prima
viene fatto il raccordo Y da 100 a 80 e poi il raccordo
X da 100 a 90
...
Esempio 4
...
N10 X100Y100Z0 OX1OY1OZ1 F1000
N20 !X=50! non si ha movimento dell'asse, ma solo un
aggiornamento del parametro X al valore 50
N30 X<<X*0.8>> si ha un raccordo in X da 100 fino al risultato della
formula (X=X*0.8) applicata al valore programmato
(50), ossia a 40
...
Esempio 5
...
N10 X100Y100Z0 OX1OY1OZ1 F1000
N20 X50 X<<X*0.8>> il risultato è identico all'esempio precedente, ossia il
raccordo iniziale va da X100 a X40
...
Esempio 6
...
N10 X100Y100Z0 OX1OY1OZ1 F1000
N20 X<<X*0.8>> X50 si ha un raccordo iniziale da X100 a X80, e
successivamente il movimento programmato a X40
(pari a 50*0.8), fatto con formula attiva)
...
Esempio 7
...
N10 X100Y100Z0 OX1OY1OZ1 F1000
N20 X50 X<<X*0.8>> X100 si ha un raccordo iniziale a X40 e, successivamente il
movimento programmato a X80 (pari a 100*0.8)
...
290 D. ELECTRON
CNC Z32 Programmazione Cap.9 - Formule permanenti
Esempio 8
...
N10 X100 Y100 Z0 OX1 OY1 OZ1 F1000
N20 X50 Y40 X<<X*0.7>> Y<<Y*0.6>> X30 Y60
... si ha prima il raccordo in X da 100 a 35, poi il raccordo
in Y da 100 a 24, poi un movimento inclinato in XY con
formule attive fino al punto finale risultante X21 Y36
Il programmatore consideri gli esempi 6, 7 e 8 solo come mezzi per meglio comprendere il
comportamento dello Z32: non sono esempi da seguire, in quanto complicano inutilmente una riga
già complessa che contiene l'attivazione di formule permanenti. I movimenti programmati dopo le
formule permanenti possono essere più realisticamente programmati in una riga SUCCESSIVA!
D. ELECTRON 291
Cap.9 - Formule permanenti CNC Z32 Programmazione
Il calcolo preventivo dei tempi di esecuzione di una formula permanente non è facile: bisogna
infatti tenere conto delle semplificazioni e dei precalcoli che lo Z32 opera in fase di compilazione.
Per chi voglia avere una idea dei tempi di esecuzione, qui di seguito diamo i tempi approssimativi
delle operazioni fondamentali. I tempi sono espressi in cicli macchina: il totale dei tempi di tutte le
formule introdotte non deve superare 8000 (o il limite più basso imposto dal costruttore).
Somma 270
Sottrazione 270
Moltiplicazione 620
Divisione 920
Programmazione di incognita 170
Tempo fisso per ogni formula 160
292 D. ELECTRON
CNC Z32 Programmazione Cap.9 - Formule permanenti
D. ELECTRON 293
Cap.9 - Formule permanenti CNC Z32 Programmazione
9.1.10 Applicazioni
Le formule permanenti, pur con le obbiettive difficoltà e le limitazioni sopra esposte, possono
essere utili per eseguire lavori altrimenti difficili se non impossibili.
Probabilmente la limitazione più sensibile delle formule permanenti è quella della velocità degli
assi, che diventa diversa dalla velocità programmata. Come consiglio generale, si faccia in modo
per quanto possibile che le formule RIDUCANO PIUTTOSTO CHE INGRANDIRE: per esempio, se
si vuole ottenere un movimento ellittico del centro fresa, si moltiplichi l'asse più corto per un numero
inferiore a 1, piuttosto che l'asse più lungo per un numero superiore ad 1.
Nel caso di formule che ingrandiscono, usare la G108 per riportare accelerazione e velocità
entro limiti tollerabili.
Ellissi
Come mostrato negli esempi all'inizio del capitolo, un cerchio con assi a fattore di scala diverso
diventa una ellisse.
ATTENZIONE:
La traiettoria del centro fresa nel caso della contornatura di una ellisse
NON è una ellisse. Se si applica un diverso fattore di scala sui due assi e
poi si attiva la correzione raggio, non si ottiene una vera ellisse. L'errore di
forma è tanto più grande quanto più il raggio dell'utensile si avvicina ai
raggi di curvatura del profilo.
294 D. ELECTRON
CNC Z32 Programmazione Cap.9 - Formule permanenti
D. ELECTRON 295
Cap.9 - Formule permanenti CNC Z32 Programmazione
296 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
CAPITOLO 10
10. GEOMETRIA
10.1 GENERALITÀ
Lo Z32 dispone di un completo set di istruzioni per risolvere i problemi di calcolo di un profilo
geometrico comunque complesso.
Vengono programmati con facilità profili costituiti da tratti rettilinei, circolari, con smussi e
raccordi.
È possibile coordinare ad un movimento nel piano anche il movimento di un terzo asse (vedere
paragrafo ”Profili su tre assi” più avanti su questo capitolo).
I programmi realizzati con la geometria di base dello Z32 con software precedente, possono
essere eseguiti anche con la nuova geometria senza alcun cambiamento.
Tratto di Una retta o un cerchio si dicono chiusi quando terminano con un punto definito, si dicono aperti
profilo quando il punto finale non è definito, ma dovrà essere calcolato con le informazioni relative al tratto
successivo.
D. ELECTRON 297
Cap.10 – Geometria CNC Z32 Programmazione
Quote finali
Rappresentano le coordinate del punto finale da raggiungere nel piano di lavoro.
Sono programmate col nome asse (per es. X, Y, Z ...) oppure in modo assolutamente
equivalente con i parametri AA (primo asse), AB (secondo asse), AC (terzo asse). Si usano i
parametri AA AB AC quando si vogliono costruire dei sottoprogrammi generici, svincolati
dall'effettivo piano di lavoro. Nel seguito, per brevità e chiarezza, si useranno normalmente i nomi
espliciti degli assi, X per il primo asse, Y per il secondo, Z per il terzo asse (asse mandrino).
Il piano cartesiano è definito col primo asse orizzontale e il secondo asse verticale.
Pendenza finale QF
È l'angolo compreso tra la direzione positiva dell'asse X e la direzione del movimento nel punto
finale del tratto.
298 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
Raggio di raccordo RR
Alla fine di ogni tratto di profilo può essere programmato un raccordo col parametro RR che
viene inserito alla fine del blocco nel quale è programmato .
Il segno di RR determina il senso del raccordo:
RR positivo raccordo antiorario (G3)
RR negativo raccordo orario (G2)
Il tratto di profilo con raccordo finale può essere chiuso o aperto.
Il raggio di raccordo non può essere programmato su un tratto di profilo che venga chiuso dal
successivo con conservazione della pendenza (punto continuo).
Se RR è programmato in un blocco in cui non è previsto provoca errore di programmazione
CN4514 (RB/RR iniziali su cerchio). Vedere il paragrafo “Raccordi automatici” più avanti su questo
capitolo.
Raccordo Un raccordo, di orientamento definito, può essere scelto tra due possibili col parametro di
corto selezione KA:
Raccordo
lungo KA = 0 raccordo corto, quello più spontaneo (può essere omesso);
KA <>0 raccordo lungo.
Vedere la pagina seguente (parametro di selezione KA).
Smusso RB
Alla fine di un tratto rettilineo può essere programmato uno smusso col parametro RB.
Il valore di RB programmato definisce la lunghezza dello smusso sul primo tratto.
La lunghezza dello smusso sul secondo tratto è:
RB se non è programmato QA
RB * tg QA se è programmato QA
Il tratto seguente deve essere ancora rettilineo: lo smusso è ammesso solo tra due tratti
rettilinei. RB e QA devono essere obbligatoriamente programmati nel tratto alla fine del quale deve
essere inserito lo smusso. Vedere paragrafo “Smussi automatici” più avanti su questo capitolo.
Se RB è programmato in un blocco in cui non è previsto provoca errori di programmazione:
CN4214 RB smusso iniziale su cerchio
CN4314 RB smusso finale su cerchio
CN4514 RB/RR iniziali su cerchio.
D. ELECTRON 299
Cap.10 – Geometria CNC Z32 Programmazione
Parametro di selezione KA
Un tratto aperto può essere chiuso dal tratto successivo per intersezione dei due enti geometrici.
Se almeno uno di questi enti è un cerchio si hanno due soluzioni (o nessuna se gli enti non si
intersecano).
Svolta a Se si osserva il movimento con riferimento al primo ente programmato, una delle soluzioni fa
destra una svolta a destra e l'altra una svolta a sinistra.
svolta a
sinistra Se è programmato un raggio di raccordo RR, una delle due soluzioni provoca un raccordo corto
(lunghezza del raccordo minore di metà cerchio) e l'altra un raccordo lungo (lunghezza del raccordo
maggiore di metà cerchio). Vedere paragrafo “Raccordi automatici” più avanti su questo capitolo.
La scelta della soluzione viene fatta col parametro KA (che deve essere programmato
obbligatoriamente nel blocco aperto di cui si vuole scegliere l'intersezione):
KA=0 raccordo corto nel caso di RR programmato gira a sinistra nel caso di RR non
programmato
KA<>0 raccordo lungo nel caso di RR programmato gira a destra nel caso di RR non
programmato
Se KA è programmato in un blocco in cui non è previsto non provoca allarmi: semplicemente
non ha effetto; KA=0 può essere omesso.
KA=1 KA=Ø
300 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
Pendenza ausiliaria QA
Il parametro QA permette di programmare un angolo ausiliario orientato, come QF.
Una prima applicazione riguarda la programmazione degli smussi tra due rette, un'altra riguarda
le combinazioni retta-cerchio tipo G1 G2/G3..QA. Il significato viene specificato nel paragrafo
“Combinazioni retta cerchio” più avanti su questo capitolo.
Funzioni preparatorie
Le funzioni interessate sono G1, G2, G3 che sono modali e mutualmente esclusive.
Può non essere programmata la G , già attiva; in quanto segue tale possibilità verrà indicata con
le parentesi tonde: (G1) oppure (G2/G3)
Le funzioni G2 e G3 programmate possono essere forzate, cioè lo Z32 può cambiare il senso di
percorrenza, in tutti quei casi in cui l'arco di cerchio è raccordato al tratto precedente; viene così
privilegiata la condizione di tangenza e vengono scartati punti spigolosi. Tale situazione verrà in
seguito indicata con la notazione : [G2/G3]
La geometria Z32 comprende le potenti combinazioni retta-cerchio che sono costituite da una
retta seguita da un cerchio tangente. Tali combinazioni vengono identificate dalle funzioni
preparatorie composte G1G2 e G1G3 a secondo che il cerchio sia orario o antiorario. G1G2 e
G1G3 non sono modali e sono attive solo nel blocco.
D. ELECTRON 301
Cap.10 – Geometria CNC Z32 Programmazione
302 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
Differenti combinazioni non sono riconosciute dallo Z32, che dà allarme CN2C14 (parametri
incompatibili).
Come si vede dall'elenco, alcuni tratti (G1, G1 QF, G2/G3 I J, G2/G3 I J RA, G2/G3 RA, G1
G2/G3 I J RA, G1 G2/G3 I J RA QA) sono 'aperti', in quanto le quote finali del tratto non sono
determinabili dai parametri programmati nel blocco.
Gli altri tratti sono chiusi, in quanto hanno pienamente determinate le quote finali.
I tratti aperti possono essere:
1. retta di cui sono definiti pendenza e punto iniziale
2. cerchio di cui è definito centro e punto iniziale
3. cerchio di cui è definito il centro e il raggio
4. cerchio di cui è definito il raggio e il punto iniziale
I parametri presi in considerazione dallo Z32 per definire un tratto di profilo sono esclusivamente
quelli elencati (quote assi X Y, centro cerchio I J, raggio RA, pendenza QF, pendenza ausiliaria QA,
raccordo RR, smusso RB, funzioni preparatorie G1 G2 G3): nella stessa riga possono essere
programmati altri parametri o funzioni, che, se compatibili, vengono regolarmente gestiti senza
provocare errori.
G1 X.. Y..
La retta 1 può provenire da punto definito o da cerchio aperto, in tal caso viene forzata la
condizione di tangenza in un punto continuo. Se il tratto precedente è una retta aperta si ha errore
CN3214 (precedente errato).
Se il punto finale è interno al cerchio precedente si ha errore CN3314 (interno al cerchio)
...
G0 X35 Y0
G1 Y10 RB1
(G1) X20
(G1) Y20 RB2
(G1) X0 QF180
....
D. ELECTRON 303
Cap.10 – Geometria CNC Z32 Programmazione
.....
G1 X12 Y0
G3 I0 J0 RR-2 (KA0)
G1 Y25 X-40 QF160
X-50 QF180
......
304 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
.....
G0 X70 Y0
G1 Y10
X62
(G1) X25 Y21,63
G1
QF180 X0 Y28
.....
.....
G0 X0 Y0
G1 Y10
G1 QF150
G2 I-20 J30 RA10
G1 X-50 Y30 QF180
.....
D. ELECTRON 305
Cap.10 – Geometria CNC Z32 Programmazione
....
G0 X30 Y0
G3 I15 J0 KA1
I0 J15 Y30 X0
....
Il cerchio 2 se proveniente da punto definito ha un'altra particolarità geometrica: per due punti
(quello iniziale e quello indicato) esistono due cerchi di raggio RA !! : lo Z32 sceglie il cerchio più
corto con KA=0, quello più lungo con KA<>0.
Riassumendo, il funzionamento è il seguente:
− se il tratto precedente è aperto il KA non agisce (raccordo continuo senza possibilità di
scelta)
− se il tratto precedente è chiuso, ossia l'arco di cerchio parte da un punto definito:
− se KA non programmato o programmato zero viene eseguito l'arco corto
(identico a prima, arco minore di 180 gradi)
− se KA programmato con un valore diverso da zero (per esempio KA1, deve
essere programmato nella stessa riga insieme all'arco G2/G3 X Y RA) viene
eseguito l'arco lungo (maggiore di 180 gradi)
Se la distanza tra i due punti o tra la retta aperta e il punto specificato è superiore al doppio del
raggio RA non esiste arco di cerchio congiungente: in questo caso lo Z32 non da allarme, ma
inserisce un arco di cerchio esattamente uguale alla metà della distanza.
Se il tratto precedente è un cerchio aperto si ha errore CN3414 (precedente aperto).
306 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
....
G0 X0 Y20
G2 I10 J15 QF-60
G3 RA20 QF30
.....
D. ELECTRON 307
Cap.10 – Geometria CNC Z32 Programmazione
......
G0 X0 Y10
G2 X10 Y0 I0 J0
G2 X50 Y0
I70 J0 X90 Y0
G3 X110 Y0
I120 J0 X130 Y0
.....
G2/G3 I J QA
Il cerchio 7 può provenire da punto definito o da retta aperta; in tal caso viene imposta la
condizione di tangenza col tratto precedente e viene forzato, solo nel blocco, il verso di percorrenza
in modo da evitare punti spigolosi.
Se il tratto precedente è un cerchio aperto si ha errore CN3214 (precedente errato).
Con la programmazione dei parametri I,J,QA è possibile anche la programmazione del cerchio
completo.
Il formato di programmazione è:
G2/G3 I... J... QA...
Dove:
G2 o G3 specifica il senso orario/antiorario
I e J sono le coordinate del centro (I = primo asse, J = secondo asse)
QA è la lunghezza in gradi dell'arco voluto. Per QA sono ammessi solo valori positivi da 0 a
360.001
Valori diversi danno errore CN2C14 PARAMETRI INCOMPATIBILI
Valori di QA compresi tra 359.999 e 360.001 sono interpretati come 360.000 gradi e danno il
cerchio completo.
La tolleranza intorno a 360 è stata introdotta per il caso che il 360 sia ottenuto come risultato di
un calcolo, che in floating point potrebbe avere incertezze nei decimali e quindi dare incertezze di
esecuzione (arco di 360 gradi oppure zero).
Esempi:
G0 X20 Y10
G3 I40 J15 QA180
Genera un arco di cerchio antiorario a partire dal punto X20 Y10, con centro in X40 Y15 (quindi
raggio 20.6155) di lunghezza 180 gradi
G0 X20 Y10
G3 I40 J15 QA360
Come sopra, ma genera un cerchio completo di 360 gradi.
In ogni arco di cerchio chiuso può essere programmato un raccordo RR che viene eseguito alla
fine del tratto.
308 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
....
G0 X0 Y50
G1 QF-90 KA1
G3 I-2 J10 RA30 KA1
G1 X-40 Y11 QF180
Y45
X0
.....
D. ELECTRON 309
Cap.10 – Geometria CNC Z32 Programmazione
...
G0 X45 Y0
G1 Y10
QF150
G3 I25 J3 (KA0)
G2 I15 J25 RA10 QF180
G1 X0
...
G2/G3 RA...
Il cerchio 10 deve provenire da punto definito e in questo punto viene conservata la pendenza
del tratto precedente. È pertanto un cerchio raccordato al tratto precedente.
Se il tratto precedente è aperto si ha errore CN3414 (precedente aperto).
.....
G3 I30 J0 X30 Y20
G2 RA10
G1 X0 Y40 QF160
.....
In ogni blocco si può programmare un raccordo RR che viene eseguito alla fine del tratto.
310 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
Da cerchio aperto:
.....
G1 X70 Y5
G2 I70 J22,5
G1G3 I40 J15 RA11
G1G2 I15 J30 X4 Y25
G1 X0
......
D. ELECTRON 311
Cap.10 – Geometria CNC Z32 Programmazione
...
G0 X0 Y0
Y10
QF180 KA1
G3 I-20 J5 RA15 KA1
G1G3 I-50 J20 X-60 Y25 QA150 KA1
G1 QF180
G1 X-90 Y20 QF-90
G1 G2/G3 I.. J.. RA.. QA.. G1 G2/G3 I.. J.. RA.. QA.. QF..
Le combinazione 5 e 6 sono simili alla 4 ma con l'uso di parametri diversi.
312 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
N1 G200 HX4
N2 G0 X25.23 Y10.759
N3 G2 I40 J10 X25.23 Y10.759
Alla riga N3 viene eseguito un cerchio completo con centro I40 J10 e partenza e arrivo al punto
X20Y10.
Le condizioni per l’esecuzione del cerchio completo sono:
- deve essere programmato con G2/G3 I J X Y
- le quote finali devono essere identiche alle quote iniziali
La condizione di quote identiche si ottiene sicuramente se le quote sono programmate con
numeri espliciti identici, come nell’esempio sopra riportato, oppure se sono il risultato di formule
identiche.
ATTENZIONE: formule matematiche apparentemente identiche nella sostanza ma
formalmente diverse possono fornire risultati diversi, per le caratteristiche dei calcoli in
virgola mobile. Per esempio l’espressione 1.2*5 non dà risultato esattamente = 6, perché il
semplice numero decimale 1.2 non è rappresentabile esattamente nel sistema binario (è un
numero periodico come per esempio 1/3=0.33333... è periodico nel sistema decimale) e
quindi il risultato non è un numero intero. Risulta molto difficile prevedere il risultato, quindi
è consigliabile, quando si vogliono numeri assolutamente identici come in questo caso,
programmare numeri espliciti o formule assolutamente identiche.
In qualche applicazione la condizione di “formule matematiche assolutamente identiche” non è
stata realizzata, per cui su macchine installate si ha un comportamento incerto (cerchio completo
eseguito oppure no) in condizioni di rototraslazione di part-program.
Nel software di Z32 c’è una tolleranza: se le quote finali di entrambi gli assi che interpolano il
8
cerchio differiscono da quelle iniziali di meno di circa uno su 10 (per esempio 1 micron su una
quota di 100 metri) le quote sono considerate “identiche” e il cerchio completo viene eseguito.
D. ELECTRON 313
Cap.10 – Geometria CNC Z32 Programmazione
G0 X0 Y0
G1 X20 Y20 RB15 QA30
(G1) X40 Y0
oppure
G1 X20 QF45 RB15 QA30
(G1) Y0 QF-45
(QA30 =>tg30 = 8.66/15)
G0 X0 Y20
G1 X30 Y20 RB10
(G1) X40 Y0
G0 X0 Y20
G1 QF90
X40 Y20 QF0 RB15 QA30
(G1) Y0
(QA30 =>tg30 = 8.66/15)
314 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
G0 X0 Y20
G1 X30 Y20 RB10
(G1) QF-90
oppure
G1 QF0 RB10
(G1) X30 Y0 QF-90
G0 X0 Y20
G1 X30 Y20 RB10
G1
allarme CN4514
RB/RR su inizio cerchio.
G0 X-5 Y-5
G1 X5 Y5
(G1) RB10
(G1) X40 Y0 QF-45
G0 X5 Y0
G1 Y20 RB10
G1G2 I30 J10 X30 Y0
oppure
G1G2 I30 J10 RA10 QF180
G0 X5 Y0
G1 Y20 RB10
G1G2 I30 J10 RA10
G1 X10 Y0
D. ELECTRON 315
Cap.10 – Geometria CNC Z32 Programmazione
G0 X0 Y0
G1 QF60 RB15 QA30
G1G2 QA-30 I35 J0 X45 Y0
oppure
G1G2 QA-30 I35 J0 RA10 QF-90
(QA30 =>tg30 = 8.66/15)
G0 X0 Y0
G1 QF60 RB10 QA40,9
G1G2 QA-30 I35 J0 RA10
(QA40,9 =>tg40,9=8.66/10)
G0 X0 Y-25
G1 Y25 RB20
G1G2 I10 J0 RA20 QF-90
316 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
G0 X0 Y0
G1 X20 Y20 RR-10
(G1) X40 QF-45
oppure
G1 X20 QF45 RR-10
(G1) Y0 QF-45
G0 X40 Y0
G1 X20 QF135 RR10
(G1) X0 QF-135
G0 X0 Y0
G1 X35
G1 QF0
(G1) X35 Y20 QF90 RR10
(G1) X0
G0 X0 Y0
G1 Y20 RR-10
(G1) QF0
G0 X0 Y20
G1 QF0 RR-10
(G1) X30 Y0 QF-90
D. ELECTRON 317
Cap.10 – Geometria CNC Z32 Programmazione
G0 X30 Y0
G1 Y20 RR10
(G1) QF180
oppure
G1 QF90 RR10
(G1) X0 Y20 QF180
G0 X-5 Y-5
G1 X5 Y5
(G1) RR-10
(G1) X50 Y0 QF-45
G0 X0 Y10
G1 X20 Y10 RR-5
G3 I35 J10 X35 Y-5
G0 X0 Y10
G1 X20 Y10 RR5
G2 I35 J10 X35 Y25
oppure
G2 RA15 X35 Y25
G2 I35 J10 QF0
G0 X0 Y0
G1 QF60 RR-5 (KA0)
G3 I30 J10 X30 Y-5
(G3 I30 J10 RA15 QF0)
318 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
G0 X0 Y0
G1 QF60 RR-5 KA1
G3 I30 J10 X15 Y10
(G3 I30 J10 RA15 QF-90)
G0 X25 Y40
G1 QF-120 RR18 (KA0)
G3 I30 J10 X45 Y10
(G3 I30 J10 RA15 QF90)
G0 X25 Y40
G1 QF-120 RR18 KA1
G3 I30 J10 X30 Y25
(G3 I30 J10 RA15 QF180)
G0 X0 Y10
G1 QF0 RR-3 KA1
G3 I30 J10 X30 Y25
G0 X0 Y10
G1 QF0 RR3 (KA0)
G3 I30 J10 X15 Y10
G0 X0 Y10
G1 QF0 RR-3 (KA0)
G3 I30 J10 X30 Y-5
D. ELECTRON 319
Cap.10 – Geometria CNC Z32 Programmazione
G0 X0 Y10
G1 QF0 RR-3 KA1
G2 I30 J10 X30 Y25
G0 X0 Y10
G1 QF0 RR3 (KA0)
G2 I30 J10 X45 Y10
G0 X0 Y20
G1 X15 Y20
G2 X30 Y5 RR-5
G1 X0
G0 X0 Y20
G1 X15 Y20
G2 RA15 QF-90 RR5
G1 X0 Y5
G0 X25 Y0
G3 I10 J0 X10 Y15 RR-5
G1 X10 Y0
G1 X10 Y-5
G2 I10 J15 RR-5 (KA0)
G1 X40 Y15 QF0
320 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
G0 X9 Y27,5
G1 QF0
G2 I10 J12,5 RA15 RR-5 KA1
G1 X40 Y15 QF0
G0 X9 Y27,5
G1 QF0
G2 I10 J12,5 RA15 RR5 (KA0)
G1 X40 Y15 QF0
G0 X1 Y-10
G1 QF180
G2 I0 J0 RA10 RR-20 (KA0)
G2 I20 J0 X20 Y-5
G0 X1 Y-10
G1 QF180
G2 I0 J0 RA10 RR-20 KA1
G2 I20 J0 RA5 QF90
G0 X-10 Y18
G1 QF-90
G3 I0 J15 RA10 RR-10 (KA0)
G3 I20 J15 X25 Y15
G0 X0 Y10
G3 I0 J15 RR-10 KA1
G3 I20 J15 RA5 QF0
D. ELECTRON 321
Cap.10 – Geometria CNC Z32 Programmazione
G0 X-10 Y15
G3 I0 J15 RR15 (KA0)
G2 I20 J15 X25 Y15
G0 X10 Y14
G1 QF90
G3 I0 J15 RA10 RR15 KA1
G2 I20 J15 X25 Y15
G0 X-10 Y14
G1 QF90
G2 I0 J15 RA10 RR15 (KA0)
G3 I20 J15 X25 Y15
G0 X-10 Y14
G1 QF90
G2 I0 J15 RA10 RR15 KA1
G3 I20 J15 X20 Y10
Cerchi secanti
G0 X-15 Y-1
G1 QF90
G2 I0 J0 RA15 RR4 (KA0)
G2 I25 J0 X25 Y20
322 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
G0 X-15 Y-1
G1 QF90
G2 I0 J0 RA15 RR-4 (KA0)
G3 I25 J0 X25 Y-20
G0 X15 Y1
G1 QF-90
G2 I0 J0 RA15 RR4 KA1
G2 I25 J0 X25 Y20
G0 X15 Y1
G1 QF-90
G2 I0 J0 RA15 RR-4 KA1
G3 I25 J0 X25 Y-20
G0 X-15 Y-1
G1 QF90
G2 I0 J0 RA15 RR-4 KA1
G2 I25 J0 X25 Y20
G0 X-15 Y-1
G1 QF90
G2 I0 J0 RA15 RR4 (KA0)
G3 I25 J0 X25 Y-20
D. ELECTRON 323
Cap.10 – Geometria CNC Z32 Programmazione
G0 X-15 Y-1
G1 QF90
G2 I0 J0 RA15 RR-4 (KA0)
G2 I25 J0 X25 Y20
G0 X-15 Y-1
G1 QF90
G2 I0 J0 RA15 RR4 KA1
G3 I25 J0 X5 Y0
Cerchi interni
G0 X11,5 Y10
G1 QF0
G3 I12,5 J15 RA5 RR-8 (KA0)
G2 I25 J15 RA20 QF0
G0 X13,5 Y20
G1 QF180
G3 I12,5 J15 RA5 RR-8 KA1
G2 I25 J15 RA20 QF90
G0 X11,5 Y10
G1 QF0
G3 I12,5 J15 RA5 RR8 (KA0)
G3 I25 J15 RA20 QF0
324 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
G0 X13,5 Y20
G1 QF180
G3 I12,5 J15 RA5 RR8 KA1
G3 I25 J15 RA20 QF0
G0 X26 Y-5
G1 QF180
G2 I25 J15 RA20 RR-8 (KA0)
G3 I12,5 J15 RA5 QF180
G0 X5 Y14
G1 QF90
G2 I25 J15 RA20 RR-8 KA1
G3 I12,5 J15 RA5 QF-90
G0 X26 Y35
G1 QF180
G3 I25 J15 RA20 RR8 (KA0)
G3 I12,5 J15 RA5 QF180
G0 X26 Y35
G1 QF180
G3 I25 J15 RA20 RR8 KA1
G3 I12,5 J15 RA5 QF-90
D. ELECTRON 325
Cap.10 – Geometria CNC Z32 Programmazione
Cerchi esterni
Se i cerchi sono esterni si ha (| .. | valore assoluto ):
cerchi concordi/raccordo discorde |2xRR|>= D-RA1-RA2
cerchi concordi/raccordo concorde |2xRR|>= D+RA1+RA2
cerchi discordi/raccordo come il primo |2xRR|>= D+RA2-RA1
cerchi discordi/raccordo come il secondo |2xRR|>= D+RA1-RA2
Cerchi secanti
Se i cerchi sono secanti si ha:
cerchi concordi/raccordo interno |2xRR|<= D- RA1+RA2-D
cerchi discordi/raccordo interno |2xRR|<= D-RA2+RA1
|2xRR|<= D-RA1+RA2
cerchi concordi/raccordo concorde esterno |2xRR|> D+RA1+RA2
Cerchi interni
Se i cerchi sono interni si ha:
cerchi concordi RA2-D-RA1 <|2xRR| <RA2+D-RA1
cerchi discordi RA2-D+RA1 <|2xRR| <RA2+D+RA1
326 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
D. ELECTRON 327
Cap.10 – Geometria CNC Z32 Programmazione
328 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
D. ELECTRON 329
Cap.10 – Geometria CNC Z32 Programmazione
330 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
D. ELECTRON 331
Cap.10 – Geometria CNC Z32 Programmazione
332 D. ELECTRON
CNC Z32 Programmazione Cap.10 - Geometria
utensile rispetto al raggio di curvatura del profilo programmato. Ciò significa che viene
mantenuta costante la velocità di esecuzione del profilo piuttosto che la velocità di
traslazione del centro utensile. Per sicurezza non è previsto un aumento della velocità
del centro utensile in caso di curvatura esterna.
La parte centrale a velocità costante può non esistere se i tratti iniziali o finali di accelerazione e
decelerazione sono complessivamente più lunghi del tratto completo.
D. ELECTRON 333
Cap.10 – Geometria CNC Z32 Programmazione
334 D. ELECTRON
CNC Z32 Programmazione Cap.11 - Rotazione Traslazione Specularità Fattore di Scala
CAPITOLO 11
I parametri utilizzati per queste funzioni sono, come tutti i parametri, modali, ossia il valore
Ordine di programmato rimane fino a che un nuovo valore si sostituisce al precedente.
esecuzione
Al reset, i parametri sono posti a zero, tranne KP e KT, che sono posti ad 1 per avere fattore di
scala unitario.
Se più trasformazioni sono attive, si veda meglio in seguito, lo Z32 opera nell'ordine:
1) Rotazione: è applicata ad AA, AB, al centro cerchio I, J e alla pendenza QF.
2) Traslazione: è applicata alle quote AA, AB, AC, e al centro cerchio I, J, eventualmente
già ruotate.
D. ELECTRON 335
Cap.11 - Rotazione Traslazione Specularità Fattore di Scala CNC Z32 Programmazione
11.2 ROTAZIONE
La figura programmata viene ruotata di un angolo QR (in gradi sessagesimali) intorno al centro
di rotazione di coordinate (IR, JR) riferite all'origine attiva.
La rotazione è sempre abilitata (non ha bisogno di 'G' particolari) se QR diverso da zero.
Al reset è QR = IR = JR = 0.
La rotazione è applicata a:
− quote assi (AA, AB)
− centro cerchio (I, J)
− pendenza (QF)
336 D. ELECTRON
CNC Z32 Programmazione Cap.11 - Rotazione Traslazione Specularità Fattore di Scala
Fino all'istruzione N3 i tre programmi sono uguali, e portano gli assi nella origine OX1 OY1.
All'istruzione N4 i parametri X e Y sono entrambi zero, ossia individuerebbero la nuova origine OX2
OY2. I movimenti ottenuti sono quelli riportati in figura: solo se sono programmati entrambi gli assi
(progr. 3) la nuova origine è raggiunta, altrimenti si muove solo l'asse programmato.
Se è attiva la rotazione (ossia QR non zero) la programmazione di un solo asse (moto parallelo
a un asse della figura non ruotata) provoca in realtà un movimento inclinato e quindi chiede il
movimento anche dell'altro asse.
Perciò, se QR non zero, anche se è programmato un solo asse, lo Z32 non limita il movimento
al solo asse programmato, ma muove entrambi gli assi, in modo da raggiungere il punto ruotato
con una traiettoria inclinata. Nel caso dell'esempio che segue il comportamento della macchina è
diverso dall'esempio precedente:
NOTE:
N1 al reset è QR = IR = JR = 0
N3 non dà moti assi perché nessuna quota è programmata
N4 anche se è programmato solo X, poiché è QR non zero, si muove Y fino alla quota 0
(valore parametro)
N6 essendo QR=0, pur contenendo il parametro Y il valore zero, l'asse Y non si muove
D. ELECTRON 337
Cap.11 - Rotazione Traslazione Specularità Fattore di Scala CNC Z32 Programmazione
11.3 TRASLAZIONE
La figura programmata è traslata delle quantità DA (primo asse), DB (secondo asse), DC (terzo
asse).
La traslazione è abilitata (senza 'G' particolari) se uno o più dei tre parametri DA, DB, DC sono
non zero.
Al reset è DA = DB = DC = 0.
La traslazione è applicata a:
− quote assi (AA, AB, AC)
− centro cerchio (I, J)
338 D. ELECTRON
CNC Z32 Programmazione Cap.11 - Rotazione Traslazione Specularità Fattore di Scala
11.4 SPECULARITÀ
La figura programmata è trasformata nella figura speculare rispetto all'asse di specularità
individuato dal punto di coordinate (IS, JS) e dalla pendenza QS.
La specularità deve essere abilitata da G56 (modale). G55 annulla G56 e quindi la specularità.
Al reset è IS = JS = QS = 0 ed è attivo G55 (specularità non attiva).
La specularità (G56 attiva) provoca lo scambio di G2 con G3 e di G41 con G42.
G56 può essere attiva in correzione raggio (G41/G42) ma non può essere programmata con
G41/G42 attive.
L'asse di specularità è la retta di inclinazione QS e passante per il punto di coordinate IS, JS.
QS, IS, JS sono riferite all'origine attiva e non sono rototraslate.
La specularità è applicata a:
− quote assi (AA, AB)
− centro cerchio (I, J)
− pendenza (QF)
D. ELECTRON 339
Cap.11 - Rotazione Traslazione Specularità Fattore di Scala CNC Z32 Programmazione
Il programmatore faccia attenzione che, in correzione raggio, il fattore di scala può trasformare
un profilo da compatibile a incompatibile e viceversa, se ci sono rientranze dello stesso ordine di
grandezza del raggio fresa. Vedere anche capitolo “Correzione raggio utensile”.
340 D. ELECTRON
CNC Z32 Programmazione Cap.11 - Rotazione Traslazione Specularità Fattore di Scala
ATTENZIONE
L'attivazione dei parametri correttivi è immediata in fase di analisi della
riga e quindi dipende dalla posizione nella riga. Se nella stessa riga ISO è
programmata prima la quota di un asse e poi un parametro correttivo su
quello stesso asse, la quota programmata non viene corretta.
È importante la sequenza con la quale vengono applicate le correzioni, in quanto darebbe un
diverso risultato applicare prima l'addizione e poi la moltiplicazione rispetto al viceversa. La
sequenza è:
1) Moltiplicazione KM..
2) Addizione KD..
3) Moltiplicazione KT e KP
4) Addizione DA DB DC
La programmazione di KM o KD molto alti (per esempio risultato di una formula errata in cui ci
fosse una divisione per zero) può portare a comportamenti imprevedibili (dipende dalle
caratteristiche dell’asse) con possibili errori di movimento CN0013. Per questo il valore massimo
programmabile per KM e KD è inferiore a 131072, un numero sicuramente molto superiore alle
esigenze di programmazione ma tale da non provocare errori di calcolo interni del CN. Se si
programmano valori maggiori o uguali a 131072 viene allarme di programmazione CN2C14
PARAMETRI INCOMPATIBILI.
D. ELECTRON 341
Cap.11 - Rotazione Traslazione Specularità Fattore di Scala CNC Z32 Programmazione
342 D. ELECTRON
CNC Z32 Programmazione Cap.12 - Correzione raggio utensile
CAPITOLO 12
Si noti che:
− gli spigoli interni non possono essere lavorati a causa del raggio utensile (zone 'X')
− sono inseriti alcuni tratti di raccordo (non programmati) attorno agli spigoli esterni (B e D)
− alcuni tratti programmati sono eliminati a causa del raggio utensile (tratto 5)
In generale, se in un programma è attivata (con G41/G42) la correzione raggio, lo Z32 esegue,
su ogni tratto del profilo programmato, una serie di operazioni per trasformarlo nel percorso di
centro fresa.
Le principali operazioni che lo Z32 fa sui tratti programmati per ottenere il percorso del centro
fresa sono:
D. ELECTRON 343
Cap.12 - Correzione raggio utensile CNC Z32 Programmazione
Questa ultima prestazione richiede allo Z32 di esplorare in avanti il profilo per ottenere le
informazioni necessarie.
I tratti successivi di profilo programmato possono infatti interferire col tratto che via via è in
esecuzione e quindi richiedere al tratto in esecuzione un diverso punto finale.
344 D. ELECTRON
CNC Z32 Programmazione Cap.12 - Correzione raggio utensile
Nell'esempio di figura il tratto 9 va ad interferire col tratto 1: per risolvere questo caso il CN
dovrebbe esplorare avanti per almeno 9 tratti, oltre ai raccordi da inserire intorno agli spigoli.
A causa dei limiti fisici, imposti dalla dimensione di memoria e dai tempi di calcolo, si è dovuto
limitare il numero dei tratti esplorati, considerando anche che, qualunque sia il numero di tratti fatti
calcolare al CN, è sempre possibile immaginare un profilo più complesso.
Con due tratti in avanti si possono già risolvere i casi più normali di profilo: lo Z32 quindi, se il
programmatore non richiede prestazioni diverse, esplora in avanti fino a che non ha definito due
tratti di profilo successivi a quello in esame (tre tratti in tutto).
Per esempio si consideri il classico caso di un gradino di altezza inferiore al raggio utensile:
questo caso è pienamente risolto dallo Z32 con l'esplorazione di tre tratti.
I tratti di cui è composto il profilo modificato col raggio utensile sono:
1. tratto iniziale orizzontale
2. raccordo circolare attorno allo spigolo programmato
3. tratto verticale
4. tratto finale orizzontale
D. ELECTRON 345
Cap.12 - Correzione raggio utensile CNC Z32 Programmazione
Il procedimento continua fino a che non sono stati esaminati tre tratti.
Abbiamo prima detto che lo Z32 in condizioni normali esplora tre tratti: ciò è sufficiente a
risolvere un grande numero di casi pratici. È evidente però che si possono pensare casi in cui il
profilo è incompatibile con la entità della esplorazione in avanti dello Z32.
Un esempio di caso limite è quello di una tasca rettangolare di larghezza 'A' e profondità 'B'
(vedere figura), con BA (tasca più profonda che larga). I tratti in cui è scomposto il percorso del
centro fresa sono i seguenti:
1. tratto iniziale orizzontale
2. raccordo circolare di entrata
3. tratto verticale di entrata
4. fondo
5. tratto verticale di uscita
6. raccordo circolare di uscita
7. tratto finale orizzontale
346 D. ELECTRON
CNC Z32 Programmazione Cap.12 - Correzione raggio utensile
D. ELECTRON 347
Cap.12 - Correzione raggio utensile CNC Z32 Programmazione
Se la stessa figura venisse eseguita con tre tratti (la normale G109A) il CN non si accorgerebbe
dell'apertura più stretta dell'utensile ed entrerebbe nel profilo.
È inoltre possibile programmare la funzione G109R che forza l'inserimento di un raccordo anche
intorno allo spigolo interno e quindi elimina, in pratica, l'errore PROFILO INCOMPATIBILE.
La G109R viene annullata dalla G109N; può essere programmata immediatamente prima dei
blocchi che provocano PROFILO INCOMPATIBILE: può essere quindi più chiaro, dai movimenti
eseguiti, quale è la situazione che provoca l'allarme.
Si faccia attenzione che, con G109R attiva, l'utensile può entrare nel profilo programmato e
possono rimanere raccordi lunghi sugli spigoli interni in caso di profilo complesso.
348 D. ELECTRON
CNC Z32 Programmazione Cap.12 - Correzione raggio utensile
....
T2 M6 (RAGGIO=10)
G0 X0 Y0
G41 X25 Y0 QF0 (QF errata)
G1 X50 Y35
...
D. ELECTRON 349
Cap.12 - Correzione raggio utensile CNC Z32 Programmazione
Il QF deve essere programmato esatto perché se è errato (in fig. è 0 anziché 54.46) l'utensile
può entrare nel profilo.
Questi problemi possono essere superati con i seguenti altri modi di attacco al profilo.
....
T2 M6 (RAGGIO=10)
G0 X0 Y0
G41 X25 Y0
G1 X50 Y35
...
......
T1 M6 (RAGGIO 10)
G0 X0 Y0
G41 QF0
G1 X25 Y0
G1 X50 Y35
...
Non si ha movimento nel blocco G41 QF. Se QF è errato (come in figura, 0 anziché circa 20
gradi) l'errore si ha solo nel tratto in G1 che porta l'utensile al primo punto reale del profilo P1, ma
l'utensile essendo ancora fuori non si hanno errori sul pezzo.
350 D. ELECTRON
CNC Z32 Programmazione Cap.12 - Correzione raggio utensile
D. ELECTRON 351
Cap.12 - Correzione raggio utensile CNC Z32 Programmazione
352 D. ELECTRON
CNC Z32 Programmazione Cap.12 - Correzione raggio utensile
D. ELECTRON 353
Cap.12 - Correzione raggio utensile CNC Z32 Programmazione
354 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
CAPITOLO 13
Il ciclo eseguito è:
1) accostamento in rapido (A-B in figura): se in questo tratto è trovato il contatto la misura
è presa lo stesso, ma con possibile pericolo per il tastatore dovuto all'alto spazio di
frenata
2) ricerca a velocità media fino al massimo (punto C)
3) a contatto avvenuto, inversione del senso di moto con accelerazione doppia della
taratura e ritorno indietro sulla traiettoria programmata fino alla perdita del contatto.
Durante l'inversione di moto ad accelerazione doppia è temporaneamente sospeso
l'allarme per errore di inseguimento.
4) ricerca in avanti a velocità lentissima
5) presa delle quote precise al momento del contatto e restituzione in forma di parametri
Se al punto 3 il contatto resta ancora attivato quando gli assi sono tornati al punto iniziale (A in
figura) il CN dà allarme CN0513.
D. ELECTRON 355
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
Se al punto 4 (ricerca in avanti a velocità lentissima) la macchina arretra di più di 1,5 mm dal
punto del primo contatto viene allarme CN0613.
I parametri restituiti dopo un ciclo di misura sono:
AM quota di contatto del primo asse della terna (definita con G25...)
BM quota di contatto secondo asse
CM quota di contatto terzo asse.
I parametri AM BM CM sono calcolati a partire dalle quote misurate al momento del contatto
riferite all'origine attiva e tenendo conto delle dimensioni fisiche del tastatore.
Se nelle fasi 2 o 4 non è trovato il contatto entro la traiettoria massima programmata, il CN non
dà errore, ma restituisce tre parametri AM, BM, CM molto grandi (più di 100.000): ciò permette al
programmatore di prendere delle decisioni e deviare il programma in caso di mancato contatto.
Nota bene: in caso di non contatto, tutti e tre i parametri sono restituiti molto grandi,
indipendentemente dal numero di assi interessati al movimento di misura.
I parametri usati per correggere le quote con le dimensioni fisiche del tastatore sono:
− lunghezza L
− raggi AP, AN, BP, BN
Nella figura è rappresentato il tastatore equivalente, composto di quattro archi di ellisse.
Il CN calcola da solo quale parametro usare e con quale coefficiente di direzione in funzione
dell'inclinazione del tratto programmato.
I parametri :
L , AN , AP , BN , BP
rappresentativi delle dimensioni fisiche del tastatore devono essere
già presenti in memoria quando si esegue la misura: essi possono
essere messi nella descrizione dell'utensile tastatore e devono
essere in precedenza calcolati o meglio misurati in modo
automatico con apposita macro di calibrazione.
Nella figura che segue è rappresentato il diagramma di velocità in funzione del tempo, per un
movimento di misura completo. La velocità è calcolata sulla traiettoria, come in G0/G1.
356 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
Si tenga presente che, se lo spazio di frenata da rapido a lento è superiore alla distanza AB,
tutta la ricerca (incluso il tratto programmato come rapido) viene eseguita alla velocità di ricerca
lenta.
In generale il tratto di decelerazione da rapido a lento può essere eseguito tutto o in parte a
velocità lenta se il rapido non era stato completamente raggiunto.
In ricerca blocco G61 è ignorato: il blocco si trasforma in blocco di movimento fino alle quote
finali. I parametri AM BM CM non sono modificati.
Se si desidera che il programma possa essere ripreso senza problemi anche in ricerca blocco,
dovrà essere cura del programmatore salvare in memoria permanente (per esempio nella sezione
parametri) i risultati delle varie misure per poterle poi simulare in ricerca blocco.
Modo attivo prima della G61 Modo durante G61 normale (senza J) Modo durante G61 con J
programmato
D. ELECTRON 357
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
ATTENZIONE
le velocità massime di ricerca consentite durante la G61 con
programmazione di J sono molto alte (fino a 6000 mm/min). L'utente deve
controllare che gli spazi di frenata conseguenti alla velocità programmata
siano compatibili con l'extra-corsa consentito dal tastatore di misura
utilizzato.
Si faccia attenzione al fatto che il bit di misura viene controllato da Z32 ogni 2 millisec, quindi si
ha un'incertezza nella misura che dipende dalla velocità di ricerca, come riportato nella tabella
seguente:
velocità ricerca mm/min incertezza di misura micron
30 1
100 3,3
200 6,7
300 10
Si deve anche tener conto del fatto che a velocità elevate possono essere rilevanti i ritardi dovuti
alla risposta meccanica del tastatore, che ovviamente non sono stati considerati nella tabella qui
sopra.
358 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
PROGRAMMA %
AN0 AP0 BN0 BP0 (PREDISPONE CORREZIONI ZERO)
G0 AC<HR+1> (POSIZIONA PER MISURA TERZO ASSE)
AA0 AB0 (MISURA L)
G61 AC<HR-1> DM2
!IF AM>99000;GON9! (SE NON TROVATO CONTATTO ALLARME)
L<L+CM-HR> (CALCOLA ED ATTIVA NUOVA L)
(MISURA AN)
G0 AA<HR+R+1> (ESCE)
AC<-R> (SCENDE)
G61 AA<HR+R-1> (TOCCA)
!IF AM>99000; GON9! AN=AM-HR!
G0 AA<HR+R+1>
(misura AP)
G0 AC<HR+1>
AA<-HR-R-1>
AC<-R>
G61 AA<-HR-R+1>
!IF AM>99000; GON9! AP=-(AM+HR)!
G0 AA<-HR-R-1>
(misura BN)
G0 AC<HR+1>
AA0 AB<HR+R+1>
AC<-R>
G61 AB<HR+R-1>
!IF AM>99000; GON9! BN=BM-HR!
G0 AB<HR+R+1>
(MISURA BP)
G0 AC<HR+1>
AB<-HR-R-1>
AC<-R>
G61 AB<-HR-R+1>
!IF AM>99000; GON9! BP=-(BM+HR)!
G0 AB<-HR-R-1>
(ESCE IN AC)
AC<HR+1>
(SCRIVE NUOVI CORRETTORI UTENSILE SU MANDRINO)
!:WSL=L,AN=AN,BN=BN,AP=AP,BP=BP!
G26 (FINE)
(RIGA ERRORE)
N9 MANCA CONTATTO
D. ELECTRON 359
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
Si noti come sono stati scelti i segni nel calcolo di AN, AP, BN, BP in funzione del fatto che
questi quattro parametri sono positivi e circa uguali, con tasto ben centrato, al raggio tasto.
PROGRAMMA
%
G0 X0 Y0 (MUOVE X E Y E SCENDE A QUOTA MISURA)
Z<HA>
G61 X<HR-AP+HT> DM<2*HT> (TASTA IN X)
!IF AM>99000; GON9! DI=AM!
G0 X0 (STACCA IL TASTO)
G61 X<-HR+AN-HT>
!IF AM>99000; GON9! DI=(DI+AM)/2!
G0 X<DI>
G61 Y<HR-BP+HT> (TASTA IN Y)
!IF AM>99000; GON9! DJ=BM!
G0 Y0
G61 Y<-HR+BN-HT>
!IF AM>99000; GON9! DJ=(DJ+BM)/2!
!:ROX*=AM;AM=AM+DI;:WOX*=AM! (CORREGGE ORIGINE)
!:ROY*=BM;BM=BM+DJ;:WOY*=BM!
G0 X0 Y0 (ESCE)
Z<HC>
G26
(SEGNALE ERRORE)
N9 MANCA CONTATTO
360 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
D. ELECTRON 361
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
I movimenti programmati successivamente ripartono dal punto di interruzione anziché dalla fine
programmata del movimento interrotto. Alla fine del movimento sono restituiti (come per i
movimenti di misura G61) i tre parametri AM BM e CM con questa codifica:
(AM=BM=CM) = 0 se il movimento è stato interrotto
(AM=BM=CM)>100.000 se il movimento è stato completato
Scopo di questa G è di permettere programmi che in qualche modo si adattino ad eventi che si
rivelano durante il movimento.
Per esempio, si immagini che, durante un movimento di lavoro (foratura, fresatura ecc.) si abbia
a disposizione un dispositivo che riveli la rottura o usura eccessiva dell'utensile. Con la G62 si può
organizzare un sistema che permette l'immediata interruzione del lavoro e la sua eventuale ripresa
dopo il cambio dell'utensile. Il sistema è composto da:
A) Dispositivo di misura (montato sulla macchina) che rivela le condizioni di arresto (rottura o
usura utensile)
B) Gestione nella logica di macchina (fatta dal costruttore) del segnale di arresto ed
elaborazione del bit di logica 0EC.
C) Programma-pezzo (meglio se ciclo fisso) contenente la G62 in tutti i blocchi di movimento
che devono essere controllati, con istruzioni per la gestione dei parametri di ritorno (AM, BM, CM)
Esempio di programma-pezzo:
.....
N10 T45 M6 (FRESA)
N20 G0 X0 Y0 Z0 F400 M3 M7
N30 G1 Z-30 (MOVIMENTO NON CONTROLLATO)
N40 G62 X100 (MOTO IN G1 CON CONTROLLO UTENSILE)
N50 !IF AM>99000; EB! GON100!
N60 ... (CONTINUA LA LAVORAZIONE)
...
N100 ... (GESTIONE DELL'UTENSILE USURATO)
...
Al momento dell'eventuale interruzione, lo Z32 acquisisce le quote intermedie come quote iniziali
del movimento successivo: queste quote possono essere leggermente diverse dalle quote
programmate per i fuori zero degli assi. Per esempio:
...
N10 G0 X0 Y0 Z0
N20 G62 G1 Z-100
N30 Z0
...
La riga N30 riporta l'asse Z a 0 in ogni caso (con o senza interruzione). Se c'è un fuori zero di
+0,01 mm sull'asse X e il movimento è interrotto, la quota X durante il ritorno può essere di +0,02
mm (parte dal fuori zero precedente e aggiunge ancora il fuori zero). Se invece è programmato:
...
N30 X0 Y0 Z0
...
il ritorno è fatto senza raddoppio del fuori zero.
362 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
Si noti che, anche se il movimento viene interrotto e sono acquisite le quote al momento
dell'interruzione, il parametro individuato dal nome asse mantiene il valore finale programmato.
Consideriamo i due esempi:
... ...
N10 G1 X0 Y0 Z0 N10 G1 X0 Y0 Z0
N20 G62 Z-100 N20 G62 Z-100
N30 X-50 N30 Z<Z> X-50
... ...
(esempio 1) (esempio 2)
I due programmi differiscono solo nella riga N30: se si ha una interruzione per esempio alla
quota Z=-47,53 mm, nel caso 1 N30 genera un moto parallelo all'asse X con quota Z=-47,53
costante, nel caso 2 N30 genera un movimento a due assi fino alle quote finali X-50 Z-100 (il
parametro Z conserva il valore programmato -100).
G62 può essere programmata anche su movimenti in G2 o G3, ma non per movimenti composti
né in correzione raggio.
Quando, durante un movimento con G62, è attivato il comando di stop (bit di logica 0EC) la
velocità è portata a zero con rampa di decelerazione controllata ed assi in traiettoria (come con
FEED HOLD).
Il passaggio alla riga successiva di programma si ha dopo l'arresto degli assi: se prima
dell'arresto il comando di stop cessa (ossia il bit 0EC torna a 0) il movimento riprende con rampa di
accelerazione fino alla velocità programmata. Nella logica programmabile si deve tenere conto di
questa caratteristica (per esempio memorizzando 0EC) per evitare eventuali pendolamenti (il
sensore utensile usurato potrebbe cessare di rivelare il difetto se la velocità di avanzamento scende
a zero).
D. ELECTRON 363
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
− conteggio di pezzi
− gestione vita utensile
− gestione posto random
− ...
Anche il richiamo in una riga ISO di una origine (p. es. OX1) può essere non ripetibile se l'origine
stessa viene modificata dal programma.
364 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
D. ELECTRON 365
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
366 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
ATTENZIONE
Un asse continuo ciclico e posizionato per la via più breve potrebbe anche
essere usato per interpolazione circolare, ma sarebbe molto difficile
trovare la giusta quota del centro (che dovrebbe tenere conto dei giri
accumulati). In pratica si può dire che un asse continuo ciclico
posizionato per la via più breve non può essere usato per interpolazione
circolare.
13.4.6 Programmazione assi ciclici per via più breve con direzione
In taratura di Z32 si può scegliere l'opzione di programmare movimenti di assi ciclici con
raggiungimento della posizione finale per la via più breve.
Per garantire una compatibilità con alcuni CAM esistenti, è stata introdotta un'altra opzione, che
permette di evitare comunque il movimento di più di un giro, ma che permette di scegliere la
direzione di movimento.
Se questa opzione è attiva viene forzato in modo non standard il significato del carattere
programmato: il segno non indica più una quota negativa, ma la direzione del movimento, e la
quota dell'asse è considerata sempre positiva, da 0 fino alla ciclicità.
Per esempio, se l'asse B è ciclico, se è attiva l'opzione di posizionamento degli assi ciclici per la
via più breve con scelta della direzione:
B-10
richiede di posizionare l'asse B alla quota +10, con direzione di movimento negativa.
Se si conferma la quota programmata in precedenza (sia con segno positivo che negativo) non
si ottiene nessun movimento.
Attenzione: la forzatura del significato del segno e la generazione dei movimenti si porta
dietro alcune eccezioni al normale comportamento di Z32:
1) avendo il segno programmato un significato diverso dal segno aritmetico, il parametro
programmato B viene forzato al suo valore assoluto. Quindi, dopo aver programmato
B-10, il contenuto aritmetico del parametro B non è -10, ma +10.
2) se si programma B con una espressione (per esempio B<HA-1>) il valore assegnato a
B è comunque il valore assoluto: il segno negativo viene perduto. Si consiglia, per
compatibilità con eventuali modifiche future, di non programmare assi ciclici con scelta
direzione tramite espressioni
3) nel caso che l'asse sia "morto" (es. G29B) si ha comunque la prestazione, già presente
per gli assi ciclici normali, che l'asse non viene reso vivo durante il movimento se la
posizione programmata è poco distante da quella attuale ed entro la soglia di
posizionamento. Ciò però significa che può non venire fatto un movimento pari a quasi
un giro intero, se viene programmata una quota entro la soglia di posizionamento ma
con specifica di movimento di segno contrario. Si consiglia, per avere una certezza di
funzionamento, di non programmare assi ciclici con scelta direzione non vivi
4) l'asse ciclico con posizionamento per la via più breve e specifica della direzione non
deve essere uno dei tre assi della terna di lavoro. Z32 non dà allarme, ma in questo
caso la direzione programmata può non essere rispettata.
D. ELECTRON 367
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
368 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
D. ELECTRON 369
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
370 D. ELECTRON
CNC Z32 Programmazione Cap.13 - Prestazioni speciali
- non ammette origini supplementari. L’asse discreto è sempre riferito all’origine base, sia da
part-program che da attività di jog.
- non ammette formule permanenti.
- non è inseribile nella terna di lavoro. La programmazione di G25, se nella lista dei tre assi ha
un asse discreto, provoca errore CN2C14 – PARAMETRI INCOMPATIBILI. Come
conseguenza sull’asse discreto è possibile solo una interpolazione lineare, in G0 o G1. Non
è possibile l’interpolazione circolare o la correzione raggio.
- in jog c’è una coda di movimento fino a raggiungere l’intero più vicino. Per esempio se si
abbandona il pulsante di jog di velocità alla quota 2,499 l’asse si ferma alla quota di 2,000,
mentre se si abbandona alla quota di 2,501 va alla quota 3,000. Attenzione: se si fa RESET
durante il movimento in jog l’asse viene congelato nel punto dove si trova, anche se non è
intero.
- in caso di attività 7 (zero assi) è cosigliato programmare un post-posizionamento intero. Per
esempio, se B è discreto, è utile (per evitare di arrestare l’asse in un punto sbagliato)
comandare 7 ENTRA: B0 (oppure B1 o B2 ecc…).
D. ELECTRON 371
Cap.13 - Prestazioni speciali CNC Z32 Programmazione
372 D. ELECTRON
CNC Z32 Programmazione Cap.14 - Prestazioni obsolete
CAPITOLO 14
D. ELECTRON 373
Cap.14 - Prestazioni obsolete CNC Z32 Programmazione
Si noti che le formule (<<...>>) e i sottoprogrammi permanenti (G27P...) non possono essere
attivate con G98 attiva ma se sono attivati in precedenza rimangono attivi e sono eseguiti anche
durante G98.
Non La G98 sospende l'efficacia di G0, G1, G2, G3, ossia le quote programmate dopo G98 sono
funziona sempre interpretate come quote finali di tratto lineare come in G1. G99 ripristina la situazione
precedente alla G98.
La G98 sospende inoltre l'efficacia di:
− rototraslazione
− specularità
− fattore di scala
Con G98 attiva, è consentito programmare in una riga ISO gli indirizzi I, J, QF, RA.
Contrariamente a quanto accade senza G98 attiva però I, J, QF, RA non assumono speciali
significati di elementi di profilo, e valgono solo come parametri. Con G98 attiva perciò è equivalente
programmare per esempio I30 in riga ISO oppure !I=30! in riga evoluta.
Da quanto sopra, si vede che, con G98 attiva si sono eliminate una quantità di operazioni che
erano a carico dello Z32, e che si presume siano fatte dal calcolatore che determina i punti del
profilo (correzione raggio, elaborazioni sulle quote programmate, calcoli geometrici). La possibilità
di esecuzione di righe evolute e quindi di calcoli matematici permette, a scelta dell'operatore e per
quanto necessario, di ripristinare parte delle funzioni eliminate.
374 D. ELECTRON
CNC Z32 Programmazione Cap.14 - Prestazioni obsolete
D. ELECTRON 375
Cap.14 - Prestazioni obsolete CNC Z32 Programmazione
È stato creato un controllo molto più stretto dei movimenti assi, e della loro effettiva rispondenza
al comando di velocità. Il controllo è attivo in tutti i modi di funzionamento della macchina e su tutti
gli assi, inclusi gli assi indexati o comandati da logica.
In pratica per ogni asse viene integrato per un certo tempo (un ciclo di integrazione dura 384
millisecondi) il riferimento di velocità e viene calcolato lo spostamento teorico corrispondente.
Lo spostamento calcolato viene confrontato con quello rilevato e quindi viene calcolato l'errore.
La tolleranza ammessa sull'errore è calcolata con una somma di componenti, che sono: 1/16
della velocità attuale, più 1/256 del rapido, più una velocità in mm/minuto pari all'errore di
posizionamento moltiplicato per 5000. Per esempio, se un asse si sta muovendo alla velocità di
4000 mm/min, il rapido asse è 20 m/min e l'errore di posizionamento è 0,015, l'errore di velocità
ammesso è di 4000/16 + 20000/256 + 0,015*5000 = 250 + 78,1 + 75 = 403,1 mm/min. In 0,384
secondi quindi l'errore massimo accumulato dall'asse può essere di 2.58 mm. Se è maggiore,
scatta l'allarme.
Una volta determinato che l'asse ha un comportamento errato, viene segnalato l'errore alla
logica di macchina e, nel caso che l'asse in errore sia un asse vivo controllato da part-program,
viene l'allarme CNDx13, dove x è il numero logico dell'asse in errore.
Questo tipo di controllo è efficiente anche nel caso che il rilevatore di quote di un asse si blocchi
in una condizione tale che le schede non siano in grado di rilevarlo e quindi non venga errore
CNxx12.
Proprio per l'efficienza del controllo, che potrebbe risultare incompatibile su macchine con assi
eccessivamente imprecisi, è stato previsto di poterlo disattivare con un'apposita taratura.
376 D. ELECTRON
CNC Z32 Programmazione Cap.14 - Prestazioni obsolete
14.1.5 Esempi
Come esempio di uso della G98, si danno due programmi per la esecuzione di ellissi, senza e
con correzione raggio.
Le equazioni parametriche dell'ellisse sono:
X = HA * cos HT Y = HB * sen HT
dove HA e HB sono i semiasse in direzione X e Y rispettivamente, e HT è il parametro angolare
che, incrementato da 0 a 360 gradi, fa percorrere l'ellisse al punto calcolato.
Le equazioni parametriche dell'ellisse con correzione raggio sono:
HC = HA * sen HT
HD = HB * cos HT
X = HA * cos HT + R * HD / rquad (HC2 + HD2)
Y = HB * sen HT + R * HC / rquad (HC2 + HD2)
dove HA e HB sono i semiassi, HT è il parametro angolare variabile da 0 a 360, R è il raggio
dell'utensile, HC e HD sono due parametri intermedi usati per abbreviare i calcoli.
D. ELECTRON 377
Cap.14 - Prestazioni obsolete CNC Z32 Programmazione
378 D. ELECTRON