Cnc Router imalatı

Mach3 Macro İçinde GetSelectedTool ve GetCurrentTool Farkı Nedir?

9 dk okuma Mermak CNC Teknik İçerik
Mach3 Macro İçinde GetSelectedTool ve GetCurrentTool Farkı Nedir?
İçindekiler
  1. Mach3 Macro İçinde GetSelectedTool ve GetCurrentTool Farkı Nedir? Nedir?
  2. Çalışma Prensibi ve Teknik Veriler
  3. Sahada Dikkat Edilmesi Gerekenler
  4. Sık Karşılaşılan Sorunlar ve Çözümleri
  5. Uzman Tavsiyesi

Mach3 makrolarında GetSelectedTool() fonksiyonu, G kodunda veya MDI’da bir sonraki işlem için komut edilmiş veya seçilmiş takım numarasını döndürürken, GetCurrentTool() fonksiyonu milde fiziksel olarak takılı olan mevcut takım numarasını döndürür. Yani, biri gelecekteki niyeti, diğeri anlık fiziksel durumu ifade eder.

Mach3 Macro İçinde GetSelectedTool ve GetCurrentTool Farkı Nedir? Nedir?

 

Endüstriyel otomasyon ve CNC işleme dünyasında, özellikle Mach3 gibi popüler kontrol yazılımları kullanılırken, takım yönetimi kritik bir rol oynar. Bu yönetimde karşılaşılan temel kavramlardan ikisi GetSelectedTool() ve GetCurrentTool() fonksiyonlarıdır. Bu iki fonksiyon, ilk bakışta benzer gibi görünse de, aslında farklı anlarda ve farklı amaçlar için bilgi sağlarlar ve makro programlamada doğru kullanımları büyük önem taşır.

GetSelectedTool() fonksiyonu, Mach3 kontrol yazılımında bir sonraki operasyon için hedeflenen veya seçilen takım numarasını almanızı sağlar. Bu değer, genellikle G kodunda bir T komutu (örneğin, T1 takım 1’i seçer) veya Manuel Veri Girişi (MDI) ekranından yapılan bir seçimle belirlenir. Önemli olan nokta, bu fonksiyonun, takımın henüz fiziksel olarak mile takılmamış olabileceği bir durumda bile, Mach3’ün bir sonraki adımda hangi takımı kullanmayı planladığını belirtmesidir. Yani, bir nevi “istek listesindeki” takım numarasıdır.

Öte yandan, GetCurrentTool() fonksiyonu, milde fiziksel olarak takılı olan takım numarasını döndürür. Bu değer, bir takım değiştirme işlemi (genellikle bir M6 makrosu ile) başarıyla tamamlandıktan sonra güncellenir. Eğer milde herhangi bir takım takılı değilse (boşsa), bu fonksiyon genellikle 0 değerini döndürür. Bu fonksiyon, makine operatörünün veya otomatik takım değiştirici (ATC) sisteminin, o an hangi takımın aktif olarak işleme hazır olduğunu teyit etmesi için kullanılır. Bu, “elinizde tuttuğunuz” takım numarasıdır.

Bu iki fonksiyon arasındaki temel farkı anlamak, özellikle otomatik takım değiştiricilere (ATC) sahip CNC makinelerinin programlanmasında ve takım ofsetlerinin doğru bir şekilde yönetilmesinde hayati öneme sahiptir. Yanlış anlaşılmaları veya kullanımları, hatalı işlemeye, takım kırılmasına veya hatta makineye zarar verme potansiyeline yol açabilir.

Çalışma Prensibi ve Teknik Veriler

Mach3, G kodu komutlarını işlerken ve takım değiştirme operasyonlarını yönetirken bu iki fonksiyonu farklı aşamalarda değerlendirir. Bir CNC programında T1 M6 gibi bir komut dizisiyle karşılaşıldığında, süreç şu şekilde işler:

  1. Mach3, T1 komutunu okuduğunda, dahili olarak “seçilen takımın” 1 olduğunu kaydeder. Bu aşamada, GetSelectedTool() fonksiyonu çağrılırsa 1 değerini döndürür. Ancak milde hala önceki takım (veya hiç takım yoksa 0) takılıdır, dolayısıyla GetCurrentTool() fonksiyonu çağrılırsa 1‘den farklı bir değer (örneğin 0 veya önceki takım numarası) döndürür.
  2. Ardından M6 komutu gelir. Mach3, M6 komutunu işlemek için genellikle tanımlanmış bir makro dosyasını (örneğin, M6Start.m1s) çalıştırır. Bu makro içinde, otomatik takım değiştiricinin fiziksel hareketlerini, takımın yerinden çıkarılmasını, yeni takımın (GetSelectedTool() tarafından belirtilen) magazinden alınmasını ve mile takılmasını sağlayan VBScript kodları bulunur.
  3. Takım değiştirme makrosu, GetSelectedTool()‘dan gelen değeri kullanarak hangi takımın takılması gerektiğini bilir. Makro, fiziksel takım değişimi tamamlandıktan sonra Mach3’e takımın başarıyla değiştiğini bildirir. Bu bildirimle birlikte veya makronun sonunda, Mach3 dahili olarak GetCurrentTool() değerini günceller. Artık GetCurrentTool() fonksiyonu da 1 değerini döndürecektir.

