Sei sulla pagina 1di 207

9732CNC - Manuale di programmazione Cap.

COGI Elettronica

CNC 9732

NORME DI PROGRAMMAZIONE

Emissione del 15/01/1998


9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Release Software 1.1xx

INDICE

Cap.1 FONDAMENTI

1.1 INTRODUZIONE 1
1.2 ASSI CNC 3
1.3 ASSI INDIPENDENTI 4
1.4 QUOTE ASSI ED ORIGINI 5

Cap.2 STESURA DI UN PART PROGRAM

2.1 DEFINIZIONI
1

Cap.3 PROGRAMMAZIONE DEL MOVIMENTO ASSI

3.1 PROGRAMMAZIONE ASSOLUTA 1


3.2 PROGRAMMAZIONE INCREMENTALE 1
3.3 ISTRUZIONI MOVIMENTO ASSI 2
3.4 VELOCITA’ DI AVANZAMENTO 3
3.4.1 POSIZIONAMENTO SINGOLO ASSE 3
3.4.2 POSIZIONAMENTO CONTEMPORANEO 2 ASSI 3
3.4.3 POSIZIONAMENTO CONTEMPORANEO 3 ASSI 4
3.4.4 POSIZIONAMENTO IN IPERSPAZIO MULTIASSI 4
3.4.5 MOVIMENTI CONTEMPORANEI DI ASSI PARALLELI 5
3.4.6 CORRETTIVO SULLA SCOMPOSIZIONE VELOCITA’ 5
3.5 VELOCITA’DI AVANZAMENTO PER ASSI ROTANTI 6
3.5.1 MOVIMENTI DI LAVORO DEL SOLO ASSE ROTANTE 7
3.5.2 MOVIMENTI CONTEMPORANEI TRA ASSE ROTANTE E
LINEARE 8
3.6 PROGRAMMAZIONE ASSI INDIPENDENTI 9
3.6.1 PROGRAMMAZIONE VELOCITA’ AVANZAMENTO 10
3.6.2 ISTRUZIONE DI ATTESA “WAT:” 10
3.6.3 ESEMPI DI PROGRAMMAZIONE 11
3.6.4 PRECISAZIONE SUGLI ASSI INDIPENDENTI 12
3.6.5 ORIENTAMENTO MANDRINO 13
3.6.6 MANDRINO GESTITO 14
3.6.7 ASSI ROTONDI 14

2 Indice
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Cap.4 PROGRAMMAZIONE DELLE F.A. INTERNE

4.1 CARATTERI SPECIALI 2


4.2 LIMITAZIONI DEL CAMPO DI LAVORO 5
4.2.1 ALTRE REGOLE SU G25 E G26 6
4.3 PROGRAMMAZIONE METRICA ED IN POLLICI 7

Cap.5 PROGRAMMAZIONE DELLE F.A. ESTERNE

5.1 CODICI DELLE FUNZIONI AUSILIARIE M... 2


5.2 BLOCCAGGIO ASSI (istruzioni impiantistiche) 3
5.3 ESCLUSIONE DEL CAMBIO AUTOM.DELL’UTENSILE 4

Cap.6 ORDINE D’ESECUZIONE DELLE FUNZIONI AUSILIARIE

6.1 F.A. COME SUBROUTINES 2

Cap.7 COMPENSAZIONE DELLA LUNGHEZZA DEGLI UTENSILI

7.1 COMPENSAZIONE DELLA LUNGHEZZA DEGLI UTENSILI 2


7.2 ESEMPIO D’USO DELLA COMPENSAZIONE DI LUNGHEZZA 3

Cap.8 COMPENSAZIONE PARASSIALE DEL RAGGIO UTENSILE

8.1 ESEMPIO DI PROGRAMMAZIONE 2


8.2 CORRETTORI UTENSILI 3

Cap.9 ORIGINI

9.1 ORIGINI ASSOLUTE 1


9.2 TRASLAZIONE ORIGINE DA PROGRAMMA 3
9.2.1 CARICAMENTO ORIGINI DA PROGRAMMA 4
9.2.2 SPOSTAMENTO ORIGINE ADDIZIONALE 4
9.3 SOSPENSIONE ORIGINI E TRASLAZIONI 5

Cap.10 CICLI FISSI DI LAVORAZIONE

10.1 ASSEGNAZIONE DEI CICLI FISSI 2

3 Indice
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

10.2 PROGRAMMAZIONE DEI CICLI FISSI 2


10.3 DESCRIZIONE DEI CICLI FISSI 4

4 Indice
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Cap.11 CONTORNATURA

11.1 DEFINIZIONE DEL PIANO DI CONTORNATURA 1


11.1.1. ORIENTAMENTO DEL DISEGNO 2
11.2 ISTRUZIONI DI CONTORNATURA CONVENZIONALE 3
11.3 COMPENSAZIONE VETTORIALE DEL RAGGIO UTENSILE 6
11.3.1 REGOLE DI CONTORNATURE 7
11.3.2 PROFILO RACCORDATO O CON SPIGOLI
8
11.4 ATTACCO AL PROFILO 9
11.4.1 ATTACCO SU RETTE 9
11.4.2 ATTACCO SU CERCHI 10
11.5 ESEMPI COMPLETI DI CONTORNATURA 11
11.5.1 CONSIDERAZIONI TECNOLOGICHE CONTORNATURA 13
11.6 CORREZIONE DEL RAGGIO UTENSILE NELLO SPAZIO 14
11.7 INTERPOLAZIONE ELICOIDALE 15
11.8 FRESATURA AD ALTA VELOCITA’ 18
11.9 ATTACCHI TANGENZIALI AL PROFILO 19
11.9.1 ATTACCHI TANGENZIALI A PROFILI CIRCOLARI 21
11.9.2 PROGRAMMAZIONE DEL RAGGIO ED ANGOLO
DI ATTACCO 22

Cap.12 ISTRUZIONI COMPLEMENTARI

12.1 SOVRAMETALLO SUL PROFILO 1


12.2 SOVRAMETALLO IN PROFONDITA’ 2
12.3 SPECULARITA’ DI PROGRAMMA 3

Cap.14 LINGUAGGIO INDIRETTO DI PROGRAMMAZIONE AD ALTO


LIVELLO HLPL

14.1 ELEMENTI DEL LINGUAGGIO 1


14.1.1 VARIABILI 1
14.1.2 COSTANTI 3
14.1.3 CARATTERI DI PUNTEGGIATURA 4
14.1.4 CALCOLI NEL HLPL 5
14.1.5 PRIORITA’ NELLA ESECUZIONE DEI CALCOLI 8
14.1.6 ABBINAMENTO TRA VARIABILI HLPL ED INDIRIZZI
PROGRAMMABILI 9
14.2 REGOLE D’USO DELLE VARIABILI 12

1 Indice
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

14.2.1 PROTEZIONE DELLE VARIABILI # 12


14.2.2 SINONIMI 12
14.2.3 CANCELLAZIONE DELLE VARIABILI 14
14.3 SALTI DI PROGRAMMA 14
14.3.1 SALTI INCONDIZIONATI 14
14.3.2 SALTI CONDIZIONATI 15
14.3.2.1 ESEMPIO DI APPLICAZIONE 17
14.3.4 SALTI CONDIZIONATI DA SOLLECITAZ. ESTERNA 19
14.4 SOTTOPROGRAMMI 21
14.4.1 NESTING (annidamento) DI SOTTOPROGRAMMI 22
14.5 MACROISTRUZIONI G... 23
14.5.1 MACRO MODALI 23
14.5.2 CONCATENAMENTO DI MACRO 24
14.5.3 MACRO AUTOCANCELLANTI 24
14.6 ESEMPI DI PROGRAMMAZIONE 25

Cap.15 MATRICI E LOOP DI PROGRAMMA

15.1 MATRICI DI TRASFORMAZIONE 1


15.2 ESEMPI DI MATRICI 2
15.2.1 TRASLAZIONE 2
15.2.2 ROTAZIONE ATTORNO ALL’ORIGINE 3
15.2.3 ROTAZIONE ATTORNO AD UN PUNTO 4
15.2.4 ROTOTRASLAZIONE 4
15.2.5 FATTORE DI SCALA 5
15.2.6 IMMAGINE SPECULARE 5
15.3 PROGRAMMAZIONE DELLE MATRICI 6
15.3.1 SPAZIO DI APPLICABILITA’ DELLA MATRICE 8
15.3.2 ABILITAZIONE DELLA MATRICE 10
15.3.3 UTILITA’ DELLE MATRICI 11
15.4 RIPETIZIONI DI PARTI DI PROGRAMMA 14
15.5 REGOLE MINORI 20
15.6 RIPETIZIONE CON TRASFORMAZIONE 22
15.6.1 RIPETIZIONE CON TRASLAZIONE 24
15.6.2 RIPETIZIONE CON ROTAZIONE 26
15.6.3 RIPETIZIONE CON ROTOTRASLAZIONE 27
15.6.4 RIPETIZIONE CON TRASLAZIONE MULTIPLA 27
15.6.5 RIPETIZIONE CON ROTAZIONE MULTIPLA 28
15.6.6 APPLICAZIONE RAPPORTO DI SCALA 29
15.7 ESEMPI DI PROGRAMMAZIONE 30
15.7.1 RUOTA DENTATA 30

2 Indice
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.7.2 FRESATURA INTERNO ESTERNO SCATOLA 32


15.8 ROTAZIONE DI PIANI 35
15.8.1 PROGRAMMAZIONE DELLA ROTAZIONE DI PIANI 35

Cap. 16 ISTRUZIONI SPECIALI DI HLPL LOGICO

16.1 ISTRUZIONE “MVM” 1


16.2 ISTRUZIONE “CEN” 2
16.3 PROGRAMMAZIONE FINESTRE PERSONALIZZABILI 3
16.3.1 GESTIONE DI VISUALIZZAONI 4
16.3.2 GESTIONE DATA ENTRY 4

Cap. 17 ADDENDUM / TORNIO

3 Indice
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 1

FONDAMENTI

Cosa si intende per programmazione ?


Il programmatore, partendo dal disegno quotato del pezzo da produrre e conoscendo la
Macchina Utensile, le attrezzature e gli utensili necessari, studia il ciclo di lavorazione
per la Macchina Utensile (M.U.) dotata di CNC. Il risultato del suo lavoro si presenta
come un tabulato di istruzioni capaci di far eseguire alla M.U. il ciclo di lavorazione
studiato, tale tabulato e’ universalmente chiamato “Part-Program” ovverossia
Programma del Pezzo da lavorare.

1.1 INTRODUZIONE

Il linguaggio di programmazione del 9732CNC contiene una serie di istruzioni


corrispondenti al altrettanti segnali elettrici, emessi dal CNC, e che sono divisibili in 3
categorie:

1. Segnali elettrici alla macchina utensile per il movimento dei suoi assi (Fig.1.1)
(ad esempio X,Y,Z,b), tali segnali vengono inviati al dal CNC agli azionamenti.(A)
I trasduttori (T) rilevano istante per istante la quota raggiunta dagli assi, i segnali
provenienti dai trasduttori vengono riportati al CNC che li confronta con le quote
programmate. Tale ciclo e’ chiamato “ciclo o loop di spazio chiuso”

2. Segnali alla macchina utensile per comandare le sue funzioni AUSILIARIE


ESTERNE, cioe’ quelle che sono emesse all’esterno del CNC, in prevalenza hanno
indirizzo M.., quali

- Verso di rotazione del mandrino

- Velocita’ di rotazione

- Refrigerante

- Cambio utensile, ecc.

N.B. Tutte queste funzioni sono gestite dalla sezione PLC (Controllore Programmabile)
del controllo 9732CNC tramite il linguaggio d’interfaccia PLCS.

1 Capitolo 1
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

3. Segnali elettrici a se stesso per predisporsi ad effettuare Funzioni Ausiliarie


Interne, in prevalenza programmate con indirizzo G.. quali:

- Interpolazioni: lineare, circolare, elicoidale

- Macroistruzioni, cicli fissi ecc.

- Istruzioni dei vari linguaggi, ISO, HLPL, GEO+, PLCS

N.B. Le Funzioni Ausiliarie Interne provocano solo elaborazione di dati da parte del
calcolatore centrale dl CNC.

2 Capitolo 1
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

1.2 ASSI CNC

Si definiscono ASSI CNC tutti quegli assi che possono essere programmati
contemporaneamente e che contemporaneamente raggiungono il punto finale
programmato; possono essere definiti anche ASSI INTERPOLATI.
IL 9732CNC puo’ gestire fino a 8 assi contemporaneamente con tutto cio’ che li
riguarda
(Fig.1.2), trasduttori, encoders, loop di spazio, tabelle origini, files di taratura ecc..

Gli assi relativi all coordinate macchina (secondo le norme ISO e DIN) fanno
riferimento ad una terna di assi destrorsi riportati in Fig.1.2 e 1.3
Per i quali vale generalmente quanto segue:

ASSI LINEARI PRINCIPALI

ASSE Z (DIREZIONE 3)
L’asse Z (definito di direzione 3) e’ parallelo all’asse di rotazione di rotazione del
mandrino o coincide con esso. Il verso di quest’asse e’ in allontanamento dal pezzo in
lavorazione.

ASSE X (DIREZIONE 1)
L’asse X (definito di direzione 1) e’ l’asse longitudinale di una fresatrice o centro di
lavoro.

ASSE Y (DIREZIONE 2)
L’asse Y (definito di direzione 2) e’ l’asse trasversale di una fresatrice ad asse verticale
o l’asse verticale di un Machining Center o alesatrice. Comunque sia, la direzione
dell’asse Y dipende dagli orientamenti degli assi X Z: se si tende il dito pollice (mano
destra) in direzione dell’asse positivo X ed il dito medio in direzione del semiasse
positivo Z, la posizione e la direzione dell’asse Y vengono rappresentate dal dito indice.

3 Capitolo 1
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

ASSI ROTANTI

Gli assi rotanti, ad esempio: A, B, C; lo sono rispetto agli assi di riferimento X, Y, Z.


Un osservatore che guardi nella direzione degli assi notera’ che ladirezione positiva di
rotazione corrisponde al verso orario.
Le sigle degli assi sono associabili ai seguenti indirizzi maiuscoli e minuscoli:

1) X,Y,Z
2) B,A,V,U,C,P,Q,a,b,d,e,f,g,h,m,t

- Gli indirizzi di tipo 1 sono sempre riservati alle sigle degli assi CNC

- Gli indirizzi di tipo 2 possono quando sono definiti come sigle assi, essere
utilizzati per la definizione degli altri indirizzi programmabili nel CNC.

- L’abbinamento indirizzo/ASSE viene fatto nel file TAR.CNC

- Si consiglia di riservare gli indirizzi minuscoli ad eventuali assi indipendenti (vedi


paragrafo successivo).

1.3 ASSI INDIPENDENTI

Si definiscono assi INDIPENDENTI tutti quegli assi di “servizio”, programmabili


direttamente nel Part-Program, che non sono sincronizzati in spazio e non partecipano
all’interpolazione degli assi come invece fanno gli assi CNC.
Gli assi indipendenti sono utilizzati per movimentare Pallets, catene utensili, sistemi di
trasporto ecc.

Vi sono due modi per definire gli assi indipendenti:

- Attraverso il file di taratura TAR.CNC

- Direttamente nel Part-Program utilizzando assi


definiti in TARATURA come assi CNC e convertirli
in assi indipendenti mediante l’istruzione:

<FRE:sigla asse; sigla asse>

Per l’uso consultare il Cap.3.6

4 Capitolo 1
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

1.4 QUOTE ASSI ED ORIGINI

I CNC della serie 9732 impiegano per i propri assi dei trasduttori di posizione di tipo
incrementale o semincrementale. (Ciclici)
Ad ogni accensione del CNC sono richieste le manovre di “ RIPRESA
DELL’ORIGINE” illustrate nel MANUALE D’USO.
Il sistema di misura di detti CNC ha una capacita’ di misura da 0 a 99999.999 (o gradi
per assi rotanti) ed una risoluzione di misura di 0.001 mm (o gradi).
Ogni asse del CNC ha riservato una tabella origini, tale da poter fissare in qualsiasi parte
della corsa dell’asse stesso il punto di riferimento 0.

5 Capitolo 1
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 2

STESURA DI UN PART-PROGRAM

Si intende universalmente per Part Program il programma (o file nel lessico dei
computer) di lavorazione di pezzo su una Macchina Utensile a Controllo Numerico,
esso e’ formato da una sequenza di OPERAZIONI (o blocchi di istruzioni) a sua volta
formate da ISTRUZIONI elementari appartenenti ciascuna ad una delle tre categorie di
funzioni 1. movimento assi, 2. F.A.esterne, 3. F.A. interne.

2.1 DEFINIZIONI

ISTRUZIONE (o PAROLA)

L’istruzione e’un ordine di movimento ad un asse o ad una funzione ausiliaria (F.A.)


della M.U.
E’ in generale costituita da un indirizzo (una lettera dell’alfabeto) e da una parte
numerica, ad esempio:

X368.412

rappresenta l’ordine di movimento dell’asse X alla quota +368.412 mm.

OPERAZIONE ( o BLOCCO o RECORD )

Un’operazione è rappresentata da un insieme di istruzioni, delimitate alla fine dal


carattere fine blocco LF (Line Feed), ad esempio:

N1432 G01 X386.127 F200

è l’operazione (blocco o record) N1432 formata da 4 istruzioni aventi rispettivamente


gli indirizzi: N.., G.., X.., ed F... Un blocco può essere costituito al massimo da 80
caratteri.
La parte numerica indica la quota per le istruzioni di movimento degli assi (X.., Z..,C..
ecc) oppure un codice per le istruzioni G.., S.., M.. relative a funzioni ausiliarie
ITERNE od ESTERNE.

1 Capitolo 2
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

ISTRUZIONI MODALI (memorizzate)

Sono quelle il cui effetto permane sino a che non venga cambiato (o annullato) da
un’altra istruzione della stessa categoria.

Nei capitoli che seguono vengono identificate dalla lettera (M).

ISTRUZIONI AUTOCANCELLANTI

Sono quelle il cui effetto permane solo nell’operazione in cui sono state programmate.

Nei capitoli che seguono sono identificate dalla lettera (A).

QUOTE

Sono le informazioni di tipo geometrico da fornire nelle istruzioni di movimento,


insieme agli indirizzi degli assi
(X,Z,C ecc) o alle coordinate dei centri (I,K). Una quota è espressa in millimetri ed
eventuali parti decimali(oppure gradi e parti decimali per gli assi rotanti). La parte intera
viene separata dalla parte decimale mediante il punto “.” ad esempio:

Z-1432.412

Il segno positivo può essere omesso.


Non è ammesso programmare la virgola al posto del punto decimale.

Il “campo” di numeri programmabili in una quota è di:

+-10+38 per interi e di +-10-38 per i decimali

in particolare i decimali con tale risoluzione valgono solo nelle variabili HLPL reali.Per
le quote assi la risoluzione è centesimale (o millesimale).

2 Capitolo 2
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

NUMERAZIONE DELLE OPERAZIONI

Ciascuna operazione del Part-Program puo’ essere numerata, con l’istruzione


N..(Numero blocco) in modo crescente e progressivo (anche discontinuo): NO; N15;
N35; ecc..
L’istruzione N... ha un campo da:

NO a N65536

Si consiglia di numerare le varie operazioni di un Part Program con una progressività di


10 (o 20) in modo da lasciare spazio per la eventuale introduzione di nuove operazioni
tra due operazioni preesistenti.

1. Non è consentito programmare più N.. sulla stessa operazione, salvo nelle istruzioni
G59N..
2. La N... quando e’ programmata, deve essere programmata sempre all’inizio
dell’operazione.

INIZIO PROGRAMMA:%

Un part-program inizia con il caratte “%”, in una riga a se stante, eventualmente


seguito da una serie di caratteri numerici:
%nnnn dove nnnn sono caratteri numerici identificativi del Part-
Program la scrittura delle cifre dopo il carattere % è opzionale.

Con il carattere % viene forzato:

. forza GOO posizionamento lineare rapido


. FEED assi CNC = 100 mm/min
. SPEED (Velocità mandrino)= 100 giri/min
. SOVRAMETALLO lunghezza/raggio (DRA e DNL)= 0
. PROGRAMMAZIONE TRU/FLS = NULLA
. INSERIMENTO MODO G60
. PROGRAMMAZIONE ASSOLUTA (G90)
. TRASFORMAZIONE COORDINATE = NULLA
. INSEEIMENTO PROTEZIONE IN SCRITTURA PER VARIABILI LIP tipo #...
. POSIZIONAMENTO IN G00
. ANNULLA CORREZIONE VETTORIALE RAGGIO UTENSILE (G40)
. ANNULLAMENTO CLICI FISSI (G80)
. ANNULLAMENTO MACRO G100-G150-G200-G250

3 Capitolo 2
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

. VENGONO ANNULLATE LE LIMITAZIONI DEL CAMPO DI LAVORO


INSERITE (CON G25/G26).
. VENGONO DISINSERITE LE SPECULARITA’
. SONO ANNULATE LE EVENTUALI MATRICI DI TRASFORMAZIONE
INTRODOTTE NEL PART-PROGRAM
. VIENE ASSUNTA L’ORIGINE N.1 DI CIASCUN ASSE DELLA M.U.
(CORRISPONDE ALLA ISTRUZIONE G54.01 OPPURE G54).
. VENGONO ANNULLATE LE TRASLAZIONI INCREMENTALI DELLE
ORIGINI (INSERITE CON G58/G59).

FINE PROGRAMMA

L’ultima operazione di un programma deve contenere l’istruzione


M02 senza alcun altra istruzione.

(A) M02 = FINE PROGRAMMA


E’ un’istruzione obbligatoria da programmare nell’ultima operazione del programma.

STRUTTURA DEL PROGRAMMA

Riassumendo, vedi fig. 2.1, un PartProgram è composto dal carattere “ d’inizio


programma %” e da una sequenza di operazioni contenenti istruzioni elementari per il
posizionamento assi, velocità mandrino, cambio utensile ecc. La fine del
programma viene incontrata con la programmazione dell’istruzione M02.

%1234 inizio programma


.......
.......
N35 G90 G01 X125.835 F1000 S837 M03 (operazione o blocco)
.......
.......
.......
N350 MO2 fine programma

4 Capitolo 2
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 3

PROGRAMMAZIONE DEL MOVIMENTO ASSI

Il movimento di uno o più assi è caratterizzato:

. dalla quota dell’asse, programmata con coordinate assolute, oppure incrementali


. dalla modalità di posizionamento: rapido, lavoro, rettilineo,circolare
. dalla velocità di avanzamento F.. se il posizionamento avviene in lavoro.

Questo capitolo illustra le istruzioni relative alle tre caratteristiche di un movimento


assi.

3.1 PROGRAMMAZIONE ASSOLUTA

(M)G90 PROGRAMMAZIONE ASSOLUTA


Presa per default dal CNC con il carattere% = INIZIO PROGRAMMA
Significa programmare le coordinate degli assi mediante quote assolute
cioe’ riferite all’origine degli assi, per esempio:

%123
N10G90X100Y100
N20X220Y220.15
N30X350
N40X420.12 Y85
N50M02

N10: L’istruzione G90 è ridondante in quanto già forzata dal carattere %.

3.2 PROGRAMMAZIONE INCREMENTALE

(M) G91 PROGRAMMAZIONE INCREMENTALE


Significa programmare il movimento di un asse mediante coordinate
incrementali cio’ riferite rispetto all’ultima coordinata
programmata.

1 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Ripetiamo il posizionamento sui punti già visti ma questa volta quotando il pezzo in
modo incrementale:
%124
N10G90X100Y100
N20G91X120Y120.15
N30X130
N40X70.12 Y-135.15
N50M02

N10: Viene raggiunto il punto e programmato con coordinate assolute (G90)


N20 + N40 Vengono raggiunti i punti programmati con coordinate incrementali (G91)
L’istruzione G91 è modale.
1. Una quota incrementale (G91) può essere usata solo se preceduta da almeno una
quota assoluta dello stesso asse.
2. La prima volta che si usa la sigla di un asse in un programma; dopo ogni cambio
origine o cambio utensile si deve necessariamente programmare in modo assoluto
(G90).

3.3 ISTRUZIONI PER IL MOVIMENTO ASSI

Sono disponibili le seguenti istruzioni per il posizionamento assi:

(M) G00 Posizionamento lineare RAPIDO con programmazione in coordinate


cartesiane. Implicito nel carattere %

(M) G01 Posizionamento lineare in LAVORO, a velocità F..., con


programmazione in coordinate cartesiane.

(M) G10 Posizionamento lineare RAPIDO con programmazione in coordinate


polari.

(M) G11 Posizionamento lineare in lavoro, a velocità F.., con programmazioni in


coordinate polari.

(M) G02 Interpolazione circolare ORARIA con programmazione in coordinate


rettangolari.

(M) G12 Come sopra ma con programmazione in coordinate polari.


(M) G03 Interpolazione circolare ANTIORARIA con programmazione in
coordinate rettangolari..
(M) G13 Come sopra ma con programmazione in coordinate polari.

2 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

3.4 VELOCITA’ DI AVANZAMENTO

Il formato è:

(M) F... Feed: Velocità di avanzamento, di norma in mm/min per assi lineari (o
gradi/min per assi rotanti.

3.4.1. POSIZIONAMENTO DI UN SINGOLO ASSE

Se si desidera portare un asse (ad esempio X ) su un punto P2 che si trova ad una quota
assoluta +347.1 è sufficiente programmare:

N.. G00X357.1

se si vuole un posizionamento rapido, oppure:

N...G01X357.1 F100

se si vuole un posizionamento lineare a velocità di lavoro di 100 mm/min.


L’asse supposto che si trovi su P1, si muoverà con la caratteristica velocità/tempo di
Fig.3.3, sempre che non Vi siano altri posizionamenti successivi, arrivando sul punto P2
a velocità zero.

3.4.2 POSIZIONAMENTO CONTEMPORANEO DI DUE ASSI

Se si vogliono muovere due assi, ad esempio X Y, in modo che essi raggiungono


rispettivamente le quote:

-258mm e +150.5mm

è sufficiente programmare:
N..G01-258 Y150.5 F500

Gli assi si avviano e contemporaneamente raggiungono il P2 programmato, percorrendo


quindi sul piano X Y (vedi Fig. 3.4) una retta che congiunge il punto P2 programmato
al punto di partenza (P1 o P1a), a prescindere dalla posizione di quest’ultimo rispetto a
P2.

3 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Se F è la velocità (risultante) con la quale si desidera venga raggiunto il punto P2, le


componenti della velocità lungo i due assi verranno così scomposte dal CNC:

Fx = F*COS (a)
F*SEN (a)

Se gli assi si fossero trovati inizialmente P1 tale che l’angolo a = 45°, allora:

Fx = 0.707*F
Fy = 0.707*F

3.4.3 POSIZIONAMENTO CONTEMPOMPORANEO DI 3 ASSI

In modo del tutto analogo, se si volessero muovere contemporaneamente tre assi, ad


esempio X; Y; Z, per portarli sul punto P2 dello spazio (figura 3.5) DI COORDINATE
X451.1, Y371, Z203; basta programmare:

N..G01 X451.1 Y371 Z203 F600

Se F.. è la velocità programmata (potrebbe essere ance la rapida). Le componenti della


velocità lungo i tre assi sono così calcolate:

Fx = F*SEN (b) * COS (a)


Fy = F*SEN (b) * SEN (a)
Fz = F*COS (b)

3.4.4 MOVIMENTI CONTEMPORANEI CON PIU’ DI TRE ASSI


(IPERSPAZIO)

Il CNC ha la possibilità di programmare e muovere contemporaneamente più di tre assi


(fino a 8).
Nel caso si programmino più di tre assi contemporaneamente il CNC scompone la F..
programmata in modo tale che tutti gli assi CNC raggiungano il punto finale nello stesso
istante.
Ad esempio programmando:

N..G01X200Y500Z100V-20W80F500

Il CNC effettuerà automaticamente la scomposizione della velocità di avanzamento sui


vari assi programmati in modo da raggiungere il punto finale nell’”iperspazio”
contemporaneamente.

4 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

3.4.5 MOVIMENTI CONTEMPORANEI DI ASSI PARALLELI

Abbiamo definito assi paralleli gli assi appartenenti alla stessa direzione, come ad
esempio gli assi Z e W dell’alesatrice di Fig. 1.2, rappresentati qui sotto in Fig.3.6.
Supponiamo di voler muovere contemporaneamente i due assi che sono tra loro
meccanicamente solidali.

Si consideri il programma:
...
...
N10G00Z0W0
N20G01Z50W-50F100
...
...
Il CNC effettuerà la scomposizione della velocità di avanzamento in modo da ottenere
una Fz = Fw = 50mm/min.
Da notare che il punto P (solidale con la candela) di figura 3.6 non subisce, in realtà,
nessun spostamento per effetto dei due movimenti di ugual spazio e contrapposti.

3.4.6. CORRETTIVO SULLA SCOMPOSIZIONE DELLA VELOCITA’

Il formato generale di programmazione della velocità di avanzamento F è del tipo:


Faa/Fcor in cui

aa = F in mm/min
Fcor = correttivo sulla scomposizione della velocità di avanzamento.

Se non viene assegnato nessun valore dopo il carattere “/”, la velocità di avanzamento
viene assunta con le modalità di scomposizione automatica già illustrate nei paragrafi
precedenti.
Se invece viene assegnato un certo valore a Fcor, il CNC lo usa applicando la seguente
formula:

Feff = F*QS*Fcor
in cui

Feff = Velocità effettiva dell’asse interessato.


F.. = Velocità di avanzamento da programmare
QS = Quantità di spazio percorso dall’asse.
Fcor = Correttivo sulla scomposizione della velocità di avanzamento.

5 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

ESEMPI:

Si supponga, in riferimento alla Fig. 3.6, il seguente programma:


...
...
N10G00W0Z0
N20G01W-200Z50F100..
1) Se si vuole attribuire il valore di Fcor ad un punto solidale con l’asse W:

