Mach3 Takım Değiştirme için yeni yazacağım macro

canerten

Paylaşımcı üye
Katılım
23 Ocak 2016
Mesajlar
1,526
Puanları
106
Sürekli CNC'de boşa kaybettiğim zamanı azaltmak ile ilgili çalışmalar yapıyorum. :) Buna bir yenisi ekleme gibi bir fikrim var. Normalde takım değiştirme sırasında belki ATC'miz yok diye zaman kaybediyoruz. Ona parasal yönden müdahale edemediğimizden çözemiyoruz. Ama yine kaybettiğimiz bir zaman var. O da takım değiştikten sonra CNC kafasının Z ekseninde takım sıfırlama probeuna değmeye giderken kaybettiğimiz zaman. Belki 30 saniye, belki 60 saniye.. Ama seri işe vurduğumuz zaman 100 parça işte 3 saat ediyor. (günde) Haliyle buradan belki zaman tasarrufu yapabilirim diye düşündüğüm.

Probe'a hızlı yaklaşamazsınız, belirli bir noktaya kadar hızlı yaklaşabilirsiniz. Dana sonra mutlaka yavaş yaklaşmak durumundasınız. Fakat işte bu hızlı olarak inebileceğiniz max G53 Z-50... değerini en uzun ucunuza göre ayarlamak durumundasınız. Haliyle ben 100mm'e kadar uç kullanıyorum. Dolayısıyla 10mm'lik ucum ile 100mm'lik uç arasında 90mm olduğundan probea en fazla 90 mm hızlı olarak yaklaşabiliyorum(m6 macrosu ile)..

Halbuki takım listesini okuyup, gelecek takıma göre probe'a daha yakın bir konuma hızlı bir şekilde iniş sağlar, iyice yakınlaşınca artık yavaş modda sıfırlamayı başlatırım. Dolayısıyla yeni bir macro yazacağız.

G-code load edilirken takımları okuyacağız. Sonra bunu macrolarda kullanacağız. Hatta belki zaten sistem bunları okuyup bir değişkene atıyordur.

SetCurrentTool(), GetSelectedTool(), ToolLengthOffset(), GetToolParam(), SetToolParam(), GetToolChangeStart(), GetToolDesc(), SetToolX(), SetToolZ()

Şunları kullanarak bu işi çözmeye çalışacağım.

Bu arada yaylı sıfırlama probeunu kestim. Sadece üzerine yapacağm aluminyum kaldı. Onu da tornada filan yaptıracağım.
 
Son düzenleme:
Sürekli CNC'de boşa kaybettiğim zamanı azaltmak ile ilgili çalışmalar yapıyorum. :) Buna bir yenisi ekleme gibi bir fikrim var. Normalde takım değiştirme sırasında belki ATC'miz yok diye zaman kaybediyoruz. Ona parasal yönden müdahale edemediğimizden çözemiyoruz. Ama yine kaybettiğimiz bir zaman var. O da takım değiştikten sonra CNC kafasının Z ekseninde takım sıfırlama probeuna değmeye giderken kaybettiğimiz zaman. Belki 30 saniye, belki 60 saniye.. Ama seri işe vurduğumuz zaman 100 parça işte 3 saat ediyor. (günde) Haliyle buradan belki zaman tasarrufu yapabilirim diye düşündüğüm.

Probe'a hızlı yaklaşamazsınız, belirli bir noktaya kadar hızlı yaklaşabilirsiniz. Dana sonra mutlaka yavaş yaklaşmak durumundasınız. Fakat işte bu hızlı olarak inebileceğiniz max G53 Z-50... değerini en uzun ucunuza göre ayarlamak durumundasınız. Haliyle ben 100mm'e kadar uç kullanıyorum. Dolayısıyla 10mm'lik ucum ile 100mm'lik uç arasında 90mm olduğundan probea en fazla 90 mm hızlı olarak yaklaşabiliyorum(m6 macrosu ile)..

Halbuki takım listesini okuyup, gelecek takıma göre probe'a daha yakın bir konuma hızlı bir şekilde iniş sağlar, iyice yakınlaşınca artık yavaş modda sıfırlamayı başlatırım. Dolayısıyla yeni bir macro yazacağız.

G-code load edilirken takımları okuyacağız. Sonra bunu macrolarda kullanacağız. Hatta belki zaten sistem bunları okuyup bir değişkene atıyordur.

SetCurrentTool(), GetSelectedTool(), ToolLengthOffset(), GetToolParam(), SetToolParam(), GetToolChangeStart(), GetToolDesc(), SetToolX(), SetToolZ()

Şunları kullanarak bu işi çözmeye çalışacağım.

Bu arada yaylı sıfırlama probeunu kestim. Sadece üzerine yapacağm aluminyum kaldı. Onu da tornada filan yaptıracağım.
Tool offset bu durumlar için değilmi zaten?
 
Tool offset bu durumlar için değilmi zaten?
Tool offset için ATC şart yada her seferinde kumpas ile aynı boyda takmak gerek.
Attığım videoda iki prob ile manual değişim olsa da tool offset yapabiliyorsun. Serbest olan prob ile z 0 (sıfır) noktasını belirliyorsun sabit prob ile offset yapıyorsun.
 