Bu süreç, takım ofsetlerinin (uzunluk ofseti, çap ofseti vb.) doğru bir şekilde uygulanması için de kritik öneme sahiptir. Genellikle, takım değiştirme makrosu içinde, GetSelectedTool() tarafından belirtilen yeni takımın ofsetleri takım tablosundan okunur ve uygulanır. Bu, takımın doğru Z derinliğinde ve XY konumunda çalışmasını sağlar.

ParametreGetSelectedTool()GetCurrentTool()
TanımG kodunda veya MDI’da belirtilen, bir sonraki operasyon için hedeflenen takım numarası.Milde fiziksel olarak takılı olan aktif takım numarası.
AmacıHangi takımın hazırlanması veya değiştirilmesi gerektiğini bildirmek.Mevcut operasyon için hangi takımın kullanıldığını doğrulamak.
Güncellenme ZamanıT komutu okunduğunda veya MDI’dan manuel seçim yapıldığında.Takım değiştirme makrosu (M6) başarıyla tamamlandığında ve fiziksel değişim gerçekleştikten sonra.
Değer AralığıGenellikle 0 (takım seçilmemiş) veya pozitif tamsayı (takım numarası).Genellikle 0 (mil boş) veya pozitif tamsayı (takım numarası).
Kullanım AlanıTakım değiştirme makrolarında (M6) hangi takımın takılacağını belirlemek, ofsetleri yüklemek.Takım değiştirme sonrası doğrulama, takım takılı değilse güvenlik kontrolü.
BağımlılıkG kodu veya MDI girişi.Takım değiştirme makrosunun (M6) doğru çalışmasına ve Mach3’ün dahili durumuna.
Örnek SenaryoT5 M6 komutundan sonra M6 makrosu içinde GetSelectedTool() = 5.M6 makrosu tamamlandıktan sonra milde 5 numaralı takım takılıysa GetCurrentTool() = 5.
Mach3 Macro İçinde GetSelectedTool ve GetCurrentTool Farkı Nedir?

Sahada Dikkat Edilmesi Gerekenler

  • Sıralama ve Zamanlama: Takım değiştirme makrolarını yazarken, GetSelectedTool() fonksiyonunu makronun başında çağırmak ve hangi takımın takılacağını belirlemek esastır. GetCurrentTool() ise takım değiştirme işlemi tamamlandıktan sonra, yeni takımın gerçekten takılıp takılmadığını doğrulamak için kontrol edilmelidir. Bu sıralama, makinenin doğru takımla çalışmasını garantiler. Örneğin, bir M6 makrosu içinde Dim newTool As Long = GetSelectedTool() ile başlanmalı, sonra fiziksel değişim gerçekleştirilmeli ve en son If GetCurrentTool() = newTool Then ... gibi bir kontrol ile doğrulama yapılmalıdır.
  • Otomatik Takım Değiştiriciler (ATC): Karmaşık ATC sistemlerinde, bu iki fonksiyon arasındaki farkı anlamak hayati önem taşır. ATC, GetSelectedTool() tarafından belirtilen takımı magazinden alır ve mile takar. Bu süreç boyunca, GetCurrentTool() değeri eski takımı gösterirken, değişim tamamlandığında yeni takımı göstermeye başlar. Makro, sensörler ve limit anahtarları ile bu fiziksel değişimi takip etmeli ve Mach3’e doğru zamanda bilgi vermelidir.
  • Takım Ofsetleri Yönetimi: Her takımın kendine özgü uzunluk, çap ve köşe yarıçapı gibi ofset değerleri vardır. Bu ofsetler, işleme doğruluğu için kritik öneme sahiptir. Takım değiştirme makrosu içinde, GetSelectedTool() ile yeni takım numarası alındıktan hemen sonra, Mach3’ün takım tablosundan (Tool Table) ilgili ofset değerleri okunmalı ve sistemde aktif hale getirilmelidir. Bu, takımın doğru Z derinliğinde çalışmasını sağlar ve çarpışmaları önler. Örneğin, Call SetToolLength(newTool) gibi bir komut bu aşamada kullanılabilir.
  • Hata Yönetimi ve Güvenlik: Takım değiştirme sırasında herhangi bir sorun (takım düşmesi, sensör hatası, mekanik sıkışma vb.) yaşanabilir. Makrolar, bu tür durumları algılayacak şekilde tasarlanmalı ve gerektiğinde makineyi güvenli bir duruma getirmelidir. GetCurrentTool() değerinin, beklenen GetSelectedTool() değeriyle eşleşip eşleşmediğini kontrol etmek, hatalı bir takım takıldığında sistemi durdurmak için basit ama etkili bir güvenlik önlemidir. Eşleşmeme durumunda hata mesajı verilmeli ve operasyon durdurulmalıdır.
  • Manuel Takım Değişimi: Otomatik takım değiştirici olmayan makinelerde, operatör takımı manuel olarak değiştirir. Bu durumda, operatörün doğru takımı taktığından emin olmak için GetCurrentTool() değeri önemlidir. Mach3 arayüzünde manuel takım değişimi yapıldığında, kontrol yazılımının bu değişikliği doğru bir şekilde yansıttığından emin olunmalıdır. Gerekirse, makro içinde operatöre manuel doğrulama adımları sunulabilir.
