Mach3 Otomatik Takım Değiştirme

Olur tabiki neden olmasın, sadece makroda biraz değişiklik yapmak lazım. Makroda XTool,YTool yanına birde her tool için Ztool gibi bir değişken vermek gerekir. Ama bunlar için nasıl bir toolchange mekanizması kullanıldığını da bilmek gerekir. Yoksa yanlış yönlendirmiş olmayalım.

Kullandığım bir sistem yok sadece nasıl ilduğunu öğrennmek için sordum. Belki lazım olur biryerde. Ben xtool ytool un altına ztool ekledim takım alma ve bırakma için kullandığımız satırlarada tooldown kısmını çıkartıp ztool ekledim ama çalısmadi. Toolup degerine cikti ve tum degiştirme islemini toolupta yapti yani ztool degerini okutup asagi indiremedim
 
Eger Ztool degerini program basinda public olarak belirtmezsen alt procedurlerde bu degiskene deger atayamazsın muhtemelen bundan kaynaklanan bir sorun diye dusunuyorum yoksa olmaması için hiç bir sebep yok.
 
Yada Zaten elimizde Tooldown diye bir degisken var, bunu public olarak belirtip her tool icin ayrı bir Tooldown seviyeside belirtebiliriz oylesi daha kolay olur.
 
Farklı Z seviyelerindeki tool için ATC makrosu;
Sanal olarak çalışıyor gozukuyor ama deneme imkanım yok bu nedenle dikkatli kullanınız !!!


Kod:
' OTOMATİK TAKIM DEĞİŞTİRME MAKROSU
'[B]Farklı Z seviyelerindeki tool için ATC makrosu[/B]
Public xtool As Integer
Public Ytool As Integer
Public ToolDown As Integer




Sub Main()
OldTool = GetOEMDRO (1200) 
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
Park = 50
NewTool = tool




MaxToolNum = 8 '*** Değiştirmek istenen max. takım sayısı
ToolDown = -30   '*** Takımı almak yada bırakmak için Z nin pozisyonu...! Her tool icin ayrı olabilir. 
ToolUp = 30     '*** Bıraktığı takımdan alacağı takıma giderken Z nin pozisyonu...!
                 


If NewTool = OldTool Then
Exit Sub
End If




While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
Wend






'*************** Eski takım bırakılıyor *************************
Code "G00 G53 Z" & ToolUp
While IsMoving()
Wend


Call ToolPos(OldTool)
Code "G53 X" & XTool & " Y" & YTool+Park
While IsMoving()
Wend


Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend


Code "G53 X" & XTool & " Y" & YTool
While IsMoving()
Wend


ActivateSignal(Output1) '*** Takımı bırakmak için gerekli sinyal....!
Code "G4 P1.0"          '*** Takımı bırakmak için bekletmek... gerektiği kadar gecikme yaptırılır...!
'SystemWaitFor (7)     '*** Takımı aldığını bildiren Limit switch sinyalini beklemek...opsiyoneldir.. 
Code "G53 Z" & ToolUp   '*** Takım bırakıldı ve Toolup seviyesine çıkıldı... 




'************** Yeni takım alınıyor ******************************
Call ToolPos(NewTool)
Code "G53 X" & XTool & " Y" & YTool
While IsMoving()
Wend


Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend


DeActivateSignal(Output1) '*** Takımı bırakmak için gönderilen sinyali kapatıyor, yani takımı tutuyor. 
Code "G4 P1.0"            '*** Wait for the tool to Clamp
While IsMoving()
Wend


Code "G53 X" & XTool & " Y" & YTool+Park  '*** Takım alındıktan sonra mandaldan kurtarmak için Y yönünde +Park kadar gidiliyor... 
While IsMoving()
Wend


Code "G53 Z" & ToolUp




'************* Tool numarası set ediliyor ***********************
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
Code "G00 X" & x & " Y" & y '*** Takım değiştirmeyi tamamlayıp kaldığı yere konumlanma....
End Sub






'*********** Takım konumlnma alt fonksiyonu Takım yerleri burda belirtilir. ************
'Xtool: Toolun X değeri  Ytool: Toolun Y değeri.
'Tool hangi eksende ise ona göre değerleri değiştirmek gerekir.


Sub ToolPos(ByVal ToolNumber As Integer)


Select Case ToolNumber


Case Is = 1
XTool = 50
YTool = 0
ToolDown=-25


