Mach3‘te M6Start ve M6End makroları, M6 (takım değiştirme) G kodu komutu tetiklendiğinde otomatik olarak çalışan Visual Basic Script (VBS) dosyalarıdır. Takım değiştirme döngüsü, M6 T[yeni takım numarası] komutuyla başlar ve M6End makrosunun sorunsuz bir şekilde tamamlanmasıyla sona erer, bu süreç takımın güvenli ve otomatik olarak değiştirilmesini sağlar.
Mach3 M6Start ve M6End Makroları Nasıl Çalışır, Takım Değiştirme Döngüsü Nerede Başlar Nerede Biter? Nedir?
Endüstriyel otomasyon ve CNC işleme dünyasında, verimlilik ve hassasiyetin anahtarlarından biri, takım değiştirme işlemlerinin doğru ve güvenilir bir şekilde yönetilmesidir. Mach3 CNC kontrol yazılımı, bu süreç için özelleştirilebilir M6Start.m1s ve M6End.m1s adı verilen makroları kullanır. Bu makrolar, kullanıcı tanımlı Visual Basic Script (VBS) dosyaları olup, Mach3 kurulum klasörünüzdeki Mach3Macros<Profil Adı> dizininde bulunurlar. Bir G kodu programında M6 komutu (takım değiştirme) ile karşılaşıldığında, Mach3 otomatik olarak önce M6Start.m1s makrosunu çalıştırır. Bu makro genellikle iş milini durdurma, Z eksenini güvenli bir konuma çekme ve takım değiştirme pozisyonuna hareket etme gibi ön hazırlık işlemlerini yönetir. Manuel takım değiştirme (MTC) sistemlerinde genellikle bir duraklama (M0) komutu içererek operatörün müdahalesini beklerken, otomatik takım değiştirme (ATC) sistemlerinde takım magazini ile iletişime geçerek eski takımı bırakma ve yeni takımı alma komutlarını içerir. M6Start makrosu tamamlandıktan ve (manuel sistemlerde) operatör “Cycle Start” tuşuna bastıktan sonra, Mach3 bu kez M6End.m1s makrosunu çalıştırır. M6End makrosu ise yeni takımın uzunluk ofsetini uygulama (G43), iş milini tekrar başlatma, güvenli bir başlangıç pozisyonuna hareket etme ve işleme programının kaldığı yerden devam etmesini sağlama gibi sonlandırma işlemlerini gerçekleştirir. Bu iki makro, bir bütün olarak, takım değiştirme döngüsünün başlangıcından bitişine kadar olan tüm adımları programlanabilir ve otomatize edilebilir bir yapıya kavuşturur.
Çalışma Prensibi ve Teknik Veriler
Mach3’teki M6Start ve M6End makrolarının çalışma prensibi, CNC işleme süreçlerinin temelini oluşturan esneklik ve otomasyon ilkelerine dayanır. Bu makrolar, bir G kodu programında M6 T[yeni takım numarası] komutu algılandığında devreye girerek, takım değiştirme işlemini tamamen kontrol altına alır. Bu kontrol, basit bir manuel müdahaleden, karmaşık bir otomatik takım değiştirme (ATC) sisteminin yönetimini kapsayacak şekilde genişleyebilir.