QS = QW = 200 MM
Fcor = 1/QS = 1/200 = 0.005mm-1
Feffw = F*QSw*Fcor=100*200*0.005= 100 mm/min
Feffz = F*QSz*Fcor = 100*50*0.005 = 25 mm/min

Per ottenere tale effetto sarà sufficiente programmare nella N20:

N20G01W-200Z50F100/O.OO5

2) Se si vuole attribuire il valore di Fcor ad un punto solidale con l’asse Z:

QS = QZ = 50
Fcor = 1/QS = 1/50 = 0.02
Feff = F*QSz*Fcor = 100*50*0.02 = 100mm/min
FeffW = F*QSw*Fcor = 100*200*0.02 = 400 mm/min

per ottenere tale effetto sarà sufficiente programmare N20:

N20G01 W-200 Z50 F100/0.02

3.5 VELOCITA’ DI AVANZAMENTO PER ASSI ROTANTI

Le quote di un asse rotativo sono espresse in gradi e parti decimali di grado.


Analogamente la velocità di avanzamento F è interpretata dall’asse rotatito in gradi/min,
se quindi un part-program contenesse queste due operazioni:
...
N5G00G90B0Y150
N6G01B180Y300F220
...
si otterrebbe l’interpolazione lineare di Fig.3.7 con la relativa scomposizione della F.. in
Fb = 220*COS(a) = 169 gradi/min
Fy = 220*SEN(a) = 140 gradi/min

6 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Nel programmare la F... nei movimenti di lavoro che coinvolgono un asse rotante
occorre tener presente che il valore dell’ avanzamento effettivo Feff dell’utensile sul
pezzo, dipende non solo dalla F programmata ma anche dal valore R della distanza che
il tagliente ha rispetto al centro di rotazione dell’asse rotante.

Infatti la velocità per assi rotanti espressa in gradi/min rappresenta una velocità
angolare, invece il programmatore desidera che la velocità di avanzamento corrisponda
a mm.min anche sulle tavole rotanti e quindi è necessario effettuare una conversione tra
velocità periferica (mm/min) e velocità angolare (gradi/min) vedi prossimo paragrafo.

3.5.1 MOVIMENTI DI LAVORO DEL SOLO ASSE ROTANTE

Occorre programmare la seguente F.. in gradi/min per ottenere l’avanzamento effettivo


Feff desiderato:

F = (360/(2*^*R)) * Feff (mm/min) = 57.3*Feff/R (gradi/min) con:

R = distanza dell’utensile dal centro di rotazione della tavola espresso in mm.

ESEMPIO:

1) Si vuole ottenere:

Feff = 300mm/min con R = 210 mm dal centro di rotazione della tavola

Applicando la formula descritta si otterrà:

F = 57.3*300/210 = 81.9 gradi/min

2) Lo stesso effetto poteva essere ottenuto programmando la F... associata al


correttivo (Fcor)

Calcolo del correttivo:

Fcor = 1/QS = 1/(2*II*R) = 1/1318.8 = 0.000758

quindi la F da programmare diventa:


F300/0.000758
3.5.2 MOVIMENTI CONTEMPORANEI TRA ASSE ROTANTE E LINEARE

7 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Supponiamo di voler lavorare il segmento d’elica P0-P1 di Fig.3.8, disponendo


dell’alesatrice di Fig.1.2, su un pezzo cilindrico di raggio R = 450 mm montato sulla
tavola rotante B.
Si vuole la velocità effettiva di lavoro Feff = 180 mm/min

1. Calcolare lo spazio da percorrere:

QB = Bp1-Bp0 = 147.3 -12.5 = 138.8°


qy = Yp1-Yp0 = 250 -5 = 245 mm

2. Calcolare lo sviluppo dell’elica lungo B

Sb = R*QB/57.3 = 450*134.8/57.3 = 1058.639 mm

3. Calcolare la lunghezza dell’arco d’elica:

L = (SB2 + QY2) = ( 1058.639/2 + 245/2) = 1086.619mm

4. Calcolare il tempo per percorrere tale arco:

t = L/Feff = 1086.619/180 = 6036 min

5.Calcolare le componenti Fy ed Fb

Fy = QY/t = 245/6.036 = 40.589 mm/min


Fb = QB/t = 134.8/6.036 = 22.333 gradi/min

6.Calcolare la F da programmare:

F = (Fy2 + Fb2) = (40.589/2 + 22.333/2) = 46.3

Il programma per realizzare l’elica risulta quindi il seguente:


%345
N10G90T1M06
N20G00Y5B12,5S500M03
N3G01Z450F180
N40Y250B147,3F46.3
N50G00Z600M05
N60M02
COMMENTI:

8 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N10: Cambio utensile,viene montato l’utensile n.1 (vedi F.A. esterne)

N20: Posizionamento rapido (G00) sul punto d’inizio dell’elica, viene messo in moto il
mandrino in verso orario(M03) ed ad una velocità di 500 giri/min (vedi F.A. esterne).

N30: La fresa viene posizionata in lavoro a 180 mm/min in profondità (asse Z).

N40: Viene lavorato il segmento d’elica P0-P1 ad una velocità effettiva Feff = 180
mm/min

N50-N60: Allontanamento in rapido, arresto mandrino (M05), fine programma (M02).

Lo stesso effetto poteva essere ottenuto programmando la F.. con il correttivo nel
formato F180/Fcor

Fcor 1/qs = 1/1086 = 0,0009208 mm-1

La F.. da programmare nella N40 poteva quindi assumere il seguente valore:

F180/0.0009208

3.6 PROGRAMMAZIONE DEGLI ASSI INDIPENDENTI

Gli assi indipendenti sono definibili in due modi, come già accennato nel Par.1.3:

.1 - Tramite dichiarazione nel file di taratura TAR.CNC al momento della


configurazione della M.U.

.2 - Tramite istruzione “LOGICA” da programmare direttamente nel Part-Program del


tipo. (M) <FRE: nome asse; nome asse;...>

in modo da trasformare un asse dichiarato CNC in asse INDIPENDENTE.

L’istruzione: (M) <CNC: Nome asse; nome asse;...>

ripristina come assi CNC quelli precedentemente definiti INDIPENDENTI con


l’istruzione <FRE...>

Un asse dichiarato INDIPENDENTE in taratura non può essere concertito in CNC,


salvo l’asse mandrino.

3.6.1 PROGRAMMAZIONE DELLA VELOCITA’ DI AVANZAMENTO

9 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Per differenziare la velocità di avanzamento da assegnare agli assi indipendenti, rispetto


alla F... programmata per gli assi CNC, si usa l’istruzione “logica”:

(M) <FED: nome asse; valore F; nome asse; valore F;...>

ove:

nome asse = la sigla dell’asse INDIPENDENTE interessato

valore F = Velocità di avanzamento in mm/min (o gradi/min per assi rotanti )

ad esempio: <FED:a;150;g;220>

Vengono assegnate agli assi indipendenti a e g rispettivamente la velocità di


avanzamento di 150 mm/min e di 220 mm/min.

3.6.2 ISTRUZIONE DI ATTESA “WAT”

E’l’istruzione logica:

(A) <WAT:...>

Tale istruzione disabilita il meccanismo di lettura in avanti da parte del CNC, si possono
presentare questi 3 casi:

. 1. <WAT:CNC>

disabilita il meccanismo di lettura in avanti fino a che gli assi CNC non sono arrivati
sulla quota programmata.

. 2. <WAT:FREE>

come le precedenti ma con la condizione di assi INDIPENDENTI arrivati.

. 3. <WAT:MND>

come le precedenti ma con la condizione di mandrino fermo.

Sono possibili tutte le combinazioni dei tre casi previsti, ad esempio:

<WAT:CNC;FRE:MND>

3.6.3 ESEMPI DI PROGRAMMAZIONE

10 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

ESEMPIO 1:

...

N40<FED:g;600>

N50G00X0Z0g0

N60G01X50Y180Z200G500F200

N70X80Y300Z300

...

...

COMMENTI:

N40: Si assegna la velocità di avanzamento di 600 mm/min al’asse indipendente g; si


presume che l’asse g sia stato definito indipendente nel file di taratura assi.

N 50: Posizionamento rapido di tutti gli assi. Gli assi CNC:X,Y,Z si muovono ed
arrivano con sincronismo: L’asse g, indipendente, può non arrivare insieme agli altri
assi, tuttavia il CNC non aspetta che g sia arrivato.

N60: Posizionamento in lavoro di X,Y,Z alla velocità di 600 mm/min, come definito
nella N40.

Se tra la N60 e la N70 si fosse aggiunta l’operazione N65:

N65<WAT:FRE>

Il CNC aspettava che l’asse g si fosse posizionato prima di passare all’esecuzione della
N70.

ESEMPIO 2:

11 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

...

N30<FRE:W>

N40<FED:W;500>

N50G00X0Y0Z0W0

N60G01X50Y180Z2200W500F200

N70X80Y300Z300

N80<CNC:W>

COMMENTI:

Programma analogo al precedente, con la differenza che l’asse indipendente è dichiarato


tale direttamente nel Part program, <FRE:W>; l’asse W è normalmente un asse CNC.

N80: L’asse W viene ripristinato come asse CNC.

3.6.4 PRECISAZIONI SUGLI ASSI INDIPENDENTI

A seconda che gli assi indipendenti siano stati dichiarati in taratura o che vengono
dichiarati direttamente nel Part Program, si presentano le seguenti limitazioni:

PER GLI ASSI INDIPENDENTI DICHIARATI IN TARATURA

1. Programmazione solo assoluta (G90), non è ammessa la programmazione


incrementale (G91).

2. Programmazione solo mediante sistema metrico (G71), non è ammessa la


programmazione in pollici (G70).

3. Le quote programmate sono sempre riferite ad una origine fissa.

4. La specularità assi, eventualmente inserita, non viene sentita.

5. E’ vietato l’uso dell’istruzione “logica” <TCT:...> (abilitazione MATRICE DI


TRASFORMAZIONE).

PER GLI ASSI INDIPENDENTI DICHIARATI NEL PART-PROGRAM

12 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

1. Programmazione sia assoluta (G90) che incrementale (G91).Il controllo sul fine
corsa software è effettuato solo con programmazione assoluta

2. Programmazione sia in millimetri (G71) che pollici (G70).

3. Le quote programmate sono riferite all’origine inserita da Part-Program.

4. Sente la specularità se programmata.

5. E’ vietato l’uso dell’istruzione <TCT:...>

3.6.5 ORIENTAMENTO MANDRINO

Il mandrino di una macchina utensile viene gestito in rotazione dalla funzione


S...(speed), di norma in giri al minuto (vedi Cap.5). Il mandrino può inoltre essere
gestito come asse definendolo in TAR.CNC come asse INDIPENDENTE e definendo
quale indirizzo associargli.

Nella configurazione di M.U. supposta in questo manuale, vedi parag.2.2, all’asse


mandrino è stato associato l’indirizzo “C”.

Supponendo che l’indirizzo associato all’asse mandrino sia “C” il programma potrebbe
essere:

...

N10S200M03

N20C30

N30...

COMMENTI:

N10: Viene messo in rotazione il mandrino in verso orario (M03) alla velocità di 200
giri/min (S200)
N20: Il mandrino viene arrestato ed orientato a 30°.

La programmazione della funzione M19 (arresto mandrino con orientamento)


corrisponde a programmare un orientamento a 0°.

13 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Se si ha il mandrino gestito è disponibile il ciclo fisso di maschiatura rigida descritto


nel Cap. 10.5.

3.6.6 MANDRINO GESTITO

Si intende per mandrino gestito, un mandrino che può essere programmato mediante
l’indirizzo S... in giri/min. o che può essere programmato come asse, coeme è già stato
visto nel precedente paragrafo.
Inoltre il mandrino gestito come asse può essere mosso in interpolazione
contemporaneamente ad un altro asse, in tal caso è necessario definire nel Part-program
l’asse mandrino quale asse CNC prima di usarlo in interpolazione con un altro asse
mediante l’istruzione LIP:

<CNC:asse>

ad esempio se l’asse mandrino fosse l’asse C, bisognerebbe utilizzare l’istruzione:

<CNC:C>

3.6.7 ASSI “ROTONDI”

Un asse circolare può essere definito, in taratura, quale asse “linearizzato” cioè un asse
che si muove in un campo che va da 0 a _ °° al pari di un asse lineare, per cui una tavola
rotante che si trovi a B0, programmando B720 gradi compirà 2 giri in verso positivo e
programmando B - 720 gradi 2 giri in verso negativo.

Gli assi rotanti che abbiamo definito “linearizzati” sono gli unici trasformabili con le
matrici dinamiche descritte nel Cap.20.

Un asse “rotondo è un asse a movimento circolare con posizioni estreme coincidenti, ad


esempio:
una tavola programmabile in gradi, in cui le posizioni 0° e 360° sono coincidenti ed un
giro corrisponde ad uno spostamento di 360° dell’asse.
Per gli assi rotondi sono possibili 2 comportamenti:

. 1) Asse rotondo agganciato in contouring, esempio:

14 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N...<CNC:B>

se l’asse si trova a B0 gradi e si programma B360, l’asse compie un giro in verso


positivo

. 2) Asse libero (indipendente)

Se l’asse si trova a B0 gradi e si programma B360 l’asse non si muove.

Alcune volte gli assi tondi, agganciati in contouring (CNC), necessitano di un


comportamento analogo agli assi liberi, cioè arrivare sul punto programmato
percorrendo la strada più breve, a tale scopo è stata implementata l’istruzione G950.

(A) G950 movimento asse “tondo” per raggiungere il punto programmato


percorrendo la strada più breve.

Si consideri l’esempio seguente fatto per una M.U. con assi X,Y e B (tavola rotante)
tutti assi CNC:

...
N10X50Y0B0
N20G01Y100B810 [elica di 2 spire e 1/4]
N30 G950 B0
...

COMMENTI:

N20 Interpolazione lineare tra asse Y ed asse B, viene eseguita un’elica di 2 spire e 1/4
(810°)
N30 Non si vuole fare 2 giri e 1/4 in verso opposto per riportare la tavola a B0°; è
sufficiente programmare G950,

l’asse B si muove di soli 90°, da qui in avanti per il CNC


la posizione raggiunta è quota B0 (cioè nuova origine).

Facciamo quest’altro esempio, supponendo di essere a B45 gradi, programmando:

G950 B359 l’asse B percorre 314° in verso positivo

G950 B -1 l’asse B percorre 46° in verso negativo

15 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

In ambedue i casi la posizione angolare raggiunta è la stessa, ne consegue che sta al


programmatore decidere, in funzione della quota attuale dell’asse rotante e della quota
programmata con G950, quale sia la “strada” da far percorrere alla tavola rotante.

 La G950 ha effetto solo sugli assi “rotondi” CNC

 Nella stessa operazione dove è contenuta l’istruzione G950 è possibile programmare


movimenti di assi lineari.

 La quota degli assi programmata insieme a G950 è considerata sempre come quota
assoluta, anche se attiva la G91 (programmazione incrementale).

Un asse “rotondo” deve essere dichiarato tale nel file di taratura.

16 Capitolo 3
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 4

PROGRAMMAZIONE DELLE F.A. INTERNE

Sono quelle funzioni ausiliarie F.A. la cui azione si estrinseca principalmente all’interno
del CNC come è stato accennato nel Cap.1. Sono le funzioni più importanti e che più
abbondano nel linguaggio di programmazione di un CN. Il funzionamento di alcune di
queste F.A. è già stato spiegato nei capitoli precedenti, ma per comodità vengono qui
rielencate:

(M) G00 POSIZIONAMENTO LINEARE RAPIDO


(M) G01 POSIZIONAMENTO LINEARE IN LAVORO
(M) G02 INTERPOLAZIONE CIRCOLARE ORARIA
(M) G03 INTERPOLAZIONE CIRCOLARE ANTIORARIA
(A) G04 TEMPO DI SOSTA

Il formato è:

N... G04... F...

dove F = tempo di sosta espresso in secondi e parti decimali con valore massimo pari a
719.9 secondi.

Attenzione che l’istruzione F... è posizionale rispetto a G04, ad esempio è lecito


programmare:

N...G01X100Y100F200G04F2.5

Cioè posizionamento in lavoro a velocità F = 200 mm/min (F.. incontrata dopo G04).

Non è lecito programmare:

N...F...G04

In tal caso F... è attributita come velocità di avanzamento in quanto incontrata prima di
G04.

(A) G09 Gli assi arrivano sul punto programmato a velocità zero.

(M) F.. Velocità di avanzamento (in mm/1’) oppure tempo di sosta se programmato
dopo l’istruzione G04

1 Capitolo 4
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

(M) N.. Numero operazione (o blocco) da N0 a N2147483647.

(A) M00 Stop programmato.

Se un’operazione del programma contiene tale istruzione, il programma si arresta e


prosegue solo quando l’operatore
ripreme il tasto [START]

(A) M01 Stop opzionale come M00 salvo che è escludibile tramite una manovra sul
CNC (vedi finestra dal menù ENTRY), oppure programmando l’istruzione di HLPL
LOGICO:

<STP:ON> per abilitare M01

<STP:OFF> per disabilitare M01

L’istruzione M01 serve per imporre STOP in determinate fasi del programma, valide
solo durante la messa a punto
della lavorazione sulla M.U.
(A) M02 Fine del programma deve essere programmata in una operazione che non
contenga altre istruzioni.
(A) M30 Stesso significato di M02

4.1 CARATTERI SPECIALI

(M) (...) Commenti di programma visualizzabli (max 40 caratteri).

Il programmatore può scrivere tra parentesi tonde un commento per


l’operatore di max 54 caratteri, tale commento apparirà nella apposita sullo schermo al
momento della lettura della N.. in cui è scritto il commento. Il commento permane sulla
finestra video fino a che non viene programmato un nuovo
commento che si sostituisce al precedente sulla finestra. Per cancellare il commento sul
video è sufficiente programmare un commento vuoto, esempio:

..
N20 .... (VIENE VISUALIZZATO QUESTO COMMENTO)
N30..
N40 ..()[DALLA FINESTRA SCOMPARE IL COMMENTO]
..
con M00 ed M01 (se abilitato) il commento viene visualizzato dopo
l’esecuzione dello STOP con G04 il

2 Capitolo 4
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

commento viene visualizzato anche dopo l’esecuzione della temporizzazione


programmata con F..

(A) [...] Commenti per il programmatore (max 80 caratteri).

Il programmatore può scrivere tra parentesi quadre o graffe commenti per il


Part-Program che non verranno
visualizzati sullo schermo, servono solo quale riferimento sui listati o routines
complesse.

(A) /N Operazione opzionale

Una qualsiasi operazione in cui l’istruzione N è preceduta dal carattere “/”


diventa opzionale, ossia può essere ignorata dal CNC su decisione dell’operatore della
M.U.
Serve per escludere delle operazioni che, ad esempio, sono utili solo quando si lavora il
primo pezzo.
L’inclusione o l’esclusione viene fatta tramite apposita manovra sul CNC nel menù
ENTRY (riga SKIP/ per includere oppure escludere i blocchi barrati). E’ possibile
inoltre attivare i blocchi opzionali, mediante le seguenti istruzioni di HLPL LOGICO:

<SKP:ON> Disabilita i blocchi barrati (cioè abilita il salto)

<SKP:OFF> Usa i blocchi Barrati

ESEMPIO DI PROGRAMMAZIONE:

% 3456
N0 (PROGRAMMA B28 ATTREZZ.114) <SKP:OFF>
N10T1 () M41
N20Z300B0S800M03
N30X0Y250.27F350
N40G01X-100.2G04F1.5
N50G09Y0M01 (VERIFICARE INGOMBRI STAFFAGGIO)
/N60G00B90
N70G01Z-15.24F190G04F0.5
N80G00Z0[RICORDARSI DI AGGIUNGERE QUOTA SGOMBRO]
N90X0Y0M05
N100M02

3 Capitolo 4
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

COMMENTI:

N000: Sull’apposita finestra dello schermo appare il commento tra parentesi fino a che
non viene letta l’operazione
N.10 contenente un commento vuoto. Vengono abilitati i blocchi barrati
(<SKP:OFF>)

N010: Cambio utensile, viene montato l’utensile n.13 impostazione gamma M41

N020

N030: Posizionamento rapido degli assi Z,B e messa in moto del mandrino a 800
giri/min in verso orario, posizionamento rapido assi X,Y.

N040: X in lavoro (a F350 mm/1’) quindi tempo di sosta di 1,5 sec.

N050: In lavoro a quota Y0 quindi decelerazione ed arresto asse (effettua G09) e stop
opzionale (M01) se abilitato

N060: B in rapido a quota 90 gradi se l’operatore non ha escluso ll blocco barrato,


altrimenti l’operazione è ignorata dal CNC.

N070: In lavoro a quota Z-15.24 con avanzamento F190 mm/1’, quindi sosta per un
tempo di ½ secondo.

N080: Rapido a Z0, da notare il commento per il listato tra parentesi graffe, non viene
visualizzato sullo schermo.

Il programmatore può usare le istruzioni G0 al posto di G00, G1 al posto di G01, M0 al


posto di M00 e così via; cioè può sopprimere gli zeri inutili da tutte le istruzioni che li
possiedono.

:N... Fase di lavorazione

Serve a suddividere il part-program in più capitoli (fasi).

Se in una o più operazioni, l’istruzione N.. è preceduta dai 2 punti (:), il CNC viene
predisposto esattamente come se avesse letto il carattere %, inizio programma, che deve
essere presente nel part-program solo una volta).

4 Capitolo 4
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

A partire da ogni operazione contenente i 2 punti, il programmatore deve essere certo


che il programma contenga tutte le istruzioni necessarie alla esecuzione delle operazioni
successive (T,S,M,F, ecc.).
La sua utilità consiste in una maggiore velocità di ricerca di una operazione, perchè il
CNC punta sull’operazione contenente i due punti immediatamente precedente a quella
ricercata e da li riprende la lettura del programma fino all’individuazione dell’operazione
ricercata.
E’ consigliabile suddividere il programma in fasi di lavorazione ad ogni scambio
utensile.

IMPORTANTE:

L’istruzione :N... deve essere programmata in una riga di programma non


contenente altre istruzioni di programmazione, sono ammessi solo eventuali commenti
tra parentesi quadre [....] o tonde (. .. ), vedi esempio seguente:
....
:N90 [CAMBIO UTENSILE]
N100T23
....
4.2 LIMITAZIONI DEL CAMPO DI LAVORO

Il campo di lavoro di ogni asse viene limitato dai rispettivi FINE CORSA SOFTWARE
POSITIVO E NEGATIVO; tali finecorsa vengono memorizzati, con apposita manovra,
nel file ORIGINI.
E’ possibile restringere ulteriormente il campo di lavoro programmando due istruzioni:

(M) G25 Impostazione del valore minimo del campo di lavoro

(M) G26 Impostazione del valore massimo del campo di lavoro

Ad esempio programmando: N..G25X...Y...Z...A...B

Si ottiene la memorizzazione delle quote minime del campo di lavoro per gli assi
X,Y,Z,A,B.

1) Le quote assi programmate dopo le istruzioni G25 o G26 sono riferite allo ZERO
MACCHINA e non all’origine attualmente attiva.

2) Non è consentito programmare G25 e G26 nella stessa operazione, ma dovranno


essere scisse in due distinti blocchi.
Esempio, vedi Fig. 4.1

5 Capitolo 4
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

PROGRAMMA:

...
...
N50G25X2450
N60G26X3800
...

COMMENTI:

N50: Viene memorizzato il valore minimo del campo di lavoro lungo l’asse X.
N60: Viene memorizzato il valore massimo del campo di lavoro lungo l’asse X.

Da notare che dopo tali memorizzazioni il campo di lavoro dell’asse X viene


ulteriormente ristretto rispetto ai FINE CORSA
(FC - ed FC +) assumendo un campo totale di 3800 -2450 =1350 mm.

4.2.1 ALTRE REGOLE SU G25 E G26

SOSPENSIONE TEMPORANEA DI UN CAMPO DI LAVORO

Programmando le istruzioni G25 (o G26) seguite dai soli indirizzi assi senza quote, come
ad esempio:

...
...
N20G25XY
N30G26XY
...
...
si ottiene l’eliminazione del campo di lavoro per i soli assi X,Y. Eventuali impostazioni su
altri assi vengono mantenute.

RIPRISTINO DEL CAMPO DI LAVORO

Programmando G25 (o G26) senza altre istruzioni si ottiene i ripristino del campo di
lavoro precedente sospeso.

6 Capitolo 4
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

NOTE:

1- La programmazione di G25 e G26 è posizionale quindi a tali istruzioni devono seguire


solo definizioni di campi
di lavoro e nient’altro.

Esempio errato:

N...G25 X... Y... Z... F...

non è possibile programmare F... dopo G25.

Esempio corretto:

N...G01 X... Y... F... G25 X... Y... Z...

-Le quote programmate prima di G25 si riferiscono ad un posizionamento in lavoro alla


quota programmata.

-Le quote programmate dopo G25 corrispondono alla definizione del campo minimo di
lavoro per gli assi X,Y,Z.

2- Non è possibile la sospensione di un campo di lavoro non definito.


3- E’ consentito, come visto negli esempi precedenti, l’attivazione del minimo o maz
campo di lavoro su più assi contemporaneamente.

4.3 PROGRAMMAZIONE METRICA ED IN POLLICI

(M) G71 PROGRAMMAZIONE METRICA, presa per default dal sistema, imposto
dal carattere % d’inizio programma.

(M) G70 Attivazione della PROGRAMMAZIONE IN POLLICI.

Vengono convertite:
.1 Le quote assi CNC, mentre non vengono convertite le quote degli assi indipendenti
dichiarati nel file TAR, AXS e le quote degli assi rotanti.

.2 Viene convertita in pollici l’istruzione F..., mentre non viene convertita l’istruzione
<FED:..> per gli assi INDIPENDENTI dichiarati nel file TAR.AXS.

7 Capitolo 4
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

.3 Le quote abbinate alle istruzioni di traslazione origine G59, G58.

.4 Le quote abbinate alle istruzioni G25 e G26.

.5 L’istruzione S... quando si programma G96 (velocità di taglio costante).

.6 L’istruzione per l’eventuale sovrammetallo.

.7 Tutte le altre istruzioni che si riferiscono a grandezze espresse in mm.

Le istruzioni G70 o G71 devono essere scritte in una riga a se stante SENZA
ALTRE ISTRUZIONI

......
N10G70
N20....
N30....
N40G71
...

NOTA:

Nella memoria del CNC e sui files, i dati sono sempre espressi in millimetri.

8 Capitolo 4
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 5

PROGRAMMAZIONE DELLE F.A. ESTERNE

Sono quelle funzioni ausiliarie la cui azione si estrinseca principalmente verso la M.U.
e sono gestite dal PLC incorporato nel CNC 9732.

Queste F.A. sono istruzioni con i seguenti indirizzi:

M00 : M99 = MISCELLANEE

Come dice il nome hanno vari scopi.Elencheremo più avanti i codici più usati
(M03,M08,ecc).Gli altri codici (dei duecento possibili) possono corrispondere a speciali
funzioni di macchina previsti dal costruttore della M.U.

(M) T01 : T255 = TOOL (NUMERO utensile)

Ricerca dell’utensile. Ordina alla M.U. di ricercare nel magazzino utensili l’utensile
programmato se la M.U. è dotata di cambio utensile automatico e automaticamente di
cambiarlo.
Segnala sullo schermo all’operatore di preparare l’utensile programmato se il cambio
utensili è manuale.
Inoltre identifica il numero del CORRETTORE (Raggio e Lunghezza) che verrà
abbinato all’utensile al momento dell’emissione della funzione cambio utensile

H1 : H65535 = FUNZIONI PER INDEX

E1 : E65535 = ULTERIORE FUNZIONE AUSILIARIA analoga ad H.

Servono per particolari esigenze del costruttore della M.U. Può servire, ad esempio,
per programmare il posizionamento INDEXATO di tavole rotanti della M.U. (tavole
indexate non controllate come assi dal CNC). Da notare che si accettano fino a 1
istruzione H... ed un’istruzione E.. sulla stessa operazione riferite al movimento di 2
tavole indexate, ad esempio: N...H240 E420

(M) SO : S65535 = Velocità di rotazione del mandrino (SPEED)

La corrispondenza fra la parte numerica della istruzione S... e l’effettiva velocità di


rotazione del mandrino è definita dal costruttore della M.U.
Nella maggioranza dei casi indica direttamente il valore in giri/min della velocità di
rotazione stessa (come supporto in tutti gli esempi che faremo).

1 Capitolo 5
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

5.1 CODICI DELLE FUNZIONI AUSILIARIE M...

Qui di seguito riportiamo i codici delle funzioni ausiliarie piu’ diffuse:

(M) M03 Comanda la rotazione mandrino in verso orario (avvita).


Il mandrino ruota alla velocità S.. programmata

(M) M04 Comanda la rotazione mandrino in verso antiorario (svita)

(M) M05 Arresto mandrino. Implicita in M06 ed M19.

(A) M06 Cambio utensile.


Ordina alla M.U. di arrestare il mandrino (M05) e quindi di montare l’utensile ricercatro
mediante l’istruzione ”T”

Se la M.U. non ha cambio utensile automatico sullo schermo viene segnalato


all’operatore il numero di
utensile da montare, quindi il programma riprende allorchè l’operatore preme il tasto
[START].
Contemporaneamente il CNC attiva il correttore (Raggio, Lunghezza) abbinato
all’istruzione “T”.