Case Is = 2
XTool = 100
YTool = 0
ToolDown=-20




Case Is = 3
XTool = 150
YTool = 0
Tooldown=-40


Case Is = 4
XTool = 200
YTool = 0
ToolDown=-20


Case Is = 5
XTool = 250
YTool = 0
ToolDown=-20


Case Is = 6
XTool = 300
YTool = 0
ToolDown=-20


Case Is = 7
XTool = 350
YTool = 0
ToolDown=-20


Case Is = 8
XTool = 400
YTool = 0
ToolDown=-20


End Select


End Sub
Main
 
Farklı Z seviyelerindeki tool için ATC makrosu;
Sanal olarak çalışıyor gozukuyor ama deneme imkanım yok bu nedenle dikkatli kullanınız !!!


Kod:
' OTOMATİK TAKIM DEĞİŞTİRME MAKROSU
'[B]Farklı Z seviyelerindeki tool için ATC makrosu[/B]
Public xtool As Integer
Public Ytool As Integer
Public ToolDown As Integer




Sub Main()
OldTool = GetOEMDRO (1200) 
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
Park = 50
NewTool = tool




MaxToolNum = 8 '*** Değiştirmek istenen max. takım sayısı
ToolDown = -30   '*** Takımı almak yada bırakmak için Z nin pozisyonu...! Her tool icin ayrı olabilir. 
ToolUp = 30     '*** Bıraktığı takımdan alacağı takıma giderken Z nin pozisyonu...!
                 


If NewTool = OldTool Then
Exit Sub
End If




While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
Wend






'*************** Eski takım bırakılıyor *************************
Code "G00 G53 Z" & ToolUp
While IsMoving()
Wend


Call ToolPos(OldTool)
Code "G53 X" & XTool & " Y" & YTool+Park
While IsMoving()
Wend


Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend


Code "G53 X" & XTool & " Y" & YTool
While IsMoving()
Wend


ActivateSignal(Output1) '*** Takımı bırakmak için gerekli sinyal....!
Code "G4 P1.0"          '*** Takımı bırakmak için bekletmek... gerektiği kadar gecikme yaptırılır...!
'SystemWaitFor (7)     '*** Takımı aldığını bildiren Limit switch sinyalini beklemek...opsiyoneldir.. 
Code "G53 Z" & ToolUp   '*** Takım bırakıldı ve Toolup seviyesine çıkıldı... 




'************** Yeni takım alınıyor ******************************
Call ToolPos(NewTool)
Code "G53 X" & XTool & " Y" & YTool
While IsMoving()
Wend


Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend


DeActivateSignal(Output1) '*** Takımı bırakmak için gönderilen sinyali kapatıyor, yani takımı tutuyor. 
Code "G4 P1.0"            '*** Wait for the tool to Clamp
While IsMoving()
Wend


Code "G53 X" & XTool & " Y" & YTool+Park  '*** Takım alındıktan sonra mandaldan kurtarmak için Y yönünde +Park kadar gidiliyor... 
While IsMoving()
Wend


Code "G53 Z" & ToolUp




'************* Tool numarası set ediliyor ***********************
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
Code "G00 X" & x & " Y" & y '*** Takım değiştirmeyi tamamlayıp kaldığı yere konumlanma....
End Sub






'*********** Takım konumlnma alt fonksiyonu Takım yerleri burda belirtilir. ************
'Xtool: Toolun X değeri  Ytool: Toolun Y değeri.
'Tool hangi eksende ise ona göre değerleri değiştirmek gerekir.


Sub ToolPos(ByVal ToolNumber As Integer)


Select Case ToolNumber


Case Is = 1
XTool = 50
YTool = 0
ToolDown=-25


Case Is = 2
XTool = 100
YTool = 0
ToolDown=-20




Case Is = 3
XTool = 150
YTool = 0
Tooldown=-40


Case Is = 4
XTool = 200
YTool = 0
ToolDown=-20


Case Is = 5
XTool = 250
YTool = 0
ToolDown=-20


Case Is = 6
XTool = 300
YTool = 0
ToolDown=-20


Case Is = 7
XTool = 350
YTool = 0
ToolDown=-20


Case Is = 8
XTool = 400
YTool = 0
ToolDown=-20


End Select


End Sub
Main
Bu sekilde denememistim. Tesekkur ederim aciklaman icin
 