M6Start.m1s Makrosunun Akışı ve Fonksiyonları
M6 komutuyla karşılaşıldığında, Mach3 ilk olarak M6Start.m1s dosyasını çalıştırır. Bu makronun temel amacı, takım değiştirme için güvenli ve hazırlıklı bir ortam sağlamaktır. Tipik bir M6Start makrosu aşağıdaki adımları içerebilir:
- Güvenlik Önlemleri: Programın mevcut hareket modlarını (G40, G49, G80 gibi) iptal eden komutlar genellikle ilk sıralarda yer alır. Bu, beklenmedik hareketleri önler.
- İş Mili Durdurma: M5 komutu ile iş mili güvenli bir şekilde durdurulur. Otomatik takım değiştirme sistemlerinde, takım değiştirme sırasında dönen bir iş mili ciddi güvenlik riski oluşturur.
- Z Ekseni Güvenli Konuma Hareket: G90 G53 G0 Z0 gibi komutlar kullanılarak Z ekseni, makine koordinat sistemindeki güvenli (genellikle en üst) pozisyona hareket ettirilir. Bu, takımın iş parçasına veya fikstürlere çarpmasını engeller.
- Takım Değiştirme Pozisyonuna Hareket: G90 G53 G0 X… Y… komutlarıyla takım, manuel değişim için operatörün kolayca erişebileceği bir pozisyona veya otomatik magazinin konumuna taşınır. Bu pozisyon, her makine için özel olarak belirlenir ve makine sıfır noktalarına göre ayarlanır.
- Manuel Takım Değiştirme İçin Duraklatma: Manuel takım değiştirme sistemlerinde, makro genellikle M0 (program duraklatma) komutunu içerir. Bu, operatörün eski takımı çıkarıp yeni takımı takması için zaman tanır. Operatör takımı değiştirdikten sonra “Cycle Start” tuşuna basarak programı devam ettirir.
- Otomatik Takım Değiştirme (ATC) İçin Komutlar: ATC sistemlerinde, M0 yerine takım magazini ile etkileşime geçen özel komutlar veya Mach3 API fonksiyonları kullanılır. Örneğin, DoSpinCW() veya DoSpinCCW() gibi fonksiyonlar iş mili oryantasyonu için kullanılabilirken, özel giriş/çıkış (I/O) pinleri aracılığıyla takım tutucu açma/kapama veya magazini döndürme komutları tetiklenebilir.
- Yeni Takım Numarasını Güncelleme: Makro içinde Call SetDro(2, NewToolNumber) gibi Mach3 API fonksiyonları kullanılarak yeni takım numarası Mach3 arayüzündeki ilgili göstergelere (DRO) yazılabilir.
- Hareket Bitene Kadar Bekleme: While IsMoving() Wend döngüsü, tüm eksen hareketlerinin tamamlandığından emin olmak için kullanılır, bu da bir sonraki adıma geçmeden önce makinenin sabitlenmesini sağlar.

M6End.m1s Makrosunun Akışı ve Fonksiyonları
M6Start makrosu tamamlandıktan ve (manuel sistemlerde) operatör “Cycle Start” tuşuna bastıktan sonra, Mach3 otomatik olarak M6End.m1s dosyasını çalıştırır. Bu makronun temel amacı, yeni takımın işleme başlaması için gerekli ayarlamaları yapmak ve programı güvenli bir şekilde kaldığı yerden devam ettirmektir.
- Takım Uzunluk Ofseti (TLO) Uygulama: En kritik adımlardan biri, yeni takımın uzunluk ofsetinin uygulanmasıdır. G43 H[ToolNumber] komutu, Mach3’ün takım tablosundan ilgili takımın uzunluk ofsetini okuyarak Z ekseni koordinatlarını buna göre ayarlamasını sağlar. Bu, farklı uzunluktaki takımlarla aynı Z sıfır noktasını kullanabilmek için hayati öneme sahiptir.
- Z Ekseni Çalışma Güvenli Mesafesine Dönüş: Takım ofseti uygulandıktan sonra, genellikle G00 Z… komutu ile Z ekseni, iş parçasına güvenli bir mesafeye veya programın kaldığı Z koordinatına yaklaştırılır.
- İş Mili Başlatma: M3 S[devir hızı] veya M4 S[devir hızı] komutlarıyla iş mili, programda belirtilen devir hızında tekrar çalıştırılır.
- Programa Devam Etme Pozisyonuna Hareket: G00 X… Y… komutları ile takım, programın kaldığı X ve Y koordinatlarına geri döner veya belirlenmiş güvenli bir başlangıç pozisyonuna gider.
- Referans Noktası Kullanımı: Bazı durumlarda, takım değiştirme sonrası makinenin referans noktalarına (home) dönmesi için G28 veya G30 gibi komutlar kullanılabilir, özellikle yüksek hassasiyet gerektiren uygulamalarda bu tercih edilebilir.
- Hareket Bitene Kadar Bekleme: Yine, While IsMoving() Wend döngüsü, tüm eksen hareketlerinin tamamlandığından emin olmak için kullanılır.