N.B. nelle macchine provviste di cambio utensile tipo rastrelliera, la funzione di


cambio utensile, puo’ essere definita solamente programmando il numero di
utensile che si vuole montare, senza programmare ulteriormente la funzione M06.

ATTENZIONE: Questa come altre F.A. esterne possono essere state definite come F.A.
SUBROUTINES, cioè sottoprogrammi richiamati automaticamente dalla funzione stessa
per l’esecuzione di cicli complessi che al limite completino anche movimenti assi.

(M) M08 Comando erogazione refrigerante

(M) M09 Stop refrigerante

(M) M10 Bloccaggio assi

(M) M11 Sbloccaggio assi

(M) M13 Come M03 e contemporaneamente comando inserimento refrigerante

(M) M14 Come M04 e contemporaneamente comando inserimento refrigerante

2 Capitolo 5
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

(A) M17 Fine sottoprogramma, tale istruzione è sinonimo della


istruzione <RET> di ritorno da un sottoprogramma.

(A) M19 Arresto mandrino con orientamento. Comanda l’arresto mandrino,


refrigerante e poi comanda l’orientamento del mandrino in una posizione
angolare predefinita dal costruttore della M.U.

(M) M40-M45 Gamme di velocità

NORME E PRECISAZIONI:

.1. Alcuni codici delle F.A. M... che abbiamo elencato, possono avere, in qualche caso,
un significato diverso per esigenze od usanze del costruttore della M.U.

.2. Inoltre alcuni codici M..., tra quelli elencati, possono essere ignorati dalla M.U., se su
di esso mancano le corrispondenti funzioni (implementate nel PLC del sistema).
Così come possono essere state implementate altre funzioni, tra i 200 codici M... previsti
nel sistema, non riportate nell’elenco sopraesposto.

.3. In ogni caso è il costruttore della M.U. che deve precisare l’esatto significato delle
funzioni S,M,T ecc. utilizzate sulla sua macchina.

.4. Come accennato in relazione alla M06, le funzioni M,S,T,D ecc. possono essere
definite sia come F.A. SUBROUTINES, che come FUNZIONI AUSILIARIE del
tipo:

a) ANTICIPATE

b) INTERMEDIE

c) POSTICIPATE

per il significato di tale lessico si rimanda il lettore al prossimo capitolo.

3 Capitolo 5
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

5.2 BLOCCAGGIO ASSI (istruzioni impiantistiche)

Nel caso il costruttore della macchina utensile abbia applicato dei bloccaggi meccanici,
l’attivazione degli stessi avviene tramite le istruzioni HLPL del tipo:

<BLC: sigla asse; sigla asse;....;...; sigla asse>


numero asse; numero asse;....;....; numero asse
<exp HLPL>; <exp HLPL>;....;....; <exp HLPL>

ove:

sigla asse rappresenta la sigla degli assi della M.U.: X;Y;Z;W ecc.
numero asse rappresenta il numero distintivo dell’asse (dal file di taratura TAR.CNC)
da 0 a 7
<exp HLPL> rappresenta un espressione HLPL tra variabili intere di tipo % #.

Esempio:
N... <BLC:X;Y;Z>

vengono bloccati gli assi X,Y,Z a movimento terminato.

L’istruzione per disattivare i bloccaggi meccanici è la seguente:

<SBL: sigla asse; sigla asse; ...>


numero asse;numero asse; ...
<exp HLPL>; <exp HLPL>; ...

Valgono le stesse regole già viste per l’istruzione <BLC:...>.


Le istruzioni <BLC:..> e <SBL:..> sono da utilizzare nella implementazione delle
funzioni ausiliarie M10 ED M11.

Prima d’iniziare un profilo di contornatura con la compensazione vettoriale del raggio


utensile si devono escludere i bloccaggi sugli assi del piano di contornatura
programmando M11.

4 Capitolo 5
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

5.3 ESCLUSIONE DEL CAMBIO AUTOMATICO DELL’UTENSILE

Le istruzioni che seguono sono utilizzabili solo su macchine dotate di cambio utensili
automatico (CUA) ed hanno effetto solo se programmate in modo semiautomatico
[MAN]:

(M)G308 cambio automatico dell’utensile incluso: è il funzionamento di default su


macchine dotate di cambio
utensili che a seconda della gestione prevista dal costruttore della M.U. preleva un
nuovo utensile dal magazzino e vi depone l’utensile montato sul mandrino.

(M)G309 cambio automatico dell’utensile escluso: è utile nel caso di guasto del
cambio utensili automatico, dopo
tale istruzione in cambio utensili diventa manuale. Per ripristinare le funzionalità del
cambio utensili automatico
sarà sufficiente programmare G308.

Le istruzioni G308 e G309 sono di tipo “super” modale cioè il loro effetto permane
anche dopo lo spegnimento e la riaccensione del CNC.

5 Capitolo 5
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 6

ORDINE D’ESECUZIONE DELLE FUNZIONI AUSILIARIE

Le funzioni ausiliarie esterne previste dal CNC 9732 hanno gli indirizzi:

M..,S..,T..,H.. già descritti nel precedente capitolo ed inoltre D.. (funzione di cambio
correttore che verrrà trattata nei prossimi capitoli).

Tali funzioni possono essere definite, a secondo dell’ordine con cui vengono emesse,
come:

.1. ANTICIPATE (F.A.SUBROUTINE)

.2. INTERMEDIE (IMMEDIATE verso PLC)

.3. POSTICIPATE (F.A.SUBROUTINE)

F.A. SUBROUTINES

Si definiscono F.A. subroutine quelle funzioni ausiliarie esterne che fanno riferimento
ad un file (e lo mettono in esecuzione), ad esempio il file MFUNC per le F.A. “M..,”
il file CTOOL per le F.A. “T..”, il file SFUNC per le “S..”, il file CFUNC per i
correttori “D...”
Tale file può contenere istruzioni complesse, tipiche di un part-program, come
movimenti assi ecc. Le F.A. definite dal costruttore come anticipate o posticipate
sono F.A. subroutine.

ANTICIPATE

Si definiscono anticipate quelle F.A.programmate in una operazione N..., che vengono


emesse prima di eventuali posizionamenti assi.

INTERMEDIE

Vengono definite intermedie quelle F.A. che vengono emesse contemporaneamente al


movimento assi, o comunque dopo l’emissione di F.A. anticipate.
Le F.A. con indirizzo H.. (indexing) sono sempre intermedie.

1 Capitolo 6
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

POSTICIPATE

Sono quelle funzioni ausiliarie che vengono emesse dopo eventuali movimenti assi, o
comunque sempre emesse per ultime.

E’ il costruttore della M.U. che decide (mediante il file tabellare FAUX.CNC) quali
funzioni dichiarate anticipate, intermedie o posticipate. Le definizioni di cui sopra
prescindono dall’ordine con cui le F.A. sono scritte nell’operazione N.. del Part-
Program.
In una stessa operazione N.. possono essere programmate e quindi convivere fino a:

.1 M... INTERMEDIA oppure

.1 M... ANTICIPATA + 1 M.. INTERMEDIA oppure

.1 M... ANTICIPATA + 1 M.. POSTICIPATA oppure

.1 M... INTERMEDIA + 1 M.. POSTICIPATA

ed inoltre una F.A. S..., una F.A. T..., una F.A. D.. e una F.A. H...

F.A. COME SUBROUTINES

Le F.A. (M, S, T ecc.) dichiarate (nel file FAUX.CNC) come ANTICIPATE o


POSTICIPATE vengono interpretate dal CNC come F.A. SUBROUTINE, quindi
scateneranno la relativa ROUTINE di gestione.
(MFUNC per le funzioni M, CTOOL per la funzione T, SFUNC per la funzione S, e
DFUNC per la funzione D.)

Le F.A. dichiarate invece come intermedie non scatenano la rispettiva routine di


gestione, ma vengono inoltrate direttamente al PLC interno per la loro immediata
esecuzione.

IL CARATTERE “$”

Il carattere “$” programmato prima di una F.A., rende la funzione ausiliaria intermedia
e quindi consente di emettere immediatamente la funzione per il PLC, ad esempio
programmando: $M21

Il codice M21 viene passato direttamente al PLC senza l’intermediario del file FASUB.

2 Capitolo 6
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Il codice $M..., può essere programmato nel Part-Program di lavorazione presentandosi


le seguenti conseguenze:

.1. Se la F.A. era stata definita ANTICIPATA o POSTICIPATA (quindi F.A.SUB)


allora il $M.. non scatena la F.A. SUB ma rende la F.A. intermedia e quindi
immediatamente disponibile al PLC.

.2. Se la F.A. era stata dichiarata intermedia allora il programmare $M... equivale a
programmare M... e la funzione viene inviata direttamente al PLC.

Il programmatore non sarà mai interessato alla programmazione del carattere “ $” in


quanto l’ordine di esecuzione delle varie istruzioni deve essere prestabilito dal
costruttore della M.U.

3 Capitolo 6
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 7

COMPENSAZIONE DELLA LUNGHEZZA DEGLI UTENSILI

Gli utensili hanno delle dimensioni geometriche che devono essere tenute in conto dal
programmatore.
Le frese hanno un raggio R.. ed una lunghezza L.. definiti; le punte, i maschi, i bareni
ecc.. non hanno necessità di compensare il raggio quindi per il CNC avranno una
lunghezza L... definita e raggio zero.

Questo capitolo spiega come compensare automaticamente la lunghezza degli utensili in


modo che il programmatore tratti le profondità di lavorazione senza doversi
preoccupare delle reali lunghezze utensili.

In generale il vantaggio che il programmatore ottiene è quello di programmare i


movimenti della M.U. considerando un utensile “ideale” di lunghezza nulla.

Si supponga di lavorare il pezzo di Fig.7.2, consistente in una foratura diametro 20 mm


con punta T5 e la successiva lamatura con fresa T12 di diametro 40 mm ed inoltre
supponiamo che gli utensili (analoghi a quelli di Fig.7.1) abbiano la lunghezza
rispettivamente di 220 mm (T5) e di 100 mm (T12).

Supponiamo inoltre che l’operatore abbia formato l’origine Z portando il naso del
mandrino a contatto con la superficie frontale del pezzo.
Il programma senza compensazioni lunghezza potrebbe essere il seguente:

%
N0
N10 T5 M41
N20 G00 X0 Y0 S750 M13 T12
N30 Z222
N40 G01 Z195 F120
N50 G00 Z420 M06
N60 Z102 S300 M13
N70 G01 Z95 F90
N80 G00 Z300 M05
N90 M02

COMMENTI:
N020: La punta si posizione sul centro del foro viene messo in moto il mandrino, inizia
la ricerca di T12.

1 Capitolo 7
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N030: La punta scende a 2 mm dalla superficie del pezzo, ma essendo l’utensile lungo
220 mm, la quota da programmare diventa 222 mm.

N040: La punta esegue la foratura in lavoro.

N050: Disimpegno rapido e cambio utensile.

N060: La fresa scende a 2 mm dalla superficie del pezzo, data la lunghezza


dell’utensile di 100 mm, la quota da programmare diventa di 102 mm.

N070: Lavoro ad una profondità di 5 mm.

OSSERVAZIONI:

Se il programmatore non conoscesse la lunghezza utensili o se questa lunghezza fosse


modificata, il programma appena scritto non sarebbe più valido in quanto le quote
programmate sono al lordo della lunghezza degli utensili.
Questo mod o di programmare è rigido e quindi sconsigliabile. Per ottenere un
programma flessibile cioè indipendente dalle reali dimensioni utensile è necessario
utilizzare la compensazione automatica della lunghezza utensile illustrata nel paragrafo
che segue.

7.1 COMPENSAZIONE DELLA LUNGHEZZA DEGLI UTENSILI

Viene effettuata mediante le istruzioni:

(M)G43 Inserisce la correzione lunghezza, sull’asse programmato immediatamente


dopo l’istruzione G43, in verso positivo. L’asse può essere qualsiasi asse CNC che sulla
macchina stabilisce la “linea” mandrino.

(M)G44 Come sopra ma in verso negativo.

Esempio:

...
N30 G01 G43 Z-50 X100
...

2 Capitolo 7
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

COMMENTI:

La G43 inserisce la compensazione lunghezza in verso positivo lungo l’asse Z.. perchè
è l’asse che segue l’istruzione G43, quindi la profondità Z-50 viene raggiunta dalla
punta dell’utensile. L’asse X.. programmato nella stessa operazione non viene
compensato in lunghezza.

La G43 è valida se l’asse che crea la profondità di lavoro si deve muovere in verso
positivo per allontanare l’utensile dal pezzo.
Se così non fosse si deve impiegare l’istruzione G44.
Attenzione che le istruzioni G43 e G44 sono posizionali ed agiscono solo sul primo
asse che segue l’istruzione stessa.
Esiste un secondo modo di compensare in lunghezza un asse mediante l’istruzione di
piano libero G16.., vedi Cap.11.

ANNULLARE LA COMPENSAZIONE IN LUNGHEZZA

Lo si fa con l’istruzione:

D0 Cancella eventuali istruzioni di compensazione lunghezza inserite (il carattere %


d’inizio programma forza D0).
L’istruzione D.. serve anche per abilitare correttori diversi (Vedi Par.8.2).

7.2 ESEMPIO D’USO DELLA COMPENSAZIONE DI LUNGHEZZA

Ripetiamo il programma del paragrafo precedente utilizzando le istruzioni di


compensazione in lunghezza.
L’operatore della M.U., prima di iniziare la lavorazione, carica nel file UTENSILI le
reali dimensioni geometriche di tutti gli utensili necessari alla lavorazione, nel nostro
caso caricherà tramite la selezione della voce TOOL (vedi NORME D’USO ):

T = 05 L1 = 220 L2 = 0 R = 0
T = 12 L1 = 100 L2 = 0 R= 20

Il programma di lavorazione diventa:

%
N0
N10 T5 M42
N20 G00 X0 Y0 S750 M13 T12

3 Capitolo 7
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N30 G43 Z2
N40 G01 Z-25 F120
N50 G00 Z200 M06
N60 Z2 S300 M13
N70 G01 Z-5 F90
N80 G00 Z200 M05
N90 M02

OSSERVAZIONI:

Tramite l’istruzione G43 della N30 si è insegnato al CNC, una volta per tutte, che è
l’asse Z quello che crea la profondità di lavoro.
Il CNC terrà conto automaticamente delle lunghezze degli utensili che via via verranno
montati sul mandrino (T..) e farà raggiungere, dalle loro estremità, le quote
programmate che sono quelle ricavabili direttamente dal disegno del pezzo.

4 Capitolo 7
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 8

COMPENSAZIONE PARASSIALE DEL RAGGIO UTENSILE

Si chiamano “parassiali” quelle lavorazioni che avvengono con movimenti utensile


lungo direzioni parallele
al piano di fresatura. In tali condizioniè possibile impostare la compensazione
parassiale (algebrica) del raggio fresa utilizzando opportuni parametri.
Per una trattazione complessiva della compensazione vettoriale del raggio utensile,
riferirsi al Cap.11.

Affinchè le quote programmate siano sommate algebricamente al raggio utensile si


usano le istruzioni:

(M) p,q,r Fattori moltiplicativi del raggio utensile (coseni direttori) lungo gli assi
definiti dall’istruzione:

<SPC:...;...;...>

(M) <SPC:...;...;...> Prenotazione dello “SPAZIO” di contornatura, cioè permette


l’abbinamento dei fattori p,q,r agli assi interessati, ad esempio programmando:

<SPC:X;Y;Z>

si eseguono i seguenti abbinamenti:

p = X (il fattore p viene abbinato ad X)


q = Y (il fattore q viene abbinato ad Y)
r = Z (il fattore Z viene abbinato ad Z)

I fattori p,q,r sono generalmente utilizzati per la compensazione vettoriale del raggio
utensile nello spazio, vedi Cap.11. In questo capitolo si è voluto dare un saggio della
loro potenzialità nelle lavorazioni parassiali.

1 Capitolo 8
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

8.1 ESEMPIO DI PROGRAMMAZIONE

Si supponga di dover effettuare la lavorazione completa del pezzo


di Fig.8 consistente nella fresatura del profilo con la fresa T12
e la foratura con punta T5, gli stessi utensili già impiegati negli esempi del Capitolo 7.
Come al solito, si suppone che l’origine dell’asse Z sia stata formata portando il naso
mandrino a combaciare con la superficie del pezzo.

PROGRAMMA:

% N100 G00 Z200 p0 q0 T5


N0 (COMPENSAZIONE PARASSIALE) N110 X150 Y450 S800 M13
N5 <SPC:X;Y;Z> N120 Z2
N10 T12 N130 G01 Z-27 F150
N20 X0 Y -30 p-1 q0 S500 M13 N140 G00 Z2
N30 G43 Z-25 N150 G91 Y-300
N40 G01 Y600 F200 q1 N160 G90 G01 Z-27
N50 X300 p1 N170 G00 Z2
N60 Y300 N180 G91 X300
N70 X600 N190 G90 G01 Z-27
N80 Y0 q-1 N200 G00 Z200 M05
N90 X0 p-1 N210 M02

COMMENTI:

N005: Abilitazione dello “spazio di contornatura”; vengono effettuati gli abbinamenti


dei fattori moltiplicativi p,q,r rispettivamente agli assi X,Y,Z.
N020: Posizionamento rapido su un punto esterno al pezzo, per effetto dei fattori
moltiplicativi, il raggio utensile (di valore 20 mm) viene così applicato:

X0 + R* (-1) =X0 -20

Il centro utensile viene quindi posizionato a X - 20

y - 30 + R*0 = Y - 30

N030: L’utensile scende in profondità Z - 25 con correzione lunghezza utensile attiva


(G43)
N040: Per effetto di “q1” il centro utensile viene posizionato a:

2 Capitolo 8
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Y600 + R*1 = Y620

N100: Disimpegno rapido e cambio utensile, i fattori moltiplicativi vengono messi a


zero (p0, q0)
N150: Programmazione incrementale, l’asse Y si posiziona all’ultima quota raggiunta -
300 (per effetto della G91) quindi la quota assoluta raggiunta diventa:

400 - 300 = 150 mm

N160: Viene ristabilita la programmazione assoluta

RISULTATI RAGGIUNTI:

Grazie alle compensazioni raggio e lunghezza, nel programma appena fatto compaiono
le sole quote ricavabili dal disegno (Fig.8.1, il programma rimane sempre valido
qualunque siano le dimensioni degli utensili impiegati in officina.

8.2 CORRETTORI UTENSILI

Si è già visto nel capitolo precedente che per poter compensare la geometria utensile è
necessario caricare in un file utensile le reali dimensioni di un utensile, cioè la sua
larghezza e il suo raggio.

Al momento del cambio utensili: T.., IL cnc preleverà automaticamente dal file utensili,
i valori di lunghezza e raggio da abbinare all’utensile attivo (utensile impiegato “in
questo momento”).

Ne consegue che programmando:

N... T12

Si ottiene il duplice effetto di montare l’utensile n.12 e di caricare i correttori (Raggio


e Lunghezza) abbinati all’utensile n.12.

Mediante il codice D... è consentito poter attribuire piò correttori allo stesso utensile
fisico:

(M) D... Cambio CORRETTORE

ad esempio programmando:

3 Capitolo 8
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

...
N10 T12
N40 D15
...
...
N70 D14
...
...
N150 T30 M06
...

Si ottiene:

N010: Cambio utensile n.12 e relativo correttore.


N040: Cambio correttore, da questo momento all’utensile n.12
viene abbinato il correttore n.15.
N070: Cambio correttore n.14
N150: Cambio utensili, da questo momento al nuovo utensile viene
abbinato il rispettivo correttore n.30.

Programmare:

N...T30

equivale a programmare:

N... T30
N.. D30

Normalmente si protrà continuare ad indicare il numero correttore dichiarando il solo


numero utensile. La possibilità di abbinare più correttori allo stesso utensile è da usarsi
in casi particolari di geometria utensile, come utensili multitaglienti, per esempio frese
cilindrico-frontali o bareni multitaglienti, in cui si voglia compensare i due taglienti
contrapposti (vedi Fig.8.2).

Ad esempio, in Fig.8.2 è raffigurata una fresa a disco utilizzabile (con i taglienti frontali)
da ambo i lati, per far ciò è sufficiente abbinare un correttore di raggio e lunghezza ad
un lato della fresa, tale correttore può coincidere con il numero utensile (T12
dell’esempio di programmazione precedente con R=40 ed L=180).

4 Capitolo 8
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Con un secondo correttore, ad esempio D15, si potrebbe compensare il lato opposto


(R=40 ed L=158).

ANNULLAMENTO CORRETTORI

Viene fatto programmando l’istruzione D eseguita da zero:

D0

Non è possibile programmare un cambio correttore (D..) nella stessa riga di programma
del cambio utensili, ad esempio una riga di programma del tipo: N..T12D15 è errata.

5 Capitolo 8
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 9

ORIGINI

Si intende per ORIGINE o ZERO PEZZO, un punto caratteristico scelto dal


programmatore sul disegno del pezzo da cui “originano” le quote di lavorazione o che
comunque da tale punto sono facilmente rilevabili. Tutte le coordinate riferite al punto
d’origine sono coordinate assolute.

9.1 ORIGINI ASSOLUTE

In tutti gli esempi finora fatti le quote programmate per gli assi (X,Y,Z,B ecc.) erano
tutte riferite alle loro origini n.1, infatti il carattere % di inizio programma ha la
prerogativa di inserire le origini n.1 di tutti gli assi.
L’operatore della M.U. deve formare tali origini in modo che corrispondono allo zero
pezzo indicato dal programmatore.

Il controllo ha 16 origini diverse ed indipendenti fra di loro, esse si programmano con:

(M) G54.XX RICHIAMO DELLE ORIGINI ASSOLUTE

L’estensione XX dopo il punto decimale corrisponde al numero origine quindi può


assumere un valore tra 01 e 16. Programmando G54 senza alcina estensione equivale
a programmare G54.01 cioè vengono richiamate le origini n.1 di ciascun asse.

Le istruzioni G55, G56, G57 (presenti in altri CNC) sono considerate sinonimi
dell’istruzione G54.

In molti casi, può essere utile al programmatore riferire le quote ad origini diverse dalle
n.1. Per far ciò basterà che egli scriva le istruzioni modali: G54.02, G54.03...
G54.16 a seconda che voglia riferire le quote rispettivamente all’origine n.2,
all’origine n.16 di tutti gli assi CNC della M.U.

1 Capitolo 9
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

ESEMPIO:

%
N0...
N10...
...
N90
N100 G54.04
...
N250...
N260 G54.07
...
N300 M02

COMMENTI:

Fino alla N90 le quote programmate per gli assi sono riferite alle loro origini n.1, grazie
al carattere %.
Dalla N100 alla N250 le quote sono riferite alle origini n.4
Dalla N260 alla N300 le quote vengono riferite alle origini n.7.

1) Le istruzioni G54.xx hanno l’effetto di richiamare l’origine per tutti gli assi CNC
quindi programmando ad esempio:

...
...
N20 G54.05
N30 G00 X.. Y.. Z.. B..
...

La N20 richiama le origini n.5, nella N30 i posizionamenti di tutti gli assi programmati
verranno riferiti alle origini n.5.

2) Le istruzioni G54.XX annullano eventuali traslazioni origini programmate con le


istruzioni G59 e G58 (vedi paragrafo successivo).

2 Capitolo 9
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

9.2 TRASLAZIONE ORIGINE DA PROGRAMMA

Uno spostamento (traslazione) origine è possibile all’origine assoluta attualmente


attiva, la programmazione viene fatta mediante l’istruzione:

(M) G59 Traslazione Origine

Formato:

G59 X... Y... ecc.

in cui X, Y rappresentano l’entità di traslazione dei rispettivi assi.

Programmando ad esempio:

...
N30 G54.03
N40 X.. Y..
...
N60 G59 X200 Y120
...
...
...
N100 G54.05
...
...

COMMENTI:

N030: Vengono richiamate le origini n.3

N040: Si effettuano posizionamenti degli assi riferiti alle origini X,Y n.3.

N060: Le origini n.3 vengono traslate rispettivamente: in X di 200 mm e rispetto a Y di


120 mm, l’effetto grafico è quello di Fig.9.1.

N100: Vengono richiamate le origini assolute n.5 e di conseguenza le origini


incrementali vengono messe a zero.

3 Capitolo 9
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CANCELLAZIONE TRASLAZIONE ORIGINE

G59 X0 Y0...

e sufficiente programmare un’entità di traslazione nulla.

9.2 CARICAMENTO ORIGINI DA PROGRAMMA

L’istruzione G59 può essere utilizzato anche per il caricamento delle origini assolute nel
relativo file, il formato diventa:

N...G59 N3 X... Y... Z... A... B...

dove l’istruzione N... che segue la G59 rappresenta il n. d’origine che si vuole caricare
(o modificare) , nel nostro esempio si vogliono caricare le origini n.3 per gli assi
X,Y,Z,A,e B.

NOTA:

Anche durante il caricamento dei valori origine, eventuali spostamenti incrementali


vengono messi a zero.

9.2.2. SPOSTAMENTO ORIGINE ADDIZIONALE

In correlazione alla traslazione d’origine G59 è possibile programmare un’ulteriore


spostamento origine riferito a quest’ultimo. L’istruzione necessaria è:

(M) G58 Spostamento Origine Addizionale Rispetto a G59.

Ad esempio programmando (vedi Fig. 9.2):

...
...
N30G54.03
N40X... Y...
...
...
N60G59 X200 Y120

4 Capitolo 9
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N70 X... Y...


N80G58 X100 Y50
N100 G54.05
...

COMMENTI:

N060: Le origini n.3 vengono traslate di 200 mm in X e 120 mm in Y come già visto.

N080: Le origini n.3 vengono ulteriormente traslate di 100 mm in X e 50 mm in Y, per


cui la traslazione totale rispetto all’origine n.3 diventa in X: 200 + 100 = 300 ed in Y:
120 + 50 = 170 mm (Vedi Fig.9.2).

N100: Vengono chiamate le origini assolute n.5 e di conseguenza le origini incrementali


programmate con G59 e G58 vengono messe a zero.

Per cancellare la traslazione origine addizionale si può anche programmare:

N..G58 X0 Y0

9.3 SOSPENSIONE ORIGINI E TRASLAZIONI

(A) G53 SOSPENSIONE ORIGINI ASSOLUTE (G54.XX) e/o


INCREMENTALI

L’istruzione G53 provoca movimenti della M.U. riferiti allo ZERO MACCHINA
eventuali origini attive, traslazioni origini, specularità vengono sospese
nell’operazione dove è programmate la G53 (autocancellante) edeventualmente ripresi
nell’operazione successiva.

ATTENZIONE: non vengono cancellate le istruzioni di compensazione Raggio e


Lunghezza, specularità, matrici di trasformazione attive che eventualmente debbono
essere cancellate separatamente.

Ad esempio programmando: N...G53 X2000 Y1850

La M.U. si posiziona alla quota di coordinate X2000 ed Y1850 rispetto allo ZERO
MACCHINA.

5 Capitolo 9
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 10

CICLI FISSI DI LAVORAZIONE

Si chiamano cicli fissi le macroistruzioni, comprese tra l’istruzione G81 e l’struzione


G89, che permettono al programmatore di descrivere in modo coinciso e una volta per
tutte i movimenti pendolari che l’utensile deve eseguire durante il lavoro di foratura,
maschiatura, alesatura, ecc. dopo che l’utensile stesso sia stato posizionato sulle
coordinate di ogni foro.
La fig.10.1 descrive in modo sintetico i cicli fissi previsti dal CNC9732 e implementati
tramite il linguaggio HLPL.

Le funzioni G81, G82, ..G89 sono modali e “scatenano” il ciclo di lavoro caratteristico,
solo se in una operazione e’ scritta l’istruzione di posizionamento di uno o piu’ assi e
dopo che tutti gli assi sono arrivati sulle quote programmate e hanno velocita’ 0.

1 Capitolo 10
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

10.1 ASSEGNAZIONE DEI CICLI FISSI.

Per fare eseguire i cicli fissi su un determinato asse della M.U. e’ necessario scrivere
l’istruzione di “prenotazione” del tipo:

<CFF=CF nome asse>

ad esempio:

<CFF=CFZ> per assegnare i cicli fissi all’asse Z.

<CFF=CFY> per assegnare i cicli fissi all’asse Y.

e cosi’ via per tutti gli altri assi.

L’assegnazione dei cicli fissi ha l’effetto di far interpretare le variabili: RAP, ENT,
RAL, ecc. caratteristiche dei cicli fissi come movimenti per l’asse a cui e’ stato
assegnato il ciclo fisso.

Una volta effettuata l’assegnazione di un asse, questa rimane fintanto che non viene
programmata una nuova assegnazione.

L’istruzione:

(M) G80 Annulla i cicli fissi.


Cioe’ cancella qualsiasi ciclo fisso G81-G89 precedentemente program_
mato.

2 Capitolo 10
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

10.2 PROGRAMMAZIONE DEI CICLI FISSI

Tutti i cicli fissi sono abbinati a tre variabili:

<RAP=...> Coordinata che verra’ raggiunta dall’asse a velocita RAPida.


<ENT=...> Coordinata d’ENTtrata che verra’ raggiunta a velocita’ di lavoro.
<RAL=...> Coordinata di Ritorno ALto per l’estrazione dell’utensile.

Trascurando, per il momento la G83 ciascun ciclo fisso e’ costituito dalle seguenti fasi:

1) Posizionamento rapido degli assi coordinati (Es, X,Y)


2) L’asse abbinato al ciclo fisso (CFF=..) si porta in rapido alla quota <RAP=...>
3) L’asse del ciclo fisso si porta in lavoro alla quota <ENT=...> che determina
la profondita’ di foratura.
4) Estrazione in rapido o lavoro a seconda del ciclo fisso prescelto vedi Fig.10.1
fino alla quota <RAP=...>
5) Estrazione in rapido dalla quota <RAP=..> alla quota <RAL=..>

