Crazione di una macro miscellanea

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
riky56
Newbie
Newbie
Messaggi: 35
Iscritto il: giovedì 8 dicembre 2011, 15:40
Località: Verona

Crazione di una macro miscellanea

Messaggio da riky56 » mercoledì 7 novembre 2012, 18:03

Salve.... qualcuno saprebbe spiegarmi come si raggruppa una macro sotto un codice M?
Per esempio se volessi posizionarmi in un solito punto tralascindo origini e azzeramenti dovrei scrivere una cosa del tipo:
G53 X700 Y-300 Z0
E possibile ragruppare questa scritta per esempio sotto il codice ''M500''??

Grazie

Avatar utente
ultimo80
Member
Member
Messaggi: 400
Iscritto il: martedì 21 luglio 2009, 23:32
Località: Salerno

Re: Crazione di una macro miscellanea

Messaggio da ultimo80 » mercoledì 7 novembre 2012, 20:32

Penso di no....ma tutto può essere!
Le funzioni M (miscellanee) sono funzioni ausiliarie che vengono assegnate dal costruttore (non tutte, ma alcune lasciate vuote si) della macchina, ma hanno funzioni specifiche che non riguardano la programmazione...ma altre funzioni tipo: blocca/sblocca contropunta, avanti/indietro cannotto contropunta, apri/chiudi lunetta, on/off freno mandrino e via dicendo...
Al limite puoi assegnare un codice G....
Quello che puoi fare di sicuro invece, e' di creare un sottoprogramma contenente lo spostamento in G00 rispetto all'origine assoluta, e richiamare il sottoprogramma ogni qualvolta ti serve.

L100 (nome sottoprogramma)
T0 D0
G0 G53 X700 Z100 M9
M17

Nel programma principale richiami semplicemente "L100".
SALUTI

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

Re: Crazione di una macro miscellanea

Messaggio da badade » mercoledì 7 novembre 2012, 22:38

Dato che non viene specificato il tipo di controllo non è possibile esaudire completamente la tua richiesta poiché se la logica è pressoché uguale sulle diverse cnc non lo è la configurazione! Posso rispondere per il Fanuc ma anche qui abbiamo diversità !

Un programma macro può essere richiamato in differenti modi:
- codice G (richiamo macro),
- codice M (richiamo macro),
- codice M (richiamo sottoprogramma)
- codice T (richiamo sottoprogramma)

La differenza tra un richiamo macro e un richiamo di sottoprogramma consiste nel fatto che questo ultimo non accetta argomenti. Attenzione, non sto parlando di sottoprogrammi comuni ma di richiami tramite codici specifici (G, M, T)

Ecco alcuni esempi

G183 X Y Z F R Q richiamo macro con codice G, la funzione G183 accetta gli argomenti elencati
M192 T4 richiamo macro con codice M, la funzione M192 accetta l'argomento T
M06 richiamo sottoprogramma con codice M, la funzione M06 non accetta argomenti, altri codici dopo M06 verranno trattati come codici cnc e non come argomenti
T5 richiamo sottoprogramma con codice T, vale quanto detto per M06

