Cnc Router imalatı

Mach3’te M6 Makrosu Çalışıyor Ama Program Devam Etmiyorsa Cycle Start ve Macro Flow Nasıl Çözülür?

10 dk okuma Mermak CNC Teknik İçerik
Mach3’te M6 Makrosu Çalışıyor Ama Program Devam Etmiyorsa Cycle Start ve Macro Flow Nasıl Çözülür?
İçindekiler
  1. Mach3’te M6 Makrosu Çalışıyor Ama Program Devam Etmiyorsa Cycle Start ve Macro Flow Nasıl Çözülür? 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’te M6 makrosu çalışmasına rağmen programın devam etmemesi genellikle makro kodunun (özellikle M6End.m1s) program akışını otomatik olarak sürdürmemesi veya Mach3’ün genel konfigürasyonunda “Wait for Cycle Start” ayarının etkin olmasıyla ilgilidir. Çözüm, makroya `DoOEMButton(1000)` komutunu eklemek veya Mach3 ayarlarındaki ilgili seçeneği devre dışı bırakmaktır.

Mach3’te M6 Makrosu Çalışıyor Ama Program Devam Etmiyorsa Cycle Start ve Macro Flow Nasıl Çözülür? Nedir?

 

Mach3 tabanlı CNC sistemlerinde M6 kodu, takım değiştirme işlemini tetikleyen standart bir G-kodu komutudur. Bu komut, genellikle bir takım numarasını (Txx) takip eder ve sistemin mevcut takımı bırakıp yeni takımı almasını sağlar. Mach3, M6 komutunu gördüğünde, kullanıcının tanımladığı veya varsayılan olarak gelen bir makroyu çalıştırmaya başlar. Bu makro, genellikle iki parçadan oluşur: M6Start.m1s ve M6End.m1s. M6Start.m1s, takım değiştirme işleminin başlangıcını yönetirken, M6End.m1s, takım değiştirme işlemi tamamlandıktan sonra program akışını sürdürmekten sorumludur. Eğer M6 makrosu sorunsuz bir şekilde çalışıyor, takım değiştirme işlemi fiziksel olarak gerçekleşiyor ancak ana G-kodu programı otomatik olarak devam etmiyor ve bir ‘Cycle Start’ bekleniyorsa, bu durum genellikle makro akışının düzgün yapılandırılmamasından veya Mach3’ün dahili ayarlarından kaynaklanan bir bekleme durumudur. Bu, operatörün her takım değişiminden sonra manuel olarak ‘Cycle Start’ düğmesine basmasını gerektiren can sıkıcı ve verimsiz bir senaryodur. Bu rehber, bu tür sorunların temel nedenlerini anlamanıza ve kalıcı çözümler bulmanıza yardımcı olacaktır.

Çalışma Prensibi ve Teknik Veriler

Mach3, M6 komutunu işlediğinde, program yürütmeyi geçici olarak durdurur ve ilgili makro dosyasını (genellikle M6Start.m1s ve ardından M6End.m1s) çalıştırır. Bu makrolar, Visual Basic Script (VBScript) dilinde yazılmış özel dosyalardır ve Mach3’ün dahili fonksiyonlarına erişebilirler. Takım değiştirme makrosunun temel amacı, tezgahı güvenli bir takım değiştirme pozisyonuna getirmek, eski takımı bırakmak, yeni takımı almak ve gerekirse takım boyu offsetlerini güncellemek gibi adımları otomatize etmektir. Programın makro bitiminde devam etmemesi, genellikle aşağıdaki iki ana nedenden birine dayanır:

  1. Makro Kod Eksikliği veya Hatası: M6End.m1s makrosunun sonunda, ana G-kodu programının devam etmesini sağlayacak komutun eksik olması. Mach3, bir makro çalıştıktan sonra otomatik olarak devam etmez; makronun kendisinin “Cycle Start” sinyalini vermesi gerekir. Bu genellikle DoOEMButton(1000) komutu ile sağlanır. Bu komut, Mach3’e sanal bir “Cycle Start” düğmesine basılmış gibi davranmasını söyler. Eğer bu komut yoksa veya yanlış yerleştirilmişse, Mach3 operatörden manuel bir “Cycle Start” bekleyecektir.
  2. Mach3 Genel Konfigürasyon Ayarı: Mach3’ün “Config” menüsü altındaki “General Logic Configuration” (Genel Mantık Konfigürasyonu) bölümünde bulunan “Allow M6 Macro to run without Cycle Start” (M6 Makrosunun Cycle Start olmadan çalışmasına izin ver) seçeneğinin işaretli olmaması. Bu seçenek işaretli değilse, Mach3 M6 makrosu tamamlandıktan sonra her zaman manuel bir Cycle Start komutu bekleyecektir. Bu ayar, özellikle güvenlik endişeleri olan veya manuel takım değişimini zorunlu kılan sistemlerde tercih edilebilir, ancak otomatikleştirilmiş sistemlerde program akışını kesintiye uğratır.

