Mach3’te Döner Magazin ATC Makrosu Nasıl Yazılır ve Takım Numarası Nasıl Takip Edilir?

📑 İçindekiler (Tıkla Aç)
Mach3‘te döner magazin ATC makrosu yazmak, tezgahın otomatik takım değiştirme yeteneğini kazandırmak için kritik bir adımdır. Bu işlem, genellikle M6 koduna entegre edilen VB Script tabanlı özel makrolar aracılığıyla gerçekleştirilir ve takım numarası takibi, Mach3’ün dahili değişkenleri ile magazin pozisyon sensörleri kullanılarak sağlanır.
Mach3’te Döner Magazin ATC Makrosu Nasıl Yazılır ve Takım Numarası Nasıl Takip Edilir? Nedir?
Endüstriyel otomasyon sistemlerinde, özellikle CNC tezgahlarında, verimliliği ve otonomiyi artırmanın en temel yollarından biri Otomatik Takım Değiştirici (ATC) sistemlerinin entegrasyonudur. Mach3 kontrol yazılımı, esnek yapısı sayesinde, kullanıcıların kendi özel ihtiyaçlarına göre ATC sistemlerini programlamasına olanak tanır. Döner magazinli bir ATC sistemi için makro yazmak, standart M6 takım değiştirme komutunun ötesine geçerek, magazin indekslemesi, takım kavrama/bırakma ve takım pozisyonu doğrulama gibi karmaşık adımları otomatize etmeyi hedefler. Bu süreçte, Mach3’ün dahili değişkenleri (örneğin, CurrentTool ve NewTool) ile tezgahın fiziki sensörlerinden gelen geri bildirimler eşgüdümlü bir şekilde kullanılarak takım numarası takibi yapılır ve doğru takımın doğru zamanda tezgaha yüklenmesi sağlanır. Bu, hem üretim sürekliliği hem de işleme hassasiyeti açısından hayati öneme sahiptir.
Çalışma Prensibi ve Teknik Veriler
Mach3, takım değiştirme işlemlerini yönetmek için esasen M6 G kodunu kullanır. Ancak, standart M6 işlevi genellikle basit manuel takım değişimlerini veya doğrusal takım magazini sistemlerini destekler. Döner magazinler, takımları dairesel bir düzenekte depoladıkları ve istenen takımı iş milinin değişim pozisyonuna getirmek için döner bir eksen (genellikle A-ekseni veya özel bir motor) kullanmaları gerektiği için daha karmaşık bir makroya ihtiyaç duyarlar. Bu makro, Mach3’ün VB Script motoru kullanılarak yazılır ve M6Start.m1s veya doğrudan M6.m1s dosyası olarak kaydedilir. Bu dosya, M6 komutu çağrıldığında otomatik olarak çalışır.
Makronun temel çalışma prensibi, istenen yeni takım numarasını (NewTool değişkeni) mevcut takım numarası (CurrentTool değişkeni) ile karşılaştırmak ve döner magazini yeni takımın potu iş milinin değişim pozisyonuna gelene kadar döndürmektir. Bu işlem genellikle aşağıdaki adımları içerir:
- Hazırlık Aşaması: Makro, tezgahın güvenli bir takım değiştirme pozisyonuna (Tool Change Position) hareket etmesini sağlar. Bu pozisyon genellikle Z ekseninin maksimum yüksekliğinde ve XY eksenlerinin sabit bir noktasındadır.
- Mevcut Takımın Boşaltılması (Opsiyonel): Eğer iş milinde zaten bir takım varsa ve yeni takım isteniyorsa, mevcut takımın magazindeki yerine geri bırakılması veya bir boş pota yerleştirilmesi gerekebilir. Bu, takım sıkma/gevşetme mekanizmasının (genellikle pnömatik) ve uygun sensörlerin kontrolünü gerektirir.
- Yeni Takımın Konumlandırılması: Makro, NewTool değerini okur ve magazin üzerindeki takım potlarının fiziksel düzenine göre hedef takımın hangi potta olduğunu belirler. Bu genellikle bir dizi döngüsel hesaplama veya önceden tanımlanmış bir dizin tablosu (Array) aracılığıyla yapılır. Magazinin dönme ekseni (örn. A-ekseni), hedef takım potu değişim pozisyonuna gelene kadar döndürülür. Bu dönme işlemi, adım motorları veya servo motorlar aracılığıyla kontrol edilir ve pozisyon doğruluğu için enkoder geri beslemesi veya yaklaşım sensörleri kullanılabilir.
- Takım Doğrulama: Hedef takım potu değişim pozisyonuna geldiğinde, bir veya daha fazla sensör (örneğin, takım potu algılama sensörü, takım var/yok sensörü) kullanılarak doğru takımın geldiği ve potun hazır olduğu doğrulanır.
- Yeni Takımın Yüklenmesi: İş mili, takım sıkma/gevşetme mekanizmasını kullanarak yeni takımı magazinden alır. Bu adımda, takımın doğru bir şekilde kavrandığından emin olmak için sensör geri bildirimi hayati öneme sahiptir.
- Takım Numarası Güncellemesi: Takım başarıyla yüklendikten sonra, Mach3’ün dahili CurrentTool değişkeni NewTool değerine güncellenir. Bu, Mach3’ün hangi takımın iş milinde olduğunu bilmesini sağlar.
- Takım Ofsetlerinin Uygulanması: Yüklenen takım için kaydedilmiş uzunluk ve çap ofsetleri (G43, G44, D kodları ile) otomatik olarak uygulanır. Bu, genellikle bir takım boyu ölçme probu ile entegre edilerek daha otomatik hale getirilebilir.
- Makro Sonu: Makro tamamlandıktan sonra, G kodu programı kaldığı yerden devam eder.
Makro içinde kullanılan kritik Mach3 VB Script fonksiyonları şunlardır:
- Code(“G Kodu”): Mach3’e G kodu göndermek için kullanılır (örn. Code(“G0 Z100”)).
- DoSpinCW() / DoSpinCCW(): İş milini döndürmek için.
- ActivateSignal(OEM_CODE) / DeActivateSignal(OEM_CODE): Dijital çıkışları kontrol etmek için (örn. pnömatik valfler).
- IsMoving(): Tezgahın hareket edip etmediğini kontrol etmek için.
- Sleep(milliseconds): Belirli bir süre beklemek için.
- GetOEMDRO(OEM_CODE) / SetOEMDRO(OEM_CODE): OEM DRO (Digital Readout) değerlerini okumak/yazmak için. Bu, özel durum değişkenlerini veya magazin pozisyonlarını saklamak için kullanılabilir.
- Message(“Mesaj”): Kullanıcıya bilgi veya hata mesajı göstermek için.
Takım numarası takibi, Mach3’ün Takım Tablosu (Tool Table) ile entegre çalışır. Her takım, kendine ait bir numaraya, uzunluk ofsetine ve çap ofsetine sahiptir. Makro, NewTool değişkenini kullanarak bu tablodan ilgili takımın verilerini çeker ve uygular. Magazinin fiziksel pozisyonu ile takım numaraları arasındaki eşleşme, makro içinde mantıksal olarak tanımlanmalıdır. Örneğin, pot 1’in takım 1’i, pot 2’nin takım 5’i tuttuğu gibi bir haritalandırma yapılabilir. Bu haritalandırma genellikle bir dizi (Array) veya bir dizi if-else yapısı ile yönetilir.
| Parametre | Değer/Açıklama |
|---|---|
| Makro Dili | VB Script (VBA) |
| Ana Makro Dosyası | M6Start.m1s veya M6.m1s |
| Takım Numarası Değişkenleri | NewTool (Hedef Takım), CurrentTool (Mevcut Takım) |
| Magazin Kontrol Yöntemi | A-Ekseni (Rotary Axis) veya Özel Step/Servo Motor Kontrolü |
| Sensör Tipleri | Yaklaşım Sensörleri (Takım Potu Algılama), Optik Sensörler (Magazin İndeksleme), Basınç Sensörleri (Pnömatik Kontrol) |
| Kritik VB Script Komutları | Code(), ActivateSignal(), Sleep(), Message(), GetOEMDRO(), SetOEMDRO() |
| Gereken Donanım | Döner Magazin Ünitesi, Takım Tutucular, Pnömatik Mekanizma (Sıkma/Gevşetme), İndeksleme Motoru, Sensörler, Takım Boyu Probu (Opsiyonel) |
| Güvenlik Protokolleri | Acil Durum Durdurma (E-Stop), Takım Düşme Algılama, Çarpma Önleme |

