Cerco Macro per presetter utensili del carosello ATC

Sezione dedicata a Mach3
Rispondi
Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » martedì 12 gennaio 2016, 10:20

Okkk opterò per questa soluzione allora...

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » domenica 1 gennaio 2017, 12:56

Caro Pedro ho iniziato il nuovo anno provando la tua macro M471 un pochino modificata per non far tastare il pezzo due volte in quanto poi l'altezza durante il taglio la modifica automaticamente il THC

qui il video https://www.youtube.com/watch?v=tsGXoakWyiQ

dimmi che ne pensi :wink:

Buon anno e grazie ancora di tutto il supporto

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » sabato 31 marzo 2018, 12:35

Caro Pedro e a tutti i ragazzi di cncitalia tanti auguri di buona Pasqua...

In questi giorni spero di postarti un bel video del funzionamento delle tue macro per presetter e zero pezzo.. è arrivato il momento di montare tutto...

Ho provato il modulo ottico per lo zero pezzo e nonostante la mole di collegamenti elettrici sembra funzionare devo attaccare il presetter e cominciare a provare in macchina le macro...

Spero per prox sett di mettere un bel video...
Auguri ancora
Pierpaolo

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » domenica 1 aprile 2018, 8:34

Ciao pedro,
ho montato tutta la parte elettrica dei tastatori ma con il safe z impostato la macchina non riesce più ad eseguire neanche il cambio utensile.
ho dovuto quindi ritoglierlo. poi ho notato in macchina un po di cose:

mi sono soffermato sulla macro M6 (quella modificata per scaricare a zero l'utensile) e sulle macro M471 e M477

allora la macro M6 con lo scarico utensile funziona fino al punto di rimettere l'utensile apposto ma non si rialza quanto basta per svincolarlo prima che il carosello richiuda, quindi mette al posto l'utensile, apre il cono (senza rialzare) richiude il cono, e fa rientrare il carosello mantenendo così l'ultimo utensile che si voleva scaricare (ma mettendo giustamente a video il numero di utensile 0).

le macro M477 e M471 invece quando le faccio partire si comportano stranamente, nel senso che iniziano subito a cercare l'attivazione digitize senza curarsi di quale utensile mantengano dentro e poi quando leggono il messaggio M6T8 impostano l'utensile 8 a video senza pero fare realmente tutta la procedura di cambio utensile. (come se il cambio utensile fosse disattivato)

non so se tu riesci a capire cosa possa esserci di anomalo ma mi son letto le macro e le ho provate su un pc non collegato alla macchina e sembravano andare.

cio e Buona pasqua a tutti

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » lunedì 2 aprile 2018, 0:26

allora la macro M6 l'ho modificata immettendo una stringa di codice di seguito a If(new_tool=0) e vediamo se domani funge...

mentre per la macro M471 mi sembra che la macchina non aspetti il cambio utensile ma cominci esegua tutti i codici dati uno dopo l'altro. potrebbe essere forse che dopo il comando di cambio utensile ci si debba mettere una pausa o un qualcosa che attenda che questo sia terminato?
magari un comando subito dopo la parte evidenziata in rosso?

Inoltre al posto di usare il GotoSafeZ() dovrò impostare un'altezza fissa di Z perchè attivando il safeZ neanche il cambio utensili funge più...



' VBScript per il probing nella direzione Z- per azzeramento sul pezzo rel 2.0 del 25/9/2014




Amove = -300 ' massimo movimento per ricerca probe verso Z-
speed = 300 ' velocità di ricerca
lo_speed = 30 ' velocità di ricerca low
Aret = 25 ' di quanto arretra l'asse dopo il sensing per il secondo approccio
Amove1 = -(Aret * 5) ' massimo movimento per ricerca probe on Z- per il secondo punto
curr_tool = GetCurrentTool() ' tool nel mandrino




If GetOemLed (825) <> 0 Then ' sente se il probe è triggerato o scollegato

Code "(Il probe è triggerato o scollegato o il modulo MP1 è spento)"
End
Else


Code "M5" ' ferma il mandrino
Code "M8" ' ferma il refrigerante
GotoSafeZ() ' porta in posizione di sicurezza Z
While IsMoving() ' completa il percorso
Wend

Code "M6 T8" ' carica il probe dalla posizione 8 del carosello


Code "G91" ' spostamento relativo
CurrentFeed = GetOemDRO(818) ' legge il feedrate corrente

' primo trigger Z


Code "F" & speed ' porta il feedrate alla velocità di approccio

Code "G31 Z " & Amove
While IsMoving() ' completa il percorso a meno che si triggeri il probe
Wend

' secondo trigger Z

Code "G01 Z " & Aret
While IsMoving() ' completa il percorso a meno che si triggeri il probe
Wend

Code "F" & lo_speed ' porta il feedrate alla velocità di approccio low
Code "G31 Z " & Amove1
While IsMoving() ' completa il percorso a meno che si triggeri il probe
Wend





SetOemDRO(802,0) ' offset asse Z

Code "F" & speed ' porta il feedrate alla velocità iniziale


Code "M6 T0" & curr_tool ' ricarica il tool che era nel caroselo

Code "F" & CurrentFeed ' ripristina il feedrate originale
Code "G90" ' rimette lo spostamento assoluto
GotoSafeZ() ' riporta in posizione di sicurezza Z
While IsMoving() ' completa il percorso
Wend


End If

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » lunedì 2 aprile 2018, 11:24

Corretta la macro M6 per lo scarico utensile e adesso va bene ho dovuto solo copiare e incollare i passaggi per alzare la Z dopo lo scarico senza caricare nulla con If(new_tool=0)

Questo il sistema ottico di tastatura Renishaw installato e il presetter Renishaw homemade via cavo... il tutto è gestito dalla terza porta della smoothstepper e ha uno switch che passa tramite macro o tramite tasto dal probe al presetter... sembra andare benone...

Per le macro di altezza utensile e zero pezzo invece non mi resta che aspettare l'autore visto che nn saprei dove mettere le mani :)
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

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » martedì 3 aprile 2018, 9:43

allora per la macro M471 ho provato e riprovato ma nulla.
Purtroppo inizia a cercare il tastatore appena lancio la macro mentre a video carica l'utensile nr 8 del probe lo aggiorna ma non fa la procedura reale. E' come se i comandi si sovrapponessero.

ho provato a mettere uno sleep (20000) dopo il comando M6T8 e così effettivamente la macro carica regolarmente l'utensile 8 e poi inizia la procedura di ricerca (questo però crea n loop infinito a fine macro)

boh secondo me deve esistere una sorta di comando che attende la fine del cambio utensile e poi prosegue con la macro ma in rete non trovo nulla...
se qualcuno sa indicarmi qualcosa mi dica pure...

buona giornata

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » martedì 3 aprile 2018, 19:17

Allora provato le macro m471 m477 e m478 anche su altre due macchine con cambio utensile e effettivamente succede sempre che queste sembrano avere priorità sull'attesa del cambio utensile...

Cerco di spiegarmi... quando chiamo queste macro dovrebbe succedere che si carica il tool 8 e in base a quello si fa lo zero pezzo o si misura l'altezza degli utensili in rapporto al tastatore...
Succede invece che non appena le richiamo su tutti i sistemi provvisti di cambio utensile, la macchina va a cercare subito l'attivazione del pin Probe non curandosi di attende la fine di eventuali altre macro M6...
Ora non saprei davvero perché ma dovrebbe essere un discorso di priorità tra macro credo...

Pedro tu che ne pensi? Io sinceramente non so neanche se sin sulla buona strada per cercare di trovare la soluzione :oops:

gino
Senior
Senior
Messaggi: 1774
Iscritto il: domenica 11 ottobre 2009, 18:12

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da gino » martedì 3 aprile 2018, 19:40

credo dovrebbe pur esserci un sensore che notifica
il cambio utensile come avvenuto (ho non ce..).
inoltre un nuovo utensile "su T X " puo differire anche di parecchio
da una misura precedente.
ricordo da vecchie impostazioni in Renishaw che dovevo scrivere
una lunghezza approsimativa affinche non durasse un eternita la tastatura..
..ora gli utensili li settiamo in presetter fuori macchina.
vecchie macro ne ho ancora ma purtroppo solo per SELCA.

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » martedì 3 aprile 2018, 19:47

Ciao Gino... eh bella domanda... mach3 non credo abbia questa sorta di sensore che indichi la fine del cambio... credo sia proprio una peculiarità dei sistemi professionali... in mach3 non saprei come farglielo capire...

Strano che nn se ne sia accorto mai nessuno prima... ma forse è un'applicazione talmente singolare che magari nessuno ci fa caso perché carica il tutto manualmente...

Tormach sempre su base mach3 fa una tastatatura per ogni utensile ma non saprei se loro hanno implementato altro sui loro sistemi per creare i loro script....

Cmq Pedro credo che sappia come risolvere visto che le ha praticamente inventate lui... speriamo ci butti un occhio per capire cosa eventualmente modificare...

Avatar utente
Pedro
God
God
Messaggi: 7021
Iscritto il: domenica 6 aprile 2008, 18:44
Località: Roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da Pedro » martedì 3 aprile 2018, 20:35

devi usare come dice giustamente gino un trigger, un flag, un qualcosa che indica alla macro chiamante quado la macro chiamta è finita, un semaforo come dal forum mach3 viene suggerito da tale Ray L.

You can call one macro from another, but there are a number of pitfalls. In particular, you cannot assume the first macro will resume execution when the second one completes - it won't. The second macro is spawned in a new thread, so the two end up running asynchronously, and concurrently. This can be circumvented by use of a semaphore that causes the first macro to wait:

M1000.m1s:

SetVar(1000, 0) ' Clear sempahore
... Do something here
Semaphore = GetVar(1000) ' Set semaphore
Semaphore = Semaphore + 1
SetVar (1000, Semaphore)
Code "M1001" ' Call M1001 macro
Semaphore = GetVar(1000) ' Wait for M1001 macro to complete
While Semaphore > 0
Semaphore = GetVar(1000)
Wend
... Do something here

M1001.m1s:

... Do something here
Semaphore = GetVar(1000) ' Reset semaphore
Semaphore = Semaphore - 1
SetVar (1000, Semaphore)
Return

Using this technique, you can nest macros safely to pretty much any depth.

Regards,
Ray L.


puoi usare anche un led che ti crei, lo accendi quando chiami e lo spegni quando la chiamata è finita e ma macro chiamante fa un loop per testarlo; fai come vuoi insomma :D

PS: qui il numero di cene aumentano :lol:
"Ho controllato molto approfonditamente," disse il computer, "e questa è sicuramente la risposta. Ad essere sinceri, penso che il problema sia che voi non abbiate mai saputo veramente qual è la domanda."

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » martedì 3 aprile 2018, 20:50

Ciao pedro felice di sentirti...
Eh si la cena è sempre valida lo sai... quando vuoi è pagata e pronta... devi solo liberarti dai tuoi impegni :wink:

Per il flag o qualcosa che indichi ciò sembra facile a dirsi ma come lo integro nella Macro? Andrebbe quindi in tutte o solo nella M6? È un qualcosa da fare con machscreen o basta qualche riga di codice nelle Macro?
Scusa le mille domande ma lo sai che purtroppo io posso arrivarci per logica perché di nozioni non ne ho...

Avatar utente
Pedro
God
God
Messaggi: 7021
Iscritto il: domenica 6 aprile 2008, 18:44
Località: Roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da Pedro » martedì 3 aprile 2018, 22:04

andrebbe in quella che chiama un'altra macro e in quella che viene chiamata: c'è l'esempio in blu che ti ho postato, ad esempio, con la variabile globale semaphore. Si crea quella variabile, si setta a zero e poi si chiama la macro che serve, la macro chiamata procede mentre la prima testa quella variabile fino a che non abbia un valore <0 dopodichè esce dal loop, la macro chiamata ovviamente deve fare in modo che quella variabile globale sia<0 prima di uscire.

Ma per te sarebbe molto più facile, visto che sei bravo con i pannelli a crearti un led dove vuoi. Questo led prima di chiamare la macro diciamo n2 lo accendi, chiami la macro n2 e sulla macro chiamante fai un loop che testa il led fino a che sia spento, cosa che farà la macro n2 quando ha finito le sue cose
"Ho controllato molto approfonditamente," disse il computer, "e questa è sicuramente la risposta. Ad essere sinceri, penso che il problema sia che voi non abbiate mai saputo veramente qual è la domanda."

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » martedì 3 aprile 2018, 22:14

Grazie Pedro... dopo provo a vedere se ho capito come mi hai spiegato e provo a postare le macro... poi mi dici tu...

Avatar utente
pierpaolo
Senior
Senior
Messaggi: 1316
Iscritto il: martedì 19 giugno 2012, 1:10
Località: roma

Re: Cerco Macro per presetter utensili del carosello ATC

Messaggio da pierpaolo » martedì 3 aprile 2018, 23:41

Allora mi sembra di aver capito che "il semaforo" va utilizzato così... 8sempre per logica perchè di VB non ne capisco na mazza...

In blu ciò che mi sembra di aver capito vada inserito nelle macro M471-M477 e M478 prima e dopo ogni richiamo della macro M6

' VBScript per il probing nella direzione Z- per azzeramento sul pezzo rel 2.0 del 25/9/2014




Amove = -300 ' massimo movimento per ricerca probe verso Z-
speed = 300 ' velocità di ricerca
lo_speed = 30 ' velocità di ricerca low
Aret = 25 ' di quanto arretra l'asse dopo il sensing per il secondo approccio
Amove1 = -(Aret * 5) ' massimo movimento per ricerca probe on Z- per il secondo punto
curr_tool = GetCurrentTool() ' tool nel mandrino



SetVar(1000, 0) ' Azzera Semaforo

If GetOemLed (825) <> 0 Then ' sente se il probe è triggerato o scollegato

Code "(Il probe è triggerato o scollegato o il modulo MP1 è spento)"
End
Else


Code "M5" ' ferma il mandrino
Code "M8" ' ferma il refrigerante
GotoSafeZ() ' porta in posizione di sicurezza Z
While IsMoving() ' completa il percorso
Wend
Semaphore = GetVar(1000) ' Preparo il semaforo
Semaphore = Semaphore + 1
SetVar (1000, Semaphore)

Code "M6 T8" ' carica il probe dalla posizione 8 del carosello
Semaphore = GetVar(1000) ' Aspetta che la macro M6 sia completa
While Semaphore > 0
Semaphore = GetVar(1000)
Wend


Code "G91" ' spostamento relativo
CurrentFeed = GetOemDRO(818) ' legge il feedrate corrente

' primo trigger Z


Code "F" & speed ' porta il feedrate alla velocità di approccio

Code "G31 Z " & Amove
While IsMoving() ' completa il percorso a meno che si triggeri il probe
Wend

' secondo trigger Z

Code "G01 Z " & Aret
While IsMoving() ' completa il percorso a meno che si triggeri il probe
Wend

Code "F" & lo_speed ' porta il feedrate alla velocità di approccio low
Code "G31 Z " & Amove1
While IsMoving() ' completa il percorso a meno che si triggeri il probe
Wend





SetOemDRO(802,0) ' offset asse Z

Code "F" & speed ' porta il feedrate alla velocità iniziale

Semaphore = GetVar(1000) ' Preparo il semaforo
Semaphore = Semaphore + 1
SetVar (1000, Semaphore)

Code "M6 T0" & curr_tool ' ricarica il tool che era nel caroselo
Semaphore = GetVar(1000) ' Aspetta che la macro M6 sia completa
While Semaphore > 0
Semaphore = GetVar(1000)
Wend


Code "F" & CurrentFeed ' ripristina il feedrate originale
Code "G90" ' rimette lo spostamento assoluto
GotoSafeZ() ' riporta in posizione di sicurezza Z
While IsMoving() ' completa il percorso
Wend


End If



Non ho capito invece se queste righe di comando in blu di seguito, vadano messe nella macro M6 alla fine dello script una volta sola o dopo ogni END che fa terminare la macro

Semaphore = GetVar(1000) ' Reset semaphore
Semaphore = Semaphore - 1
SetVar (1000, Semaphore)
Return

Rispondi

Torna a “Mach3”