Her iki durumda da, makro fiziksel olarak takım değiştirme adımlarını başarıyla tamamlamış olsa bile, ana programın akışı kesintiye uğrar. Bu sorunu çözmek için hem makro kodunu hem de Mach3’ün genel ayarlarını dikkatlice incelemek gerekmektedir. Makro dosyasının doğru dizinde (Mach3macros[profil_adı]) ve doğru isimde (örneğin M6Start.m1s ve M6End.m1s) olduğundan emin olmak da kritik öneme sahiptir. Mach3, M6 komutunu gördüğünde önce `M6Start.m1s` dosyasını arar. Eğer bu dosya yoksa veya çalıştırılamazsa, `M6.m1s` dosyasını çalıştırmayı dener. Bu dosyalar, takım değişimi sırasında tezgahın hareketini, spindle’ın durumunu, takım boyu ölçümünü ve diğer yardımcı fonksiyonları kontrol eder. Makro içindeki Sleep(x) komutları, belirli bir süre beklemek için kullanılırken, While IsMoving() gibi döngüler tezgahın hareketini tamamlamasını beklemek için kullanılır. Bu tür bekleme komutlarının doğru kullanılması, makronun sorunsuz çalışması için elzemdir.

ParametreDeğer/Açıklama
M6 Makro DosyalarıM6Start.m1s, M6End.m1s (veya M6.m1s). Mach3macros[profil_adı] dizininde bulunur.
Makro DiliVBScript (Visual Basic Script). Mach3’ün dahili fonksiyonlarına erişim sağlar.
Program Akışını Sürdürme KomutuDoOEMButton(1000). M6End.m1s makrosunun sonunda ana programı devam ettirmek için kullanılır.
Mach3 Konfigürasyon AyarıConfig -> General Logic Config -> “Allow M6 Macro to run without Cycle Start”. İşaretli olmalı.
Takım Numarası DeğişkeniCurrentTool. Makro içinde aktif takım numarasını okumak için kullanılır.
Bekleme KomutlarıSleep(ms), While IsMoving(). Makro içinde belirli süreler veya hareketlerin tamamlanması için bekleme sağlar.
OEM Button ID (Cycle Start)1000. Mach3’ün Cycle Start fonksiyonunu tetikler.
Mach3’te M6 Makrosu Çalışıyor Ama Program Devam Etmiyorsa Cycle Start ve Macro Flow Nasıl Çözülür?

