Macro per foratura profonda

ISO Fanuc, ISO Mitsubishi, Mori Seiki, Fanuc Manual Guide, etc.
Rispondi
supergiu
Junior
Junior
Messaggi: 71
Iscritto il: giovedì 21 marzo 2013, 20:28
Località: Gradara (Pesaro)

Macro per foratura profonda

Messaggio da supergiu » martedì 31 marzo 2015, 20:19

Innanzitutto un saluto a tutti gli iscritti.

Un annetto fa, ho completato l'auto-costruzione di una fresatrice CN per mio uso personale (a scopo professionale). Sulla quale ho installato un pacchetto della Promax e motorizzazioni Brushless.

PS: Il tutto è avvenuto anche grazie ad alcuni vostri stessi consigli da questo Forum. Per chi volesse, vi sono diverse foto nel mio post Fresatrice completata di un annetto fa.

Recentemente, grazie all'opportunità presentatami dalla vendita (e costruzione) di un grosso macchinario industriale, avendola utilizzata per la realizzazione della quasi totalità dei pezzi, ho avuto occasione di testarla a fondo nel suo potenziale (specie riguardo alcune personalizzazioni di cui l'ho fatta oggetto, rispetto a macchine esistenti) e devo ammettere con enorme soddisfazione, ma!! come in tutte le cose, vi è un "inghippo":
Vuoi che ho avuto poco tempo per studiare il manuale IsoNS G-code, vuoi che ………… per certe cose “ci si nasce”, insomma ora che dovrei iniziare a divertirmi, mi rendo conto che per la programmazione mi ritengo un tantino “legnoso”, insomma sino ad ora ho appreso solo le nozioni fondamentali (a dirla tutta quelle di cui ero obbligato per eseguire i pezzi del momento).

Ora devo assolutamente apprendere come si compone una macro e credo che il modo più semplice, (ovviamente oltre che utilizzare e verificare dai manuali) sia quello di avere a che fare con qualcosa fatto da chi ne sa. Vengo quindi al dunque: la prima cosa di cui necessiterei, sarebbe un programmino per la foratura profonda, del quale tempo fa, riuscii anche ad ottenere una bozza (al momento non funzionante) che sicuramente richiede un adattamento al sistema IsoNS G-code, si tratta del seguente:

//M83 FORATURA PROFONDA

GLOBAL $HA //inizio foro
GLOBAL $HB //fine foro
GLOBAL $HC //uscita lunga
GLOBAL $D // profondità della passata
$HE //uso interno

N1 $HE=$HA // mette HE a inizio foro
N2 G0 Z[$HE] //rapido fino a inizio foro da fare
N3 $HE=$HE-$D //incrementa HE ,
N4 IF $HE<=$HB
$HE=$HB // limitandolo a fine foro
END_IF
N5 G1 Z[$HE] //fora fino ad HE
N6 G0 Z[$HA] //scarico rapido fino a inizio foro
N7 IF HE>HB
GOTO @2 // se non ha finito il foro ripete
END_IF
N8 G0 Z[$HC]
$HE=0

Per quello che ci capisco, (oltre che comunque non funzionava non so per quale motivo) questa macro obbliga a scaricare il truciolo a quota Z0, quindi la Z deve necessariamente ritornare su sempre a 0. Certamente questo ha senso, ma credo che farebbe comodo poter decidere se tornare su ad una quota assoluta ben precisa, (esempio 5 mm sopra la superficie del pezzo) oppure tornare su di pochi mm. (quota relativa) solo per rompere il truciolo. Quindi, se non dico fesserie, occorrerebbe poter disporre della distinzione tra quota assoluta oppure quota relativa.

Infine sarebbe un capolavoro se si potesse avere un ulteriore parametro ove impostare la quota Z di disimpegno esempio GLOBAL $HD //quota di disimpegno.

Avrei anche l’intenzione di iniziare a lavorare con un cam. Fino ad ora non ne ho avuto necessità ma devo premunirmi, ma è bene che prima impari i fondamenti di programmazione, quindi semmai mi rifarò vivo più avanti.