Takım Değiştirme Döngüsü Nerede Başlar Nerede Biter?
Takım değiştirme döngüsünün başlangıcı ve bitişi net bir şekilde tanımlanmıştır:
- Döngü Başlangıcı: G kodu programı içinde M6 T[yeni takım numarası] komutuyla başlar. Mach3 bu komutu gördüğünde, öncelikle M6Start.m1s makrosunu çalıştırmaya başlar.
- Döngü Bitişi: M6End.m1s makrosunun tüm adımlarının sorunsuz bir şekilde tamamlanmasıyla biter. M6End makrosu bittikten sonra, Mach3 ana G kodu programının bir sonraki satırını yürütmeye devam eder.
Bu yapı, operatörün veya otomatik sistemin, takım değiştirme işlemini tam kontrol altında tutmasını sağlarken, aynı zamanda işleme programının akışını kesintisiz bir şekilde devam ettirir. Her makine ve uygulama için bu makroların içeriği farklılık gösterebilir, bu da Mach3’ün esnekliğinin önemli bir göstergesidir.
| Parametre | Değer/Açıklama |
|---|---|
| M6 Kodu | G kodu programında takım değiştirme komutu. Genellikle M6 T[YeniTakımNumarası] formatında kullanılır. |
| M6Start.m1s | M6 komutu tetiklendiğinde ilk çalışan makro. İş mili durdurma, güvenli Z ve takım değiştirme pozisyonuna hareket gibi ön hazırlıkları yapar. |
| M6End.m1s | M6Start tamamlandıktan ve (manuel ise) Cycle Start’a basıldıktan sonra çalışan makro. Takım ofseti uygulama, iş mili başlatma, programa devam etme gibi sonlandırma adımlarını içerir. |
| Makro Dili | Visual Basic Script (VBS). Mach3 API fonksiyonlarını destekler. |
| Makro Konumu | Mach3Macros<Profil Adı> klasörü içinde bulunur. |
| Takım Ofseti Uygulama | M6End içinde G43 H[ToolNumber] komutuyla gerçekleştirilir, takım tablosundaki uzunluk ofsetini aktif eder. |
| Döngü Başlangıcı | G kodunda M6 T[YeniTakımNumarası] komutunun okunmasıyla başlar. |
| Döngü Bitişi | M6End.m1s makrosunun tüm adımlarının tamamlanmasıyla sona erer ve ana G kodu programı devam eder. |