Sahada Dikkat Edilmesi Gerekenler

  • Makro Kod Yapısı ve İçeriği: M6 makrosunun (özellikle M6End.m1s) doğru bir şekilde yapılandırıldığından emin olun. Makronun sonunda, program akışını otomatik olarak devam ettirecek olan DoOEMButton(1000) komutunun bulunması kritik öneme sahiptir. Bu komut, Mach3’e sanal olarak “Cycle Start” butonuna basıldığını bildirir. Ayrıca, makro içinde gereksiz bekleme komutları (Sleep()) veya yanlış koşullu döngüler (While IsMoving()) olmamasına dikkat edin, bunlar programın donmasına neden olabilir. Makro içerisinde hata ayıklama için geçici MsgBox komutları ekleyerek akışı takip edebilirsiniz.
  • Mach3 Genel Konfigürasyon Ayarları: Mach3’ün “Config” menüsü altındaki “General Logic Configuration” bölümünü kontrol edin. Burada bulunan “Allow M6 Macro to run without Cycle Start” seçeneğinin işaretli olduğundan emin olun. Bu ayar, Mach3’ün M6 makrosu bittikten sonra otomatik olarak ana programa dönmesini sağlar. Eğer bu seçenek işaretli değilse, makro ne kadar doğru olursa olsun, Mach3 her zaman manuel bir “Cycle Start” bekleyecektir. Bu ayar, çoğu otomatik takım değiştirme senaryosu için işaretli olmalıdır.
  • Güvenli Takım Değiştirme Pozisyonları: M6 makrosunun, takım değiştirme işlemi için tezgahı her zaman güvenli ve tekrarlanabilir bir pozisyona getirdiğinden emin olun. Bu pozisyon, limit anahtarlarının tetiklenmediği, takım magazininin erişilebilir olduğu ve spindle’ın herhangi bir engele çarpmayacağı bir nokta olmalıdır. Makro içinde kullanılan G-kodu hareket komutlarının (G0, G1) doğru koordinatları kullandığından emin olun. Takım sensörü kullanılıyorsa, sensörün doğru konumda ve işlevsel olduğundan emin olun.
  • Takım Boyu Offset ve Kalibrasyon: Takım değişiminden sonra yeni takımın boyu veya çapı için offsetlerin doğru bir şekilde uygulandığından emin olun. M6End.m1s makrosu genellikle takım boyu sensörü ile etkileşime girerek yeni takımın Z ekseni offsetini günceller. Bu bölümdeki hatalar, iş parçasının yanlış işlenmesine veya takımların kırılmasına neden olabilir. Sensör kalibrasyonunun düzenli olarak yapılması ve makronun bu verileri doğru kullandığından emin olunması önemlidir.
  • XML Profil Bütünlüğü ve Yedekleme: Mach3’ün tüm konfigürasyon ayarları ve makro referansları, kullandığınız profilin XML dosyasında saklanır. Bu dosyanın bozulması veya yanlış kaydedilmesi, M6 makrosu dahil olmak üzere birçok fonksiyonun düzgün çalışmamasına neden olabilir. Periyodik olarak Mach3 profilinizin (XML dosyasının) ve makro dosyalarınızın yedeğini alın. Herhangi bir büyük değişiklik yapmadan önce yedek almak, olası sorunlarda hızlıca geri dönmenizi sağlar.
  • Limit ve Ev Anahtarları: Takım değiştirme işlemi sırasında veya öncesinde limit anahtarlarının yanlışlıkla tetiklenip tetiklenmediğini kontrol edin. Yanlış hizalanmış veya hassas limit anahtarları, makronun beklenmedik bir şekilde durmasına veya hata vermesine neden olabilir. Ev anahtarlarının (Home Switches) doğru çalıştığından ve tezgahın referans noktalarını doğru belirlediğinden emin olun.
Mach3’te M6 Makrosu Çalışıyor Ama Program Devam Etmiyorsa Cycle Start ve Macro Flow Nasıl Çözülür?

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

Mach3’te M6 makrosunun çalışmasına rağmen programın devam etmemesi, saha ortamında sıkça karşılaşılan bir durumdur. İşte bu sorunlara yönelik spesifik senaryolar ve çözüm önerileri:

Sorun 1: Makro Takım Değiştirme İşlemini Başarıyla Tamamlıyor, Ancak Mach3 Ekranında “Cycle Start Required” Mesajı Görünüyor.

  • Neden: Bu, en yaygın senaryodur. Genellikle M6End.m1s makrosunun ana program akışını devam ettirme komutunu içermemesi veya Mach3’ün genel konfigürasyonunda ilgili ayarın kapalı olmasından kaynaklanır.
  • Çözüm 1 (Makro Kodu): Makro dosyanızı (Mach3macros[profil_adı]M6End.m1s) bir metin düzenleyici ile açın. Dosyanın en sonuna, takım değiştirme işlemi ve tüm offset güncellemeleri tamamlandıktan sonra aşağıdaki satırı ekleyin:
    DoOEMButton(1000) ' Programı devam ettir (Cycle Start)

    Bu komut, Mach3’e sanal bir “Cycle Start” sinyali gönderir ve ana G-kodu programının kaldığı yerden devam etmesini sağlar.

  • Çözüm 2 (Mach3 Konfigürasyonu): Mach3 arayüzünde “Config” menüsüne gidin, ardından “General Logic Configuration” seçeneğini tıklayın. Açılan pencerede “Allow M6 Macro to run without Cycle Start” onay kutusunu bulun ve işaretleyin. Değişiklikleri kaydetmek için “OK” düğmesine tıklayın. Bu ayar, makronun kendi içinde `DoOEMButton(1000)` komutu olmasa bile, Mach3’ün makro tamamlandığında otomatik olarak devam etmesini sağlar. En güvenilir çözüm genellikle hem makroya komutu eklemek hem de bu ayarı işaretlemektir.

Sorun 2: Makro Takım Değiştirme Pozisyonuna Giderken Donuyor veya Bir Hata Mesajı Veriyor.

  • Neden: Makro içindeki hareket komutlarında (G0, G1) yanlış koordinatlar, limit anahtarlarının tetiklenmesi, spindle’ın dönmeye devam etmesi veya bir sensörden beklenen yanıtın gelmemesi gibi durumlar.
  • Çözüm:
    • Makro Kodunu İnceleyin: M6Start.m1s makrosunu adım adım gözden geçirin. Özellikle tezgahı hareket ettiren G-kodu komutlarını (örn. Code "G0 Z...") kontrol edin. Bu komutların güvenli ve erişilebilir bir pozisyona işaret ettiğinden emin olun.
    • Limit Anahtarlarını Kontrol Edin: Takım değiştirme pozisyonuna giderken veya dönerken herhangi bir limit anahtarının tetiklenip tetiklenmediğini Mach3’ün “Diagnostics” ekranından kontrol edin. Yanlış tetikleme varsa, anahtarların konumunu ayarlayın veya makro içindeki hareket yollarını güncelleyin.
    • Spindle Durumu: Makronun başında spindle’ın durduğundan emin olmak için While IsMoving() ve DeactivateSignal(OUTPUT1) (veya spindle’ı durduran ilgili sinyal) gibi komutların doğru kullanıldığından emin olun.
    • Sensör Bağlantıları: Eğer takım boyu sensörü gibi harici cihazlar kullanılıyorsa, bu cihazların fiziksel bağlantılarını ve Mach3’e doğru sinyali gönderip göndermediğini kontrol edin.

Sorun 3: Makro Hiç Çalışmıyor veya Beklenenden Farklı Bir Makro Çalışıyor.

  • Neden: Makro dosyasının yanlış adı, yanlış dizinde olması veya Mach3 profilinin makro referanslarının bozulmuş olması.
  • Çözüm:
    • Dosya Adı ve Konumu: Makro dosyalarınızın Mach3macros[profil_adı] dizininde bulunduğundan ve adlarının M6Start.m1s ve M6End.m1s (veya sadece M6.m1s) olduğundan emin olun. Dosya uzantılarının `.m1s` olması gerekmektedir.
    • Profil Bütünlüğü: Mach3’ün kullandığı XML profil dosyasının bozulmadığından emin olun. Gerekirse, daha önceki bir yedekle geri yüklemeyi deneyin.
    • Makro Editörü: Mach3’ün “Operator” menüsünden “Edit Macro” seçeneğini kullanarak M6 makrosunu açmayı deneyin. Eğer dosya bulunamazsa veya boşsa, sorun dosya konumunda veya adındadır.