Kısa olan ucu her seferinde en fazla ne kadar uzun takabiliriz? Mesela elimde 100 mm uç var. En kötü ihtimal 20mm tutacak şekilde takıyorumdur. Haliyle dışarıdaki boyu max 80 olacak şekilde hafizada tutarsam probe'a 20 + 4 mm'e kadar hızlı yaklaşırım.

Veya

Şöyle bir çözümüm var. Ufak bir infrared sensoru yatay probe konum hizasına 10 mm kalana kadar olan mesafeye hizalarız. Macro ile probe konumuna inerken(sıfırlama değil) hızlı modda inerken bu sensörü aktif ederiz. Sensör sinyali aldığı andan itibaren uç 10mm probe'a yakın demektir. Bu noktadan sonra yavaş sıfırlamayı başlatırız.

Lakin 2 mm çapında ince ucu infrared sensör ile tespit edebilir miyiz? Bahsettiğim IR sensör şöyle bir şey. Bununla arduino ile mesafeyi okuyup ona göre sinyal göndeririz. Yükseklik değiş önünden diyen inme..

7_GP2Y0A41SK0F.jpg
 
Kestiğim yayın üst kısmını nasıl düzlerim arkadaşlar.. Sorun çıkarıyorda..
IMG_3700.JPG
IMG_3701.JPG
 

Yayı düzleyebilsem tam olacak...
 
Telle gerdirip ısıttım ocakta. Oldu
 
Son düzenleme:
Gerçek hızda son sıfırlama hız ayarlarım. Fena olmadı. Ama siz böyle yapmayın. Direk kısa stroke, geniş bore bir tekli pnomatik silindirin segmanını söküp yay koyun, dikine bağlayın olsun bitsin.

Benim gibi yine bir tornacı macerası yaşamayın.

 
Gerçek hızda son sıfırlama hız ayarlarım. Fena olmadı. Ama siz böyle yapmayın. Direk kısa stroke, geniş bore bir tekli pnomatik silindirin segmanını söküp yay koyun, dikine bağlayın olsun bitsin.

Benim gibi yine bir tornacı macerası yaşamayın.

Kod:
Sub Probe(CurrentToolNum)                                                                'The tool change and probing sub-routine
XPos = 12                                                                                'X-M.C. of the fixed touch plate
YPos = 612
ZPos = 154                                                                                'Y-M.C. of the fixed touch plate
ZProbeStart = -100.00                                                                    'Z-M.C. Height above fixed touch plate, where the probing starts
ZProbeMax = -165.00                                                                        'Z-M.C. The probe is supposed to touch, before this depth is reached. If if does it's an error, or tool is not in spindle.
ZRetract = 2.00                                                                            'Must be a positive value! Number of units to retract the Z-axis between 1.st and 2.nd probe sequence
ProbeFeed1 = 300                                                                        'Feed of the first probe run
ProbeFeed2 = 50                                                                            'Feed at the second probe run, to get a more precise measurement
XYZFeed = 850

CurrentFeedRate = GetOEMDRO(818)                                                        'Read the current feed rate

Code "G01 F" & XYZFeed
Code "G53 G00 Z" & ZPos
Code "G53 G00 X" & XPos & "Y" & YPos                                                    'Move tool over the touch plate location
While IsMoving
Sleep(100)
Wend

SetOEMDRO(802, 0.0000)                                                                    'Reset the Z-axis Work DRO to 0.0, now both M.C. and work coordinates are 0.0
Sleep (250)                                                                                'Wait for DRO to update

'---First probe run---
Code "G53 G00 Z" & ZProbeStart                                                            'M.C. Rapid down to probe starting position
While IsMoving
Sleep(100)
Wend
Code "G01 F" & ProbeFeed1                                                                'Change the feedrate
Code "G31 Z" & ZProbeMax                                                                'Do the actual probing, at 1.st feed rate.
While IsMoving()                                                                        'Wait for probing to finish.
Wend                                                                                    'End of while loop
ProbeDist = GetVar(2002)                                                                'Read the z-axis value of probe touch point

'---2.nd probe run with reduced speed---
Code "G00 Z" & ProbeDist + ZRetract                                                        'Retract "ZRetract" units before starting 2.nd probe
Code "G01 F" & ProbeFeed2                                                                'Change the feedrate
Code "G31 Z" & ZProbeMax                                                                'Do the actual probing, at 2.nd feed rate.
While IsMoving()                                                                        'Wait for probing to finish.
Wend                                                                                    'End of while loop
ProbeDist2 = GetVar(2002)                                                                'Read the z-axis value of probe touch point

SetToolParam(CurrentToolNum,2,ProbeDist2+150)                                            ' Set Current Tool number, with parameter 2 = Z offset, to the ProbeDist + 150)

End Sub
 

Forum istatistikleri

Konular
128,108
Mesajlar
915,034
Kullanıcılar
449,808
Son üye
Baharnev

Yeni konular

Geri
Üst