Al termine della fase 3 avvengono tempi di sosta, inversioni mandrino o arresti a


secondo del ciclo prescelto, vedi schema della FiG.10.

N.B. Le coordinate <RAP=..>, <ENT=..>, <RAL=..> sono sempre assolute, cioe’


riferite all’origine dell’asse di profondita’ che esegue il ciclo fisso.
Debbono essere sempre programmate tutte e tre, anche se la quota <RAP=..> e’
identica alla quota <RAL=..>

3 Capitolo 10
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

10.3 DESCRIZIONE DEI CICLI FISSI

FORATURA SEMPLICE: G81

N... G81 <RAP=..> <ENT=..> <RAL=..>

FORATURA CON SOSTA G82

N... G82 <RAP=..> <ENT=..> <RAL=..> <TIM=..>


In particolare la variabile <TIM=..> rappresenta il tempo di sosta in secondi.

FORATURA PROFONDA G83

Esistono 2 cicli:

1) FORATURA CON SCARICO DEL TRUCIOLO

N... G83 <RAP=..> <ENT=..> <RAL=..> <INI=..> <IND=..> <TIM=0>

Oltre alle quote RAP, ENT, RAL, devono essere programmati:

<INI=..> INcremento Iniziale da programmare sempre positivo.

<IND=..> Valore di regressione dell’incremento iniziale (sempre positivo).


Se programmato = 0 l’incremento INI e’ mantenuto costante.

<TIM=0> Nessun tempo di sosta. Nel caso fosse programmato diverso da 0


si passa al ciclo successivo.

2) FORATURA CON ROTTURA DEL TRUCIOLO

N... G83 <RAP=..> <ENT=..> <RAL=..> <INI=..> <IND=..> <TIM=..>

Comporta le stesse variabili della foratura con scarico in piu la programmazione della
variabile:

<TIM=..> Tempo di sosta <> da 0.

N.B. Con tempo di sosta <> da 0 si ottiene il ciclo con rottura truciolo, con tempo
di sosta = 0 viene effettuato il ciclo con scarico del truciolo.

4 Capitolo 10
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

MASCHIATURA: G84

N... G84 <RAP=..> <ENT=..> <RAL=..>

ALESATURA CON RITORNO IN LAVORO: G85

N... G85 <RAP=..> <ENT=..> <RAL=..>

ALESATURA CON RITORNO A MANDRINO FERMO: G86

N... G87 <RAP=..> <ENT=..> <RAL=..>

ALESATURA CON RITORNO ORIENTATO E DISIMPEGNO: G87

N... G87 <RAP=..> <ENT=..> <RAL=..> <DAX=..> <DAY=..>

Oltre ai soliti parametri RAP, ENT, RAL, vengono programmati i parametri


incrementali:

<DAX=..> Disimpegno incrementale lungo il primo asse del piano di contorna-


tura.

<DAY=..> Disimpegno incrementale lungo il secondo asse del piano di contorna-


tura.

L’orientamento mandrino viene effettuato mediante la funzione ausiliaria M19


predisposta nel ciclo G87.

ALESATURA CON SOSTA: G89

N... G89 <RAP=..> <ENT=..> <RAL=..> <TIM=..>

5 Capitolo 10
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

PRECISAZIONI IMPORTANTI.

Una peculiarita’ importante dei cicli fissi da G81 a G89, e’ quella di scatenarsi solo
dopo che gli assi hanno raggiunto la quota programmata e hanno velocita’ 0, per cui
programmare:

%1234
N0 G16XYZ+ <CFF=CFZ>
N10 T1 M42
N20 S800 F200 M13
N30 G81 <RAP=2> <ENT=-30> <RAL=2>
N40 X100 Y80
...
...

oppure:

N30 G81 <RAP=2> <ENT=-30> <RAL=2> X100 Y80

sortono lo stesso effetto, perche’ il ciclo fisso viene scatenato solo dopo il
posizionamento degli assi X e Y.

I cicli fissi descritti sono stati realizzati da COGI Elettronica, mediante il linguaggio
parametrico HLPL come macro (residenti sotto il direttorio SUB\).
Tuttavia l’utente ha a disposizione il linguaggio HLPL quale strumento per costruirne di
nuove personalizzate alle proprie esigenze.

6 Capitolo 10
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 11

CONTORNATURA

Si intende per contornatura la possibilità del CNC di muovere gli assi lungo profili
costituiti da segmenti di rette e/o da archi di cerchio. Le lavorazioni di contornatura
corrispondono quindi sempre a fresature di profili rettilinii o circolari.

. La fresatura rettilinea, o INTERPOLAZIONE LINEARE, è possibile


contemporaneamente su tutti gli assi CNC.

. La fresatura di profili circolari, o INTERPOLAZIONE CIRCOLARE, è possibile


sul piano definitivo dalla corrispondente istruzione, vedi paragrafo seguente.

11.1 DEFINIZIONE DEL PIANO DI CONTORNATURA

Prima di iniziare una lavorazione di contornatura è necessario definire il piano su cui


giace il profilo da lavorare (vedi Fig.11.1); ciò viene fatto mediante un’istruzione di
prenotazione del tipo:

(M) G17 Piano di contornatura X-Y (DIR1-DIR2) ascissa X ordinata Y


(M) G18 Piano di contornatura Z-X (DIR3-DIR1) ascissa Z ordinata X
(M) G19 Piano di contornatura Y-Z (DIR2-DIR3) ascissa y ordinata Z

Ognuna di queste istruzioni identifica su quale coppia di assi della M.U. (scelta nella
terna X,Y,Z) si vogliono eseguire archi di cerchio (G02 o G03) e/o si vuole compensare
“vettorialmente” il raggio dell’utensile (vedi parag.11.3).

Esiste inoltre un’istruzione che permette liberamente di selezionare un piano formato da


qualsiasi copia di assi CNC, appartenenti a direzioni diverse:

1 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

(M) G16 SCELTA LIBERA DEL PIANO DI CONTORNATURA.

Formato:

G16/primo asse/secondo asse/terzo asse/+-

Dove: primo asse, secondo asse rappresentano assi della M.U. appartenenti a diverse
direzioni, sono gli assi del piano di contornatura. Comunque venga scritto l’ordine
degli assi, il CNC considera i vari piani di contornata nell’abbinamento delle direzioni
valide per la terna destrorsa di Fig.11.1, vedi quanto spiegato a proposito di G17,G18 e
G19.

ad esempio:

G16UWZ+

Significa:

. piano di contornatura formato dagli assi U, W


. compensazione in lunghezza dell’utensile lungo l’asse Z in
verso positivo (+)

Si noti che con l’uso dell’istruzione G16... si effettua, oltre alla selezione del piano di
contornatura, la compensazione in lunghezza dell’utensile in alternativa all’istruzione
G43 (o G44) già viste.
E’ possibile definire il piano libero mediante tre assi di cui due coincidenti, ad esempio:

G16XZZ+

Significa piano di contornatura secondo gli assi Z-X e compensazione in lunghezza


dell’utensile secondo l’asse Z positivo.

11.1.1 ORIENTAMENTO DEL DISEGNO

2 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Nei capitoli che seguono ricorreranno continuamente i termini:

. orario
. antiorario
. pezzo a destra
. pezzo a sinistra

E’ necessario stabilire un criterio grafico mediante il quale orientare gli assi del piano di
contornatura.
I semiassi positivi delle ascisse e delle ordinate devono essere orientati come in Fig.11.1
facendo riferimento alla direzione dell’asse configurata nel file TAR.CNC

In tali condizioni indicheremo con:

G02 Circonferenza percorsa in verso orario


G03 Circonferenza percorsa in verso antiorario
G41 Pezzo a destra dell’utensile
G42 Pezzo a sinistra dell’utensile

G02, secondo quanto esposto in Fig.11.1, è rappresentata dalla rotazione degli assi
appartenenti alle seguenti direzioni:

DIR1 = DIR3
DIR3 = DIR2
DIR2 = DIR1

Comunque sia, anche se il verso degli assi della M.U. fossero invertiti (assi discordi)
rispetto alla terna destrorsa di Fig.11.1 in fase di taratura del CNC (nel file TAR.AXS
campo SNS) è sufficiente definire che l’asse è di verso opposto rispetto alla terna
destrorsa affinchè il CNC ristabilisca la stessa regola di programmazione valida per gli
assi di Fig. 11.1.
In definitiva il programmatore non deve preoccuparsi di come sono orientati gli assi
sulla M.U.

Programmare G17 equivale a G16XY...


Programmare G18 equivale a G16ZX...
Programmare G19 equivale a G16YZ...
11.2 ISTRUZIONI DI CONTORNATURA CONVENZIONALE

3 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Si intende per contornatura convenzionale, le istruzioni G01, G02 o G03 in cui vengono
programmate sempre le coordinate rettangolari o polari del punto finale della retta o
dell’arco di cerchio.

RETTA

1. MEDIANTE COORDINATE CARTESIANE

Una retta è definita programmando ambedue le coordinate del punto finale mediante
l’istruzione G01 per interpolazione lineare in lavoro oppure G00 per RAPIDO. Il
punto iniziale di una retta corrisponde al punto finale raggiunto nell’operazione
precedente (vedi Fig.11.2).

N...G00 X... Y... (Pinz)


N...G01 X... Y... (Pfin)

quindi:

(M) G00 Interpolazione Lineare Rapida


(M) G01 Interpolazione Lineare a Velocità di Lavoro programmata con l’indirizzo F..

2. MEDIANTE COORDINATE POLARI

(M) G10 Interpolazione Lineare Rapida Con Programmazione in Coordinate Polari

(M) G11 Interpolazione lineare in lavoro con Programmazione in Coordinate Polari


(vedi Fig.11.3).

ESEMPIO:

...
N10 G00 X... Y... (SP)
N11 G11 X... Y... a... e....
...

Il punto finale (PFIN) viene calcolato automaticamente (vedi Fig.11.3).

4 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

dove:

(M) X... Y... Coordinate Assolute del Polo


(M) a Angolo Polare (in Gradi e Frazioni Decimali)
(M) e Raggio Polare

CERCHIO

1. MEDIANTE COORDINATE CARTESIANE

(M) G02 Interpolazione Circolare Oraria

(M) G03 Interpolazione Circolare Antioraria

Un arco di cerchio viene definito programmandone il verso di percorrenza G02 o G03,


le coordinate del punto finale e delle due coordinate del centro mediante le istruzioni:

I Coordinata del centro lungo l’asse DIREZIONE 1


J Coordinata del centro lungo l’asse DIREZIONE 2
K Coordinata del centro lungo l’asse DIREZIONE 3

ad esempio (vedi Fig. 11.4).

N... X Y (PINZ)
N... G02... X... Y... (PFIN) I... J (C)

Se al posto di G02 si fosse programmato G03 si otteneva l’arco complementare a 360°


raffigurato in tratteggio in Fig.11.4
Se il punto finale di un cerchio è identico al suo punto iniziale viene eseguito un
cerchio intero (360°).

Le coordinate del centro (I,J,K) sono di norma assolute, è tuttavia possibile, in fase di
messa in servizio, del CNC configurare il controllo in modo da farle interpretare
incrementali rispetto al punto iniziale.

5 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

In tal caso il programma del tipo:

N... X... Y... (PINZ)


N... G02 X... Y... (PFIN) I... J... (C)

Si riferisce alla Fig.11.5, in cui I... e J... rappresentano le distanze tra PINZ e centro
dell’arco di cerchio.

Se si è scelto le coordinate del centro di tipo incrementale non sarà più possibile la
programmazione mediante linguaggio GEO+

2. MEDIANTE COORDINATE POLARI

(M) G12 Interpolazione Circolare Oraria mediante Coordinate Polari

(M) G13 Come sopra ma in Verso Antiorario

ad esempio:

N... X... Y... (PINZ)


N... G12 X... Y...(Polo) a... e... I... J..(C)

dove:

I... J... (o K..) coordinate del centro del cerchio


X... Y... coordinate assolute del polo
a angolo polare (gradi e parti decimali)
e... raggio polare

Altre numerose definizioni di retta e cerchio sono disponibili con la programmazione


mediante linguaggio GEO+; Geometria automatica sul piano.

11.3 COMPENSAZIONE VETTORIALE DEL RAGGIO UTENSILE

6 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Si definisce compensazione vettoriale la capacità del CNC di ricalcolare il profilo,


programmato come se fosee percorso da utensile ideale di raggio zero e lunghezza
zero, facendo riferimento al centro utensile.
Il raggio utensile viene quindi considerato un vettore che percorre il profilo
programmato.
L’abilitazione alla compensazione vettoriale viene effettuata con le seguenti soluzioni:

(M) G41 Pezzo a Destra della Fresa


(M) G42 Pezzo a Sinistra della Fresa
(M) G40 Annullamento della Correzione del Raggio Fresa

La valutazione della posizione reciproca UTENSILE/PEZZO deve essere così fatta: il


programmatore seduto sull’utensile, guardando nella direzione del moto valuta se il
materiale da asportare è alla sua destra (G41) o alla sua sinistra (G42) vedi Fig.11.7.

11.3.1 REGOLE DI CONTORNATURA

Dalle premesse fatte siano adesso in grado di elencare le regole per una corretta
programmazione della contornatura:

. 1. orientare gli assi della M.U. sul disegno del pezzo facendo riferimento alla Fig.11.1
. 2. definire il piano di contornatura mediante le istruzioni G17, G18 o G19, oppure con
l’istruzione di selezione libera del piano G16...
. 3. posizionare gli assi del piano di contornatura (in rapido GOO o lavoro G01) su un
punto distante dal profilo almeno di una quantità pari al raggio utensile.
. 4. posizionare gli assi sul punto d’inizio del profilo mediante l’istruzione G00 o G01,
questa operazione deve contenere la definizione di posizione reciproca pezzo/utensile:

G41 = Pezzo a destra (utensile a sinistra)


G42 = Pezzo a sinistra (utensile a destra)

Gli assi raggiungono il punto d’inizio della contornatura (attacco della contornatura)
con utensile compensato (normale al profilo) ed a velocità zero.
L’attacco al profilo può avvenire sia su retta che su cerchio ed in qualsiasi punto del
profilo (anche non parassiale)
Nell’operazione successiva a quella d’inizializzazione della contornatura (G41 o G42) è
necessaria una operazione contenente un movimento sul piano di contornatura.
. 5. contornatura mediante le istruzioni G01,G02,G03

7 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

. 6. Distacco dell’utensile dal profilo mediante istruzioni G00 oppure G01, in questa
operazione deve essere annullata la compensazione mediante l’istruzione G40. Alla fine
del posizionamento il centro utensile si troverà sulle coordinate programmate.

1 - Durante la contornatura di un profilo mediante compensazione vettoriale del


raggio utensile, sono sconsigliate inversioni di moto lungo il profilo programmato, cioè
si dovrà mantenere il pezzo a destra (G41) oppure a sinistra (G42) come prescelto
nell’operazione di inizio della contornatura. Agli esempi che seguono sono demandati
ulteriori chiarimenti.

2 - Durante le contornatura di un profilo non sono ammessi:

a. Cambi correttori (istruzione D...)