Ringrazio anticipatamente chiunque mi possa essere d’aiuto e ………. buona serata.
Giuseppe
Ultima modifica di Anonymous il mercoledì 1 aprile 2015, 19:22, modificato 1 volta in totale.
Motivazione: riferimento a topic uguale eliminato

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

Re: Macro per foratura profonda

Messaggio da torn24 » mercoledì 1 aprile 2015, 8:31

questa macro obbliga a scaricare il truciolo a quota Z0
Ciao questa macro te l'avevo proposta io, e credevo che tu l'avessi provata e che funzionasse correttamente, comunque questo è un ciclo di foratura profonda con scarico, non scarica a zero ma al valore della variabile HA, di solito non si inizia a forare a zero ma a qualche millimetro dal pezzo quindi se imposti la variabile HA a 2 mm lo scarico sarà fatto a due millimetri dallo zero zeta .

se vuoi un ciclo con rottura trucciolo ma senza scarico, conviene crearsi un altra macro modificando questa al posto della risalita per scarico trucciolo eseguire una sosta temporizzata con G4


//M8... FORATURA PROFONDA Senza scarico ma con rottura trucciolo

GLOBAL $HA //inizio foro
GLOBAL $HB //fine foro
GLOBAL $HC //uscita lunga
GLOBAL $D // profondità della passata
$HE //uso interno

N1 $HE=$HA // mette HE a inizio foro
N2 G0 Z[$HE] //rapido fino a inizio foro da fare
N3 $HE=$HE-$D //incrementa HE ,
N4 IF $HE<=$HB
$HE=$HB // limitandolo a fine foro
END_IF
N5 G1 Z[$HE] //fora fino ad HE
N6 G4 F 1 //SOSTA DI UN SECONDO PER ROTTURA E EVACUAZIONE TRUCCIOLO
N7 IF HE>HB
GOTO @2 // se non ha finito il foro ripete
END_IF
N8 G0 Z[$HC]
$HE=0


Adesso non so perchè non funzioni nel tuo cnc, ho dato un occhiata al manuale reperibile on line, ma non posso imparare un controllo, che tra l'altro è praticamente non usato in meccanica, solo per farti un programma :mrgreen: del resto tu stesso che sei il possessore, hai detto di non aver perso troppo tempo , ma se riuscirai a risolvere il problema sicuramente non funziona per poche cose, ma in programmazione basta un solo errore perché niente funzioni, e sul manuale non esiste un esempio
completo di macro e suo richiamo da programma, avendo avuto un esempio funzionante di uso variabile e richiamo di sottoprogramma la cosa era semplice.



Per quanto riguarda il CAD-CAM visto che il tuo controllo ha funzioni molto diverse da i controlli più diffusi, dovresti procurarti un cam o meglio un postprocesor che lavori solo in G0 G1
CIAO A TUTTI !

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

Re: Macro per foratura profonda

Messaggio da torn24 » mercoledì 1 aprile 2015, 8:58

Aggiungo, che visto che il controllo è sprovvisto di cicli per foratura e altre funzioni comuni, dico che il tuo controllo non è nato per gestire una fresatrice o foratrice o tornio, ma per altre tipologie di macchine , e quindi non si troverà meccanici o operatori alle macchine utensili che abbiano usato questo controllo, tanto meno che abbiano usato il suo linguaggio macro, e il linguaggio macro di un cnc e un altro cnc potrebbe e a volte ha, la differenza, come tra lingua italiana e cinese, quindi dubito sinceramente che troverai qualcuno in grado di risolvere i tuoi problemi, se il controllo è di una ditta minimamente seria conviene richiedere un corso di un giorno come usare le macro personalizzate, anche se sono sinceramente convito che un prodotto più amatoriale come "colibri" o "mach3" sarebbe stato di gran lunga migliore del tuo attuale controllo, in quanto non hanno niente da invidiare come programmazione e supporto a controlli professionali come il Fanuc "che praticamente ha lo stesso ISO".
CIAO A TUTTI !

