Hello Guest it is March 29, 2024, 10:17:46 AM

Author Topic: manual tool change  (Read 5370 times)

0 Members and 1 Guest are viewing this topic.

manual tool change
« on: February 21, 2018, 05:21:42 AM »
I downloaded this macro (not mine, found on the site cncitalia) to change tool, I have a problem I do not know if I do not configure something I'm the macro that does not go
the problem is:
1 launch the macro
2 the trio is positioned for the tool change
3 goes down and makes the first touch and goes back for the change
4 tool change and redo for the second touch
5 returns from where he left
up to here everything is fine, the problem is that it does not calculate / change the difference between the two tools
I hope I have explained all the help / advice is appreciated
translated with Google

Condizioni macchina:

' Zero macchina X dietro Y sinistra Z in alto
' Asse X, sinistra -X destra +X
' Asse Y, dietro +Y avanti -Y
' Asse Z, alto +Z basso -Z
' Abilitare l'ingresso PROBE (port 1 pin 10)(Config | Input Signal)
'
' condizioni di lavoro iniziali:
' 1) Referenziare a ZERO macchina
' 2) Azzerare i contatori
' 3) Portarsi sullo Zero pezzo
' 4) Azzerare i contatori
' 5) Inizio lavorazione

code "M5" ' fermo il motore

' controllo se la macchina è stata referenziata

If Not GetLed (7) Then ' è referenziato X
vxled = 1
End If

If Not GetLed (8) Then ' è referenziato Y
vyled = 1
End If

If Not GetLed (9) Then ' è referenziato Z
vzled = 1
End If

Tled = vxled + vyled + vzled

If Tled = 3 Then ' se non sono referenziati X, Y e Z esco

' parametri lavorazione
xzero = GetDRO (30) ' memorizzo la posizione iniziale ASSOLUTA di cambio utensile
yzero = GetDRO (31)
zzero = GetDRO (32)

xpos = GetDRO (0) ' memorizzo la posizione inizioale RELATIVA di cambio utensile
ypos = GetDRO (1)
zpos = GetDRO (2)

fpos = GetDRO (18) ' memorizzo il feedrate iniziale

' variabili del programma
fmax = 400 ' imposto il feedrate massimo
fmin = 100 ' imposto il feedrate per la palpata

zavv = -50 ' distanza rapida di avvicinamento al palpatore
zmin = -80 ' profondità oltre il palpatore
xcut = 0 ' posizione X per cambio utensile
ycut = 0 ' posizione Y per cambio utensile

xtool = GetUserDRO (1200) ' posizione X del palpatore (Settings -> Tool Change Location)
ytool = GetUserDRO (1201) ' posizione Y del palpatore
ztool = GetUserDRO (1202) ' posizione Z del palpatore

' inizio programma
code "G0 F" & fmax ' porto il feedrate al valore massimo
code "G53 G0 Z0" ' porto Z a ZERO macchina
While IsMoving()
Wend
Call SetDro (2,0) ' porto il contatore Z a zero

code "G53 G0 X" & xtool & "Y" & ytool ' mi allineo sul palpatore
While IsMoving()
Wend
code "G0 Z" & zavv ' scendo in avvicinamento (fino a zavv)
While IsMoving()
Wend

code "G0 F" & fmin ' porto il feedrate al minimo

If IsSuchSignal (22) Then ' scendo sul palpatore per vedere la misura della punta attuale
code "G31 Z" & zmin
While IsMoving()
Wend
End If
zorig = GetDRO (2) ' memorizzo il valore di Z della punta attuale
code "G0 F" & fmax ' riporto il feedrate al massimo

code "G53 G0 Z0" ' porto Z a ZERO macchina
While IsMoving()
Wend

code "G53 G0 X" & xcut & "Y" & ycut ' vado in una posizione comoda per il cambio utensile
While IsMoving()
Wend

MsgBox ("Ora si può cambiare la punta")

Response = MsgBox ("E' stata cambiata la punta?", 4 , "ATTENZIONE")
If (Response = 6) Then
i = 99
Else
MsgBox ("Riprendo il lavoro con la punta iniziale")
End If

If i <> 99 Then ' non faccio nulla

code "G53 G0 X" & xzero & "Y" & yzero ' torno alla posizione X Y zero pezzo
While IsMoving()
Wend
code "G0 X" & xpos & "Y" & ypos ' torno alla posizione X Y da dove ero partito
While IsMoving()
Wend
code "G53 G0 Z" & zzero ' riporto Z al valore zero pezzo
While IsMoving()
Wend
Call SetDro (2,0) ' porto il contatore Z a zero
code "G0 Z" & zpos ' riporto Z al valore di partenza
While IsMoving()
Wend
code "G0 F" & fpos ' riporto il feedrate al valore di partenza
MsgBox ("Per riprendere il lavoro premere il pulsante 'LAVORAZIONE'")
code "M3" ' riaccendo il motore e riprendo il lavoro da dove l'avevo lasciato