Merhaba Forum uyeleri

Mach 3 ile takim degistirme uygulamasi yapmak istiyorum

Makineye takim aparatlari felan monte ettim fakat sistemi nasil aktif edecegimi bilemedim yardimci olursaniz memnun olurum.

Makro konusunda da fazla bilgim yok

Makinenin takim degistirme sistemini linkde ki makine gibi tasarladim



Yardimlariniz bekliyorum iyi calismalar dilerim

Nuri CELIK
 
Merhaba,

CNC de 5 Axis CNC Interface Breakout Board V5 board kullanıyorum , üzerinde takım değiştirmesine yardımcı olacak bir çıkış bulunmuyor yardımcı ola bilir misiniz,
 
arkadaşlar mach3 te döner magazin kullanmak istiyorum.magazin z eksenine sabit olacak.z magazin hizasına gelecek magazin pistonla takım tutucuya geçecek spindle takımı bırakarak kalkacak magazin yerine gidip hangi takımsa dönecek magazin tekrar pistonla spindle nin altına gelip z aşağı inerek bıçağı alacak magazin yerine gidecek böyle bir sistemin makrosu nasıl olur bıçaklar arası açı 36 derece
 
Farklı z noktalarındaki takım değiştirme macro su çok profosyonel olmuş Birde takıma yaklaşırken rapid hızları yavaşlasa çok çok daha iyi olacağa kanaatindeyim.
 
Buyur kardeş sana otomatik takım değiştirme (ATC) makrosu... saygılar....

Kod:
' OTOMATİK TAKIM DEĞİŞTİRME MAKROSU
' Mehmet İzzet KÖSE
Sub Main()
OldTool = GetOEMDRO (1200)
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool

MaxToolNum = 8 'Değiştirmek istenen max. takım sayısı
ToolDown = -3.125 'Takımı almak yada bırakmak için Z nin pozisyonu...!
ToolUp = 0.0 'Bıraktığı takımdan alacağı takıma giderken Z nin pozisyonu...!

If NewTool = OldTool Then
Exit Sub
End If

While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
Wend

Code "G00 G53 Z" & ToolUp
While IsMoving()
Wend

Call MovePos(OldTool)
While IsMoving()
Wend

Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend

ActivateSignal(Output1) 'Takımı bırakmak için gerekli sinyal....!

Code "G4 P1.0" 'Takımı bırakmak için bekletmek... gerektiği kadar gecikme yaptırılır...!

'SystemWaitFor (7) 'Takımı aldığını bildiren Limit switch sinyalini beklemek...opsiyoneldir.. istenirse kullanılmaz... şuan pasif durumda gerekirse satır başındaki tırnağı kaldırmak yeterli...

Code "G53 Z-2.5" & ToolUp

Call MovePos(NewTool)
While IsMoving()
Wend

Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend

DeActivateSignal(Output1) 'Takımı bırakmak için gönderilen sinyali kapatıyor... yani takımı tutuyor.. output1 kullanılıyor...
Code "G4 P1.0" 'Wait for the tool to Clamp
While IsMoving()
Wend

Code "G53 Z" & ToolUp
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
Code "G00 X" & x & " Y" & y 'Takım değiştirmeyi tamamlayıp kaldığı yere konumlanma....
End Sub

Sub MovePos(ByVal ToolNumber As Integer)

Select Case ToolNumber
Case Is = 1
Xpos = 12.00
YPos = 2.00

Case Is = 2
Xpos = 14.00
YPos = 2.00
Case Is = 3

Xpos = 16.00
YPos = 2.00
Case Is = 4

Xpos = 18.00
YPos = 2.00
Case Is = 5

Xpos = 12.00
YPos = 4.00
Case Is = 6

Xpos = 14.00
YPos = 4.00

Case Is = 7
Xpos = 16.00
YPos = 4.00

Case Is = 8
Xpos = 18.00
YPos = 4.00

End Select
 takım değiştirmede üzerinde ki outputu çektirerek nasıl yapılabilir.
örneğin kafada 8 matkap var bunları her bir outputa bağladık tek tek nasıl çektirebiliriz 
Code "G53 X" & XPos & " Y" & YPos
End Sub
Main
 

Forum istatistikleri

Konular
130,123
Mesajlar
933,343
Kullanıcılar
453,198
Son üye
Emre0686

Yeni konular

Geri
Üst