supergiu
Junior
Junior
Messaggi: 71
Iscritto il: giovedì 21 marzo 2013, 20:28
Località: Gradara (Pesaro)

Re: Macro per foratura profonda

Messaggio da supergiu » mercoledì 1 aprile 2015, 21:16

Torn24 hai ragione, la macro l'avevi fatta te, bastava che controllassi ed evitavo una figuraccia!! a volte occorre fare ammenda e non girarci tanto attorno.
La realtà è che le cose sono andate diversamente, rispetto a come ho cercato di "addomesticare": la racconto semmai per farci una risata, del resto io la mia "ignoranza" in materia di programmazione l'ho sempre ammessa e, non intendo "scaricare" su nessun altro.

Successe che successivamente a quando ti mi fornisti la macro, (che confermo al momento non funzionava) venne il tecnico della casa madre a fare il collaudo definitivo dell'elettronica e le personalizzazioni di cui la mia macchina dispone. Il caso volle che, il mio lavoro ed io compreso, necessitavamo della dovuta "calma e pazienza" a differenza di una cosa di fretta, di cui sono andato incontro. Fatto sta che il tecnico (molto competente per carità di Dio!!) fece tutto di corsa ma fece in tempo anche a "ritoccare" la tua macro e la rese funzionante, (l'avrò usata migliaia di volte!!) il che mi ha permesso di fare dei bei lavori, compresa la quasi totalità dei pezzi della macchina che ho recentemente costruito e delle quale allego alcune foto (per pura curiosità). Sino a che, un bel giorno accendo la macchina ed appare un messaggio che mi dice della perdita di dati di Windows. Insomma per farla breve, non sarebbe successo nulla se avessi salvato le cartelle giuste ove erano contenute le mie personalizzazioni, invece a causa di una incomprensione io salvavo solo una parte di esse, quindi al ricaricamento del programma IsoNS, queste risultavano mancanti, il che ha significato essere torniti al punto di partenza!! Pensare che, una volta tanto mi ero imposto da fare e facevo i dovuti backup ............. mi sono poi fregato comunque !!!

Quindi la tua macro funzionava eccome. Riguardo le modifiche che il tecnico fece, ricordo vagamente che tolse ad ogni inizio riga l'istruzione N1 - N2 ecc. sostituendola con una istruzione diversa, ma non so dire altro.

Sono poi rimasto con loro d'accordo che ci saremmo rivisti per ripristinare le personalizzazioni (che erano diverse) ma questo ha anche un costo (che del resto ho già "sostenuto") così mi sono detto di provare con CNC Italia, nella speranza di trovare qualcuno che mi aiutasse almeno per le cose basilari.


Mi scuso per il poco interesse che la mia storiella avrà suscitato, ma almeno giustifico la mia "buona fede" ed il fatto che da ora in poi mi convinco che le cose importanti si devono fare con calma e pazienza, senza fiato sul collo e cronometro che ti scandisce i secondi, perché tutto è nato da li.

Tornando a noi ed alla macro, ora ho di nuovo la base di partenza di suo tempo, il che mi permette di riprovarci.
Aggiungo che la documentazione che la casa costruttrice fornisce, è composta da diversi manuali e se non erro ve ne è uno con degli esempi di programmazione, ma devo controllare. Comunque in teoria quello che forniscono dovrebbe essere tutto scaricabile.

Un saluto e l'ennesimo ringraziamento.
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

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

Re: Macro per foratura profonda

Messaggio da torn24 » giovedì 2 aprile 2015, 8:01

Ciao, se ti ricordi dove e come scrivere la macro, potremmo provare a sostituire il numero di riga con un "label" dalla tua descrizione.

Ho letto sul manuale che il numero riga N10-N20 vengono ignorati e il numero è il numero reale di riga, ossia
N5......
N10 ...... (questa è la seconda riga di file e non la N10)

potrebbe essere questo il problema, ma non credo..