Sorun 4: Takım Değişiminden Sonra İş Parçası Üzerinde Yanlış Z Yüksekliği veya Kesim Derinliği.

  • Neden: M6End.m1s makrosundaki takım boyu offset hesaplamalarının veya uygulanmasının hatalı olması.
  • Çözüm:
    • Sensör Kalibrasyonu: Takım boyu sensörünün doğru kalibre edildiğinden ve okuduğu değerlerin güvenilir olduğundan emin olun. Sensörün temas noktası ile tezgahın referans noktası arasındaki farkı doğru bir şekilde ayarlayın.
    • Offset Uygulama Mantığı: Makro içindeki SetDRO(2, NewZOffset) veya benzeri komutların doğru Z ekseni offsetini uyguladığından emin olun. Eski takımın offsetinin kaldırılıp yeni takımın offsetinin doğru bir şekilde eklendiğini doğrulayın.
    • RefAllHome() Kullanımı: Bazı durumlarda, takım değişiminden sonra eksenlerin yeniden referanslanması (RefAllHome()) gerekebilir, ancak bu genellikle makronun başında veya çok özel durumlarda kullanılır. Makro akışındaki yerini ve gerekliliğini kontrol edin.

Uzman Tavsiyesi

Mach3 tabanlı CNC sistemlerinde M6 makrosunun başarılı bir şekilde çalışmasına rağmen ana programın otomatik olarak devam etmemesi, ilk bakışta karmaşık gibi görünse de, genellikle makro kodundaki basit bir eksiklik veya Mach3’ün genel konfigürasyonundaki bir ayar hatasından kaynaklanan yaygın bir durumdur. Bu rehberde ele alınan çözümler, bu tür sorunları sistemli bir yaklaşımla gidermenizi sağlayacaktır. Temel olarak, M6End.m1s makrosunun ana program akışını devam ettirmek için DoOEMButton(1000) komutunu içermesi ve Mach3’ün “General Logic Configuration” bölümünde “Allow M6 Macro to run without Cycle Start” seçeneğinin işaretli olması, sorunun büyük bir kısmını çözecektir. Bu iki adım, Mach3’e takım değişiminin tamamlandığını ve ana G-kodu programının kaldığı yerden devam etmesi gerektiğini açıkça bildirir.

Uzman tavsiyesi olarak, herhangi bir makro değişikliği yapmadan önce daima mevcut Mach3 profilinizin (XML dosyası) ve tüm makro dosyalarınızın (.m1s uzantılı) yedeğini almanızı şiddetle öneririz. Bu, beklenmedik hatalar veya istenmeyen davranışlar durumunda hızlı bir şekilde bilinen iyi bir duruma geri dönmenizi sağlar. Makro kodlarını düzenlerken, mümkün olduğunca modüler ve okunabilir bir yapı kullanmaya özen gösterin. Her bir adımın ne işe yaradığını açıklayan yorumlar (' Bu bir yorumdur) eklemek, gelecekteki sorun giderme ve bakım süreçlerini büyük ölçüde kolaylaştıracaktır. Ayrıca, makro içinde MsgBox("Mesajınız") komutlarını kullanarak belirli noktalarda mesaj kutuları açtırarak makronun akışını ve değişken değerlerini kontrol edebilirsiniz; bu, hata ayıklama için son derece faydalıdır. Yeni bir makro uyguladıktan veya mevcut bir makroda değişiklik yaptıktan sonra, mutlaka tezgahı boşta ve düşük hızlarda çalıştırarak takım değiştirme işlemini ve program akışını dikkatlice test edin. İş parçası üzerinde çalışmaya başlamadan önce tüm hareketlerin ve sensör etkileşimlerinin beklenen şekilde gerçekleştiğinden emin olun. Limit anahtarlarının ve acil durdurma sistemlerinin her zaman işlevsel olduğundan emin olmak, güvenlik açısından hayati öneme sahiptir. Mach3’ün sunduğu esneklik, karmaşık otomasyon senaryolarını mümkün kılar; ancak bu esneklik, doğru konfigürasyon ve dikkatli makro programlama ile birleştiğinde gerçek potansiyeline ulaşır. Unutmayın ki sağlam ve güvenilir bir M6 makrosu, CNC işleme süreçlerinizin verimliliği ve güvenliği için temel bir taş oluşturur.

⚙ Araçlar