Sahada Dikkat Edilmesi Gerekenler
- Güvenlik Protokolleri ve Acil Durum Yönetimi: Takım değiştirme işlemleri sırasında güvenlik her zaman en öncelikli konudur. Makrolarınızı tasarlarken veya mevcut makroları kullanırken, iş mili durdurma (M5), güvenli Z ekseni çekilmesi (G53 G0 Z0) gibi adımların doğru ve güvenilir bir şekilde çalıştığından emin olun. Özellikle manuel takım değiştirme durumlarında, operatörün güvenliğini sağlamak için yeterli duraklamalar (M0) ve görsel/işitsel uyarılar (LED, buzzer) eklemek önemlidir. Olası bir acil durumda, makinenin tüm hareketlerini anında durdurabilecek bir acil durdurma (E-Stop) sisteminin aktif ve erişilebilir olduğundan emin olun.
- Makro Özelleştirme ve Makineye Özel Ayarlar: Her CNC makinesi farklıdır; farklı eksen limitlerine, takım magazini pozisyonlarına, iş mili kontrol yöntemlerine ve I/O pin konfigürasyonlarına sahip olabilir. Bu nedenle, Mach3 ile birlikte gelen varsayılan M6Start ve M6End makroları genellikle doğrudan kullanılamaz. Makroları kendi makinenizin fiziksel özelliklerine ve kontrol sistemine göre özelleştirmek zorunludur. Bu, takım değiştirme pozisyonlarının (X, Y, Z koordinatları), iş mili başlatma/durdurma sinyallerinin, takım magazini kontrol komutlarının ve sensör geri bildirimlerinin (örneğin, takımın yerinde olup olmadığını kontrol eden sensörler) doğru bir şekilde programlanmasını gerektirir. Makro düzenlemesi yaparken, makinenin mekanik çizimlerine ve elektrik şemalarına başvurmak hayati önem taşır.
- Takım Uzunluk Ofsetleri (TLO) ve Takım Probunun Entegrasyonu: Takım değiştirme döngüsünün en kritik aşamalarından biri, yeni takımın uzunluk ofsetinin (TLO) doğru bir şekilde uygulanmasıdır. G43 H[ToolNumber] komutu, Mach3’ün takım tablosundan ilgili takımın ofsetini alarak Z ekseni referansını ayarlar. Bu ofsetlerin manuel olarak girilmesi hata riskini artırır. Bu nedenle, bir takım probu (tool probe) kullanarak takım uzunluklarını otomatik olarak ölçen ve Mach3 takım tablosunu güncelleyen bir sistem entegre etmek, hem hassasiyeti artırır hem de operatör hatalarını minimize eder. M6End makrosuna, prob ölçümünü tetikleyen ve sonuçları işleyen kod parçacıkları eklemek, modern CNC işleme için standart bir uygulamadır. Takım tablosundaki verilerin düzenli olarak yedeklenmesi ve doğruluğunun kontrol edilmesi de önemlidir.
- Hız ve İvme Ayarları: Takım değiştirme sırasında eksen hareketlerinin hızı ve ivmesi, makinenin mekanik yapısına ve takımın ağırlığına uygun olmalıdır. Çok yüksek hızlar veya ani ivmeler, makinede titreşime, mekanik aşınmaya ve hatta takımın düşmesine neden olabilir. Makrolar içinde G00 komutları kullanılırken, Mach3’ün genel hız/ivme ayarlarının (Config > Motor Tuning) takım değiştirme hareketleri için de uygun olduğundan emin olun. Gerekirse, makro içinde G01 komutları ile daha kontrollü hareketler tanımlanarak yavaşlatılmış geçişler sağlanabilir.
- Hata Yönetimi ve Geri Bildirim: Makroların sadece başarılı senaryoları değil, olası hata durumlarını da ele alması gerekir. Örneğin, otomatik takım değiştirme sistemlerinde bir takımın düşmesi, sensör arızası veya magazin sıkışması gibi durumlar meydana gelebilir. Makrolar içinde bu tür hataları yakalayan (örneğin, Mach3 API’deki GetOEMLED() fonksiyonları ile sensör durumlarını okuyarak) ve kullanıcıya anlaşılır bir hata mesajı (MsgBox) ile bildiren mekanizmalar oluşturmak, sorun giderme sürecini büyük ölçüde kolaylaştırır. Hata durumunda programın güvenli bir şekilde durdurulması ve operatörün müdahalesini beklemesi sağlanmalıdır.