b. Programmare un sovrametallo (istruzione <DRA: ...>
c. Cambi origini (istruzioni G54.xx, G58. G59)
d. Cambio del piano di contornatura selezionato

Eventuali cambi correttori, origini ecc. debbono essere programmate prima dell’inizio
della contornatura.

11.3.2 PROFILO RACCORDATO O CON SPIGOLI

. Un profilo è raccordato quando gli enti geometrici consecutivi che lo compongono


(G01, G02, G03) sono tra loro tangenti. In tal caso la correzione automaticadel raggio
utensile esegue
esattamente il profilo programmato (Vedi Fig. 11.7)

. Si ha uno spigolo in un punto quando i due tratti che lo individuano, si intersicano in


quel punto .

. Uno spigolo è convesso se può essere lavorato mediante rotazione automatica


dell’utensile attorno ad esso. In altre parole lo spigolo è convesso se può essere
raggiunto dall’utensile senza sfondare il tratto successivo di profilo
(vedi Fig.11.8 A,C,E).

. Uno spigolo è concavo quando non può essere raggiunto dall’utensile senza sfondare
l’elemento geometrico successivo e per eseguirlo l’utensile deve sempre fare bruschi
cambiamenti di direzione, arrestandosi per un istante, quando è tangente ai due strati
continui di profilo (Fig. 11.8 B.D.F).
Comunque sia, la compensazione vettoriale del raggio dell’utensile risolve
automaticamente ambedue i tipi di spigoli, come mostrato in Fig.11.8, facendo ruotare il

8 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

raggio sugli spigoli convessi ed arrestandosi tangente ai due elementi di profilo negli
spigoli concavi.

11.4 ATTACCO AL PROFILO

Per attacco al profilo si intendono le operazioni preliminari di avvicinamento al primo


tratto di profilo sia esso formato da rette oppure da cerchi, negli esempi che seguono
vengono trattati tutte e due i casi.
Comunque sia è importante che il punto raggiunto dal centro utensile, prima
dell’attacco alla contornatura, sia distante dal profilo almeno di una quantità pari al
raggio utensile.

11.4.1 ATTACCO SU RETTE

PROGRAMMA:

%
N0 T3 G90 G16 XYZ +
(PINZ) N10 G00 X-50 Y50 S.. F..
N20 Z-30 M13
(P1) N30 G01 G41 X80 Y80
(P2) N40 Y120
(P3) N50 X180 Y200
(P4) N60 G03 X360 Y200 I270 J230
N70 G01...
...

COMMENTI:

NOOO Viene prenotato il piano di contornatura X-Y e la compensazione in


lunghezza lungo l’asse Z.

N010 Posizionamento punto a punto rapido sul punto PINZ; da notare che viene
raggiunto con il centro utensile (la correzione raggio non è ancora attiva).

N030 Movimento d’attacco su retta, viene attivata la compensazione con pezzo a


destra (G41). Alla fine del movimento il raggio vettore si trova orientato come mostrato
in Fig.11.9

N040

9 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N070 Viene contornato il pezzo, si noti la rotazione del raggio vettore effettuata
automaticamente su ogni spigolo.

Se nella N30 fosse stato programmato G42 (al posto di G41), il raggio utensile, durante
il movimento di attacco al profilo, si
sarebbe disposto come in Fig. 11.10 ed avrebbe poi realizzato l’interno del nostro
esempio.

11.4.2 ATTACCO SU CERCHI

PROGRAMMA:

%
N0 T05 G90 G16 XYZ +
(PINZ) N10 G00 X90 Y240 S... F...
N20 Z-30 M13
(P1) N30 G01 G42 X50 Y350
(P2) N40 G02 X225 Y200 I137.5 J275
(P3) N50 G03 X341.66 Y100 I283.33 J150
(P4) N60 G01 X550 Y343.06
N70 G00 G40 X610 Y260
...
...

COMMENTI:

N0 Viene prenotato il piano di contornatura X-Y e la compensazione in lunghezza su


Z+

N10 Posizionamento punto a punto su PINZ, viene raggiunto il punto con il centro
utensile.

N30 Movimento d’attacco su cerchio, viene attivata la compensazione vettoriale con


pezzo a sinistra (G42).
Alla fine del movimento il raggio utensile si trova orientato, come mostrato in
Fig.11.11, sulla normale al cerchio.

N70 Disimpegno rapido con annullamento della correzione utensile (G40).

11.5 ESEMPI COMPLETI DI CONTORNATURA:

10 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

ESEMPIO N.1

Facendo riferimento alla Fig.11.12 si vuole lavorare il pezzo raffigurato con utensile:

T12 = Fresa R12.5 L50

PROGRAMMA:

%
N0 G16 XYZ+
N10 T12 M42
(PINZ) N20 X-110 Y120 S500 F200 M13
N30 Z-35
(SP) N40 G01 G41 X-105 Y100
(P2) N50 X100
(P3) N60 X65.798 Y193.969
(P4) N70 G02 X164.605 Y256.916 I122.179 J214.49
(P5) N80 G01 X270.671 Y150.85
(P6) N90 G03 X270.671 Y9.428 I341.382 J80.139
(P7) N100 G01 Y-53.816
(P8) N110 X17.365 Y-98.481
(P9) N120 G02 X-100 Y0 I0 J0
(PF) N130 G01 Y105
(Pest) N140 G00 G40 X-110 Y-120
N150 Z200 M05
N160 M02

COMMENTI:

N000: Prenotazione del piano di contornatura X-Y e compensazione lunghezza su Z.

N010: Cambio utensile ed impostazionedella gamma di velocità

N020: Posizionamento punto a punto rapido su un punto esterno al profilo ed ad una


distanza maggiore del raggio utensile.

11 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N040: Attacco in lavoro sul prolungamento in aria del profilo. Il pezzo a destra (G41).

N050
N130: Contornatura del profilo, da notare lo spigolo P2 che viene risolto raccordandolo
con il raggio utensile.

N140: Disimpegno rapido con annullamento compensazione del raggio utensile.

Da notare l’effetto di rotazione automatica degli spigoli, effettuato automaticamente


dalla compensazione vettoriale, raffigurata in Fig.11.12.

ESEMPIO N.2

Si vuole lavorare il pezzo di Fig.11.13, che è tridimensionale compensando il raggio


fresa sul piano X-Y:

Il part-program è il seguente:

%
N0 G16 XYZ+
N10 T20 M42
(PEST) N20 X-60 Y100 M13 S400 F300
N30 Z10
(PINZ) N40 G01 G42 X-33.14 Y100
(P0) N50 Y0
(P1) N60 G03 X0 Y-80 I80 J0
(P2) N70 G01 X200 Y-80 Z30
(P3) N80 G02 X200 Y80 I280 J0
(P4) N90 G01 X0 Y80 Z10
(P0) N100 G03 X-33.14 Y0 I80 J0
(PFIN) N110 G01 X-33.14 Y-100
N120 G40 X-60 Y-100
N130 G00 Z100 M05
N140 M02

COMMENTI:

N020: Posizionamento rapido su PEST

12 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N040: Attacco di contornatura, il pezzo è a sinistra (G42)

N050

N110: Contornatura del profilo, si noti che in alcune operazioni vengono mossi
contemporaneamente i tre assi per ottenere alcuni tratti del profilo tridimensionale.

N120: Disimpegno con annullamento compensazione (G40).

11.5.1 CONSIDERAZIONI TECNOLOGICHE SULLA CONTORNATURA

Si chiama lavorazione in concordanza quella fatta dal tagliente di una fresa che
ruotando in verso orario asporti materiale dall’ “aria” verso il pezzo. Vedi Fig.11.14.

Si chiama lavorazione in discordanza quella effettuata dal tagliente di una fresa che
ruotando sempre in verao orario asporti materiale dal “pezzo” verso l’”aria” - vedi
Fig.11.15.

La lavorazione in concordanza è la più consigliabile in sgrossatura, mentre quella in


discordanza lo è in finitura. (ciò dipende dal tipo di utensile e materiale da lavorare).

REGOLA VALIDA PER FRESE DESTRORSE, in cui il verso di rotazione del


mandrino è programmato sempre in verso orario M03.
Si lavora in concordanza programmando G41, cioè quando il materiale è alla destra
dell’utensile.
Si lavora in discordanza programmando G42, cioè quando il materiale da asportare è
alla sinistra dell’utensile.

11.6 CORREZIONE DEL RAGGIO UTENSILE NELLO SPAZIO

13 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Come già spiegato nei paragrafi precedenti, nel piano si ha l’attivazione della
compensazione vettoriale automatica mediante le istruzioni G41 o G42 e la loro
cancellazione mediante l’istruzione G40.
Nello spazio la compensazione vettoriale è ottenuta mediante i coseni direttori
programmati con:

(M) p fattore moltiplicativo del raggio utensile lungo l’asse DIREZIONE 1


(M) q come sopra ma per l’asse DIREZIONE 2
(M) r come sopra ma per l’asse DIREZIONE 3

p,q,r sono le componenti del versore (vettore unitario) lungo i 3


assi dello spazio di contornatura.

L’abilitazione dei coseni direttori è ottenuta mediante l’istruzione di spazio di


contornatura:

<SPC: asse dir1; asse dir2; asse dir3>

ad esempio, programmando:

N...<SPC: X;Y;Z>

i coseni direttori verranno così predisposti:

p per l’asse X
q per l’asse Y
r per l’asse Z

La disabilitazione viene programmata con:

<SPC:OFF>

Con SPC attivo, se si programma un posizionamento su un punto P, ad esempio (vedi


Fig.11.16):

N... G01 X... Y... Z... (p) p... q... r...

il centro dell’utensile raggiunge un punto nello spazio che si troverà a queste


coordinate:

14 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Xa = X + Rut* P
Xc = Y + Rut* q
Zc = Z + Rut* r

In altre parole i fattori p,q,r corrispondono alle componenti vettoriali che avrebbe un
utensile di raggio unitario rispetto al punto programmato sulla superficie del pezzo (vedi
Fig.11.16).

La compensazione vettoriale nello spazio viene usata con programmi ottenuti


mediante i sistemi CAD/CAM oppure con programmi di scansione automatica di
modelli, in cui i fattori
p,q,r vengono calcolati automaticamente dal Post-processor dell’applicatico CAM.

Con la sola programmazione diretta il calcolo dei coseni direttori nello spazio è un
compito particolarmente arduo.

Nel piano possono venir utilizzati nella contornatura parassiale come è già stato
spiegato ed esemplificato nel Cap.8, comunque sia nel piano, salvo casi particolari, l’uso
dei coseni direttori è consigliabile vista la presenza della ben più semplice e completa
compensazione vettoriale.

1. L’attivazione della compensazione vettoriale nello spazio (<SPC: ...>) non viene
accettata con compensazione vettoriale nel piano (G41 o G42) attiva.

2. Altresì non è accettata la compensazione vettoriale nel piano (G41 o G42) con
compensazione nello spazio attivo.

3. La prenotazione del piano di contornatura (G17,G18,G19 o G16) viene accettata


anche con compensazione nello spazio attiva, ma chiaramente non ha nessun effetto
nelle lavorazioni “tridimensionali”.

11.7 INTERPOLAZIONE ELICOIDALE

15 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Un’interpolazione elicoidale, su un Machining Center dotato di tavola rotante


controllata dal CNC (es.asse B), è facilmente eseguibile con la semplice interpolazione
lineare del tipo:

N... G01... Y... B....

infatti il movimento contemporaneo di due assi , uno lineare ed uno rotante, genera
un’elica.

In questo capitolo viene trattata la possibilità di interpolazione elicoidale coordinando il


moto di 3 assi lineari tra loro CONTEMPORANEI ed appartenenti a tre diverse
direzioni: due assi, quelli del piano di contornatura (abilitato da G16, G17,G18, o G19)
eseguono un’interpolazione circolare, mentre il terzo asse esegue un’interpolazione
lineare a passo controllato.

Formato:

N... G02 (o G03) X... Y... Z... I... J...e...

dove:

X, Y, Z coordinate del punto finale

I, J, K coordinate del centro

e... numero intero di angoli giro in cui l’elica è

contenuta, arrotondato per eccesso, ad esempio:

400° - e2 (400/360 = 1.1111..)

270° - e1 (270/360 = 0.75)

Se e.. non viene programmato viene assunto e = 1.

1. E’ obbligatorio programmare sempre tutte e tre le coordinate del punto finale.

2. Non è consentita la programmazione in coordinate polari.

3. Non è consentito programmare altri assi oltre ai tre coinvolti nell’esecuzione


dell’elica.

16 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

AVVERTENZA:

La velocità di lavoro programmata F.. coincide con la proiezione della velocità effettiva
sul piano di contornatura. E’ pertanto praticamente identica alla velocità effettiva finchè
il passo dell’elica non supera il diametro del cerchio (condizione sempre verificata nel
caso di filettature). Nel caso invece che si vogliano programmare archi di elica con
passo molto più grande rispetto al cerchio, si potrà tenerne conto usando la formula
seguente:

Fe = F* (1+(P/( *D)2)

Fe - velocità effettiva di lavoro misurata tangenzialmente all’elica.

F - velocità programmata.

D - diametro del cerchio di cui si vuole percorrere l’arco.

PROGRAMMA

% N0 G16 XYZ+

N10 T3 M41

N20 X-80 Y100 S500 F200 M13

N30 Z-50

N40 G01 G42 X-40 Y50

N50 Y0

N60 G03 X-40 Y0 Z-350 I0 J0 e3

N70 G01 Y-100

N80 G40 X-100 Y-100

N90 G00 Z200 M05

N100 M02

COMMENTI:

17 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N000: Prenotato il piano di contornatura X-Y e compensazione lunghezza su Z.

N020: Posizionamento rapido su un punto esterno.

N040: Attacco in contornatura, pezzo a sinistra (G42)

N060: Interpolazione elicoidale, vengono realizzate 3 spire complete di passo 100mm


con una sola operazione.

L’interpolazione elicoidale può essere utilizzata per realizzare filettature (interne,


esterne) con fresa, ragnature, scarichi di lubrificazione mediante frese o creatori,
“fresalesature” con incremento continuo della profondità.

11.8 FRESATURA AD ALTA VELOCITA’

Durante operazioni di contornatura il CMC gestisce un sofisticato sistema di controllo


delle accellerazioni di profilo in modo da rispettare la geometria programmata con le
istruzioni G01, G02 e G03. Questo sistema di “LOOK HAEAD” (guarda in avanti)
permette di prevedere in anticipo le asperità di un profilo e di adattare
automaticamente la velocità F... programmata in modo da rispettare la geometria del
pezzo programmato. Questo metodo di controllo delle accellerazioni è introdotto per
default mediante l’istruzione G60.

G60 (M) Controllo automatico delle accellerazioni di profilo per gli assi CNC,
CANCELLA LE ISTRUZIONI G64 e G65.

Questo metodo di contornatura è il più consigliabile quando la geometria di un pezzo


è ottenuta da un insieme di elementi geometrici quali rette e cerchi.

Nel caso invece che un profilo nel piano o nello spazio sia costitutito da un insieme
fitto di punti, è il caso di curve per punti, superfici ottenute in modo puntiforme da
sistemi CAD-CAM, superfici ottenute mediante l’opzione DIGITALIZZAZIONE, la
G60 allo scopo di voler rispettare il profilo programmato può provocare degli arresti
lungo la traettoria puntiforme. Per evitare ciò e velocizzare la fresatura dei profili
puntiforme è necessario utilizzare l’istruzione G64 o G65.

G64 (M) Disabilita il controllo automatico delle accellerazioni di profilo.

Con la G64 il profilo risulta più “avviato” che con la G60 e quindi gli spigoli formati dai
vari punti vengono leggermente tagliati, mentre la velocità F.. programmata si mantiene
costante lungo la traiettoria programmata.

18 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

G65 (M) Fresatura ad alta velocità di eleborazione blocco.

Con questa istruzione si ottiene una velocità di elaborazione del part-program pari a 60
operazioni/secondo su part-program ASCII e di 90 operazioni/secondo per file binari
(caricati con l’opzione DNC/BINARIO). A partire dall’istruzione G65 e fino a che non
viene incontrata l’istruzione G60, il part-program deve contenere movimenti rettilinei
dei soli assi X, Y, Z. (Cioè dei primi 3 assi dichiarati in taratura).

Non devono essere attivi cicli o macro: G81-G89; G101-G149; G151-G199; G201-
G249; G251-G259, matrici di trasformazione ecc.

11.9 ATTACCHI TANGENZIALI AL PROFILO

Nei paragrafi precedenti è stata trattata la metodologia di attacco al profilo mediante la


compensazione vettoriale del raggio utensile. In particolare nel paragrafo 11.4 sono
stati analizzati i metodi di attacco al profilo mediante le istruzioni G41: pezzo a destra
e G42: pezzo a sinistra, tali attacchi prevedono sempre movimenti rettilinei (G01) di
accostamento al profilo (attacco radiale.

Una notevole miglioria all’approccio al profilo può essere effettuata medianteattacchi


tangenziali automatici, ciò consente movimenti di interpolazione circolare che
addolciscono il movimento di accostamento e non provocano indesiderate “tacche” sul
punto d’inizio del profilo. Ciò è molto utile nelle lavorazioni interne dove l’attacco è
sempre direttamente fatto sul pezzo. Per attivare la compensazione vettoriale con
attacco tangenziale si dovranno utilizzare istruzioni alternative alle G41, G42 e G40
(rispettivamente G47, G48 e G46).

G47 attacco tangenziale e compensazione raggio con profilo a destra dell’utensile.

G48 attacco tangenziale e compensazione raggio con profilo a sinistra dell’utensile.

G46 annulla la compensazione raggio con stacco tangenziale.

PROGRAMMA:

19 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N0 G16 XYZ+

N10 T4

N20 G00 X80 Y30 S.. F..

N30 Z-20 M03

M40 G48 X30 Y80

N50 G01 X60Y 110

N60 G02 X156.57 Y 70 I100 J70

N70 G01 Y0

N80 X0

N90 Y50

N100 X30 Y80

N110 G00 G46 X80 Y30

N120 Z100 M05

N130 M02

COMMENTI:

N20 Posizionamento sul punto iniziale

N40 Attacco tangenziale verso il punto P1 con pezzo a sinistra (G48). Viene generato
un arco di 90° a partire da P1 tangente alla retta P1-P2 . Il raggio di tale arco è 2 volte
il raggio utensile + sovrametallo <DRA:..> programmato (vedi Cap.12). Il movimento
(vedi Fig.11.18) è scomposto in un movimento lineare in rapido da PINZ al punto
d’inizio dell’arco P (punto calcolato automaticamente) e un movimento circolare
d’attacco al profilo eseguito, a velocità F... programmata, da P verso P1.

N50

N100 movimenti di contornatura.

20 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N110 Stacco tangenziale con annullamento della compensazione.

L’arco di cerchio generato è analogo a quello di attacco al profilo. Il movimento


lineare di ritorno si PINZ avviene in rapido.

CONSIDERAZIONI

Il risultato è quello di una lavorazione senza tracce di attacco e senza alcun onere di
calcolo per il programmatore.Se si fosse voluto l’attacco standard (radiale) era
sufficiente programmare G42 al posto di G48 nella N40 e G40 al posto di G46 nella
N110.

Sia nel caso di attacco tangenziale (G47 o G48) che nel caso di stacco (G46) vengono
generati automaticamente 2 movimenti:

G47-G48: movimento lineare + ciecolare

G46 : movimento circolare + lineare

In entrambi i casi il movimento circolare avviene alla velocità di lavoro


programmata, mentre il movimento lineare avviene in RAPIDO o LAVORO a
seconda della modalità G00 o G01 attiva. Il movimento circolare generato ha un
raggio pari a 2* (Rut+ <DRA:...>) ed un arco di ampiezza 90°. Tali parametri di default
possono essere modificati a piacere mediante l’istruzione <TGR:..> (vedi Par.11.9.2).

11.9.1 ATTACCHI TANGENZIALI A PROFILI CIRCOLARI

L’attacco tangenziale può essere impiegato indifferentemente verso profili rettilinei


oppure circolari, all’interno o all’esterno del profilo. La Fig.11.19 mostra un semplice
esempio di attacco tangenziale verso profilo circolare.

PROGRAMMA:

N0 G16 XYZ+

N10 T3 M06 S..F..

N20 G00 X50 Y50 M03

N30 Z-10

21 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N40 G47 X100 Y180

N50 G02 X100 Y180 I200 J180

N60 G46 G00 X50 Y230

N70 Z100 M05

N80 M02

COMMENTI:

N40 Posizionamento con attacco tangenziale, pezzo a destra, il movimento viene


scomposto nei due movimenti di attacco: lineare fino al punto P (rapido perchè GOO
già memorizzata), circolare da P a P1 con arco di 90° e raggio pari a 2 volte il raggio
utensile.

N50 Interpolazione circolare per la lavorazione completa del cerchio.

N60 Disimpegno con stacco tangenziale.

11.9.2 PROGRAMMAZIONE DEL RAGGIO ED ANGOLO DI ATTACCO

Il raggio e l’angolo di attacco/stacco al profilo possono essere programmati mediante


l’istruzione:

<TGR: koeff; angolo>

<var>; <var>

dove:

Koeff sempre positivo, è il coefficiente moltiplicativo del raggio utensile più


eventuale sovrametallo <DRA:..> programmati. Tale coefficiente deve essere sempre
maggiore di 1. Se <TGR:...> non è programmato, le istruzioni G47, G48 e G46
assumono quale coefficiente 2.

22 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

angolo da programmare sempre positivo, om gradi e parti decimali, è l’estensione


angolare della circonferenza d’attacco misurata a partire dal punto di attacco sul profilo.
Se <TGR:...> non è programmato le istruzioni G47, G48 e G46 assumono quale
angolo 90°.

Al posto dei valori di Koeff e angolo possono essere programmate variabili LIP (vedi
Cap.14). L’istruzione <TGR:...> è autocancellante, deve essere programmata nella
stessa operazione in cui sono presenti G47 (o G48) e G46, altrimenti non viene
presa in considerazione.

Se nella N40, del programma di Fig.11.18, si fosse programmato:

N40 G48 <TGR: 3; 45> X30 Y80

L’effetto risultante sarebbe stato quello raffigurato in Fig.11.20. L’attacco sarebbe


avvenuto con un arco di cerchio di 45° e con un raggio dell’arco pari a 3 volte il raggio
dell’utensile impiegato. Durante la fase di attacco N110 si poteva ottenere un
movimento analogo programmando:

N110 G00 G46 <TGR: 3; 45> X80 Y30.

23 Capitolo 11
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 12

ISTRUZIONI COMPLEMENTARI

Nei paragrafi che seguono vengono illustrate alcune istruzioni complementari alla
contornatura. Queste istruzioni diventano versatili e potenti se usate congiuntamente
alla macro di RIPETIZIONE: <RPT:..> vedi Capitolo 15.

12.1 SOVRAMETALLO SUL PROFILO

Si può programmare il valore del sovrametallo da lasciare sul profilo lavorato, mediante
l’istruzione “logica”:

<DRA: valore>

in cui “valore” rappresenta l’entità di sovrametallo da lasciare sul profilo.

Se il “valore” è positivo, verrà lasciato su tutto il profilo un sovrametallo pari al


“valore” programmato. Se il “valore” programmato è negativo si otterrà l’effetto di
“ridurre” il profilo programmato delle qualità indicata nell’istruzione

<DRA:...>

Ad esempio programmando <DRA:2> prima dell’inizio della contornatura, significa


lasciare 2 mm di sovrametallo su tutto il contorno lavorato.

L’istruzione <DRA:...> viene annullata programmando:

N... <DRA:0>

Se nell’esempio n.1 del Paragrafo 11.5 si fosse aggiunto nella N10:

...
N10 T12 <DRA: 1.5>
...

si otteneva un sovrametallo costante di 1.5 mm lungo tutto il profilo del pezzo di


Fig.11.12

1 Capitolo 12
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

L’istruzione <DRA:...> è una istruzione complementare a quelle che abilitano la


correzione del RAGGIO UTENSILE, quindi deve essere programmata prima del
movimento di attacco della contornatura al profilo.
L’istruzione <DRA:...> agisce sul piano di contornatura (G17,G18,G19 o G16...) e
sull’utensile attivo in quel momento.

OSSERVAZIONI:

. 1 - L’istruzione <DRA:...> viene cancellata automaticamente dal carattere “%”


d’inizio programma.

. 2 - Durante la contornatura l’istruzione <DRA:...> deve essere già stata programmata


e non può variare. Per poter variare il valore di <DRA:...> occorre rinizializzare la
contornatura.

. 3 - L’istruzione <DRA:...> è molto utile se impiegata insieme alla macro <RPT:...>


(vedi Cap.15) perchè permette la ripetizione di più passate di fresatura RADIALE, ad
esempio svuotature di cave, senza dover riprogrammare il profilo ad ogni passata e
programmando una volta per tutte il solo profilo del pezzo finito.

IMPORTANTE:

L’istruzione <DRA:...> agisce sommandosi algebricamente al raggio utensile impiegato.


Ne consegue che la somma <DRA:...> + Rut deve essere sempre maggiore o uguale a
zero:

<DRA:...> + Rut = 0

12.2 SOVRAMETALLO IN PROFONDITA’

Per programmare sovrametallo lungo l’asse di profondità si usa l’istruzione “logica”:

<DLN: valore>

in cui “valore” rappresenta l’entità di sovrametallo che si vuole lasciare lungo l’asse di
profondità, cioè lungo l’asse compensato in lunghezza mediante le istruzioni G43 (o
G44) oppure mediante il piano libero, ad esempio: G16XYZ+.

2 Capitolo 12
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Il CNC si comporta come se la lunghezza dell’utensile fosse quella precisata nella


tabella utensili sommato algebricamente al <DLN:...> programmato. Ad esempio:

%
N0 G17 <DLN:20>
N10 T1 M06
N20 X100 Y50
N30 G43 W-50
...

COMMENTI:

Nella N30 l’utensile (T1) si porta a profondità reale W-30 che è il risultato della somma
algebrica: W-50+20.

OSSERVAZIONI:

. 1 - L’istruzione <DLN:...> agisce sull’asse compensato in lunghezza (attraverso le


istruzioni G43 o G44 oppure G16...) ed allorchè tale asse viene mosso. Deve essere
programmata prima o durante l’istruzione di movimento dell’asse di profondità.

. 2 - L’istruzione <DNL:...> può risultare particolarmente utile in abbinamento alla


macro di ripetizione: <RPT:...>.
Mentre l’istruzione <DRA:...> permette la programmazione di più passate di fresatura
in senso radiale l’istruzione <DLN:...> permette la programmazione di più passate di
fresatura in profondità.

. 3 - Per annullare <DLN:...> è sufficiente programmare:

<DLN:0>

. 4 - Il carattere %. forza a zero l’istruzione <DLN:...>.

3 Capitolo 12
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

12.3 SPECULARITA’ DA PROGRAMMA

Si intende per specularità la capacità del CNC di ottenere automaticamente, da un lato


part-program la figura di mano opposta. La Fig.12.1 illustra un caso del genere, in cui
in un dato part-program si è programmato il pezzo P, che giace nel primo quadrante del
piano cartesiano. Tramite apposita istruzione è possibile ottenere i pezzi P1, P3 e P2
rispettivamente speculari in X, Y, ed in XY.

L’istruzione per attivare la specularità è l’istruzione “logica”:

<MIR:ON; sigla asse; sigla asse;...>

mentre l’istruzione per disattivare la specularità è:

<MIR:OFF;sigla asse;sigla asse;...>

in particolare l’istruzione:

<MIR:OFF>

disattiva la specularità su tutti gli assi.

ESEMPIO:

%
N0 G16 XYZ+
N10 T1
...
N50 <MIR:ON;X> [Attiva la specularità su X]
...
N100 <MIR:ON;Y> [Attiva la specularità su Y; su X è ancora attiva]
N150 <MIR:OFF;X> [Annulla la specularità su X; su Y rimane attivo]
...
...
N200 <MIR:OFF> [Annulla la specularità su tutti gli assi]
....

4 Capitolo 12
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

OSSERVAZIONI:

. 1- L’istruzione <MIR:...> abbinata alla macro di ripetizione <RPT:...>, permette la


ripetizione di una parte di programma con la specularità.

. 2- Il CNC inverte automaticamente le istruzioni G02 in G03 (e viceversa), le istruzioni


G41 in G42 (e viceversa) incontrate nel programma.

. 3- Il carattere “%” annulla la specularità eventualmente inserita.

5 Capitolo 12
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 14

HLPL

LINGUAGGIO INDIRETTO DI PROGRAMMAZIONE AD ALTO LIVELLO

Il linguaggio indiretto di programmazione (HLPL), si differenzia dalla programmazione


“diretta” ISO (visto nei capitoli precedenti), per la capacità di gestire, nel Part-
Program, VARIABILI di vario tipo.
Permette quindi l’esecuzione di:

. Part Program parametrati (cioè che fanno riferimento alle variabili).

. calcoli algebrici e trigonometrici e funzioni tra variabili e tra variabili e costanti.

. sottoprogrammi e macro parametriche.

. test condizionati ed incondizionati.

Permettendo così la costruzione di un’insieme di macroistruzioni personalizzate


dall’utente, di cui i CICLI FISSI spiegati nel Cap.10 ne sono un esempio di
applicazione.

14.1 ELEMENTI DEL LINGUAGGIO

14.1.1 VARIABILI

Le variabili gestite dal HLPL sono numerose e principalmente di 2 classi:

. 1 - Variabili ad eccesso indiretto (ABC)


. 2 - Variabili ad eccesso diretto (#0...#99, R0... R999)

Tutte le variabili sono di tipo REALE (virgola flottante o floating):

hanno un range di + 10/38 per la parte intera e di + 10-38 per la parte decimale.

1 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

VARIABILI AD ACCESSO INDIRETTO NON RETENTIVE

Sono quelle a cui è possibile assegnare “nomi alfanumerici” di 3 caratteri (sempre) di


cui il primo alfabetico, il secondo e il terzo alfabetico o numerico. Ad esempio:

AWE, Q12, HJJ, ABC

1 - Attenzione a non assegnare alle variabili alfanumeriche nomi riservati (o sinonimi),


cioè nomi già assegnati ad istruzioni HLPL o comunque già usati in programmi, macro
ecc.

2 - Le variabili ad accesso indiretto (alfanumeriche) non sono retentive e vengono


cancellate ad ogni inizio programma, spegnimento CNC o pressione del tasto
[RESET].

VARIABILI AD ACCESSO DIRETTO

Sono di due tipi:

a) Con indirizzo R, da R0 a R999 di tipo reale (floating max 1000)


b) Con indirizzo #..., dette anche variabili HLPL veloci

1 - Si consigliano gli utenti ad usare le variabili da R0 a R999 per i propri


programmi e/o macro parametriche.

2 - Le variabili di tipo #... sono riservate a costruttori di MU e sono di norma,


protette in scrittura.

Tutte le variabili descritte possono essere utilizzate per definire elementi del
programma, potranno quindi essere abbinate a:

. coordinate assi (X,Y,Z,B, ecc.)


. coordinate dei centri degli archi di cerchio (I,J,K)
. funzioni ausiliarie interne, esterne (G,M,S,T,F,D, ecc.)
. elementi geometri del linguaggio GEO+
. parametri di cicli fissi, macroistruzioni, ecc.

2 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Un semplice esempio di programmazione mediante variabili può essere:

%
N10 T<#32> S<#20> F=R12
N20 G00 X=R0 Y=R1 M13
N30 Z=R11
N40 G01 G41 X=R3 Y=R4
...
...

NOTA:

Nell’esempio ai vari indirizzi T,X,Y,S,F vengono associati i valori memorizzati nelle


variabili di tipo # o di tipo R. Ne consegue che assegnando alle variabili valori diversi si
ottiene una “famiglia” di programmi simili ma con coordinate di ciascun punto diverse.
Un’utilizzazione del LIP di questo tipo è detta: programmazione parametrica.

14.1.2 COSTANTI

Per costanti si intendono le “entità” numeriche direttamente associabili agli indirizzi


degli assi, delle F.A. ecc., con il loro segno.
La programmazione “convenzionale”, vista nei capitoli precedenti, era sempre redatta
mediante costanti, esempio:

...
...
N200 G01 X100 Y100 S800 M13 F200
N220 G02 X100 Y-100 I0 J0
...
...

A tutti gli indirizzi vengono associate direttamente quote e codici che, per l’appunto
sono costanti numeriche.

Nel HLPL le costanti numeriche assegnabili alle variabili possono essere:

. di tipo DECIMALE CON DECIMALI(cioè reale o floating), esempio:


1234.5678

. di tipo ESADECIMALE, in tal caso la costante deve essere

3 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

racchiusa tra apici, ad esempio:

‘89ABC’

Le costanti possono essere assegnate direttamente alle variabili oppure servire da


elementi di elaborazione tra costanti e variabili.

E’ reso possibile calcoli tra costanti direttamente durante il loro uso in abbinamento ad
indirizzi di programmazione, tali calcoli dovranno essere racchiusi tra parentesi acute,
ad esempio:

N... G03 !R5.4 I<-6.64 + 3.6*2+5.4> J33.77

Verrà calcolata la coordinata del centro “I” pari al risultato dei calcoli tra le costanti
racchiuse all’interno delle parentesi acute.

14.1.3 CARATTERI DI PUNTEGGIATURA

. (punto)

serve per separare la parte numerica intera da quella decimale.

; (punto e virgola)

Usato come carattere separatore in alcune istruzioni di HLPL “LOGICO”.

<...> (segno di minore e maggiore)

Usati con il significato, rispettivamente, di parentesi acute aperta e chiusa. Servono per
racchiudere una singola assegnazione di variabile oppure calcoli tra variabili. In
generale definiscono l’inizio e la fine di una espressione HLPL.

(..) (parentesi tonde)

Usate per racchiudere calcoli di funzioni o livelli di operazioni algebriche.

= (segno di uguale)

Usato per assegnare costanti, o risultato di calcoli, a variabili. Usato anche per associare
le variabili direttamente ad indirizzi del CNC.

4 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

“...” (apici)

per racchiudere costanti espresse in numerazione esadecimale.

14.1.4 CALCOLI NEL HLPL

Sono a disposizione del programmatore una serie di operatori Algebrici, Booleani,


Trigonometrici e Funzioni per eseguire calcoli tra variabili o variabili e costanti.

OPERATORI ALGEBRICI

Gli operatori algebrici disponibili sono:

+ addizione
- sottrazione
* moltiplicazione
/ divisione
^ elevazione a potenza
| resto della divisione
= assegnazione: cioè assegna alla variabile a sinistra del
segno “=“ il risultato dell’espressione alla destra del
segno “=“.

Il segno “ = “ ha il significato di assegnazione e non di uguaglianza algebrica, ad


esempio l’espressione:

R20 = R20 + 10

come uguaglianza non avrebbe alcun senso, mentre come assegnazione ha il significato
di assegnare alla variabile R20 il valore precedentemente assegnato più 10.

ESEMPI

. 1) N... R15 = 40 + 217.117

alla variabile R15 viene assegnato il risultato della somma (257.117)

. 2) N... <#11 = R15 -10> <#20 = #11*10 + #11/3>

5 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

alla variabile #11 viene assegnato il risultato pari a 247.117, alla variabile #20 viene
assegnato il risultato di:

#11*10 = 2471.17

#11/3 = 2471.17/3 = 823.7233333

quindi:

#20 = 2471.17 + 823.7233333 = 3294.893333

. 3) N... <#18=12> <ELV = #18^3>

Viene assegnato alla variabile ELV il risultato dell’elevazione a potenza di 3 (12 alla 3)
pari a 1728.

. 4.) N... <RST = 133|40>

Viene assegnato alla variabile intera RST il resto della divisionetra 133 e 40 pari a
133/40 = 3 resto 13; quindi RST = 13.

OPERATORI BOOLEANI

& AND

. 1) <#12=V!2036 & ‘10’>

scrive nella variabile #12 il contenuto del bit 4 della variabile di sistema a 8 bit V!2036

° OR inclusivo (ORI)

Gli operatori BOLEANI sono utili in applicazioni speciali e macroistruzioni che non
interessano gli utenti: programmatori ed operatori della M.U., per ulteriori
approfondimenti si rimanda il lettore al MANUALE D’APPLICAZIONE.

OPERATORI TRIGONOMETRICI E FUNZIONI

Formato:

6 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

<variabile = OPERATORE (argomento)>

OPERATORI:

SIN seno

COS coseno

TAN tangente

ATN arcotangente

SQR radice quadrata

ABS valore assoluto

INT arrotondamento alla parte intera

FIX troncamento parte intera

NOTE:

. 1 - L’argomento deve essere racchiuso tra parentesi tonde

. 2 - L’argomento delle funzioni SIN, COS, TAN è l’angolo espresso in gradi e parti
decimali.

. 3 - Il risultato è sempre una variabile reale (float)

ESEMPI:

.1) N..R112 = SIN(30)

Alla variabile R112 viene assegnato il SENO di 30° cioè R112 = 0,5.

.2) <QUI = SIN(45) * COS(35)>

Alla variabile QUI viene assegnato il prodotto del seno di 45° per il coseno di 35°,
quindi QUI = 0.5792279

7 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

.SQR Radice Quadrata

. 1) <R1 = 50> <R2 = 80> <IPT = SQR(R1**2+R2**2)>

Si è applicato il teorema di Pitagora, ottenendo dai 2 cateti R1 ed R2, l’ipotenusa


assegnata alla variabile IPT:

IPT = 94.33981

ABS Valore assoluto

.1) <R15 = -412.132> <R28 = ABS(R15)>

Alla variabile R288 viene assegnato il valore assoluto della variabile R15 cioè 412.13

INT Arrotondamento all’intero più prossimo

.1) <R12 = 412.824> <#14 = INT(R12)>

Alla variabile #14 viene assegnato il valore intero di 412.824 arrotondato per eccesso
quindi 413.

FIX Troncamento parte intera

.1) <R10 = 1234.99> <R90 = FIX(R10)>

Alla variabile R90 viene assegnato il valore intero di 1234.99 cioe’ 1234.

14.1.5 PRIORITA’ NELLA ESECUZIONE DEI CALCOLI

I calcoli tra variabili e/o costanti prevedono una priorità algebrica, tipica dei linguaggi
evoluti (FORTRAN, BASIC, PASCAL, C ecc.) del tipo:

. Priorità 1: ^ elevazione a potenza

. Priorità 2: */ moltiplicazione e divisione

. Priorità 3: | resto della divisione

. Priorità 4: + - somma e sottrazione

. Priorità 5: & AND

. Priorità 6: ° OR

8 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Per esempio: <ESE = 12 + 3*4^3>

in questa espressione viene per prima risolto l’elevazione a potenza 4^3, quindi il
risultato viene applicato per 3. Il risultato finale sommato a 12, per cui:

ESE = 204

L’ordine d’esecuzione può essere alterato con l’uso delle parentesi tonde. Per esempio,
modificando l’espressione precedente in:

<ESE = (12+3)*4^3>

si otterrebbe per primo lo svolgimento della somma tra parentesi, quindi il prodotto di
tale risultato con il risultato dell’elevazione a potenza. Ne consegue:

ESE = 15*64 = 960

14.1.6 ABBINAMENTO TRA VARIABILI HLPL ED INDIRIZZI


PROGRAMMABILI

Le quote assi (X,Y,Z ecc.)

Le coordinate dei centri (I,J,K)

La velocità mandrino S..

La velocità di avanzamento F..

L’indirizzo T.. (numero utensile)

Il correttore D..

L’indirizzo H..

La N.. numero d’operazione

Gli indirizzi: G.., M..

14.2 REGOLE D’USO DELLE VARIABILI

Le assegnazioni di variabili oppure il richiamo di una variabile all’interno di un Part-


program deve essere racchiuso tra parentesi acute <...>. Le parentesi acute possono
essere omesse solo in presenza di variabili reali di tipo R.. (DA R0 a R999) ma in tal
caso necessita il segno “=“ (vedi gli esempi 1,2,3).

9 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

. 1) In una stessa operazione possono essere contenute più assegnazioni o più


espressioni HLPL, sempre che vengano separate da parentesi acute:

N...<expr1><expr2><expr3>...

esempio:

N10 <#17 = R12+REZ+10> <#27 = R20+ZAP+2>

Si noti che nelle due espressioni sono presenti ben tre tipi di variabili reali (#,R..,
alfanumeriche) miscelate a costanti. E’ consentito il nesting di espressioni HLPL del
tipo:

<#..=#<#..> + #<#..>> o <R<R..>> ecc.

Vedi esempio 6 relativo all’indirizzamento indiretto.

. 2) Assegnazioni e calcoli tra variabili possono essere effettuate inoperazioni a se


costanti (blocchi virtuali) oppure insieme ad istruzioni di programmazione
convenzionale: movimenti assi, emissione di F.A., ecc., in tal caso le assegnazioni e/o
calcoli vengono eseguiti prima di qualsiasi altra istruzione, ad esempio:

N50 G01 X100 Y100 <#21 = SIN(R18)>

prima di effettuare il movimento assi viene assegnata la variabile #21.

. 3) Qualsiasi variabile può essere riassegnata durante l’esecuzione del programma, la


nuova assegnazione sostituisce la precedente.

. 4) Le assegnazioni (o calcoli) con variabili di tipo R... non necessitano di parentesi


acute, ma necessita il segno uguale “=“.

. 5) Le variabili possono essere assegnate anche contemporaneamente alla loro


utilizzazione in abbinamento ad un indirizzo programmabile.

Infatti all’indirizzo può essere abbinato:

a) un numero, esempio: X100 (tipico della programmazione convenzionale fatta fino


adesso)

b) un segno “=“ seguito da espressioni HLPL:

10 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

1) X = expr (vedi esempio 1,8,9,10)

2) X = <expr> (vedi esempio 2)

c) le sole parentesi acute “<“;”>“:

1) X <expr> (vedi esempi 5 e 7)

SINTASSI AMMESSE ED ESEMPI

1) N100 G01 X = R5 + 10 + #7 Y<TAP>

Viene eseguito il posizionamento in interpolazione lineare sulle coordinate X ed Y


corrispondenti rispettivamente al risultato dell’espressione dopo il segno “=“ e per la
coordinata Y al contenuto della variabile TAP.

2) N100 G01 X = R5 + 10 + #7 Y=<T00>

Sintassi analoga alla precedente

3) N100 G01 X = R5 = R10 + 17 Y100

Si ottiene il duplice effetto di assegnare alla variabile R5 il risultato della somma tra
variabile R10 e 17 e si effettua il posizionamento dell’asse X alla coordinata
corrispondente alla variabile R5 assegnata.

4) N100 <R5 = R3 + 7*#17 + ZAP> R9 = R2 + 5 Y10

Contemporanea assegnazione delle variabili R5 ed R9 e movimento asse Y. Da notare


che non vi sono parentesi acute nell’assegnazione di R9 in quanto non necessarie in
presenza di sole variabili tipo R..

5) N100 G01 X<VAI = #12 + #15> Y<VUI = #18 + #16>

Vengono contemporaneamente assegnate le variabili VAI e VUI e vengono mossi gli


assi X e Y sulle coordinate corrispondenti a tali variabili.

6) N100 <#17 = #<#12> + 10>

Caso di indirizzamento indiretto: si assegna alla variabile #17 il contenuto di una


variabile, a sua volta parametrata dalla variabile intera #12. Supponendo che #12 sia
uguale a 20, l’espressione corrisponde a:

11 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

<#17 = #20 + 10>

7) N100 G01 X<#41> Y<#28> <DLN:<#29>>

richiamo di variabili reali da utilizzare quali posizionamento d’assi.

8) N100 G01 X = #41 Y = #28 <DLN: = #29>

9) N100 G01 X = VAI Y = VUI <DLN: = SVR>

10)N100 G01 X = R10 Y = R11 <DLN: = R22>

tutte le sintassi analoghe all’esempio 7).

L’assegnazione di variabili contemporanea al richiamo di subroutines non è possibile in


presenza delle istruzioni HLPL <TRU:...> o <FLS:..>.

14.2.1 PROTEZIONE DELLE VARIABILI #

Le variabili HLPL veloci cioè con nome #n possono essere protette in scrittura
mediante l’istruzione:

<LCK: ON> inserisce la protezione sulle variabili HLPL:#..

