Macro fanuc

Sezione dedicata esclusivamente a macchine professionali CNC quali Torni cnc, Fresatrici cnc, Brocciatrici cnc, Centri di lavoro cnc, ecc.
Subforum:
Programmazione CNC
Fanuc
Mitsubishi
Heidenhain
Siemens
Haas
Osai
Selca
Fidia
Fagor
WinMax
Mazatrol
Rispondi
marco975
Newbie
Newbie
Messaggi: 20
Iscritto il: sabato 16 febbraio 2013, 23:42
Località: latina

Macro fanuc

Messaggio da marco975 » mercoledì 20 marzo 2013, 21:31

Salve a tutti ormai sono diversi anni che lavoro con un cnc Fanuc,ora con l'ultimo della serie I,però dato che la programmazione mi è facilitata grazie al cad-cam,mi chiedevo,per effettuare modifiche a bordo macchina o per semplificare la programmazione,se è possibile effettuare la costruzione di un foro con operazione elicoidale,con compensazione (G41/G42),con l'utilizzo di una macro,tipo selca,senza dover copiare ed incrementare la profondità  di passata ad ogni giro.
Grazie a tutti.

badade
Junior
Junior
Messaggi: 166
Iscritto il: mercoledì 5 gennaio 2011, 11:45
Località: Varese

Re: Macro fanuc

Messaggio da badade » giovedì 21 marzo 2013, 0:17

La possibilità  di utilizzare una macro, qualunque essa sia, dipende dalla presenza della stessa in macchina. Se la tua cnc possiede la macro per effettuare una operazione elicoidale per una tasca circolare allora la puoi usare altrimenti devi scriverti del codice (o te la fai inserire dal costruttore o dalla Fanuc). Il Selca da questo punto di vista è differente dal Fanuc, l'uno presenta una grande quantità  di macro, l'altro il minimo indispensabile o quasi niente: sono filosofie diverse! (E' da notare che alcune cnc possiedono la ripetizione ciclica dell'interpolazione circolare, ma questa non è prevista per tutte le macchine. Quindi consideriamo il caso che la macro sia presente oppure no). Puoi scriverti il codice necessario per realizzare una macro oppure un programma parametrico.
Il concetto è la ripetizione e i modi per realizzarlo sono dfferenti! Vediamo il concetto logico che poi tu potrai variare secondo esigenza.
(Consideriamo il centro foro come origine di lavoro)

G41 X1 Y1
G03 X Y I J (R)
G91 G03 I Z (RIPETIZIONE ELICOIDALE)
G03 I
G90 G03 X Y I J (R)
G01 G40 X0 Y0

Queste poche righe esprimono in sintesi il funzionamento di un ipotetico programma parametrico o il corpo principale di un programma macro. Diamo una breve spiegazione!

-Ci troviamo al centro del foro (è solo una posizione di comodo ma non necessariamente si deve assumere questo punto)
-Eseguiamo un attacco lineare compensato (G41 X1 Y1) al punto X1 Y1. Questo punto deve appartenere ad una circonferenza che abbia un valore di diametro superiore al diametro fresa ed inferiore al diametro foro. La via di mezzo potrebbe essere un valore accettabile (frea D=28, foro D=50, per esempio un diametro 40). L'attacco al punto viene eseguito linearmente, quindi il punto deve trovarsi su una ipotetica retta: l'inclinazione della quale è a tua scelta.
-Procediamo con un attacco dolce (G03 X Y I J (R)) al punto della circonferenza foro prescelto (per esempio il punto a y0). Il raggio è naturalmente quello della circonferenza prescelta precedentemente!
-Possiamo quindi procedere all'interpolzaione elicoidale (G91 G03 I Z) che deve essere eseguita in G91 se si vuole ripeterla un certo numero di volte (il G03 I è sempre incrementale, mentre la discesa in Z non lo è se non viene specificata)
-Terminata l'interpolazione se è necessario eseguiamo una interpolazione circolare ( G03 I fondo)
-Quindi eseguiamo un allontanamento circolare ( G90 G03 X Y I J (R) sempre compensato)
-Ed infine possiamo togliere la compensazione raggio utensile per tornare ad un punto voluto (G01 G40 X0 Y0 )