Mach3 Macro İçinde GetSelectedTool ve GetCurrentTool Farkı Nedir?

Sık Karşılaşılan Sorunlar ve Çözümleri

Mach3 makrolarında GetSelectedTool() ve GetCurrentTool() kullanımıyla ilgili sıkça karşılaşılan sorunlar ve bu sorunlara yönelik çözüm önerileri aşağıda listelenmiştir:

  • Sorun: Yanlış Takım Yükleme veya Ofset Kullanımı.

    Açıklama: Takım değiştirme makrosu, GetSelectedTool()‘dan gelen değeri kullanarak yanlış takımı magazinden almaya çalışır veya doğru takımı taksa bile yanlış ofsetleri yükler. Bazen, makro GetCurrentTool() değerini kontrol etmediği için fiziksel olarak yanlış bir takım takılsa bile işlem devam eder.

    Çözüm: Makro içinde her iki fonksiyonun değerini de doğru zamanda kontrol edin. Takım değiştirme makrosu, GetSelectedTool() ile hedeflenen takımı aldıktan sonra, fiziksel değişim tamamlandığında GetCurrentTool() değerini kontrol etmelidir. Eğer GetSelectedTool() değeri ile GetCurrentTool() değeri eşleşmiyorsa, makineyi durdurun ve bir hata mesajı görüntüleyin. Ayrıca, takım ofsetlerini yüklerken her zaman GetSelectedTool() tarafından belirtilen takım numarasına ait ofsetleri kullandığınızdan emin olun.

  • Sorun: Takım Değişim Makrosu Hataları ve Senkronizasyon Kaybı.

    Açıklama: Takım değiştirme makrosu (M6) bir hata nedeniyle tamamlanamaz veya fiziksel takım değişimi gerçekleşmez, ancak Mach3 dahili olarak GetCurrentTool() değerini günceller (veya tam tersi, fiziksel değişim olur ama Mach3 güncellemez).

    Çözüm: M6 makrosunu dikkatlice test edin ve hata ayıklayın. Makro içinde sensör geri bildirimlerini (takım varlığı, magazinde takım konumu vb.) kullanarak fiziksel değişimin her adımını doğrulayın. Makro, fiziksel değişim başarılı olmadan GetCurrentTool() değerinin güncellenmesini tetiklememelidir. Gerekirse, makronun sonuna bir DoOEMButton(1021) komutu ekleyerek Mach3’ün takım tablosunu ve mevcut takım durumunu yeniden yüklemesini sağlayabilirsiniz. Ayrıca, makro içinde yeterli loglama yaparak hangi aşamada ne olduğunu takip edin.

  • Sorun: Manuel Takım Değişiminde Karışıklık.

    Açıklama: Operatör manuel olarak takım değiştirir ancak Mach3 arayüzündeki veya dahili GetCurrentTool() değeri güncellenmez, bu da yanlış ofsetlerin kullanılmasına neden olur.

    Çözüm: Manuel takım değişimi yapıldığında, operatörün Mach3 arayüzünde “Set Current Tool” (Mevcut Takımı Ayarla) düğmesini kullanarak veya MDI’dan T[takım_numarası] komutunu girerek Mach3’e güncel takım numarasını bildirmesi gerekir. Otomatik değişim olmayan sistemlerde, bir M6 makrosu yazarak operatöre takımı değiştirmesi için talimat verilebilir ve ardından operatörün onayı ile SetCurrentTool(GetSelectedTool()) komutu manuel olarak çalıştırılarak Mach3’ün dahili durumu güncellenebilir.

  • Sorun: Takım Numarası 0 Olarak Görünüyor (Empty Spindle).

    Açıklama: Milde bir takım takılı olmasına rağmen GetCurrentTool() 0 değerini döndürür veya tersi.

    Çözüm: Makine başlangıcında veya bir sorun sonrası Ref All Home işlemi yaparak tüm eksenleri referans noktalarına getirin. Bu, Mach3’ün dahili durumunu sıfırlayabilir ve takım durumunu doğru bir şekilde algılamasına yardımcı olabilir. Ayrıca, takım varlık sensörlerinin (eğer varsa) doğru çalıştığından ve Mach3’e doğru geri bildirim verdiğinden emin olun. Makro içinde DoOEMButton(1021) veya SetCurrentTool(0) ardından SetCurrentTool(beklenen_takım) gibi komutlarla durumu zorla güncellemeyi deneyebilirsiniz.