<LCK: OFF> elimina la protezione sulle variabili HLPL: #

Il CNC all’accensione si predispone in <LCK:ON> cioè con la protezione inserita.

14.2.2 SINONIMI

Mediante l’istruzione logica <SYN:...> è possibile creare sinonimi di variabili LIP


veloci (#... o R...) aventi nomi di tre lettere (come le variabili ad eccesso indiretto).

Ciò è utile per agevolare l’utente nella programmazione delle macro di sistema
utilizzando quali variabili nomi più mnemonici.

12 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

L’assegnazione dei sinonimi previsti viene fatta in un apposito file (GENHLPL)


ricaricato del sistema ad ogni accensione (Bootstrap). I sinonimi caricati al Bootstrap
sono modali.

E’ possibile caricare sinonimi anche da programma mediante l’istruzione:

<SYN: variabile = #n; variabile = #n; ...=...>

in cui:

VARIABILE : variabile ad accesso indiretto (alfanumerica)

#n : variabile ad accesso diretto (veloce)

ad esempio:

N.. <SYN:COC = #81; RAC = #39>

la variabile reale COC diventa sinonimo della variabile reale veloce #81; la variabile
RAC diventa sinonimo della variabile intera veloce #39.

Dopo l’assegnazione dei sinonimi diventa indifferente l’uso di qualsiasi delle due
variabili tra loro associate. Qualsiasi operazione eseguita su una variabile ha effetto
anche sul suo sinonimo o vicevera.

Il numero massimo di sinonimi definibili è di 150. Esiste già un file di assegnazione dei
sinonimi che viene “rigenerato” ad ogni accensione del CNC. Tale file, di nome
GENHLPL (e per il costruttore è GENCOST), contiene la corrispondenza tra sinonimi
e varibili HLPL (veloci) utilizzate nelle macro (ad esempio cicli fissi). Alterare tale
corrispondenza può provocare il malfunzionamento delle macroistruzioni fornite con
risultati inattesi.

14.2.3 CANCELLAZIONE DELLE VARIABILI

Le variabili precedentemente assegnate vengono cancellate e sostituite da una


successiva riassegnazione, quindi di norma non è utile effettuare alcuna cancellazione.

Comunque sia possono essere cancellate mediante l’istruzione <DEL:...> di formato:

<DEL:R;#;#;#>

13 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

vengono cancellate le variabili reali di tipo R e #, naturalmente è sufficiente omettere il


tipo di variabile che non interessa cancellare.

Se si vogliono cancellare tutte le variabili memorizzate si può programmare più


semplicemente:

<DEL:>

1. Il modo più semplice per cancellare una variabile è quella di riassegnarla.

2. Prima di cancellare le variabili veloci di tipo # è necessario sproteggerle con


<LCK:OFF>

3. Le variabili di tipo alfanumerico triletterale (ABC; Q12 ecc.) vengono cancellate


automaticamente ad ogni inizio programma (%) o dalla pressione del tasto [RESET].

14.3 SALTI DI PROGRAMMA

I salti di programma possibili nel HLPL sono di tre tipi:

. 1 <JMP:...> saltare, è l’istruzione di salto “incondizionato”

. 2 <IFF <...>:...> dall’inglese IF (se) è l’istruzione di salto condizionato.

. 3 <TRU <...>:...> o <FLS <...>:...> sono istruzioni di salto condizionato che


verificano due possibili stati: aperto o chiuso di un contatto esterno.

14.3.1 SALTI INCONDIZIONATI

Formato:

n...<JMP:N<exp>>

L’istruzione JMP provoca il trasferimento dell’esecuzione del programma alla


operazione N programmata dopo l’istruzione JMP.

14 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N <exp>: anzichè una costante, dopo N può essere racchiusa tra parentesi acute
un’espressione HLPL tra variabili, il salto verrà eseguito alla N.. corrispondente al
risultato dell’espressione.

ESEMPIO:

%
N10

...

...

N50 <JMP:N250>

...

N250

Nella N50, per effetto dell’istruzione JMP, l’esecuzione del programma viene trasferita
all’operazione N250.

14.3.2 SALTI CONDIZIONATI

L’istruzione IFF è il mezzo per saltare ad altre parti di programma solo quando si
manifestano determinate condizioni. Il formato generale è:

N...<IFF<exp>: Na;Nb;Nc>
Na<exp>;Nb<exp>;Nc<exp>

in cui:

1.) <exp>
indica una variabile oppure una equazione tra variabili racchiuse tra parentesi acute.

2.) Na;Nb;Nc
rappresentano altrettante operazioni N... presenti nel programma con la seguente
prerogativa:

IFF (se) il risultato dell’espressione è negativo (<0), l’esecuzione del programma viene
trasferita alla operazione Na

15 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

IFF (se) il risultato dell’espressione è nullo (=0), l’esecuzione viene trasferita


all’operazione Nb.

IFF (se) il risultato dell’espressione è positivo (> 0), l’esecuzione del programma viene
trasferita alla operazione Nc.

3) N <exp>; N <exp>; N <exp>


del tutto analogo a quanto esposto in precedenza ma con la differenza che le istruzioni
N... possono essere seguite da espressioni tra variabili HLPL racchiuse in parentesi
acute, il salto verrà effettuato alla N... di numero pari al risultato dell’espressione HLPL
od al valore della variabile assegnata tra parentesi acute.

ESEMPI:

. 1) N100 <IFF <R10 - 100>:N50;N150;N200>


Se il risultato “R10-100” è negativo salto alla N50, se nullo salto alla N150, se positivo
salto alla N200.

. 2) N100 <IFF <R10 - 100>:N50;N50;N200>


Questa volta il salto alla N50 è effettuato sic con risultato di “R10-100” negativo o
uguale a zero.

. 3) n100 <IFF <R10 -100>:N<#12+20>;N<#20-11>;N<#90*2>>

Viene valutata l’espressione tra parentesi acute se il risultato è negativo il salto è


effettuato ad una N... pari al risultato della variabile #12+20, se il risultato è nullo il
salto è effettuato alla N... pari al risultato di #20-11, se il risultato è positivo il salto è
effettuato ad una N... pari al prodotto di #90*2.

. 4) PROGRAMMA:

%
N10 G16 XYZ+
N20 R10 = 0
N30 R10 = R10 + 1
N40 X... Y...
...
...
N200 <IFF<R10-10>:N30;N210;N210>
N210 G00 Z200

16 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N220 M02

COMMENTI:

La parte di programma contenuta tra l’operazione N30 e l’operazione N200 viene


eseguita 10 volte.
Nella N20 la variabile R10 viene messa a 0 ed incrementata ad uno nella N30.
Nella N200 viene confrontato il valore della variabile R10 con la costante 10 (che è per
l’appunto il numero di volte che il programma deve essere ripetuto).

1° passaggio: R10 = 1
R10-10 = -9 (negativo)
salto alla N30
La variabile R10 viene incrementata a 2

2° passaggio: R10 = 2
R10-10 = -8 (negativo)
salto alla N30, R10 viene incrementato a 3
e così via fino al 9° passaggio

...
...
10° passaggio: R10 = 10
R10-10 = 0 (nullo)
salto alla N210: disimpegno e quindi fine
programma.

Il caso positivo che provocherebbe comunque il salto alla N210 non viene raggiunto.

14.3.2.1 ESEMPIO DI APPLICAZIONE

Si supponga di dover lavorare l’arco di parabola, di Fig.14.1, di equazione:

y = 0.009*X2 + 0.001*X

17 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

nell’intorno compreso tra l’ascissa di coordinata X0 e l’ascissa di coordinata X100. Il


movimento dell’utensile lungo la traiettoria verrà approsimata in tratti di interpolazione
lineare di X = 1mm.
L’equazione sopra riportata può essere convertita in HLPL, assumendo, per esempio le
variabili R10 ed R11 rispettivamente corrispondenti:

R10 - X ed R11 - Y.

Ne consegue che l’operazione convertita in HLPL diventa:

PROGRAMMA:

%
N0 G16 XYZ+
N10 T1
N12 S... F..... M41
N15 X-10 Y -30 Z-5 M03
N20 G01 G42 X-10 Y0
N30 R10 = 0
N40 R11 = 0.009*R10*R10+0.001*R10
N50 G01 X = R10 Y = R11
N60 <IFF<R10 -100>:N70;N90;N90;>
N70 R10 = R10 +1
N80 <JMP:N40>
N9O G00 G40 X150 Y100
N100 Z200 M05
N110 M02

COMMENTI:

N000
N020: Inizio programma e posizionamento punto a punto rapido sul
punto di inizio della traiettoria
N040

18 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N080: La parte di programma contenuta tra la N40 e la N80 viene


eseguita 101 volte per effetto del confronto tra la
variabile R10 (che funziona sia da contatore, che da
coordinata dell’asse X) e la costante 100.

L’esempio rappresenta il caso di “IFF” utilizzato per eseguire LOOP di programma,


analogo ai cicli “FOR”...”NEXT” del BASIC.

- Il HLPL svolge il “ciclo” in modo “dinamico”, cioè non si arresta durante


l’esecuzione dei calcoli ma li esegue mentre l’utensile lavora il tratto di curva
precedentemente calcolato.

14.3.4 SALTI CONDIZIONATI DA SOLLECITAZIONE ESTERNA

Abbiamo discusso nel Parag.14.3.2 sui salti condizionati per effetto della valutazione
dell’espressione scritta tra parentesi acute. Espressione che poteva contenere sia calcoli
tra variabili
che una semplice variabile, quindi la decisione di saltare veniva presa in base a quanto
contenuto in variabili memorizzate nel CNC.

Attraverso le istruzioni TRU (da TRUE = VERO) o FLS (da FALSE = FALSO) è
possibile eseguire salti di programma valutando un evento all’esterno del CNC e più
esattamente su qualsiasi morsettiera di I/O.

I formati possibili sono i seguenti:

1) <TRU <exp>:Na; Nb; N...>


<TRU <numero>: N<exp1>; N<exp2>; N<exp3>>

dove:

TRU l’istruzione TRU può essere sostituita dal FLS. Con TRU viene valutato il
passaggio da 0 a 1 del bit in esame, con FLS viene valutato il passaggio da 1 a 0.

<exp> indica una variabile oppure una equazione o una costante che individua il bit
della morsettiera di I/O.

Na; Nb (o N<exp1>;N <exp2>)

19 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

rappresentano due operazioni N... del part-program che sono gli estremi del programma
in cui viene attivato il meccanismo di salto, cioè è durante l’esecuzione del
programma contenuto tra la Na e la Nb che il passaggio da 0 a 1 del bit valutato,
provoca il salto alla N...desiderata.

N...(o N<exp3>
Operazione del part-program a cui viene effettuato il salto.

.1) L’operazione contenente l’istruzione <TRU <...> ...> o <FLS <...> ...> attiva il
meccanismo di salto alla N... desiderata. Tale meccanismo è reso modale ed interviene
solo se durante l’esecuzione della porzione di programma interessato, il bit preso in
esame commuta da 0 a 1 (TRU) o da 1 a 0 (FLS).

.2) Una successiva istruzione <TRU...> o <FLS...> annulla la precedente istruzione e si


sostituisce al suo posto.

.3) Le istruzioni TRU (o FLS) sono utili per la gestione di tastatori ON-OFF (PROBE),
per la creazione di cicli speciali che coinvolgono apparecchiature o servomeccanismi
esterni..

DISATTIVAZIONE/ATTIVAZIONE DEL SALTO

Il meccanismo di salto attivato con l’istruzione TRU (oFLS), può essere disattivato con
l’istruzione:

<SPS:ON>

e viene riattivato con l’istruzione:

<SPS:OFF>

Ad esempio:
%
N10
N20<TRU<0R2>:N40; N200; N600>
...
N40
...
N60 <SPS:ON>

20 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

...
N150<SPS:OFF>
...
N200
...
N250 M02

COMMENTI:

N20: Attivazione del meccanismo di salto, valutando il bit 2 della morsettiera 0R


durante l’esecuzione del programma tra la N40 e la N200.

N60-N150:
Se la commutazione avvenisse durante l’esecuzione delle operazioni comprese tra N60
ed N150 il salto non verrebbe eseguito per effetto della istruzione <SPS:ON>.

14.4 SOTTOPROGRAMMI

Con HLPL la chiamata ad un sottoprogramma può avvenire mediante una F.A.


SUBROUTINE del tipo:

M...,S...,T...,D

per la chiamata rispettivamente dei sottoprogrammi di nome: MFUNC, SFUNC,


CTOOL e DFUNC come è già stato spiegato nel CAP.6.
Un sottoprogramma può essere inoltre richiamato mediante l’istruzione L seguita da un
numero di 6 cifre massimo o un nome di massimo otto caratteri alfanumerici, il
formato è quindi:

N... L numero (max 6 cifre)


o
N... L <nome max 8 caratteri>
ad esempio:

...
N80 L431286
...

oppure

21 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

...
N80 L<VAIVIA>
...

che provocano il trasferimento dell’esecuzione rispettivamente al sottoprogramma di


nome “431286” oppure al programma di nome “VAIVIA”.

.1) - Un sottoprogramma è un file Part-Program che inizia senza il carattere “%” e


finisce con l’istruzione <RET>, ritorno,(o M17)

.2) - il programma principale inizia con % e finisce con l’istruzione M02.

.3) - Le istruzioni <RET> o M17 devono essere programmate in un operazione a se


stante.

COMMENTI:

Le istruzioni L numero (o L <NOME>) e l’istruzione <RET> sono analoche alle


istruzioni BASIC: GOSUB e RETURN.

14.4.1 NESTING (annidamento) DI SOTTOPROGRAMMI

LIV1: Il programma principale può contenere più chiamate a sottoprogrammi


memorizzati in varie pagine di memoria e terminati con l’istruzione <RET>. Definiremo
questi programmi di “LIVELLO1”.

LIV2: Se all’interno di un sottoprogramma di “LIVELLO1” fosse presente la chiamata


ad un altro sottoprogramma quest’ultimo diventerebbe di “LIVELLO2”.

LIV3: Se all’interno di un sottoprogramma di LIVELLO2, fosse presente una chiamata


ad un ulteriore sottoprogramma, questo diventerebbe un sottoprogramma di
LIVELLO3... e così via fino all’eventuale sottoprogramma di decimo livello che è il
massimo consentito.

22 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

14.5 MACROISTRUZIONI G...

L’indirizzo G individua normalmente le funzioni ausiliarie interne da G00 a G999, le


funzioni che vanno da G00 a G79 sono le funzioni interne già trattate nei precedenti
capitoli. Inoltre sono state destinate numerose istruzioni G... definibili quali
macroistruzioni, in seguito le chiameremo più semplicemente MACRO.
Per macro intendiamo una serie di istruzioni G... destinate quali nome di
sottoprogramma e gestite quali file dal CNC. Come i sottoprogrammi di tipo L
<nome> o L numero iniziano senza carattere % e finiscono con l’istruzione <RET>
(o M17).

14.5.1 MACRO MODALI

Sono quelle istruzioni G... assegnate ad altrettanti file (sottoprogrammi) che vengono
scatenate sempre dopo il posizionamento assi sul punto programmato se il
posizionamento esiste. Se non viene effettuato alcun posizionamento assi la macro
attivata non viene eseguita; tali macro sono disponibili nelle seguenticlassi:

1) da G81 a G89 (cicli fissi) G80 = CANCELLA

Riservate ai cicli fissi, già illustrati nel CAP.10, L’ISTRUZIONE G80 è la funzione di
annullamento.

2) da G101 a G149 G100 = CANCELLA


3) da G151 a G199 G150 = CANCELLA
4) da G201 a G249 G200 = CANCELLA
5) da G251 a G299 G250 = CANCELLA

Sono cinque categorie di macro G... modali autoescludenti nell’ambito della stessa
categoria, per esempio: una G110 cancella una G107, una G187 cancella una G158 e
così via..
L’istruzione d’inizio categoria: G80, G100, G150, G200, G250 cancella la macro
modale appartenente alla stessa categoria, oppure lanciano una routine omonima se
presente in memoria. Tale struttura di macro, con i loro concatenamenti (vedi prossimo
paragrafo) è stata creata per poter sviluppare macro tecnologiche, impiantistiche, per la

23 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

gestione di tastatori (probe) ecc. Comunque anche l’utente esperto può definire macro
HLPL usufruendo della modalità caratteristica delle macro G101 + G299, in tal caso
utilizzare i 15 codici G.. da G251 a G265 (codici riservati all’utente) in modo da non
creare “pericolosi” conflitti con le altre macro in dotazione al sistema.

14.5.2 CONCATENAMENTO DI MACRO

In una stessa operazione N... possono essere programmate fino a 5 macro G...
appartenenti rispettivamente alle cinque categorie di MACRO descritte nel paragrafo
precedente, cioè una macro della classe G80, una della classe G100 e così via fino alla
classe G250.

Nell’esecuzione delle macro G... programmate nella stessa operazione N..., il CNC
mantiene le seguenti priorità:

. Priorità 1 - G250 + G299


. Priorità 2 - G200 + G249
. Priorità 3 - G150 + G199
. Priorità 4 - G100 + G149
. Priorità 5 - G80 + G89

14.5.3 MACRO AUTOCANCELLANTI

Generalmente richiamano subroutine implementate dal costruttore della M.U. La loro


esecuzione è posticipata ed avviene anche se nell’operazione N... di chiamata non vi
sono posizionamenti assi, sono attive solo nell’operazione N... nella quale vengono
programmate.

Classi disponibili:

da G300 a G599 (AUTOCANCELLANTI)

Funzioni ad uso interno. Per quelle attualmente implementate (vedi Par.4.4).

da G600 a G799 (AUTOCANCELLANTI)

24 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Richiamano subroutine sviluppate dal costruttore della M.U. Le macro “G600” già
implementate.

da G800 a G999 (AUTOCANCELLANTI)

Non richiamano subroutine e sono ad uso esclusivo. In genere servono per la presa di
ZERO degli assi.

Si invitano gli utenti ad impiegare le macro G... sviluppate e riportate nel CAP. 16,
mentre si pregano gli stessi a scrivere le proprie “macro” HLPL utilizzando o
sottoprogrammi di tipo “L<NOME>“ O “L numero” già descritti nel capitolo 14.4 e
ciò per non entrare in contrasto con le macro implementate alla data attuale o che
verranno implementate in future release di software.

14.6 ESEMPI DI PROGRAMMAZIONE

Nel presente paragrafo sono svolti a titolo di esempio, N.2 programmi: uno relativo alla
realizzazione mediante fresalesatura di cerchi esterni e l’altro alla fresatura di vasche
coniche raccordate da lavorare con fresa sagomata sferica.

ESEMPIO N.1 (Fig.14.2)

La macro realizzata consente la fresalesatura di cerchi esterni e viene applicata nel caso
particolare al pezzo di Fig.14.2 (realizzazione di N.2 cerchi).

Le variabili in gioco sono:

VARIABILI UTILIZZATE

DIA = diametro da fresalesare


XCE = ascissa del centro
YCE = ordinata del centro
ANG = angolo formato tra il centro e il punto di tangenza
XPT = ascissa del punto di tangenza
YPT = ordinata del punto di tangenza
RUT = raggio dell’utensile impiegato
VIN = verso di interpolazione:

25 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

VIN = -1 G02 e G41 su DIA


VIN = +1 G03 e G42 su DIA
XIN = ascissa del punto iniziale
YIN = ordinata del punto iniziale
XCA = ascissa del centro del cerchio di attacco
YCA = ordinata del centro del cerchio di attacco
ZAL = profondità Z in rapido
ZEN = profondità Z di entrata in lavoro
SME = sovrametallo presente sul pezzo

PROGRAMMA PRINCIPALE

%
N0G16 XYZ + (ES.FIG.14.2)
N10T3 M06 <DRA:0.5> F200 M42 (FRESA DIA 30)
N20 <DIA =90> <XCE =250> <YCE =180> <ANG= 0 > <RUT = 30/2>
<VIN = 1> <ZAL= 35> <ZEN = 0> <SME =2> S1200 M03
N30 L <CEST>
N40 <DRA:0>
N50 L <CEST>
N60 <DRA:0.5>
N70 <DIA = 120> <XCE = 600> <YCE = 320> <ANG= 90>
N80 L <CEST>
N90 <DRA:0>
N100 L<CEST>
N110 G00 Z200 M05
N120 M02

COMMENTI:

N0: Assegnazione del piano di contornatura ad XY e compensazione


utensile in Z +

N10: Cambio utensile

26 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N20: Assegnazione dei valori alle variabili caratteristiche della


macro.

N30: Chiamata della macro di contornatura CEST

N40
N50: Impostazione del sovrametallo di finitura e ripetizione
della macro.

N60: Sovrametallo per il secondo cilindro da fresalesare

N70: Impostazione dei soli parametri variati (coordinate del


centro e angolo di attacco)

N80: Esecuzione della macroistruzione

N90
N100:Impostazione <DRA:0> per finitura, ripetizione della macro,
quindi disimpegno e fine programma.

SUBROUTINE: CEST

N0 <XPT=XCE+DIA/2*COS(ANG)><YPT=YCE+(DIA/2+RUT)*SIN(ANG)>
<XIN=XCE+(DIA/2*RUT+SME+2)*COS(ANG)>
N1 <YIN=YCE+(DIA/2+RUT+SME+2)*SIN(ANG)>

27 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N2 <XCA=(XPT+XIN)/2><YCA=(YPT+YIN)/2>
N3 G00 X<XIN> Y<YIN> M13
N4 Z<ZAL>
N5 G01 Z<ZEN>
N6 <IFF <VIN>:N7;N7;N9>
N7 L<VLG02>
N8 <JMP:N10>
N9 L<VLG03>
N10 G00 Z<ZAL>
N11 <RET>

COMMENTI:

N0
N2 Calcolo delle coordinate di PIN, PT e di CA e del raggio di
attacco
N3
N5 Posizionamento rapido su un punto iniziale e discesa in
profondità dell’utensile
N6 Test sul valore assegnato alla variabile VIN (verso di
interpolazione) con conseguente indirizzamento alla
subroutine:
VLG02: verso di lavorazione G02 (orario)
VLG03: verso di lavorazione G03 (antiorario)
N10 Disimpegno rapido dell’utensile
N11 Ritorno al programma principale

SUBROUTINE: VLG02

N0 G03 G42 I<XCA> J<YCA> X<XPT> Y<YPT>


N1 G02 I<XCE> J<YCE> X<XPT> Y<YPT>
N2 G13 I<XCA> J<YCA> X<XIN> Y<YIN>
N3 <RET>

SUBROUTINE: VLG03

N0 G02 G42 I<XCA> J<YCA> X<XPT> Y<YPT>


N1 G03 I<XCE> J<YCE> X<XPT> Y<YPT>
N2 G12 I<XCA> J<YCA> X<XIN> Y<YIN>

28 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N3 <RET>

ESEMPIO N.2 Fig.14.3

Viene realizzata una macroistruzione per la fresatura di “VASCHE CONICHE”


raccordate, da lavorare con fresa sagomata sferica. Facendo riferimento alla Fig.14.3 le
variabili utilizzate sono:

VARIABILI UTILIZZATE

XCE = ascissa del centro della figura


YCE = ordinata del centro della figura
LTA = lato A
LTB = lato B
RAC = raccordo R
LA1 = lato A’
LB1 = lato B’
HIG = altezza
CRM = cresta massima tra passate
RUT = raggio utensile impiegato
ANG = angolo di sformatura
ZIN = Z iniziale
ZFI = Z finale
XP1 = ascissa P1 e P4
YP1 = ordinata P1 e P2
XP3 = ascissa P2 e P3
YP3 = ordinata P3 e P4
PAS = passo
DZU = incremento di passata in Z
DRU = incremento radiale unitario
PRP = profondità di passata
DRI = sovrametallo totale
VR1 = variabile di appoggio
DRF = Sovrametallo <DRA> ultima passata
%
N0 G16XYZ+ (ESEMPIO FIG.14.3)
N10 T8 F250
N20 <XCE=100><YCE=90><LTA=180><LTB=120><RAC=30>
<LA1=160><LB1=100><HIG=60>S800
N30 <CRM=0.02><RUT=10>

29 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N40 L<VASCON>
N50 M05
N60 M02

COMMENTI:

N0 Assegnazione del piano di contornatura XY con compensazione


lunghezza utensile in Z+
N10 Cambio utensile
N20
N30 Assegnazioni di valori alle variabili caratteristiche della
macro
N40 Esecuzione della macro VASCON
N50
N60 Fine programma

SUBROUTINE: VASCON

N0 <ANG=ATN(((LTA-LA1)/2)/HIG)><ZIN=RUT*SIN(ANG)><ZFI=RUT-
HIG>
N1 <VR1=RUT*COS(ANG)><RAC=RAC-VR1><XP1=XCE-LTA/2>
<YP1=YCE+LBT/2-VR1>
N2 <XP2=XCE+LTA/2-VR1><YP3=YCE-LTA/2+VR1>
N3 <PAS=2*SQR(RUT**2-(RUT-CRM)**2)>
N4 <DZU=PAS*COS(ANG)><DRU=PAS*SIN(ANG)>
N5 <PRP=ZIN><DRI=0><DRF=ABS(ZFI-ZIN)*TAN(ANG)>
N6 G00X<XCE>Y<YCE<DRA:<DRI>>M13
N7 G01Z<PRP>
N8 G01G41X<XCE>Y>YP1>
N9 G01X<XP1>Y<YP1>
N10 X<XP1>Y<YP3>
N11 X<XP2>Y<YP3>
N12 X<XP2>Y<YP1>
N13 X<XCE>Y<YP1>
N14 G00G40X<XCE>Y<YCE>
N15 <IFF<ZFI-PRP>:N16;N20;N20>
N16 <PRP=PRP-DZU><DRI=DRI+DRU>
N17 <IFF<ZFI-PRP>:N6;N6;N18>

30 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N18 <PRP=ZFI><DRI=DRF>
N19 <JMP:N6>
N20 G00Z100<DRA:0>
N21 <RET>

COMMENTI:

N0 Calcolo angolo di sformatura ANG. Calcolo Z iniziale e Z


finale.
N1
N2 Calcolo dei vertici della cava P1-P4 depurati della
componente raggio utensile.
N3 Calcolo del passo in funzione della crsta e del raggio
utensile.
N4 Calcolo degli incrementi di passata in profondità e radiale.
N5 Assegnazione incrementi di partenza e calcolo punto di
attacco.
N6
N14 Contornatura della prima passata.
N15
N16 Test sulla profondità di passata raggiunta rispetto alla
totale e relativo incremento se la quota non è stata
raggiunta.
N17
N18 Secondo test sulla profondità di passata dopo l’incremento
con assegnazione dei valori finali alla profondità e al DRA
se questi venissero superati.

ESEMPIO N.3 Fig.14.4

LAVORAZIONE DI UNA ELLISSE

%
N10 G16XYZ+ [LOOP PER LA ESECUZIONE DI UNA ECLISSE]

31 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N20 [R1=SEMIASSE MAGGIORE R2=SEMIASSE MINORE]


N30 [R3=ANGOLO INIZIALE R4=ANGOLO FINALE]
N40 [R5=INCREMENTO ANGOLARE]
N50 R1=230 R2=160 R3=0 R4=360 R5=2
N55 S600 M42
N60 X0 Y0 M03
N70 Z-10
N80 R8=R1*COS(R3) R9=R2*SIN(R3)
N90 G01 G41 X=R8 Y=R9
N100 R3= R3+R5
N110 <IFF<R4-R3>:N120;N80;N80>
N120 G40 G00 X0 Y0 Z100 M05
N130 M02

ESEMPIO N.4 (Fig.14.5)

LAVORAZIONE DI UNA SFERA

%
N10 G16XYZ+ [LOOP PER ESECUZIONE SFERA]
N20 T1
N30 [R1=RAGGIO SFERA R2=ANGOLO INIZIALE]
N40 [R3=ANGOLO FINALE R4=INCREMENTO ANGOLARE]
N50 R1= 100 R2=0 R3=60 R4=3
N55 S800 M42
N60 X0 Y0 Z0 M03
N70 R7=R1*COS(R2) R8=-R1*SIN (R2) [CALCOLO COORDINATE X Z]
N80 G01 X=R7 Y0 Z=R8
N90 G3 I0 J0 X= R7 Y0
N100 R2=R2+R4
N110 <IFF<R3-R2>:N120;N70;N70>
N120 G00 X0 Y0 Z100 M05
N130 M02

32 Capitolo 14
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 15

MATRICI E LOOP DI PROGRAMMA

In questo capitolo viene trattata la possibilità di costruire matrici di trasformazione da


applicare ad una figura (o macro) programmata: per traslarla, ruotarla, rototraslarla,
ridurla in scala ecc., anche in abbinamento a istruzioni di ripetizione (<RPT:..>). Nei
paragrafi 15.1 e 15.2 viene fatta una trattazione generale di matrice di trasformazione
vista sopratutto nel suo significato matematico. Nei successivi verranno spiegate le
norme di programmazione e la sintassi.

15.1 MATRICI DI TRASFORMAZIONE

Una matrice di trasformazione si presenta come un insieme di numeri (coefficienti della


matrice) disposto in un reticolo di tre righe, ciascuna formata da quattro coefficienti.
Una matrice può essere sempre rappresentata da tre equazioni nella forma:

Xb = a11*XI + a12*YI + a13*ZI + a14


Yb = a21*XI + a22*YI + a23*ZI + a24
Zb = a31*XI + a32*YI + a33*ZI + a34

dove:

a11...a34 rappresentano i 12 coefficienti della matrice che per comodità sono stati
indicati con il doppio indice: a11..., a22..., a34. La notazione con il doppio indice è
comoda in quanto il primo numero rappresenta la disposizione su riga orizzontale, il
secondo la colonna, ad esempio: a32 significa coefficiente della terza riga; seconda
colonna.