Else

code "G53 G0 X" & xtool & "Y" & ytool ' mi allineo sul palpatore
While IsMoving()
Wend
code "G0 Z" & zavv ' scendo in avvicinamento
While IsMoving()
Wend

code "G0 F" & fmin ' porto il feedrate al minimo

If IsSuchSignal (22) Then ' scendo sul palpatore
code "G31 Z" & zmin
While IsMoving()
Wend
znew = GetDRO (2) ' memorizzo il valore di Z della nuova punta

code "G0 F" & fmax ' riporto il feedrate al massimo

code "G53 G0 Z0" ' ritorno Z ZERO macchina
While IsMoving()
Wend
End If

code "G53 G0 X" & xzero & "Y" & yzero ' torno alla posizione X Y zero pezzo
While IsMoving()
Wend

code "G0 X" & xpos & "Y" & ypos ' torno alla posizione X Y da dove ero partito
While IsMoving()
Wend

code "M3" ' riaccendo il motore

zdif = zorig - (znew) ' controllo se l'utensile è più corto o piu lungo

code "G53 G0 Z" & zzero-(zdif) ' riporto Z al valore zero pezzo con la differenza utensile
While IsMoving()
Wend
Call SetDro (2,0) ' porto contatore Z a zero
code "G0 Z" & zpos ' riporto Z al valore di partenza (inizio programma)
While IsMoving()
Wend
code "G0 F" & fpos ' riporto il feedrate al valore di partenza
MsgBox ("Per riprendere il lavoro premere il tasto LAVORAZIONE")

End If

' riprendo il lavoro da dove l'avevo lasciato

Else
MsgBox ("Per poter cambiare l'utensile bisognava prima aver referenziato la macchina")
End If

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: manual tool change
« Reply #1 on: February 22, 2018, 04:03:43 AM »
your code contains some Kind of height correction.
even it is very crowdy.

Code: [Select]
zdif = zorig - (znew) ' controllo se l'utensile è più corto o piu lungo

code "G53 G0 Z" & zzero-(zdif) ' riporto Z al valore zero pezzo con la differenza utensile
While IsMoving()
Wend
Call SetDro (2,0) ' porto contatore Z a zero
code "G0 Z" & zpos ' riporto Z al valore di partenza (inizio programma)
While IsMoving()
Wend

-copy your code into vbscripter window (Operator --> VB Script Editor)
-use the green >|| button to step throught code
-watch z-axis dro 

anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.
Re: manual tool change
« Reply #2 on: February 22, 2018, 04:46:08 AM »
thank you for your help
the problem remains, it all works only at the end the dro is at 0, but the difference is not calculated (I hope I explained myself)

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: manual tool change
« Reply #3 on: February 22, 2018, 04:58:57 AM »
if you step through the code when you come to this line

-code "G53 G0 Z" & zzero-(zdif) ' riporto Z al valore zero pezzo con la differenza utensile

you can put the mouse Cursor above the following variables (1 line above):

zdif
zorig
znew

witch values are in there?
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.
Re: manual tool change
« Reply #4 on: February 22, 2018, 05:37:12 AM »
I state that I do not have the slightest knowledge of VB
if I launch
  zdif = zorig - (znew) 'controllo se l'utensile è più corto o più lungo

  codice "G53 G0 Z" e zzero- (zdif) 'riporto Z al valore zero pezzo con la differenza utensile
  Mentre IsMoving ()
  Wend
  Chiama SetDro (2,0) 'porto contatore Z a zero
  codice "G0 Z" & zpos 'riporto Z al valore di partenza (inizio programma)
  Mentre IsMoving ()
  Wend

DROs go to 0 and do not move
thanks for your patience !

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: manual tool change
« Reply #5 on: February 22, 2018, 05:43:45 AM »
ok let's try again,

if you step through code in VB Scripter window by using the green >|| button on top, you see a Little yellow -> (arrow)
on the left side.

if this arrow is in line:

-code "G53 G0 Z" & zzero-(zdif) ' riporto Z al valore zero pezzo con la differenza utensile

you can put the mouse Cursor above the following variables (1 line above):

zdif
zorig
znew

and see the values as tool tip text.
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.
Re: manual tool change
« Reply #6 on: February 22, 2018, 06:19:24 AM »
ok si i valori sono dentro
Re: manual tool change
« Reply #7 on: February 22, 2018, 06:19:48 AM »
ok yes the values are inside

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: manual tool change
« Reply #8 on: February 22, 2018, 06:33:43 AM »
ok yes the values are inside

and what are the values ?
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.
Re: manual tool change
« Reply #9 on: February 22, 2018, 06:46:51 AM »
the values are:

zdif ='-2.7600937220912

Zorig ='-77.534221109466

znew ='-74.774127487374