Sahada Dikkat Edilmesi Gerekenler
- Mekanik Hassasiyet ve Kalibrasyon: Döner magazin sisteminin mekanik hassasiyeti, takım değişiminin başarısı için kritik öneme sahiptir. Magazin indeksleme doğruluğu, takım tutucu toleransları ve iş mili ile magazin arasındaki hizalama mükemmel olmalıdır. Takım değiştirme pozisyonunun (Tool Change Position) milimetrenin yüzde birleri düzeyinde kalibre edilmesi, takımın sorunsuz bir şekilde kavranıp bırakılmasını sağlar. Periyodik kalibrasyon kontrolleri ve mekanik boşluk (backlash) ayarları ihmal edilmemelidir.
- Sensör Doğruluğu ve Güvenilirliği: Takım magazini üzerinde bulunan yaklaşım, optik veya manyetik sensörler, takım potu pozisyonunu, takımın varlığını/yokluğunu ve takımın doğru şekilde oturduğunu doğrulamak için kullanılır. Bu sensörlerin doğru bir şekilde konumlandırılması, elektriksel parazitten korunması ve düzenli olarak test edilmesi gerekir. Bir sensörün arızalanması veya yanlış okuma yapması, takım düşmesine, tezgaha zarar vermeye veya hatalı işleme yol açabilir. Her pot için “takım var” sensörü ve magazin indeksleme için “ev (home)” veya “referans” sensörleri zorunludur.
- Pnömatik Sistem Kontrolü ve Güvenliği: Takım sıkma/gevşetme mekanizması genellikle pnömatik sistemlerle çalışır. Hava basıncının sürekli ve yeterli seviyede olması, pnömatik valflerin hızlı ve doğru tepki vermesi gereklidir. Hava kaçağı veya düşük basınç, takımın tam olarak sıkılamamasına veya gevşetilememesine neden olabilir, bu da takımın işleme sırasında fırlamasına veya değişim sırasında düşmesine yol açar. Güvenlik için, takım sıkma basıncını izleyen bir sensör entegrasyonu ve düşük basınç durumunda makineyi durduracak bir güvenlik protokolü uygulanmalıdır.
- Acil Durum Prosedürleri ve Manuel Müdahale: Otomatik sistemlerde her zaman beklenmedik durumlar ortaya çıkabilir. Bu nedenle, makro içinde acil durdurma (E-Stop) durumlarında güvenli bir şekilde nasıl davranılacağı veya manuel olarak takım değişimi gerektiğinde hangi adımların izleneceği net bir şekilde tanımlanmalıdır. Kullanıcı dostu hata mesajları ve operatörün sorunu gidermek için atabileceği adımları belirten talimatlar makroya dahil edilmelidir. Makinenin manuel kontrol modunda takım değişimine izin veren veya magazin pozisyonunu manuel olarak ayarlayabilen arayüzler sunulmalıdır.
- Makro Optimizasyonu ve Kapsamlı Test: Yazılan makronun her senaryoda (ilk takım yükleme, takım değiştirme, aynı takımı tekrar çağırma, magazin boşken takım çağırma vb.) doğru çalıştığından emin olmak için kapsamlı testler yapılmalıdır. Makronun döngü süreleri optimize edilmeli, gereksiz beklemeler kaldırılmalı ve en verimli takım değişim akışı sağlanmalıdır. Hata ayıklama (debugging) sürecinde Mach3’ün diagnostic ekranı ve Message() komutu aktif olarak kullanılmalıdır.
- Takım Ofset Yönetimi ve Otomatik Boy Ölçümü: Döner magazin sistemlerinde farklı boylarda takımlar kullanılacağı için, takım boyu ofsetlerinin doğru yönetimi kritik öneme sahiptir. Bir takım boyu ölçme probunun sisteme entegrasyonu, her takım değişiminden sonra veya belirli aralıklarla takım boyunu otomatik olarak ölçerek ofsetleri güncellemeyi sağlar. Bu, manuel ölçüm hatalarını ortadan kaldırır ve işleme hassasiyetini artırır. Makro, bu probu kullanarak ölçüm yapma ve Mach3’ün takım tablosunu güncelleme yeteneğine sahip olmalıdır.