1 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

XI, YI, ZI rappresentano le coordinate di un punto da trasformare, cioè quelle


presenti nel part-program e che il programmatore desidera traslare, ruotare e così via.
Sono le coordinate di un sistema detto locale.

Xb, Yb, Zb rappresentano le coordinate del punto trasformate dalla matrice, cioè il
risultato della trasformazione.

La matrice di trasformazione, come vedremo in seguito, viene rappresentata


programmando soltanto i suoi 12 coefficienti:

a11 a12 a13 a14


a21 a22 a23 a24
a31 a32 a33 a34

I coefficienti della prima riga a11,..., a14 provocano la trasformazione della coordinata
X, oppure la trasformazione del primo asse abbinato all’istruzione <MTX: ...> (vedi
Parag.15.3); i coefficienti della seconda riga a21,...,a24 provocano la trasformazione
della coordinata Y oppure del secondo asse abbinato alla istruzione <MTX: ...>; i
coefficienti della terza riga a31,..., a34 provocano la trasformazione della coordinata Z
oppure del terzo asse abbinato all’istruzione <MTX: ...>.

15.2 ESEMPI DI MATRICI

Qui di seguito riportiamo, a titolo d’esempio, alcune matrici d’uso più generale tenendo
presente che la struttura generale della matematica delle matrici, permette di gestire
qualsiasi trasformazione di un punto nel piano e nello spazio.

15.2.1 TRASLAZIONE

La figura 15.1 rappresenta il pezzo “A” che si vuole traslare di una quantità X, Y, Z,
lungo gli assi rispettivi, in modo da ottenere la figura “B”, la matrice di trasformazione
relativa diventa:

Supponendo che un punto P appartenente a pezzo A, sia a coordinate assolute:

X120
Y230
Z50

2 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

applicando una traslazione assi pari a:

X = 230
Y = 150
Z = 80

la relativa matrice diventa:

1 0 0 230
0 1 0 150
0 0 1 80

che provoca la trasformazione delle coordinate del punto P nelle coordinate di P’ tali
che:

Xp’ = 1*(120) +0*(230) +0*(50) +230 = 350


Yp’ = 0*(120) +1*(230) +0*(50) +150 = 380
Zp’ = 0*(230) +0*(230) +1*(50) + 80 = 130

15.2.2 ROTAZIONE ATTORNO ALL’ORIGINE

La matrice di trasformazione relativa è:

COSa -SINa 0 0
SINa COSa 0 0
0 0 1 0

Se ad esempio (vedi Fig.15.2) il punto P avesse coordinate: X150 Y235 e se lo si


volesse ruotare attorno all’origine di 38° in verso orario (a = -38°) la matrice di
rotazione diventa:

0,788 0,6157 0 0
-0,6157 0,788 0 0
0 0 1 0

3 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Per cui applicando tale trasformazione al punto P si otterrebbe un punto P’ di


coordinate:

Xp’ = 0.788*(150) + 0.6157*(235) = 261.8895


Yp’ = 0.6157*(150) + 0.788*(235) = 92.825

15.2.3 ROTAZIONE ATTORNO AD UN PUNTO

La matrice di trasformazione è:

COSa -SINa 0 Xc*(1-COSa) + Yc*SINa


SINa COSa 0 Yc*(1-COSa) - Xc*SINa
0 0 1 0

Se ad esempio (vedi Fig.15.3) il punto P avesse coordinate X120 Y160, le coordinate


del centro di rotazione Xc; Yc rispettivamente 90 e 50 e l’angolo di rotazione -33°, la
matrice di rotazione relativa diventa:

0.8387 0.5446 0 -12.712


-0.5446 0.8387 0 57.084
0 0 1 0

Per cui applicando tale trasformazione al punto P di Fig.15.3 si otterrebbe un punto P’


di coordinate:

Xp’ = 0.8387* (120) + 0.5446*(160) -12.712 = 175.068


Yp’ = -0.5446*(120) + 0.8387*(160) +57.084 = 125.924

4 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.2.4 ROTOTRASLAZIONE

Corrisponde ad una matrice che è la combinazione di una matrice di ROTAZIONE


(vedi paragrafo precedente) e di una matrice di TRASLAZIONE (vedi paragrafo
15.2.1).

La matrice di trasformazione relativa diventa:

COSa -SINa 0 X+Xc*(1-COSa) + Yc*SINa


SINa C0Sa 0 Y+Yc*(1-COSa) - Xc*SINa
0 0 1 0

Applicando la matrice di rototraslazione descritta si ottiene per prima cosa la rotazione


della figura. Alla figura così ruotata vengono applicate le entità di traslazione X, Y.

15.2.5 FATTORE DI SCALA

E’ possibile costruire una matrice di trasformazione che tenga conto del fattore di scala
“S”, la matrice relativa diventa:

S 0 0 0
0 S 0 0
0 0 S 0

Per S>1 il fattore di scala effettua ingrandimenti mentre con S<1 si effettuano riduzioni,
ad esempio vedi Fig.15.5

Supponiamo di voler applicare alla Fig.15.5 un fattore di scala S = 0,5, cioè un fattore
di scala che provochi una riduzione della
figura del 50% su tutti gli assi, la matrice relativa è:

0.5 0 0 0
0 0.5 0 0
0 0 0.5 0
Il risultato è la figura tratteggiata in Fig.15.5

5 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.2.6 IMMAGINE SPECULARE

La specularità è programmabile mediante l’istruzione logica: <MIR:...>, già illustrata


nel capitolo 12. La specularità su uno o più assi può essere ottenuta anche mediante
l’applicazione di una matrice:

a) SPECULARITA’ SULL’ASSE X

-1 0 0 0
0 1 0 0
0 0 1 0

b) SPECULARITA’ SULL’ASSE Y

1 0 0 0
0 -1 0 0
0 0 1 0

c) SPECULARITA’ SULL’ASSE Z

1 0 0 0
0 1 0 0
0 0 -1 0

La matrice a) avrà l’effetto di invertire di segno le quote X.


La matrice b) inverte di segno le quote Y.
Altrettanto fa la matrice c) sulle quote dell’asse Z.

15.3 PROGRAMMAZIONE DELLE MATRICI

La programmazione di matrici di trasformazione in un part-program prevede tre tipi di


istruzioni:

. -1) <MAT: nome; coefficienti matrice>


mediante la quale si assegnano una o più matrici con
rispettivi parametri.

. -2) <MTX: primo asse, secondo asse; terzo asse>

6 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

mediante la quale si indicano gli assi interessati alla


trasformazione.

. -3) <TCT: ON; nome>


mediante la quale si abilita la trasformazione e la si
disabilita (TCT:OFF>)

. -4) <MAT: OFF; nome>


mediante la quale si elimina la matrice precedentemente
definita.

La sintassi con cui si assegna una matrice ha il seguente formato:

<MAT: nome; a11; a12; ...; a21; ...; a31; ...a34>


<MAT: nome; < exp1>; < exp2>; ...;<epx12>>

in cui:

nome nome della matrice di massimo 6 caratteri alfanumerici

a11..a34 sono i numeri che rappresentano i 12 coefficienti delle matrici di


trasformazione come già ampiamente descritti nel paragrafo 15.1 Al posto della
costante numerica si
può programmare una variabile o una espressione tra variabili HLPL (exp1...exp12), ad
esempio:

....
N20 <MAT:TRASL;1;0;0;230;0;1;0;150;0;0;1;80>
....

Viene definita una matrice di traslazione che una volta abilitata effettua una traslazione
di X=230; Y=150 e Z=80.

1- Sono memorizzabili nel CNC fino a 5 matrici diverse a cui sono stati assegnati nomi
diversi (max 6 caratteri).

2- Ai coefficienti a11...a34 possono essere assegnate delle costanti oppure delle


variabili HLPL.

7 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

3- Le matrici memorizzate non hanno alcun effetto sul programma se non vengono
abilitate dall’istruzione <TCT: ON;nome matrice>

4- Le matrici permettono le trasformazioni di PUNTI sia nel piano che nello spazio,
mentre permettono la trasformazione di ARCHI DI CERCHIO solo su piani
ortogonali.

La sintassi con cui si elimina una matrice precedentemente definita, ha il seguente


formato (dalla release software V1.1xx compresa).

<MAT: OFF; nome>


<MAT: OFF; numero>
<MAT: OFF; <exp> >

in cui:

OFF “caratteri chiave” per l’eliminazione della matrice nome nome della matrice
da eliminare numero numero dell’ordine della matrice da eliminare. Il numero d’ordine
è assegnato dal CNC al momento della definizione della matrice stessa e va da 0 a 4.

<exp> Espressione HLPL comunque complessa che definisce il numero della matrice
da eliminare.

1 - Il CNC da allarme in uno dei seguenti casi:

A - La matrice, da eliminare, definita con “nome” oppure “numero” oppure <exp> non
esiste.
B - La matrice da eliminare è attiva

2 - Il CNC eliminando una matrice dalla sua memoria sposta di un posto indietro le
eventuali matrici definite dopo quella eliminata.

15.3.1 SPAZIO D’APPLICABILITA’ DELLA MATRICE

8 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Una volta definite e memorizzate una serie di matrici, è necessario indicare con apposita
istruzione quali sono gli assi CNC coinvolti nella trasformazione.
Tale istruzione definisce lo spazio di applicabilità, il cui formato è :

<MTX: sigla primo asse; sigla sec.do asse; sigla terzo asse>oppure <MTX: <exp>;
<exp>; <exp> > oppure
<MTX: numero; numero; numero>

dove:

primo asse rappresenta l’asse a cui vengono abbinati i coefficienti a11...a14 (vedi
par.15.1)

sec.do asse rappresenta l’asse a cui vengono abbinati i coefficienti a21...a24

terzo asse rappresenta l’asse a cui vengono abbinati i coefficienti a31...a34.

Al posto della sigla assi può essere programmata una espressione tra variabili oppure il
numero identificativo dell’asse (da 0 a 15).

ESEMPI:

. 1) N50 <MTX:X;Z;Y>

L’asse X subisce una trasformazione data dai coefficienti a11...a14.


L’asse Z subisce una trasformazione data dai coefficienti a21...a24.
L’asse Y subisce una trasformazione data dai coefficienti a31...a34.

. 2) N80 <MTX:U;V;W>
abbina la matrice di trasformazione agli assi U, V, W; per cui i primi quattro coefficienti
effettuano la trasformazione sull’asse U, i secondi 4 sull’asse V, ed i terzi quattro
sull’asse W.

9 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

1 - L’istruzione <MTX:...> è modale e viene sostituita solo da una successiva


programmazione della stessa istruzione.

2 - All’istruzione <MTX:...> debbono essere abbinati sempre 3 assi CNC appartenenti a


3 diverse direzioni.

3 - La matrice di trasformazione viene applicata solamente agli assi definiti nell’istruzione


<MTX:...>

15.3.2 ABILITAZIONE ALLA TRASFORMAZIONE

Per abilitare una matrice, preventivamente memorizzata con l’istruzione <MAT:...>,


viene utilizzata l’istruzione:

(M) <TCT: ON;nome matrice>

dove:

nome rappresenta il nome della matrice assegnato alla stessa con l’istruzione
<MAT:nome;..>

Per disabilitare la trasformazione è sufficiente programmare:

<TCT:OFF>

La parte di programma compreso tra l’istruzione <TCT: ON;nome> e l’istruzione


<TCT:OFF> subisce le trasformazioni previste dalla matrice preventivamente
memorizzata, ad esempio:

..
..
N50 <MAT:TRASL;1;0;0;120;0;1;0;50;0;0;1;-20>
N60 <MTX:U;V;Z>
N70 T12 M06
N80 U... V...
N90 Z...
..
..
N110 U... V...
N120 <TCT:ON;TRASL>
N130 U...V...Z...

10 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N140 U...V...
...
...
N190 U...V...
N200 <TCT:OFF>
....

COMMENTI:

N050 Viene memorizzata la matrice di traslazione di nome TRASL con i coefficienti di


traslazione pari a X = 120; Y = 50; Z = -20

N060 Abbina la matrice di traslazione agli assi U, V e Z.

N070
N110 La parte di programma tra N70 ed N110 viene eseguita senza effettuare alcuna
trasformazione.
La matrice di trasformazione è stata memorizzata ma non ancora abilitata.

N120 Abilitazione della matrice di traslazione

N130
N190 La parte di programma tra N130 ed N190 subisce le trasformazioni previste dalla
matrice TRASL. Gli assi U.., V... e Z.. vengono rispettivamente traslati da 120mm,
50mm e
-20mm rispettivamente rispetto a quanto programmato nelle operazioni comprese tra
N130 ed N190.

N200 Disabilitazione della matrice di trasformazione.

1 - Possono essere memorizzate con nomi diversi fino a 10 matrici di trasformazione, ma


è possibile abilitare solo una matrice alla volta mediante l’istruzione <TCT:ON;nome>.

2 - Una volta abilitata una matrice, la trasformazione rimane in atto fino a quando non
viene incontrata l’istruzione <TCT:OFF>.

15.3.3 UTILITA’ DELLE MATRICI

11 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Una matrice di trasformazione può venir utilizzata tutte le volte che, per semplicità di
programmazione, i dati vengono espressi in un sistema di coordinate di comodo (locali)
per poi venir trasformati nel sistema di coordinate reali (base) della macchina utensile.
Facciamo un esempio:

Nella figura 15.6.(a) è riportato il disegno di come si vuole realizzare un certo particolare
della M.U., opportunamente traslato e ruotato rispetto all’origine. Programmare
direttamente tale figura diventa complesso a causa dei calcoli da fare per programmare
tutti i punti costituenti il profilo del pezzo.
La soluzione è programmare la figura secondo un sistema di assi di comodo (locale) XI
ed YI, come riportato in figura 15.6b, ed applicare a tale figura una matrice di
ROTOTRASLAZIONE.

PROGRAMMA PRINCIPALE

%
N0 <MTX:X;Y;Z>
N10 T3 M06
N20 S500 F200 M42
N30 L <ROTRAS> <ANR = 35> <DTX = 215>
<DTY = 125> <XCE = 0> <%NRP = 1>
N40 G16 XYZ+
N50 X50 Y100 M13
N60 Z3
N70 G01 Z-20
N80 G41 X0 Y100
N90 X0 Y0
N100 X200
N110 G03 X200 Y100 I200 J50
N120 G01 X100
N130 Y200
N140 G03 X0 Y200 I50 J200
N150 G01 Y100
N160 G40 X50 Y100
N170 G00 Z100 M05
N180 <TCT:OFF>
N190 M02
COMMENTI:

12 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N020 Impostazione dei parametri di rototraslazione: angolo di rotazione (ANR) pari a


35 gradi in verso antiorario, coordinate di traslazione pari a 215, lungo l’asse X (DTX) e
125 mm lungo Y (DTY).

N030 Lancio della macro L <ROTRAS> che effettua ed abilita la trasformazione, la


macro potrebbe essere così fatta:

MACRO: ROTRAS

N000
N010 <#20 = SIN (ANR)> <#21 = COS (ANR)>
N020 <MAT:ROTRAS;<#21>;<-#20>;0;<DTX>;<#20>;<#21>;0;<DTY>;0;0;1;0>
N030 <MTX:X;Y;Z>
N040 <TCT:ON; ROTRAS>
N050 <RET>

COMMENTI ALLA MACRO:

N010 Calcolo del seno e coseno trigonometrici dell’angolo (ANR) di rotazione della
figura.

N020 Memorizzazione della macro di trasformazione che effettua la rotazione della


figura attorno all’origine degli assi locali (XI ed YI di Fig. 15.6b) e quindi la traslazione
dell’entità
memorizzata nelle variabili DTX e DTY.

N030 Definizione degli assi abilitati alla trasformazione, sono iclassici X, Y, Z.

N040 Abilitazione della matrice ROTRAS.

N050 Ritorno al Part-Program principale, cioè alla N40.

N040
N170 Programma di contornatura, le coordinate programmate lo sono rispetto agli assi
locali XI ed YI ed allineate rispetto a tali assi. La lavorazione realizzata è invece quella
mostrata in Fig. 15.6 a ruotata e traslata per effetto della matrice di trasformazione
ROTRAS abilitata.

N180 Disabilitazione della matrice di trasformazione.

13 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

- Le matrici di trasformazione sono particolarmente utili se utilizzate allo scopo di usare


coordinate semplificate in un sistema d’assi comodo, come nell’esempio testè proposto
oppure per ripetere figure mano mano traslate, ruotate e così via. Tali figure possono
essere raccolte in sottoprogrammi parametrici richiamabili con l’istruzione L<...>, oppure
ripetute all’interno del programma stesso utilizzando l’istruzione di ripetizione di parti di
programma <RPT:...>

- Allo scopo di rendere all’utilizzatore più agevole l’uso delle matrici, alcune matrici di
trasformazione, tra le più usate, sono state raccolte in sottoprogrammi e fornite in
dotazione. Il listato ed il nome di tali matrici viene fornito commentando nell’appendice
A.

15.4 RIPETIZIONI DI PARTI DI PROGRAMMA

Mediante l’istruzione <RPT:...> è consentita la ripetizione di una parte del programma


in corso, tale istruzione di LIP è particolarmente potente perchè semplifica in modo
rilevante molti programmi, infatti:

. a) consente la ripetizione automatica di un percorso di fresatura, per realizzare le varie


passate di sgrossatura, programmando solo quella di finitura.

. b) consente di riposizionare il mandrino della MU su fori distribuiti in modo casuale per


le varie fasi di lavorazioni eseguite con i cicli fissi G81 G89 ad esempio:

centrinatura, poi foratura, poi maschiatura, ecc.

. c) consente, mediante il richiamo di una matrice di trasformazione di ruotare, di traslare,


ecc. una parte di programma.

L’istruzione di ripetizione ha il seguente formato:

(A) <RPT: N..iniz.; N..fin.;nvolte>

in cui N...iniz ed N...fin rappresentano gli estremi del LOOP (anello) di ripetizione, più
precisamente:

N...iniz rappresenta l’operazione di inizio della ripetizione

N...fin rappresenta l’operazione finale della ripetizione.

14 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

nvolte è un numero intero che rappresenta il numero di volte si vuole ripetere la parte
di programma contenuta tra N..iniz ed N..fin, se non programmato viene assunto una
sola volta.

Ad esempio:

...
N50 <RPT:N10;N40;10>
..

significa ripetere le operazioni del programma dalla N10 alla N40 comprese per 10 volte.

L’istruzione logica <RPT:...> deve essere programmata in una operazione a se stante che
non contiene altre istruzioni.

ESEMPIO 1:

<RPT:...> utilizzata per ripetere profilo con sovrametallo diverso

%
N0G16XYZ+
N10T4M06<DRA:2>
N15S800F300
N20G00X...Y..M13
N30Z...
N40G01G41X...Y...
...
N150G00Z50
N160 <DRA:0>S900F150T8M06
N170 <RPT:N20;N150>
N180...
...
N250M02

COMMENTI:

15 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N020
N150 E’ contenuto in programma di contornatura eseguito lasciando un sovrametallo
rediale di 2 mm (<DRA:2>).

N160 Vengono programmati i nuovi parametri di taglio S... F... ed il sovrametallo viene
messo a 0 (<DRA:0>), viene cambiato l’utensile per la finitura (T8).

N170 Contiene l’istruzione “logica” <RPT:...> che ordina la ripetizione del programma
dalla N20 alla N150 con i parametri di taglio ed il sovrametallo nullo memorizzati nella
N160, diciamo che viene esaurita la passata di finitura.

Eseguita la N150 il CNC ignora la N160 e la N170 e riprende l’esecuzione del


programma dalla N180 in poi.

ESEMPIO 2:

<RPT:...> utilizzata per ripetere cicli fissi sullo stesso insieme di fori.

%
N0 G16XYZ+ <CFF= CFZ>
N10 T03 M06
N20 G81 <RAP = 2> <ENT = -4> <RAL = 2> S1200 M42 [centrinatura]
N30 X100 Y100 F180 M13
N40 X150
N50 X180 Y150
..
..
N190 X300 Y280
N200 G80 Z200 T3 M06
N205 S900 F120
N210 G83 <ENT = -90> <INI = 25> <IND = 5> <TIM = 0>
N220 <RPT: N30; N190>
N230 G80 Z200 T4 M06
N235 S300 F285
N240 G84 <RAP=5> <ENT= -20> [maschiatura]
N250 <RPT:N30;N190>
N260..

16 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

..
..

COMMENTI:

N020 Vengono memorizzati i parametri relativi al ciclo fisso di foratura G81


(ved.Cap.10)

N030
N190 Viene eseguito il ciclo fisso sui fori sparsi nel piano

N220 Ripetizione della parte di programma contenuto tra la N30 e la N190 con il ciclo
fisso di foratura profonda memorizzato nella N210.

N250 Ripetizione della parte di programma contenuta tra la N30 e la N190 con il ciclo
fisso di MASCHIATURA.

Se si ripete un programma con nuovi parametri (F.. S.. <DRA: ..>,<DLN:...> o ciclo
fisso diverso, bisogna fare attenzione che i vecchi parametri siano programmati in una
operazione esterna al LOOP. Se ad esempio, nel programma esempio 1, riportato
all’inizio di questo capitolo, si fossero programmate le istruzioni S... F... <DRA:2> nella
N20 anziche` nella N10 il programma era errato perche` nel LOOP (tra N...; N...)
l` istruzione <RPT:..> avrebbe incontrato i vecchi parametri ed il profilo del pezzo
sarebbe stato ripetuto con gli stessi sovrametalli e parametri di taglio con cui era gia`
stato lavorato.

ESEMPIO 3:

Fresatura di un profilo in piu` passate.

Nell` esempio 1 di questo paragrafo e` stato fatto un esempio che prevedeva una passata
di sgrossatura ed una di finitura su un profilo, quest` ultima realizzata con l` istruzione
<RPT:..>. Vediamo adesso come affrontare il problema della contornatura di un profilo
eseguita con piu` passate di fresatura.

%
N0G16XYZ+

17 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N10T4M06F300<SVR=40> <NPS=4> <INC=SVR/ITF(NPS)>


N15 <DRA:<SVR> >
N20 G00 X.. Y.. S800 M13
N30...
N40 G01 G41 X... Y..
N50...
...
...
N150 G00 Z50
N160 <SVR=SVR-INC>
N170 <RPT:N15;N160;<NPS> >
N180...
...

COMMENTI:

N10 Vengono assegnati alcuni parametri utili alla lavorazione nelle variabili:

<SVR> = sovrametallo

<NPS> = numero passate

<INC> = decremento del sovrametallo calcolato dividendo il sovrametallo SVR per il


numero di passate NPS, si noti che essendo stata usata una variabile intera per il numero
di passate <NPS>, la stessa deve essere convertita in reale mediante l` istruzione ITF per
poter essere utilizzata insieme alla reale SVR.

N15 Viene settato il sovrametallo pari a SVR (quindi pari a 40 mm)

N020
N150 Programma di contornatura, il profilo viene eseguito lasciando un sovrametallo di
40 mm.

N160 Viene decrementato il sovrametallo SVR di INC (SVR diventa 30mm)

N170 Con l` istruzione <RPT:N15;N160;<NPS> > si costruisce un ciclo ripetitivo (per 4


volte) per ciascuna ripetizione viene decrementato il sovrametallo fino ad ottenere la
passata di
finitura con SVR = 0, al posto della variabile intera NPS
si poteva programmare direttamente 4.

18 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Si ottiene un ciclo ripetitivo per la fresatura in piu` passate, nel caso specifico si
realizzano cinque passate totali, la prima con sovrametallo <DRA:40>, l` ultima con
<DRA:0> (finitura), con decremento di 10 mm per ciascuna passata.

Utilizzando l` istruzione <RPT:...> senza programmare il numero di volte era altresi`


possibile eseguire lostesso ciclo ma sarebbe stato necessario programmarla per il numero
di volte pari al numero di passate voluto, il programma poteva essere cosi` modificato:

%
N0..
N20 G00 X... Y...
N150...
N155 <DRA:30>
N156 <RPT: N20;N150>
N157 <DRA:20>
N158 <RPT:N20;N150>
N159 <DRA:10>
N160 <RPT:N20;N150>
N161 <DRA:0>
N165 <RPT:N20;N150>
N180...
...

COMMENTI:

Il ciclo <RPT:..> e` ripetuto per tante volte quante sono le passate volute, ciascuna volta
riassegnando il sovrametallo <DRA:...> decrementato.

19 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.5 REGOLE MINORI

. 1) LIVELLO DI NESTING

All` interno di un LOOP di ripetizione cioe` tra lN


a .. iniz. ed N... fin. dell` istruzione
<RPT:...> possono essere annidate altre istruzioni <RPT:...>, ad esempio:

%
N0..
N10
..
N80...
N90 <RPT:N10;N80>
N100...
N120 <RPTN10; N100>
N130...
N150 G54.03
N160 <RPT:N0;N130>
....

COMMENTI:

N090 Istruzione <RPT:...> di livello 1, tra la N10 e la N80 non vi sono altre istruzioni.

N120 Istruzione <RPT:...> di livello 2, tra la N10 e la N100 vi e` una istruzione


<RPT:...> di livello 1, quindi l` istruzione <RPT:...> della N120 diventa di secondo livello.

N160 Istruzione <RPT:...> di livello 3, in quanto all` interno e` gia` contenuta una
<RPT:...> di livello 2. In particolare la N160 ripete tutto il programma rispetto alle
origini assi n.3
(G54.03).

L’istruzione <RPT:...> puo’ essere programmata con un LIVELLO di NESTING


massimo 10.

.2.) CORRELAZIONE TRA <RPT:...> E SALTI DI PROGRAMMA

20 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

All’interno di un LOOP di <RPT:...> e’ possibile programmare istruzioni di salto


incondizionato <JMP:N...> o condizionato
<IFF<...>:...>, ma occorre tener presente che in tal caso il meccanismo di LOOP della
<RPT:...> viene disattivato.

Ad esempio:

%
N10..
N20..
N30 <IFF<#22>:N80;N80;N150>
N40..
..
N50
N60 <RPT:N10;N50>
N70...

COMMENTI:

N060 Ciclo di ripetizione tra gli estremi N10-N80. Nella N30 e’ incontrato unn test sulla
variabile #22, che comunque vada fa saltare il programma alla N080 oppure alla N150.
La <RPT:...> viene quindi eseguita solo tra N10 ed N20.

. 3.) USO DELL’ISTRUZIONE <RPT:...> per ripetere indefinitamente un


programma

Si puo’ ottenere tale scopo, corrispondente alla chiusura ad anello del programma,
usando il seguente artificio:

..
..
Nxx <RPT:No;Nxx>
..
..

Specificando una N...finale di numero pari alla N... dove e’ scritta l’istruzione <RPT:...>.

21 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Ad esempio:

%
N0 G16 XYZ+
N10 T1...
N20 X... Y..
...
...
N300 <RPT:N0;N300>
..

COMMENTI:

N300 Viene ripetuto il programma contenuto tra la N0 e la N300, la N300 contiene


l’istruzione <RPT:...> per cui il ciclo di ripetizione viene eseguito indefinitamente.

Lo stesso effetto poteva essere ottenuto programmando un salto incondizionato nella


N300:

N300 <JMP: N0>

.4.) Uso dell’istruzione <RPT:...> per ripetere una parte di programma traslato,
ruotato, ecc.

E’ possibile far cio’ abbinando alla istruzione di ripetizione una certa matrice di
trasformazione come e’ gia’ stato trattato all’inizio di questo capitolo> Nel paragrafo che
segue vengono trattate le matrici, prefabbricate in sottoprogrammi “pronti all’uso”
residenti nella memoria del CNC ed il loro uso in abbinamento all’istruzione <RPT:...>.

22 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.6 RIPETIZIONE CON TRASFORMAZIONE

Abbinando all’istruzione <RPT:...> una particolare matrice di trasformazione si ottiene


come risultato quello di ripetere una parte di programma con le trasformazioni volute:

. - TRASLAZIONE
. - ROTAZIONE
. - ROTOTRASLAZIONE
. - RAPPORTO DI SCALA
. - ecc..

Qui di seguito riportiamo le norme di programmazione relative alle matrici di


trasformazione raccolte in sottoprogrammi di tipo L < nome > (vedi appendice A). Le
variabili abbinate a tali sottoprogrammi sono:

<DTX> Traslazione lungo l’asse che appare per primo nell’istruzione <MTX:...> che
definisce lo “spazio” di applicabilita’ della matrice. Piu’ frequentemente sara’ l’asse X,
ma
cio’ dipende dalla configurazione della M.U. e dalla scelta
effettuata dal programmatore.
Ad esempio se si programma <MTX:U;W;V>, <DTX> verrebbe applicato all’asse U,
<DTY> all’asse W e <DTZ> all’asse V.

<DTY> Traslazione lungo l’asse che appare per secondo nell’istruzione <MTX:...> .
Piu’ frequentemente sara’ l’asse Y, tuttavia valgono le considerazioni fatte per <DTX>.

<DTZ> Traslazione lungo l’asse che appare per terzo nell’istruzione <MTX:...>.

<XCE> Coordinata assoluta del centro di rotazione lungo l’asse che appare per primo
nell’istruzione <MTX:...>

<YCE> Coordinata assoluta del centro di rotazione lungo l’asse che appare per
secondo nell’istruzione <MTX:..>

<ANR> Angolo di rotazione espresso in gradi e parti decimali (+359.999 gradi) tra la
figura originale che si ripetere (e’ un angolo incrementale)

+ = ANTIORARIO
- = ORARIO

23 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

<SCA> Rapporto di scala, deve essere programmato sempre positivo

<%NRP> Numero di ripetizioni che si vogliono effettuare

<%CON> Contatore del numero di ripetizioni