sembra quello che ha fatto il tecnico, ma andando a tentativi è difficile che risolviamo :D


comunque se vuoi provare, e ti ricordi dove scrivere la M macro sul controllo e come richiamarla, prova questa modifica




//M83 FORATURA PROFONDA

GLOBAL $HA //inizio foro
GLOBAL $HB //fine foro
GLOBAL $HC //uscita lunga
GLOBAL $D // profondità della passata
$HE //uso interno

$HE=$HA // mette HE a inizio foro
@CICLO G0 Z[$HE] //rapido fino a inizio foro da fare
$HE=$HE-$D //incrementa HE ,
IF $HE<=$HB
$HE=$HB // limitandolo a fine foro
END_IF
G1 Z[$HE] //fora fino ad HE
G0 Z[$HA] //scarico rapido fino a inizio foro
IF HE>HB
GOTO CICLO // se non ha finito il foro ripete
END_IF
G0 Z[$HC]
$HE=0
CIAO A TUTTI !

supergiu
Junior
Junior
Messaggi: 71
Iscritto il: giovedì 21 marzo 2013, 20:28
Località: Gradara (Pesaro)

Re: Macro per foratura profonda

Messaggio da supergiu » giovedì 2 aprile 2015, 9:19

Grazie Torn24, se ben ricordo la tua deduzione riguardo il numero di riga è corretto. So come si programmano le macro ma l'inghippo è che oggi non riuscirò a provarla (salvo verso sera) per via di un impegno. Al più preso ti faccio sapere e ti ringrazio anticipatamente.

supergiu
Junior
Junior
Messaggi: 71
Iscritto il: giovedì 21 marzo 2013, 20:28
Località: Gradara (Pesaro)

Messaggio da supergiu » martedì 7 aprile 2015, 20:58

Un messaggio a Torn24:

Ciao Torn24,
finalmente oggi ho avuto tempo di provare la macro e con soddisfazione, funziona perfettamente :D
Qualche ritocco ho dovuto farlo, ma roba di veramente poco, (ci sono arrivato solo perché il sistema mi sottolineava i due errori di compilazione).

Visto che c'ero, ho fatto anche quella con rottura truciolo temporizzato ed una ultima con rottura truciolo con ritorno di 2 mm, verso lo zero Z.
Finalmente ho iniziato a capire come funziona il sistema. Infatti vi è un "automatismo" che crea un file .txt pari-pari come la macro in realtà è, ed un secondo compilato in modo tutto strano sempre .txt. Evidentemente questi occorrono come file di interscambio con il CN o qualcosa di simile. Il fatto è che, anche se questi vengono generati automaticamente, uno dei due occorre se poi si deve apportare delle modifiche o per fare una semplice copia.

Comunque tutto e questo grazie a te .................. persona lungimirante e competente =D>

Per pura curiosità, forse domani pubblicherò le tre macro, chissà che non possano servire ad altri.

saluti
Giuseppe

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

Re: Macro per foratura profonda

Messaggio da torn24 » mercoledì 8 aprile 2015, 7:16

Ciao sono veramente contento che la macro funzioni e che sono riuscito a combinare qualcosa di utile :badgrin:

Un po come tu sei contento delle realizzazioni delle tue macchine "tra l'altro eccellenti" io sono contento di risolvere qualche problema di programmazione di ogni tipo, anche a me piacerebbe sapere e costruire automazioni ma non ho avuto mai la possibilità di imparare ...


Sarei curioso di vederle queste macro, anche per capire come doveva essere scritta una macro corretta. :mrgreen:
CIAO A TUTTI !

supergiu
Junior
Junior
Messaggi: 71
Iscritto il: giovedì 21 marzo 2013, 20:28
Località: Gradara (Pesaro)

Re: Macro per foratura profonda

Messaggio da supergiu » mercoledì 8 aprile 2015, 10:00

Rieccomi Torn24,

ecco le tre macro, ma ribadisco che la prima e la seconda erano pressoché già a posto, la terza l'ho creata per deduzione.
Le ho chiamate M50 - 51 - 52