Dirai: tutto qui? sono cose che già  conosco!
Appunto dico io, dato che le conosciamo possiamo applicare la parametrica per ottenere un controllo maggiore (che è ciò che cerchi mi sembra... programma parametrico o macro che sia)
Cercherò di essere concreto con un esempio nel quale non userò l'attacco dolce poiché generalmente in caso di foratura la partenza è situata in alto. Se fosse necessario introdurlo, come nel caso di una gola, richiederebbe pochissimo tempo. Consideriamo il caso di un foro D=18, una fresa D=10 e vogliamo interpolare per un numero di volte pari a 20 con asportazioni di 0.5mm

T1M6
...
...
D1 (attivazione correttore)
G90 G0 Z1 (approssimazione in rapido)
G01 F200 Z0 (avvicinamento in lavoro)
#100=20 (numero di ripetizioni)
G91G41X9 (attacco lineare, il G91 viene introdotto dato che non è specificata la posizione del foro)
WHILE[#100NE0]DO1 (ciclo ripetitivo, fino a che #100 è differente da 0 quindi 20 volte)
G03I-9Z-0.5 (interpolazione elicoidale di raggio 9 e discesa in z di 0.5 )
#100=#100-1 (decremento contattore)
END1 (fine del ciclo da ripetere)
G03I-9 (se necessario, foro cieco, pulizia del piano)
G01G40X-9 (distacco)
G90G0Z.. (uscita)

A me sembra una ottima scelta per iniziare a scrivere un programma macro o solo per essere utilizzata come controllo in una interpolazione elicoidale. L'esempio mostrato considera valori costanti, ma introducendo delle valiabili al loro posto è semplice realizzare un programma universale. Il concetto è il seguente, poi si possono introdurre ogni sorta di modifiche o di controlli, variazione sul piano o in Z, attacchi lineari o circolari, fresature circolari o a spirale... il concetto non cambia!

Ecco un esempio di macro sulla quale potresti lavorare! Apporta tutte le modifiche che ritieni necessarie e poi avrai a disposizione una macro per eseguire l'interpolazione elicoidale, di semplice utilizzo e molto pratica (nell'esempio basta scrivere G260 Z R F Q I D)