Come scegliere il tipo di richiamo?
Dobbiamo passare argomenti? Si! Allora scegliamo il richiamo macro, perché altrimenti non potremmo passarli! Possiamo scegliere tra G o M
Non dobbiamo passare argomenti? Allora scegliamo il richiamo sottoprogramma! M o T? Siete liberi di scegliere ciò che volete (sempre che ne abbiate l'opportunità )
Nel tuo caso, il codice M500 non richiede argomenti, quindi dovrai usare un richiamo ad un sottoprogramma. Il richiamo di sottoprogramma tramite codice M viene definito assegnandolo al parametro corrispondente (6071->6079) al quale corrisponde il relativo programma (O9001->O9009). Facciamo un esempio: M06 associato al programma O9001; ciò significa che nel parametro 6071 c'è il valore 6 ed ogni volta che si scrive M06 (M6) il cnc eseguirà  il programma O9001.
Se decidi di usare il programma O9006, dovrai scrivere nel parametro 6076 il valore 500. Ogni volta che scrivi M500 verrà  eseguito il tuo programma O9006.
Anzitutto devi verificare che il codice che vuoi usare non sia occupato: eseguilo in MDI e se ricevi un allarme di codice illegale o simile, significa che il codice M500 non esiste, altrimenti devi cambiarlo (avere un elenco completo dei docici M sarebbe preferibile, ma purtroppo i costruttori non li rilasciano, anche se dovrebbero!). Poi devi verificare di avere un posto libero nei parametri o nei programmi relativi altrimenti non potrai usare questo tipo di richiamo. Devi stare molto attento a quello che scrivi nel sottoprogramma, non basta dare uno spostamento ed ottenere il risultato voluto! Devi valutare attentamente ogni prevedibile condizione, prima fra tutte l'interferenza con oggetti presenti sulla tavola il che dovrebbe farti pensare di introdurre come primo spostamento quello in Z e poi gli altri. Il comportamento delle nostre cnc non è uguale, i movimenti interpolati non sempre vengono eseguiti (in determinate condizioni sicuramente no) e questo potrebbe essere causa di urti. Hai una cnc 3 assi? Possiedi assi rotativi o basculanti? E' la tavola che si muove o la testa? Considera per bene le diverse condizioni di lavoro al fine di scrivere il codice più appropriato alla tua cnc!

riky56
Newbie
Newbie
Messaggi: 35
Iscritto il: giovedì 8 dicembre 2011, 15:40
Località: Verona

Re: Crazione di una macro miscellanea

Messaggio da riky56 » giovedì 8 novembre 2012, 19:51

grazie mille ragazzi per l'aiuto!!
Comunque scusate se non vi ho detto che il fanuc è il controllo che intendevo...

X badade
Da quel che ho capito posso crearmi al massimo altri 9 codici M se ho disponibili i parametri dal 6071 al 6079 oppure posso andare oltre?

E se volessi interagire con un codice M già  impostato?
Esempio:
Su di un tornio ho la funzione M51 di rotazione mandrino con le griffe aperte cho consente un miglior inserimento della barra durante la fase di cambio. Però questa funzione si potrebbe migliorare redendola simile a quella di un simens che compie 10 giri in m4 e 10 giri in m3 e magari dando qualche giro in più visto che questa funzione non corre a più di 30 giri...

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

Re: Crazione di una macro miscellanea

Messaggio da badade » giovedì 8 novembre 2012, 23:02

La corrispondenza tra codici M e funzioni della macchina è stabilita dal costruttore della macchina stessa. Tutte le operazioni specificate con icodici M, ad eccezione di M98, M99, M198, i codici M usati per il richiamo di sottoprogrammi e quelli usati per il richiamo di macro istruzioni vengono eseguiti dalla macchina: il codici M51 è quindi una implementazione del costruttore. Di solito questi programmi vengono protetti, non possono essere editati e quindi non modificabili (a ragione direi). Questo non significa che sono perfetti ma ad ogni modo il costruttore li ha implementati e quindi li protegge. In questo caso è meglio rivolgersi al costruttore, si dovrebbe ricevere la garanzia per lo meno di essere ascoltati. La possibilità  offerta dalle cnc in relazione ai codici M dipende dal modello. Generalmente sono più che sufficienti i programmi messi a disposizione dell'utente (O9001->O9009) ma esistono differenti possibilità . Se possiedi un Fanuc O, penso che tu non abbia molta possibilità  di allargare il numero di richiamo di sottoprogrammi con codicie M; mentre se parliamo di un Fanuc serie 31 o 32, è messa a disposizione una quantità  molto più elevata. Esiste la possibilità  di definire, mediante parametri, il numero desiderato di codici M che richiamano un sottoprogramma (10, 50, 100).
Comunque non voglio dilungarmi, preferisco riflettere su altri aspetti.
Capire se è possibile usare il richiamo con codice M è buona cosa, abusarne direi di no. Ultimo80, a ragione, ha detto che di solito questo tipo di richiamo viene usato dal costruttore al fine di realizzare determinate operazioni non gestite dal controllo: funzioni ausiliarie, appunto, di ausilio a compiti specifici! Il programmatore dovrebbe rivolgere il proprio sguardo alla programmazione (e alle forme indirette che lo aiutano in questo aspetto, per esempio il tuo M500) e non agli aspetti che riguardano la gestione macchina (è per questo che i costruttori proteggono le macro, non è buona cosa che un operatore modifichi questi programmi ma dovrebbero essere loro ad apportare le modifiche). Allora la domanda è: posso usare un richiamo con codice M? Si! Cosa posso eseguire? Quello che desideri! Solo non abusare di questa forma! Scrivendo M500 io potrei eseguire un cambio utensili, avviare il mandrino, posizionare l'utensile su un fascio laser, determinare la lunghezza, il raggio... ma potei fare qualsiasi cosa... per esempio eseguire un programma pre confezionato di contornatura...
Abusare, significa non discernere cio che è lecito dall'illecito soprattutto quando siamo liberi nelle scelte.
La ripetitività  è elevata? E' essenziale o utile? E' la strada più semplice per realizzare il mio scopo?
Allora esegui questa forma di richiamo altrimenti trova altre strade!
(Chiaro che non mi riferivo alla funzione M500, di cui approvo l'utilizzo ma semplicemente un richiamo generale all'uso ed abuso dei richiami macro)

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

Re: Crazione di una macro miscellanea

Messaggio da torn24 » venerdì 9 novembre 2012, 10:25

Do un mio parere personale :)
Premetto che non so creare una macro richiamabile con un codice G o M .
ma sinceramente ,trovo sia bello saperlo fare , per avere una preparazione più completa "magari per chi in un futuro vorrebbe lavorare con costruttori di macchine cnc", ma non è che ci sia una reale necessità  ,
Un normale sottoprogramma , o una "normale" macro possono assolvere il compito !
Poi se più persone usano la stessa macchina , o qualcuno di estraneo legge il programma capire a colpo d'occhio che si tratta di un
programma fatto su misura o fatto dal costruttore , è buona cosa , se leggo un codice iso G M vorrei che abbia una certa diffusione e non che esista solo su quella macchina :badgrin: :badgrin:
CIAO A TUTTI !

Rispondi

Torna a “Macchine utensili professionali CN/CNC”