Sık Karşılaşılan Sorunlar ve Çözümleri
Döner magazin ATC makrosu geliştirirken ve kullanırken karşılaşılan bazı yaygın sorunlar ve çözüm önerileri şunlardır:
- Takım Değişiminde Hata (Yanlış Takım Takma, Takım Düşmesi): Bu genellikle mekanik hizalama sorunları, sensör arızaları veya makro logic’indeki eksikliklerden kaynaklanır.
- Çözüm: Takım değiştirme pozisyonunu hassas bir şekilde kalibre edin. Magazin indeksleme motorunun adım/darbe ayarlarını kontrol edin. Takım potu algılama ve takım var/yok sensörlerinin bağlantılarını ve çalışma durumlarını test edin. Makro içinde, her adımda sensör geri bildirimlerini kontrol eden ek güvenlik koşulları (if-then) ekleyin. Pnömatik sıkma/gevşetme basıncını kontrol edin.
- Magazin İndeksleme Problemleri (Yanlış Pozisyona Gelme, Titreme): Magazinin istenen takım potuna doğru bir şekilde gelmemesi veya pozisyonunda titremesi, step/servo motor ayarları, geri besleme eksikliği veya mekanik sürtünmeden kaynaklanabilir.
- Çözüm: Magazin ekseni için motor tuning ayarlarını (hız, ivme, adım/mm) optimize edin. Eğer geri beslemeli bir sistemse (servo), enkoder bağlantılarını ve PID ayarlarını kontrol edin. Mekanik sürtünmeyi azaltmak için yağlama yapın. Magazin ev (home) sensörünün ve pot pozisyon sensörlerinin doğru çalıştığından emin olun. Gerekirse, her indeksleme sonrası mikro adımlarla ince ayar yapan bir “fine-tuning” rutini makroya ekleyin.
- Pnömatik Hatalar (Takım Sıkışması, Yavaş Tepki): Takım tutucunun sıkma veya gevşetme işlemini yapmaması, yavaş yapması veya sıkışması.
- Çözüm: Hava basıncını kontrol edin ve yeterli olduğundan emin olun. Pnömatik valflerin elektrik bağlantılarını ve bobinlerini test edin. Hava hortumlarında kaçak olup olmadığını kontrol edin. Takım tutucu mekanizmasının kirlilik veya aşınma nedeniyle sıkışıp sıkışmadığını gözden geçirin, gerekli bakımı yapın. Makro içinde pnömatik aktivasyon sürelerini (Sleep komutları ile) yeterince uzun tutun.
- Makro Çalışmama veya Hata Mesajları: Makronun hiç çalışmaması, syntax hataları vermesi veya beklenmedik hatalar üretmesi.
- Çözüm: VB Script kodunu bir metin düzenleyicide (örneğin Notepad++) açarak syntax hatalarını kontrol edin. Mach3’ün OEM kodlarının ve değişken isimlerinin doğru kullanıldığından emin olun. Makro adının (M6Start.m1s, M6.m1s) doğru olduğundan ve Mach3’ün makro klasöründe bulunduğundan emin olun. Hata mesajlarını dikkatlice okuyun ve ilgili satırları kontrol edin. Message() komutunu kullanarak makronun farklı noktalarında durum bilgilerini ekrana yansıtarak hata ayıklama yapın.
- Takım Boyu Ofset Problemleri: Takım değişiminden sonra Z ekseninde yanlış pozisyonlama veya çarpma.
- Çözüm: Mach3’ün takım tablosundaki (Tool Table) takım boyu ofsetlerinin doğru girildiğinden emin olun. G43 Hx komutunun G kodunda doğru kullanıldığını kontrol edin. Eğer otomatik takım boyu probu kullanılıyorsa, probun kalibrasyonunu ve makro içindeki ölçüm rutinini gözden geçirin. CurrentTool değişkeninin doğru güncellendiğinden emin olun, çünkü ofsetler bu değişkene göre atanır.
Uzman Tavsiyesi
Mach3 kontrol yazılımı ile döner magazinli bir Otomatik Takım Değiştirici (ATC) sistemini entegre etmek, CNC tezgahınızın verimliliğini ve otomasyon seviyesini radikal bir şekilde artırır. Ancak bu süreç, basit bir G kodu programlamasının ötesinde, VB Script bilgisi, mekanik sistemler hakkında derinlemesine anlayış ve elektronik kontrol prensiplerine hakimiyet gerektiren karmaşık bir mühendislik görevidir. Başarılı bir ATC makrosu yazmak, sadece doğru komutları bir araya getirmekle kalmaz, aynı zamanda tezgahın fiziksel sınırlarını, sensör geri bildirimlerini ve olası arıza senaryolarını da hesaba katan sağlam bir mantık yapısı gerektirir. Saha tecrübemiz, bu tür projelerde en kritik adımların, başlangıçtaki detaylı planlama, titiz mekanik kurulum ve kalibrasyon ile kapsamlı test süreçleri olduğunu göstermektedir. Makronun her bir adımının, potansiyel güvenlik riskleri göz önünde bulundurularak tasarlanması ve uygulanması zorunludur. Takım düşmesi, çarpma veya tezgahın zarar görmesi gibi olumsuz durumları önlemek için, sensör tabanlı güvenlik kilitlemeleri (interlock) ve acil durum prosedürleri makroya mutlaka dahil edilmelidir. Uzman tavsiyesi olarak, bu tür karmaşık sistemlerin entegrasyonuna başlamadan önce, Mach3’ün VB Script dokümantasyonunu detaylıca incelemek, örnek makroları analiz etmek ve mümkünse daha önce benzer sistemleri kurmuş profesyonellerden destek almak faydalı olacaktır. Ayrıca, küçük adımlarla ilerlemek, her bir fonksiyonu ayrı ayrı test etmek ve sistemi aşamalı olarak inşa etmek, hata ayıklama sürecini çok daha yönetilebilir hale getirecektir. Unutmayın ki, iyi tasarlanmış ve güvenilir bir ATC sistemi, uzun vadede üretim maliyetlerini düşürürken, kaliteyi ve operasyonel güvenliği önemli ölçüde artıracaktır.