:9016(INTERPOLAZIONE ELICOIDALE)
(G260 Z R F Q I D)
(Z #26 PROFONDITA)
(R #18 DISCESA RAPIDO)
(F #9 AVANZAMENTO)
(Q #17 PASSO)
(I #4 DIAMETRO FRESA)
(D #7 DIAMETRO FORO)
#1=#4001 (SALVA G0/G01)
#2=#4003 (SALVA G90/G91)
#3=#5003 (SALVA VALORE Z)
(N RIPETIZIONI)
IF[#18EQ0]GOTO10
IF[#18GT0]GOTO8
IF[#18LT0]THEN#26=#26-#18
GOTO10
N8#26=ABS[#26]+ABS[#18]
N10#6=ROUND[[ABS[#26]/#17]]
#4=#4/2(RAGGIO FRESA)
#7=#7/2(RAGGIO FORO)
#10052=#4(INSERISCI RAGGIO)
G90G0Z[#18+1](POSIZIONAMENTO RAPIDO)
G01F500Z#18(POSIZIONAMENTO LAVORO)
(CICLO INTERP.)
G91G41D52X#7F#9
WHILE[#6NE0]DO1
G03I-#7Z-#17
#6=#6-1
END1
G03I-#7
G01G40X-#7
(RIPRISTINA VECCHI VALORI)
G90G0Z#3
G#1G#2
M99

(leggi attentamente il programma prima di usarlo... per ogni dubbio siamo qui ad aiutarci)

marco975
Newbie
Newbie
Messaggi: 20
Iscritto il: sabato 16 febbraio 2013, 23:42
Località: latina

Re: Macro fanuc

Messaggio da marco975 » giovedì 21 marzo 2013, 19:21

Grazie mille badade,mi hai fornito molto materiale su cui incominciare a lavorare.
Grazie e a presto.
Ciao.

Avatar utente
Skyzzo
Junior
Junior
Messaggi: 120
Iscritto il: martedì 1 marzo 2011, 20:35
Località: Brescia

Re: Macro fanuc

Messaggio da Skyzzo » giovedì 21 marzo 2013, 19:39

Badade bel programmino,

Mi chiarisci perfavore questi passaggio che nn ho sottocchio il significato di ABS e ROUND
N8#26=ABS[#26]+ABS[#18]
N10#6=ROUND[[ABS[#26]/#17]]


Qua vai a inserire nella tabella utensili il raggio???
#10052=#4(INSERISCI RAGGIO)

Grazie

badade
Junior
Junior
Messaggi: 166
Iscritto il: mercoledì 5 gennaio 2011, 11:45
Località: Varese

Re: Macro fanuc

Messaggio da badade » giovedì 21 marzo 2013, 22:14

Ci mancherebbe Marco, auguri per gli sviluppi futuri.

Vorrei precisare che la macro in questione è una applicazione specifica per una determinata cnc. Non presenta particolari problemi ad essere eseguita su ogni serie ma deve essere attentamente valutata la scrittura. Se oggi dovessi riscrivere la macro, probabilmente adotterei una sintassi differente, ma questo non significa che il programma non rappresenti un buon inizio di studio, e con le dovute modifiche una applicazione semplice e pratica.

Le funzioni ABS e ROUND (o RO) rappresentano rispettivamente
ABS valore assoluto
RO arrotondamento

esempio

#1=ABS[#2], se #2=-2 allora #1=2
#1=RO[#2], se #2=1.342 allora #1=1.0

N8#26=ABS[#26]+ABS[#18] Questa riga va quindi letta in questo modo: alla #26 si assegna la somma dei valori assoluti delle variabili 26 e 18
N10#6=ROUND[[ABS[#26]/#17]] Questa riga si legge: alla #6 viene assegnato l'arrotondamento della divisione tra il valore assoluto di #26 e la #17

Queste funzioni (ripeto che oggi scriverei in modo differente), sono introdotte per due motivi: considerare il valore senza segno, che potrebbe portare a errori, e determinare un numero intero di iterazioni. Non possiamo scrivere per esempio #100=1,23 e usare questa variabile come contattore ipotizzando la ripetizione espletata da un numero intero. In quaesti casi sono due i cammini che possiamo intraprendere:
- #100=numero decimale con variazione decimale, facendo attenzione che la loro divisione dia come risultato un numero intero
esempio 1,234 e 0,1234
- #100=numero intero con variazione decimale o intera il cui rapporto dia un numero intero.

concretamente

#100=1,234
G91G41X9
WHILE[100NE0]DO1
G03I-9Z-0.5
...
...
#100=#100-1
END1

In questo caso il decremento della variabile 100 (1) e il suo valore non sono strettamente collegati (il loro rapporto non è un numero intero), quindi o questa è una scelta ben ponderata oppure il programma non funzionerà ! Si decide, per esempio di eseguire un certo numero di iterazioni che determinano un rapporto tra le variabili in modo tale da garantire il corretto funzionamento del programma (nello specifico si fa uso di ABS e RO). Deve essere chiaro che non è un errore usare variabili contattore con cifre decimali, ma questo deve essere ponderato molto attentamente. In generale per non incorrere in queste problematiche si preferisce usare numeri interi ed effettuare incrementi relativi al numero di ripetizioni.

#10052=#4(INSERISCI RAGGIO)
La macro in questione viene richiamata nel seguente modo G260 Z R F Q I D
La lettera I rappresenta il diametro fresa (I #4 DIAMETRO FRESA).
E' chiaro che possiamo usare questo aegomento laddove precisiamo di usare il raggio utensile.
Nel caso specifico, la cnc era impostata per utilizzare sempre il medesimo correttore raggio (52) per qualsiasi utensile usato.
Questo signica utilizzare una scrittura del genere per tutti gli utensili

TnM6(richiamo e prelievo di qualsiasi utensile)
....
...
D52(tutti gli utensili usano il correttore 52, la cnc in questione possedeva solo 20 utensili nel magazziono)
..
G41...

Le variabili di sistema relative al correttore raggio (la cnc era la serie 21 se ricordo bene) sono posizionate al numero di parametro 10000+n, dove n rappresenta il numero utensile. Quindi scrivere #10052=#4(INSERISCI RAGGIO) significa porre nel correttore numero 52 il valore del raggio fresa. Adesso possiamo usare il D52 ed essere sicuri di usare il valore corretto di correttore. Non esiste problema ad utilizzare il correttore corrispondente al numero utensile; questo richiede la lettura dell'utensile in macchina (#4120).
Quando mi riferivo alla corretta lettura del programma, il mio pensiero era indirizzato a questi aspetti!

Avatar utente
Skyzzo
Junior
Junior
Messaggi: 120
Iscritto il: martedì 1 marzo 2011, 20:35
Località: Brescia

Re: Macro fanuc

Messaggio da Skyzzo » giovedì 21 marzo 2013, 22:35

Grazie per i chiarimenti, sto costruendo in questo periodo nei ritagli di tempo una macro per costruire poligoni regolari selezionando solo il numero dei lati (es. 3-4-5-6-7-8-9-10 ), e penso che qualcosa possa venirmi utile.
E nel caso di qualche problema ho già  capito a chi posso rivolgermi.

badade
Junior
Junior
Messaggi: 166
Iscritto il: mercoledì 5 gennaio 2011, 11:45
Località: Varese

Re: Macro fanuc

Messaggio da badade » giovedì 21 marzo 2013, 22:58

Bene Skyzzo, lo fai per esigenza lavorativa oppure per interesse personale?

Avatar utente
Skyzzo
Junior
Junior
Messaggi: 120
Iscritto il: martedì 1 marzo 2011, 20:35
Località: Brescia

Re: Macro fanuc

Messaggio da Skyzzo » venerdì 22 marzo 2013, 20:08

La faccio perché dove lavoro ho la necessità  di installare la macro su macchine diverse con CN diversi, in modo tale che operatori a bordo macchina con disegno alla mano inserendo poche semplici informazioni senza dover calcolare nulla riescono a eseguire svariate figure in 10 sec. di programmazione .

Ovvio che tutto questo per me é libera espressione di fantasia e non nego che l'interesse che ho nel costruire macro sia poi del tutto personale.

badade
Junior
Junior
Messaggi: 166
Iscritto il: mercoledì 5 gennaio 2011, 11:45
Località: Varese

Re: Macro fanuc

Messaggio da badade » venerdì 22 marzo 2013, 21:46

Che coincidenza, proprio qualche giorno fa discutevo della realizzazione di figure geometriche regolari (nello specifico tasche) con un tipo che aveva la necessità  di realizzarle. Personalmente non ho mai avuto l'esigenza di simili lavorazioni ma è stato un bel discutere!
Trovare un modo semplice, sia nella chiamata macro che nella stesura del programma, ha richiesto un modesto impegno ma alla fine penso che Ramos (il tipo) sia rimasto soddisfatto... auguri!

Avatar utente
Skyzzo
Junior
Junior
Messaggi: 120
Iscritto il: martedì 1 marzo 2011, 20:35
Località: Brescia

Re: Macro fanuc

Messaggio da Skyzzo » venerdì 22 marzo 2013, 22:41

Quello che serve a me sono figure esterne, son già  a buon punto e spero di riuscire a ritagliarmi del tempo x finirla. Anche se farla 10 minuti alla volta e poi fermarsi per ore o giorni per fare altri non é semplice.

G200 R (C) E ( I o L ) Z K H V U W D S F

R raccordo
C smusso
E diametro esterno figura
I diametro interno figura
L lunghezza lato
Z punto iniziale asse Z
K profondità 
H numero lati
U sovrametallo diametrale per finitura
W sovrametallo fondo per finitura
D diametro fresa
S attiva sgrossatura
F attiva finitura
V velocità  avanzamento

torn24
God
God
Messaggi: 5077
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Macro fanuc

Messaggio da torn24 » sabato 23 marzo 2013, 9:41

Una macro con troppi parametri , non vorrei mai usarla :lol:
se ne potrebbero togliere qualcuno , non mettendo parametri che definiscono il sovrametallo di finitura , basta dare dimensioni più grandi .

Oltre che ha funzionare , deve essere pratica , immagina se per mandare una Mail dovresti compilare 12 campi diversi :badgrin:
CIAO A TUTTI !

Avatar utente
Skyzzo
Junior
Junior
Messaggi: 120
Iscritto il: martedì 1 marzo 2011, 20:35
Località: Brescia

Re: Macro fanuc

Messaggio da Skyzzo » sabato 23 marzo 2013, 13:12

A parte che se la stessa fresa la vuoi usare per finire e sgrossare il sovra metallo lo dovrai dichiarare,
Nn vedo quale informazione potrei omettere visto o nella macro o prima certe informazioni vanno messe.
Sono comunque aperto a consigli

torn24
God
God
Messaggi: 5077
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Macro fanuc

Messaggio da torn24 » sabato 23 marzo 2013, 14:46

Dipende cosa devi fare , e come è costituita la macro ,e cosa debba fare , ad esempio si potrebbe pensare a una macro che faccia due cose diverse , se dichiarato sgrossatura diverso da zero , procede in un modo , se dichiarato finitura diverso da zero procede in un altro .


non sono critiche , sono valutazioni personali , ad esempio nei cicli fissi si usano un massimo di 7 parametri , e sono gli stessi ritrovabili in molte funzioni , se i parametri sono particolari "usati in quel modo solo su una singola funzione " diviene piu' difficile ricordarseli , personalmente NON riuscirei a ricordare la funzione di 14 parametri , specie se non si usa tutti i giorni detta macro , e sarei costretto a leggere da qualche parte , quindi il tempo stimato di 10 secondi per la stesura di un programma è ottimistico , ma non è il modo in cui vorrei lavorare , detto per esperienza personale poiche ho lavorato su macchine con tutti programmi in parametrica o che richiamano programmi in parametrica , prima di capire cosa fa la macchina devi conoscerla a fondo , e una volta conosciuta a fondo ti chiedi perche mai devi lavorare in quel modo #-o :badgrin:

P.S. se invece è una sfida "intellettuale" ben venga ne troverai insegnamenti e soddisfazioni , ma è un po come la prima bomba atomica progettarla e vedere se realizzabile una sfida intellettuale , usarla una grande cazzata :mrgreen:
CIAO A TUTTI !

Avatar utente
Skyzzo
Junior
Junior
Messaggi: 120
Iscritto il: martedì 1 marzo 2011, 20:35
Località: Brescia

Re: Macro fanuc

Messaggio da Skyzzo » sabato 23 marzo 2013, 15:58

S e F attivano infatti se solo sgrossatura o finitura o entrambe attive,
Io penso che inserire 2 valori e ricevere non quote di costruzione ma addirittura il pezzo lavorato ci si possa perdere anche 2 minuti per rileggere un appunto nel caso nn si ricordino il significato degli indirizzi. Il resto delle info sono dati che anche se si programmasse punto punto il cn richiederebbe , vedi avanzamenti , profondità , ecc.
Pensare poi che tanti colleghi sul lavoro nn sanno neppure cosa voglia dire fresare in coordinate polari ( parlo si torni)penso sia per loro di gran aiuto quando si trovano a dover fare un banale esagono o quadro, smussato o raccordato come il cliente spesso chiede.
Sono comunque contento dello scambio di opinioni visto che è ancora in fase di costruzione causa troppi impegni(sommersi dal lavoro e benvenga), perché può portare a modificare magari certi particolari che magari a me possono sfuggire.

Avatar utente
Skyzzo
Junior
Junior
Messaggi: 120
Iscritto il: martedì 1 marzo 2011, 20:35
Località: Brescia

Re: Macro fanuc

Messaggio da Skyzzo » sabato 23 marzo 2013, 15:59

S e F attivano infatti se solo sgrossatura o finitura o entrambe attive,
Io penso che inserire 2 valori e ricevere non quote di costruzione ma addirittura il pezzo lavorato ci si possa perdere anche 2 minuti per rileggere un appunto nel caso nn si ricordino il significato degli indirizzi. Il resto delle info sono dati che anche se si programmasse punto punto il cn richiederebbe , vedi avanzamenti , profondità , ecc.
Pensare poi che tanti colleghi sul lavoro nn sanno neppure cosa voglia dire fresare in coordinate polari ( parlo si torni)penso sia per loro di gran aiuto quando si trovano a dover fare un banale esagono o quadro, smussato o raccordato come il cliente spesso chiede.
Sono comunque contento dello scambio di opinioni visto che è ancora in fase di costruzione causa troppi impegni(sommersi dal lavoro e benvenga), perché può portare a modificare magari certi particolari che magari a me possono sfuggire.

Rispondi

Torna a “Macchine utensili professionali CN/CNC”