I listati dei sottoprogrammi contenenti le matrici di traslazione rotazione, ecc., sono


raccolti nell’APPENDICE A.

1) Alla variabile <NPR=...> deve essere assegnato 1 nel caso di una singola ripetizione.

2) Il contatore del numero di ripetizioni <%CON =..> deve essere settato a 1: <%CON
= 1> in una riga di programma esterna la LOOP di ripetizione nel caso di traslazioni
e/o rotazioni multiple e ripristinato a 1 al termine della ripetizione.

3) Disabilitare la matrice di trasformazione mediante l’istruzione


<TCT:OFF> una volta usciti dal LOOP e subito dopo la riga contenente l’istruzione
<RPT:...>.

15.6.1 RIPETIZIONE CON TRASLAZIONE SEMPLICE


SOTTOPROGRAMMA:
< TRANS >

%
N0 <MTX:X;Y;Z>
N10...
..
N100..
N110 L <TRANS> <DTX = ...> <DTY=...> <DTZ = ...> <%NRP = 1>
N120 <RPT:N10; N100>
N130 <TCT:OFF>

COMMENTI:

N000 Definizione dello spazio di applicazione della matrice

N110 Lancio sottoprogramma di nome “TRANS” che genera ed abilita la matrice di


traslazione. Vengono assegnati i parametri di traslazione.

24 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N120 Ripetizione della parte di programma contenuta tra N10 ed N100 con i parametri di
traslazione programmati. Supponendo che tra N10 ed N100 fosse programmato il pezzo
A, viene ottenuto il pezzo B.

N130 Disabilitazione della matrice di trasformazione.

ATTENZIONE:

Non dimenticare di disabilitare una matrice di trasformazione, mediante l’istruzione


<TCT:OFF>, al momento che l’effetto di trasformazione non e’ piu’ voluto.

%
N0 <MTX:X;Y;Z>
N10 ...
..
N100..
N110 L <TRANS> <DTX =...> <DTY =...> <DTZ =...> <%NRP = 1>
N120 <RPT:N10;N100>
N130 <TCT:OFF>

COMMENTI:

N000 Definizione dello spazio di applicazione della matrice

N110 Lancio sottoprogramma di norme “TRANS” che genera ed abilita la matrice di


traslazione. Vengono assegnati i parametri di traslazione.

N120 Ripetizione della parte di programma contenuta tra N10 ed N100 con i parametri di
traslazione programmati> Supponendo che tra N10 ed N100 fosse programmato il pezzo
A, viene ottenuto il pezzo B.

N130 Disabilitazione della matrice di trasformazione

ATTENZIONE:

Non dimenticare di sdisabilitare una matrice di trasformazione, mediante l’istruzione


<TCT:OFF>, al momento che l’effetto di trasformazione non e’ piu’ evoluto.

25 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.6.2 RIPETIZIONE CON ROTAZIONE SEMPLICE SOTTOPROGRAMMA:


<ROT>

%
N000<MTX:X;Y;Z;>
N10..
...
N100..
N110 L <ROT> <XCE = 50> <YCE = -100> <ANR = -30> <%NRP=1>
N120 <RPT:N10;N100>
N130 <TCT:OFF>
...
..

COMMENTI:

N0 Spazio di applicabilita’ della matrice

N120 Viene ottenuta la figura B identica ad A ma ruotata dell’angolo ANR rispetto al


centro di rotazione di coordinate XCE, YCE. Se si desidera la rotazione attorno
all’origine e’ sufficiente assegnare <XCE=0> <YCE=0>

15.6.3 RIPETIZIONE CON ROTOTRASLAZIONE SOTTOPROGRAMMA:


<ROTRAS>

%
N0 <MTX: X,Y;Z >
N10 ..
...
N100..
N110 L <ROTRAS> <XCE =50> <YCE = -150> <ANR= - 45>
<DTX = 160> <DTY = 80> <%NRP = 1>

N120 <RPT:N10;N100>
N130 <TCT:OFF>
..

26 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

COMMENTI:

N0 Spazio di applicazione della matrice

N120 Si ottiene la rototraslazione della figura A, generando la figura B’. La matrice di


rototraslazione per prima effettua la rotazione della Fig.A ottenendo la figura B’ che
viene solo calcolata ma non eseguita, quindi la traslazione della ig. Fig.B’ per ottenere
alfine la Fig.B.

15.6.4 RIPETIZIONE CON TRASLAZIONE MULTIPLA


SOTTOPROGRAMMA:
<TRANS>

%
N0 <MTX:X;Y;Z> <%CON = 1>
N10..
...
N100..
N110 L <TRANS> <DTX = 180> <DTY = 120> <DTZ = 0> <%NRP = 3>
N120 <%CON=%CON+1>
N130 <RPT:N10;N120;<%NRP> >
N140 <TCT:OFF> <%CON=1>
..
..

DTX e DTY rappresentano la traslazione TOTALE, cioe’ quella tra pezzo originale e
l’ultimo pezzo da ripetere.

COMMENTI:

N000 Definizione dello spazio di abilitazione della matrice> Viene settata la variabile
<CON = 1 >; CON e’ il CONtatore delle ripetizioni fatte (quindi variabile intera)

27 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N110 Lancio del sottoprogramma TRANS che genera e abilita la matrice di traslazione,
da notare che viene assegnata la variabile numero ripetizioni <NRP =...>.

N120 Incremento del contatore CON

N130 Ripetizione della figura A per 3 volte, ciascuna volta la figura verra’ eseguita con
una traslazione sull’asse X di180/3 = 60 mm e sull’asse Y di 40mm.

15.6.5 RIPETIZIONE CON ROTAZIONE MULTIPLA, SOTTOPROGRAMMA:


<ROT>

%
N0 <MTX:X;Y;Z> <%CON = 1>
N10...
...
N100...
N110 L <ROT> <XCE = 50> <YCE = -120> <ANR= -120> <%NRP = 3>
N120 <%CON = %CON + 1>
N130 <RPT:N10;N120;<%NRP> >
N140 <TCT:OFF><%CON = 1 >
..
..

COMMENTI:

Esempio analogo al precedente, stavolta si ha la rotazione multipla. L’angolo da


programmare <ANR = ..> e’ l’angolo totale, cioe’ quello tra la figura originale e l’ultima
figura da ripetere.

28 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.6.6 APPLICAZIONE DI RAPPORTO DI SCALE


<SCALE>

%
N0 <MTX: X;Y;Z>
N10 L <SCALE> <SCA = O.8>
N20....
.....
.......
N100 ....
N110 ....
N130 < TCT:OFF>
.....
....

COMMENTI:

N10 Viene lanciato il sottoprogramma <SCALE> programmando un rapporto di scala


di 0.8. Tutte le quote degli assi X,Y,Z programmate successivamente verrannom
moltiplicate di un fattore di scala pari a 0.8, si ottiene quindi una riduzione delle quote
programmate pari al 20%.

N20
N120 Tutte le quote X e Y programmate tra l’operazione N20 e l’operazione N110
vengono ridotte di un fattore di scala 0.8 (Vedi fig.15.5)

N130 Disattivazione della matrice <SCALE>, da questo momento in le coordinate X e Y


programmate vengono eseguite senza alcuna riduzione.

Il fattore di scala agisce solo sulle quote programmate nel part-program, non agisce sul
raggio utensile e sulle origini.

29 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.7 ESEMPI DI PROGRAMMAZIONE

15.7.1 RUOTA DENTATA (Fig.15.12)

Si debba lavorare la ruota dentata di Fig. 15.12 partendo d una fusione in ghisa, col foro
centrale gia’ alesato. Occorre prima centrinare e poi forare tutti i fori O 18, nonche’
fresare e finire tutto il contorno.
Sia Z l’asse di profondita’, ed X,Y gli assi del piano di contornatura. L’origine dell’asse
Z coincide con la superficie di appoggio della ruota.

UTENSILI UTILIZZATI:

T1 = punta a centrinare
T2 = punta a forare
T3 = fresa O 20 utilizzata per fresare e finire il contorno dei denti.

Il programma e’ il seguente (Vedi Fig.15.12)

%
N0 <MTX:X;Y;Z> <CON=1> <CFF=CFZ>
N10 G16XYZ+
N20 T1
N25 S800 M03 M42 F600
N30 G81 <RAP = 50> <ENT = 40> <RAL = 50> T2
N40 L <FORFLA> X -125 Y150 I -75 J150 <AIN = 0> <NHL = 5>
N50 G80 Z75
N60 G81 L <FORFLA> X125 Y150 I75 J150 <AIN = 0> <NHL = 5>
N70 G80 Z75
N80 L <ROT> <XCE = 0> <YCE = 0> <ANR= -240> <NRP= 2>
N100 <CON=CON + 1>
N110 <RPT:N30;N100;<NRP>>
N120 <TCT:OFF>
N130 G80 Z200 T2 M06 <CON =1>
N140 G81 <ENT = 10> F400 T3 M03 S600
N150 <RPT:N40;N120>
N160 G80 Z200 T3 <DRA:0.5> <CON = 1>
N170 G00 X0 Y330 S900 M03 M42 Z5
N180 G01 G42 X16 Y330
N190 G02 X0 Y314 I0 J330

30 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N200 G03 I0 J0 Y313.952 X -5.48


N210 X -16.894 Y297.972 I0 J297.972
N220 G02 X -52.279 Y293.836 I-34828 J297.972
N230 G03 X -67.068 Y306.754 I -68.717 J289.94
N240 X -71.413 Y305.537 I0 J0
N250 L <ROT> <XCE = 0> <YCE = 0> <ANR = 346.667> <NRP = 26>
N270 <CON=CON + 1>
N280 <RPT:N200;N270;<NRP>>
N290 <TCT:OFF>
N300 GO2 X -14 Y330 I0 J330
N310 G01 G40 X0 Y330
N315 <DRA:0> <CON= 1>
N320 <RPT:N170; N310>
N325 G00 Z200 Y350 M05
N330 M02

COMMENTI:

N000
N010 Definizione dello spazio di applicabilita’ della matrice, definizione del piano di
contornatura, settaggio del contatore della ripetizione a 1 <CON = 1>

N030 Impostazione del ciclo fisso G81 per la centrinatura

N040 Macro di foratura flange <FORFLA>, Vedi Cap.17, vengono eseguiti i 5 fori a
sinistra in alto equamente distribuiti su un arco di 360’ percio’ e’ stato programmato
<AIN = 0>
sarebbe stato indifferente programmare <AIN = 360>.

N050 Disimpegno per eventuali scavalcamenti del mozzo centrale

N060 Foratura dei 5 fori a destra in alto della Fig.15.12 sempre mediante la macro
<FORFLA>

N080
N120 Ripetizione della parte di programma tra la N30 e la N70 con matrice di rotazione
per 2 volte intorno all’origine <XCE =0>
<YCE =0> in verso orario per un angolo <ANR = -240>, ruotando le figure in verso
orario per 2 volte di un angolo pari a 240’/2 ciascuna volta.

31 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N150 Ripetizione del programma per la lavorazione di foratura.

N170
N240 Lavorazione del primo dente della ruota lasciando un sovrametallo di 0.5mm
(<DRA:0.5>).

N250
N290 Ripetizione della lavorazione del primo dente con rotazione antioraria attorno
all’origine per 26 volte. L’angolo totaleprogrammato e’ <ANR = 346.667>, per cui il
LOOP di ripetizione verra’ eseguito 26 volte, ciascuna volta ruotando la figura di
346.667’/26.

N320 Ripetizione di tutto il programma contenuto tra la N170 e la N310 per la passata
di finitura con sovrametallo zero <DRA:0>

Ad ogni uscita dal LOOP e’ stato programmato <TCT:OFF> per disabilitare la matrice
di trasformazione e ripristinare il contatore del numero di ripetizioni a 1 <%CON = 1>.

15.7.2 FRESATURA INTERNO ESTERNO SCATOLA (Fig.15.13)

Si vuole lavorare il pezzo di Fig.15.13 partendo da un massello di alluminio spessore


30mm e lati 210*210 mm. Occorre scavare il massello per ricavare la scatola con lati
200*200 aventi spigoli raccordati e pareti laterali dello spessore di 2mm. Le passate
interne vengono eseguite a greca.

UTENSILE IMPIEGATO:

T1 = Fresa diametro 25

Il programma che segue vuole mettere in evidenza la semplicita’ di programmazione che


si ottiene con l’istruzione <RPT:..>, di ripetizione di parti di programma, abbinata alle
istruzioni <DRA:..> per il sovrametallo radiale e <DLN:...> per il sovrametallo in
profondita’.

32 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

%
N0 G16ZXY +
N10 T1 M42 <DRA:5> F800
N15 S800 M42
N20 G00 X -120 Z180 M03
N30 Y -32
N40 G01 G42 X - 100 Z180
N50 Z - 70
N60 G03 X -70 Z - 100 I -70 K -70
N70 G01 X80
N80 G03 X100 Z -80 I80 K - 80
N90 G01 Z50
N100 G03 X50 Z100 I50 K50
N110 G01 X -80
N120 G03 X -100 Z80 I -80 K80
N130 G02 I -140 K80 X -180 Z80
N135 G01 G40 X - 120 Z180 F2000
N140 <DRA:2> F800
N150 <RPT:N20; N135>
N160 <DRA:2> F800
N170 <RPT: N20; N135>
N180 <DRA:0> S1000 F500
N190 <RPT:N20; N135>
N200 G00 Y100 <DRA:3.5> F1200
N210 X -80 Z80
N220 G01 Y -5
N230 G01 G41 X -100 Z80
N240 <RPT:N50;N120>
N250 G01 G40 G64 X -80 Z80
N260 X -80 Z -82
N270 X -62
N280 Z80
N290 X -44
N295 Z -82
N300 X -26
N310 Z80
N320 X -8
N330 X -7 Z -82
N340 X10
N350 Z80
N360 X28

33 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

N370 Z-82
N380 X46
N390 Z80
N400 X64
N410 Z-82
N420 X82
N430 Z50
N440 <DLN: -5>
N450 <RPT: N210;N430>
N460 <DLN: - 10>
N470 <RPT: N210;N430>
N480 <DLN: -15> <DRA:2> F600
N490 <RPT: N210;N430>
N500 G00 Y100 M05
N510 M02

COMMENTI:

N020
N190 La prima passata lascia 5mm di sovrametallo sull’esterno (grazie al <DRA:5>
della N10). La N150 esegue una seconda passata con sovrametallo di 2mm (<dra:2>)
della N140. La N170 una terza passata con sovrametallo 0.5. Infine nella N190 viene
eseguita la finitura con <DRA:0> della N180.

N200
N500 Lavorazione interna della scatola. Il perimetro e’ lavorato utilizzando i punti
dell’esterno
(da N60 A N120). Si pone pero’ <DRA:3.5> in modo da lasciare 1.5mm di sovrametallo
rispetto alla parete interna finita. Si noti l’istruzione G64 programmata nella N250 per
evitare
arresti lungo lo sviluppo della greca. In particolare dalla N440 alla N500 si ripete tutto il
profilo e le passate a greca a profondita’ diverse per effetto delle istruzioni <DLN:..>
abbinate all’istruzione di ripetizione <RPT:...>.

34 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15.8 ROTAZIONE DI PIANI

Mediante le matrici di rotazione <ROTX>, <ROTY> e <ROTZ> e’ possibile ottenere la


trasformazione di una lavorazione effettuata
su un certo piano di contornatura su un altro piano di contornatura. Ad esempio (vedi
Fig.15.14) consideriamo la terna di assi:
Supponendo di avere un Part-Program programmato per il piano di contornatura X-Y
sara’ possibile trasformarlo nel piano Z-X utilizzando la matrice L <ROTX> oppure nel
piano Y-Z utilizzando la matrice L<ROTY>.

15.8.1 PROGRAMMAZIONE DELLA ROTAZIONE DI PIANI

I sottoprogrammi da richiamare per ottenere la rotazione di un piano sono:

a) ROTAZIONE ATTORNO ALL’ASSE X

Formato:

N..L<ROTX> <ANR=...>

dove

<ANR> angolo di rotazione attorno all’asse X oppure attorno al primo asse che appare
nell’istruzione <MTX:...>, positivo in verso antiorario o negativo in verso orario
osservando
la terna di Fig.15.14 dal lato X +.

L’angolo da programmare deve essere 90’ o multiplo di +90’ se la figura da trasformare


contiene istruzioni di contornatura lineare e circolare.

35 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

Qualunque angolo nel caso di punti, tale limitazione non esiste utilizzando le “matrici
dinamiche” descritte nel Cap.20.

Supponiamo di poter riprodurre il Part-Program di Fig. 11.12 (vedi Par.11.5),


programmando sul piano X-Y, trasformandolo sul piano Z-Y, sara’ sufficiente
aggiungere in testa al programma:

%
N0 <MTX:X;Y;Z>
N1 L <ROTX> <ANR= -90>
.
.
.[Il programma del Par.11.5]
.
.
N155 <TCT:OFF>
N160 M02

e variare la assegnazione del piano di lavoro da G16XYZ+ a G16ZXY+ e dell’asse


compensato in lunghezza.

Si ottiene la rotazione in verso orario (<ANR= -90> gradi) del piano X-Y sul piano X,Z,
l’effetto sul programma sara’ quello di lasciare le quote X intatte, le quote Y verranno
trasformate in Z e le quote Z in Y.
E’ neccessario modificare la assegnazione dell’asse compensato in lunghezza.

La matrice attivata da <ROTX> e’:

1 0 0 0
0 COSa -SINa 0
0 SINa COSa 0

b) ROTAZIONE ATTORNO ALL’ASSE Y

N..L <ROTY> <ANR=...>

dove

36 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

<ANR> angolo di rotazione attorno all’asse Y (oppure attorno all’asse che appare per
secondo nell’istruzione <MTX:....>. La terna di Fig.15.14 deve essere osservata dal lato
Y+.

La matrice di trasformazione attivata da <ROTY> e’:

COSa 0 SINa 0
0 1 0 0
-SINa 0 COSa 0

c) ROTAZIONE ATTORNO ALL’ASSE Z

N..L <ROTZ> <ANR= ...>

dove

<ANR> angolo di rotazione attorno all’asse Z (oppure attorno all’asse che appare per
terzo nell’istruzione <MTX .... >. La terna degli assi deve essere osservata dal alto Z+.

La matrice di trasformazione attivata da <ROTZ> e’:

COSa -SINa 0 0
SINa COSa 0 0
0 0 1 0

d) ROTAZIONE CONTEMPORANEA ATTORNO AGLI ASSI X; Y e Z

N..L <ROTXYZ> <ANR= ...> <AN2= ...> <AN3= .. >

dove

37 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

<ANR> angolo di rotazione attorno all’asse X (oppure attorno all’asse che appare per
primo nell’istruzione <MTX:...>. La terna degli assi deve essere osservata dal lato X+.

<AN2> angolo di rotazione attorno all’asse Y (oppure attorno all’asse che appare per
secondo nell’istruzione <MTX .... >.
La terna degli assi deve essere osservata dal lato Y+.

<AN3> angolo di rotazione attorno all’asse Z (oppure attorno all’asse che appare per
terzo nell’istruzione <MTX:....> La terna degli assi deve essere osservata dal lato Z+.

Dati a, B, e y rispettivamente gli angoli di rotazione attorno al primo, secondo e terzo


asse che appaiono nell’istruzione <MTX ... >, la matrice di trasformazione attivata da
<ROTXYZ> diventa:

COSy *COSB SINa *SINB*COSy -SINy *COSa COSy SINB*COSa+SINY SINa 0


SINy* COSB SINy *SINB*SINa +COSy COSa SINy *SINB*COSa
0
-SINB COSB*SINa COSB*COSa
0

38 Capitolo 15
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

CAPITOLO 16

ISTRUZIONI SPECIALI DI HLPL LOGICO

In questo capitolo vengono affrontate le istruzioni di LIP logico “speciali” il cui uso e’
riservato a programmatori particolarmente esperti ed applicazionisti. Per un uso
normale della M.U. e del linguaggio di programmazione, non sono necessarie.

16.1 L’ISTRUZIONE <MVM:...> da MOVEMENT (movimento) e’ utile per


muovere assi con sigle asse parametrale, normalmente il numero definitivo dell’asse
anziche’ la sua sigla.

Formato:

<MVM: sigla asse; quota>


numero; quota
<exp>; <exp>

in cui:

sigla asse
numero
<exp>

rappresentano la sigla dell’asse (X,Y,Z, ecc), oppure il numero abbinato all’asse nel
file di tarature (vedi cap.2.2) da 0 a 15, oppure una variabile HLPL (#...) o una
espressione tra variabili in cui viene assegnato il numero associato all’asse.

quota
<exp>

rappresentano la quota assoluta per il movimento dell’asse o un’espressione tra variabili


HLPL che dia come risultato la quota di movimento.

ESEMPI:

1 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

1) N...G00 <MVM:<#10>;<#100>> <MVM:<#11>;<#101>>

Supponendo che nella variabile %#10 sia caricato 3 e nella variabile #11 sia caricato 7,
sempre facendo riferimento alla tabella del paragrafo 2.2., si ottiene il movimento punto
a punto rapido (G00) degli assi U e B rispettivamente alle quote assolute caricate nelle
variabili #100 e #101.

2) N..G02 I <XCE> J <YCE> <MVM:<%20>;<#100>> <MVM:<#21>;<#101>>

Supponiamo che #20=3 e #21 = 4 sempre facendo riferimento alla tabella del paragrafo
2.2,
il risultato ottenuto dall’istruzione <MVM:...> diventa una interpolazione circolare
oraria sugli assi U (asse n.3) e V (asse n.4) alle coordinate del punto finale
corrispondenti alle variabili #100 e #101 e con le coordinate del centro I e J
corrispondenti alle variabili <XCE> ed <YCE>.

L’istruzione <MVM:...> e’ ampiamente utilizzata nelle macro (e sottoprogrammi) di


sistema, forniti da COGI (vedi capitolo 17), per poter programmare movimenti assi
senza conoscere le sigle associate agli stessi.

16.2 L’ISTRUZIONE <CEN:...>

L’istruzione <CEN:...> da CENtro, e’ complementare all’istruzione <MVM:..> in


quanto permette di definire in modo parametrico le sigle relative alle coordinate del
centro di un arco di cerchio.

Formato:

<CEN:sigla coord.centro; quota >


numero; quota
<exp>; <exp>

in cui:

sigla coordinata centro


numero

2 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

<exp> rappresentano la sigla delle coordinate del centro di un arco di cerchio, oppure
un numero (tra 1 e 3) abbinato alla direzione dell’asse a cui la coordinata del centro fa
riferimento oppure una variabile HLPL intera (#...):

1 - asse direzione 1
2 - asse direzione 2
3 - asse direzione 3

Direzione 1 corrisponde alla coordinata I..


Direzione 2 corrisponde alla coordinata J..
Direzione 3 corrisponde alla coordinata K..

quota
<exp> rappresentano la quota assoluta della coordinata del centro, oppure
un’espressione tra variabili HLPL che da’ come risultato la quota della coordinata del
centro.

ESEMPIO:

Riprendiamo l’esempio 2) del paragrafo precedente”

N..G02 <CEN:<#10>; <#50>> <CEN:<#11>; <#51> <MVM:<#20>; <#100>>


<MVM:<#21>; <#101>>

Supponendo che nella variabile #10 sia caricato 1 e che nella variabile #11 sia caricato
2, e che per il resto valga quanto e’ stato gia’ spiegato nel paragrafo precedente, si
ottiene un’interpolazione circolare oraria sulle coordinate del punto finale U e V
corrispondenti alle variabili #100 e #101 con le coordinate dei centri corrispondenti alle
direzioni assi 1 e 2 e di conseguenza corrispondenti alle sigle I e J.

3 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

16.3 PROGRAMMAZIONE FINESTRE VIDEO PERSONALIZZABILI

In questo paragrafo sono descritte le modalita’ di gestione da Part Program di:

. visualizzazioni su una finestra video composta di commenti seguiti dal contenuto


di una variabile (per un massimo di 16 variabili)

. attivazione di Data Entry che consentono di assegnare interattivamente il valore ad


una o piu’ variabili

Per ottenere le prestazioni sia OUTPUT SCREEN che di DATA ENTRY e’ necessario
attivare la finestra mediante una istruzione da Part Program. Tale istruzione fara’
riferimento ad un FILE DESCRITTORE presente in un ambiente DOS nel direttorio di
sistema. La sintassi di tali istruzioni e’ trattata nei paragrafi che seguono.

16.3.1 GESTIONE DI VISUALIZZAZIONI

Per ottenere la visualizzazione sullo schermo di un commento seguito dal valore


contenuto in una variabile occorre seguire la procedura seguente:

. programmare nel Part Program una di richiesta attivita’, dalla sintassi seguente:

....
N50 <WOU:NomeFile>
...

dove:

WOU: Parola chiave per iniziare l’attivita di Window Output

Nome File Nome del file ASCII descrittore della finestra di Output

4 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

16.3.2 GESTIONE DATA ENTRY

Da PartProgram e’ possibile la attivazione di due tipi di Data Entry in ognuno dei quali si
procede alla visualizzazione di una finestra video all’interno della quale vengono proposte

....
N50 <WIN:NomeFile>
...

WIN: Parola chiave per iniziare l’attivita di Window INput

Nome File Nome del file ASCII descrittore della finestra di Output

Un altro modo e’ il seguente:

...
N75 <ENQ:(MUOVO CONTROPUNTA ?);80>
...

Il CNC quando legge l’istruzione precedente mostra su display la frase fra parentesi, e
aspetta che si prema il tasto “S” per confermare o il tasto “N” per negare.
Viene assegnato in tal caso il valore 1 o 0 alla variabile specificata che nel caso
precedente e’ la #80.

5 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

6 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

7 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

8 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

9 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

10 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

11 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

12 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

13 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

14 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

15 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

16 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

17 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

18 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

19 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

20 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

21 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

22 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

23 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

24 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

25 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

26 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

27 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

28 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

29 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

30 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

31 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

32 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

33 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

34 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

35 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

36 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

37 Capitolo 16
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

ELENCO FUNZIONI SPECIALI G900.

G901 Salvataggio tabella utensili su disco


G902 Salvataggio tabella origini su disco
G903 Salavatggio parametri “R” 0-99
G904 Salvataggio parametri “#” 100-199
G905 Inizializza copiatore
G906 Chiude copiatore
G907 Start sequenza di copia
G908 Stop sequenza di copia
G909
G910
G911
G912
G913
G914
G915
G916
G917
G918
G919
G920
G921
G922
G923
G924
G925
G926
G927 P.. Apertura ciclo memorizzazione profilo. P.. Numero profilo da memorizzare.
G928 Chiusura ciclo memorizzazione profilo.
G929

Sono normalmente attivi nel CNC numero 1000 variabili “R” (R0-R999), e numero 200
variabili “#” (#0-#199).
Le variabili da #100 a #199 sono bloccate in scrittura, in quanto sono normalmente
riservate alla costruzione di macroistruzioni e cicli fissi standard.

1 Addendum
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

FUNZIONI ISO CNC 9732 PER TORNIO

G94 Modale, predispone il CNC ad interpretare gli avanzamenti F degli assi e la


velocita’ S del mandrino, rispettivamente in mm/min e giri/min, nel campo:

S0 – S32000 giri
F0 – F9999.999 mm/min

G95 Modale, predispone il CNC ad interpretare gli avanzamenti F degli assi in


mm/giro nel campo:

F0.01 – F99.99 mm/giro

La velocita’ del mandrino S, rimane in giri/minuto

G96 Modale, predispone il CNC a mantenere costante , in modo automatico, la


velocita’ di taglio dell’utensile e ad interpretare la funzione
F in mm/giro come avviene in G95.
La velocita’ di taglio va programmata con l’indirizzo S in metri/min nel campo:

S10 – S1999.9 metri/min

1 Tornio
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

G92S… Funzione di limitazione del numero di giri max del mandrino durante il
funzionamento in G96.
Il valore della S e’ il numero max di giri mandrino. Esempio:

G92S1500

Viene limitato il numero max di giri mandrino a 1500, durante una lavorazione in
G96, anche se il numero attualmente calcolato dal CN per mantenere la velocita’
di taglio costante, supera detto valore.

G33 Autocancellante, movimento di filettatura.


Il passo viene programmato con l’indirizzo P nel campo:

P0.01 – P1999.99

L’asse interessato al movimento di filettatura e’ quello programmato nella stessa


riga contenente la G33. Esempio:

G33P1.5Z200

In questo caso viene eseguito un movimento in filettatura con l’asse Z sino alla
quota di 200mm con passo di 1.5mm

G33P2X50

In questo caso l’asse che filetta e’ la X con passo di 2mm.

2 Tornio
9732CNC - Manuale di programmazione COGI Elettronica s.r.l.

G34, Autocancellante, funzione simile alla G33, con la differenza che il


movimento di filettatura inizia all’inizio del movimento del mandrino, senza
attendere il passaggio della marca di riferimento.
Questa funzione e’ utile per eseguire dei movimenti assi, esattamente sincronizzati
in spazio con il mandrino, il quale deve essere programmato con la funzione di
rotazione M03 o M04.

G882, Autocancellante, esegue il movimento assi in rapido e in modo svincolato,


cioe’ l’asse che ha uno spostamento piu’ breve arriva per primo sul punto
programmato. Esempio:

G0G882X20Z500

Gli assi partono insieme, in rapido ma anziche arrivare sul punto programmato in
modo contemporaneo, arriva prima la X e attende che si completi il movimento di
Z.

G950, Autocancellante, posiziona un asse tondo, tipicamente l’asse Q mandrino,


percorrendo la via piu’ breve. Esempio:

G950G0Q45

IL’asse Q raggiunge la quota 45gradi, percorrendo la via piu’ breve in senso


orario o antiorario.

3 Tornio

Potrebbero piacerti anche