Sık Karşılaşılan Sorunlar ve Çözümleri
Mach3’te M6Start ve M6End makrolarının kurulumu ve özelleştirilmesi sırasında çeşitli sorunlarla karşılaşmak olasıdır. Bu sorunları tanımak ve doğru çözümleri uygulamak, üretim kesintilerini en aza indirmek için kritik öneme sahiptir.
-
Sorun: Takım Değiştirme Sırasında Çarpışmalar veya Hatalı Pozisyonlanma.
Açıklama: Makine, takım değiştirme pozisyonuna giderken iş parçasına, fikstürlere veya makinenin diğer bölgelerine çarpıyor. Ya da yeni takım, olması gereken yere tam olarak oturmuyor.
Çözüm: Bu genellikle M6Start makrosunda tanımlanan X, Y, Z koordinatlarının yanlış olmasından kaynaklanır. Makine koordinat sistemindeki güvenli takım değiştirme pozisyonlarını (G53 G0 X… Y… Z…) dikkatlice kontrol edin ve gerekirse manuel olarak ayarlayın. Z ekseni için yeterli güvenli mesafenin (G0 Z0) sağlandığından emin olun. Takım magazininin veya manuel takım değiştirme alanının fiziksel konumunu ve bu konuma giden yolu engelleyebilecek her şeyi gözden geçirin. Makine sıfır noktalarını (home) yeniden kalibre etmek de sorunu çözebilir.
-
Sorun: Takım Uzunluk Ofseti (TLO) Uygulanmıyor veya Yanlış Uygulanıyor.
Açıklama: Yeni takım takıldıktan sonra Z ekseni sıfırı yanlış oluyor, bu da işleme derinliğinde hatalara yol açıyor.
Çözüm: M6End makrosunda G43 H[ToolNumber] komutunun doğru bir şekilde kullanıldığından emin olun. ToolNumber değişkeninin gerçekten değiştirilen takımın numarasını içerdiğini doğrulayın (örneğin,
ToolNumber = GetToolChangeNumber()). Mach3’ün takım tablosundaki (Tool Table) tüm takımların uzunluk ofsetlerinin (Length Offset) doğru girildiğinden emin olun. Ofset değerlerini bir prob ile otomatik olarak ölçmek veya manuel olarak hassas bir şekilde belirlemek, bu hatayı minimize edecektir. Ayrıca, G43’ün aktif olmasını engelleyebilecek başka bir G kodu komutu olup olmadığını kontrol edin. -
Sorun: İş Mili Takım Değiştirme Sırasında Durmuyor veya Değişim Sonrası Başlamıyor.
Açıklama: M6Start makrosu çalışırken iş mili dönmeye devam ediyor veya M6End makrosu tamamlandıktan sonra iş mili dönmeye başlamıyor.
Çözüm: M6Start makrosunun başında M5 komutunun bulunduğundan ve doğru çalıştığından emin olun. M6End makrosunda ise M3 S[devir hızı] veya M4 S[devir hızı] komutlarının doğru yerleştirildiğini ve Mach3’teki “Config > Ports & Pins > Spindle” sekmesindeki iş mili çıkış pinlerinin doğru yapılandırıldığını kontrol edin. İş mili kontrolü için kullanılan rölelerin veya VFD (Variable Frequency Drive) ayarlarının Mach3 ile uyumlu olduğundan emin olun.
-
Sorun: Program Takılıyor veya Makro Beklenmedik Şekilde Davranıyor.
Açıklama: Makro çalışırken program donuyor, yanıt vermiyor veya beklenmedik bir hata mesajı veriyor.
Çözüm: Makro içindeki While IsMoving() Wend gibi döngülerin sonsuz döngüye girmemesini sağlayın. Eğer makine hareket edemiyorsa (örneğin limit switch tetiklendiyse), bu döngü programı kilitleyebilir. Makro içinde kullanılan Mach3 API fonksiyonlarının doğru parametrelerle çağrıldığından emin olun. VBS kodundaki sözdizimi hatalarını (syntax errors) kontrol edin. Makroya geçici olarak MsgBox komutları ekleyerek, kodun hangi aşamada olduğunu takip edebilir ve hatayı tespit edebilirsiniz. Makro dosyasının yazma korumalı olmadığından emin olun.
-
Sorun: Otomatik Takım Değiştirme (ATC) Sisteminde Senkronizasyon Problemleri.
Açıklama: Takım magazini doğru takımı seçmiyor, takım tutucu açılmıyor/kapanmıyor veya zamanlama sorunları nedeniyle takımlar düşüyor.
Çözüm: Bu, genellikle en karmaşık sorunlardan biridir. ATC sisteminin sensörlerinin (takım varlığı, takım tutucu durumu vb.) doğru çalıştığından ve Mach3’e doğru geri bildirim verdiğinden emin olun (Config > Ports & Pins > Input Signals). Makro içindeki zamanlama gecikmelerini (Sleep komutları) ve I/O pin çıkışlarını dikkatlice ayarlayın. Pnömatik veya hidrolik sistemlerin basıncını ve valf çalışmasını kontrol edin. Takım magazininin mekanik hizalamasını ve motor hareketlerini gözden geçirin. Adım adım hata ayıklama (debugging) yaparak, her bir ATC aşamasının doğru sırada ve zamanda gerçekleştiğini doğrulayın.
Uzman Tavsiyesi
Mach3’teki M6Start ve M6End makroları, CNC işleme süreçlerinde takım değiştirme otomasyonunun kalbinde yer alan, son derece güçlü ve esnek araçlardır. Bu makrolar sayesinde, manuel bir takım değişiminden tam otomatik bir sisteme kadar geniş bir yelpazedeki takım değiştirme stratejileri, makineye ve operatörün ihtiyaçlarına göre uyarlanabilir. Takım değiştirme döngüsünün, G kodu içindeki M6 T[YeniTakımNumarası] komutuyla başlayıp, M6End makrosunun tüm adımlarının başarıyla tamamlanmasıyla sona ermesi, hassas ve tekrarlanabilir işlemler için kritik bir yapı sunar.
Endüstriyel otomasyon sektöründeki uzmanlar olarak, bu makroların potansiyelini tam olarak kullanmak için derinlemesine bilgi ve pratik tecrübenin vazgeçilmez olduğunu vurgulamak isteriz. Her makinenin benzersiz bir karakteristiği olduğundan, Mach3 ile birlikte gelen varsayılan makroların “tak ve çalıştır” olmadığını anlamak önemlidir. Bunlar, sizin makinenizin özel gereksinimlerine göre titizlikle özelleştirilmesi gereken şablonlardır. Takım değiştirme pozisyonları, iş mili kontrolü, takım magazini entegrasyonu ve güvenlik protokolleri gibi parametrelerin her biri, makinenizin mekanik ve elektriksel yapısına uygun olarak VBS kodu içinde dikkatlice tanımlanmalıdır.
Sahadaki tecrübelerimiz, M6 makrolarının başarılı bir şekilde uygulanmasının anahtarının, detaylara gösterilen özen ve kapsamlı testlerden geçtiğini göstermektedir. Makrolarınızı ilk kez yapılandırırken veya mevcut sistemlerde değişiklik yaparken, her adımı dikkatlice kontrol edin. Özellikle yeni bir takım ofseti sistemi entegre ederken veya otomatik takım değiştirme sistemlerini devreye alırken, ilk testleri her zaman düşük hızlarda ve güvenli bir ortamda gerçekleştirin. Potansiyel çarpışma risklerini ortadan kaldırmak için iş parçası olmadan veya simülasyon modunda denemeler yapın. Ayrıca, takım uzunluk ofsetlerinin doğru bir şekilde ölçüldüğünden ve Mach3 takım tablosuna doğru bir şekilde girildiğinden emin olun; bu, işleme hassasiyetini doğrudan etkileyen bir faktördür.
Karşılaşılabilecek sorunlara karşı hazırlıklı olmak da uzmanlığın bir parçasıdır. İş mili durmama, takım ofset hataları veya programın takılması gibi yaygın sorunların kök nedenlerini anlamak ve bunları gidermek için VBS kodunu hata ayıklama yeteneği geliştirmek, değerli bir beceridir. Mach3’ün