Sulla macro sottostante, ho solo dovuto rimuovere la quinta riga, (che veniva segnalata come errore) $HE //uso interno
Immagino che sia stata solo di descrizione della funzione, e forse bastava che fosse preceduta da: // comunque rimuovendo la riga funziona

La seconda cosa è stata una semplice correzione, infatti mi segnalava un errore di sintassi su questa riga: IF HE>HB così ho pensato che forse andasse corretta così: IF $HE>$HB infatti ha funzionato.
Alla fine ho aggiunto una ulteriore variabile come quota di disimpegno GLOBAL $HD //disimpegno


//M50 FORATURA PROFONDA

GLOBAL $HA //INIZIO FORO
GLOBAL $HB //FINE FORO
GLOBAL $HC //USCITA LUNGA
GLOBAL $HD //DISIMPEGNO
GLOBAL $D // PROFONDITA' PASSATA

$HE=$HA // mette HE a inizio foro
@CICLO G0 Z[$HE] //rapido fino a inizio foro da fare
$HE=$HE-$D //incrementa HE
IF $HE<=$HB
$HE=$HB // limitandolo a fine foro
END_IF
G1 Z[$HE] //fora fino ad HE
G0 Z[$HA] //scarico rapido fino a inizio foro
IF $HE>$HB
GOTO CICLO // se non ha finito il foro ripete
END_IF
G0 Z[$HD]
$HE=0



Sulla macro con rottura truciolo M51 ho fatto le due medesime correzioni della precedente, + ho aggiunto la variabile GLOBAL $HD //DISIMPEGNO + ho rimosso la variabile GLOBAL $HC //USCITA LUNGA perché non utilizzata


//M51 FORATURA CON ROTTURA TRUCIOLO

GLOBAL $HA //INIZIO FORO
GLOBAL $HB //FINE FORO
GLOBAL $HD //DISIMPEGNO
GLOBAL $D // PROFONDITA' PASSATA

$HE=$HA // mette HE a inizio foro
@CICLO G0 Z[$HE] //rapido fino a inizio foro da fare
$HE=$HE-$D //incrementa HE
IF $HE<=$HB
$HE=$HB // limitandolo a fine foro
END_IF
G1 Z[$HE] //fora fino ad HE
G4 F0.3 //SOSTA ROTTURA TRUCIOLO
IF $HE>$HB
GOTO CICLO // se non ha finito il foro ripete
END_IF
G0 Z[$HD]
$HE=0



La macro M52 l’ho fatta io sulla base delle precedenti, serve per fare la rottura truciolo con risalita di 2mm. (G90 – G91) Così posso usare o una o l’altra in base al materiale ed al suo spessore.


//M52 FORATURA CON RITORNO ROTTURA TRUCIOLO

GLOBAL $HA //INIZIO FORO
GLOBAL $HB //FINE FORO
GLOBAL $HD //DISIMPEGNO
GLOBAL $D // PROFONDITA' PASSATA

$HE=$HA // mette HE a inizio foro
@CICLO G0 Z[$HE] //rapido fino a inizio foro da fare
$HE=$HE-$D //incrementa HE
IF $HE<=$HB
$HE=$HB // limitandolo a fine foro
END_IF
G1 Z[$HE] //fora fino ad HE
G0 G91 Z2
G90
IF $HE>$HB
GOTO CICLO // se non ha finito il foro ripete
END_IF
G0 Z[$HD]
$HE=0


Riguardo quest’ultima macro, in realtà succede che su alcune delle passate, durante la fase di ritorno di 2 mm. avvengano delle piccole pause, come se il programma faticasse a fluire agevolmente, passando da quote relative ad assolute (G90 – G91) potrebbe essere la causa? In ogni caso è un danno irrilevante e funziona anche questa terza macro.


Insomma ho imparato qualcosa ed ora ho un mezzo di esempio per fare altre cose.

Rinnovo i miei ringraziamenti
Un saluto a tutti.

Rispondi

Torna a “Programmazione CNC”