Uzman Tavsiyesi

Mach3 makro programlamasında GetSelectedTool() ve GetCurrentTool() fonksiyonları, takım yönetiminin temel taşlarıdır ve birbiriyle tamamlayıcı roller üstlenirler. GetSelectedTool(), Mach3’ün bir sonraki adımda hangi takımı kullanmayı planladığını (komut edilen takım) gösterirken, GetCurrentTool() milde fiziksel olarak takılı olan takımı (gerçekleşen durum) yansıtır. Bu ayrımı derinlemesine anlamak, özellikle otomatik takım değiştiricilere sahip CNC makinelerinde güvenli, verimli ve hatasız işleme operasyonları gerçekleştirmek için hayati öneme sahiptir.

Saha tecrübelerimize dayanarak, bu iki fonksiyonun doğru ve zamanında kullanılmamasının, takım kırılmalarından parça hurdaya çıkmasına, hatta makineye ciddi zararlar verilmesine kadar geniş bir yelpazede sorunlara yol açtığını gözlemledik. Uzman tavsiyesi olarak, her zaman takım değiştirme makrolarınızı (M6) yazarken veya mevcut makroları incelerken aşağıdaki prensipleri göz önünde bulundurun:

  1. Açık Niyet, Net Durum: Makro içinde GetSelectedTool()‘u kullanarak Mach3’ün niyetini (hangi takımı istediğini) net bir şekilde belirleyin. Daha sonra, fiziksel takım değiştirme işlemi tamamlandıktan sonra GetCurrentTool() ile makinenin mevcut fiziksel durumunu (hangi takımın takılı olduğunu) doğrulayın. Bu iki değerin eşleştiğinden emin olmak, güvenlik zincirinin önemli bir halkasıdır.
  2. Kapsamlı Test ve Hata Ayıklama: Yeni bir takım değiştirme makrosu geliştirdiğinizde veya mevcut bir makroyu değiştirdiğinizde, bunu gerçek bir işleme operasyonuna başlamadan önce kapsamlı bir şekilde test edin. Farklı takım numaralarıyla, mil boşken, dolu iken ve olası hata senaryolarını (örneğin, manuel müdahale, sensör hatası simülasyonu) düşünerek testler yapın. Mach3’ün debug penceresini ve loglama özelliklerini kullanarak makro akışını adım adım izleyin.
  3. Güvenlik Protokolleri: Makronuzda her zaman güvenlik kontrolleri bulundurun. Örneğin, GetCurrentTool() değeri beklenenle eşleşmiyorsa veya bir takım değiştirme sensörü hata veriyorsa, makineyi acil duruma geçirin veya güvenli bir şekilde durdurun. Operatöre anlaşılır hata mesajları sunarak sorunu gidermesine yardımcı olun.
  4. Takım Ofsetleri ve Kalibrasyon: Takım ofsetlerinin, GetSelectedTool() tarafından belirtilen doğru takım numarasına göre yüklendiğinden ve aktif edildiğinden emin olun. Takım uzunluk sensörleri veya lazer prob sistemleri kullanıyorsanız, bunların kalibrasyonunun güncel olduğundan ve makro ile doğru bir şekilde entegre edildiğinden emin olun.
  5. Belgeleme ve Bilgi Paylaşımı: Yazdığınız makroları ve bunların çalışma prensiplerini detaylı bir şekilde belgeleyin. Bu, gelecekteki bakım, sorun giderme ve diğer operatörlerin veya mühendislerin sistemi anlaması için kritik öneme sahiptir.

Unutmayın ki, CNC otomasyonunda başarı, sadece doğru donanımı seçmekle değil, aynı zamanda bu donanımı kontrol eden yazılımın (Mach3 ve makroları gibi) inceliklerini tam olarak anlamak ve ustaca kullanmaktan geçer. GetSelectedTool() ve GetCurrentTool(), bu ustalığın temel göstergelerinden ikisidir.

⚙ Araçlar