Ana içeriğe geç
CNC.wikiCNC.wiki

M00, M01, M02, M30: CNC Program Durdurma ve Sonlandırma Rehberi

Fanuc, Siemens ve Mitsubishi için M00, M01, M02 ve M30 CNC komutlarında ustalaşın. Çarpışmaları önleyin, parametreleri ayarlayın ve alarmları çözün.

Hakan Gündoğdu
Hakan Gündoğdu

CNC CARE Co-founder

Giriş

Operatör panelindeki tek bir butonun aktif edilmemesi, yüksek hızlı bir işleme merkezinde binlerce liralık spindle (fener mili) hasarı ile sorunsuz bir üretim döngüsü arasındaki ince çizgiyi belirler. Operatör, kontrol ünitesi arayüzündeki "İsteğe Bağlı Durdurma" (Optional Stop - M01) anahtarını açık konuma getirmeyi unuttuğunda, programlanmış olan M01 ara kontrol komutu CNC yorumlayıcısı tarafından tamamen göz ardı edilir. Makine, takım değiştirme veya parça ölçümü için durmak yerine, hızla (rapid traverse) bir sonraki operasyona geçerek takımı gövdeye veya hatalı yerleşmiş iş parçasına daldırır. Saniyeler içinde gerçekleşen bu sert çarpışma; fener milinin veya taret ekseninin kırılmasına, pahalı bir takımın parçalanmasına ve nihayetinde yüksek maliyetli bir hurda (scrap) oluşumuna yol açar. G-kod programlarında M00 (Program Durdurma), M01 (İsteğe Bağlı Durdurma), M02 (Program Sonu) ve M30 (Program Sonu ve Başa Dön) komutlarının doğru yönetimi, yalnızca basit birer sözdizimi kuralı değil; CNC interpolatörü ile makinenin Programlanabilir Mantıksal Denetleyicisi (PLC) arasındaki donanımsal el sıkışmayı (handshake) yöneten en kritik güvenlik kalkanıdır. Bu komutların koordinat pozisyonlama süreçleriyle ilişkisini anlamak için G94 ve G95 İlerleme Hızı Modları kılavuzunu inceleyebilirsiniz.

Teknik Özet

Teknik ÖzellikDetaylar
Komut KodlarıM00, M01, M02, M30
Modal GrubuNon-modal (yalnızca programlandığı blokta etkindir)
Desteklenen MarkalarFanuc, Siemens, Mitsubishi
Kritik ParametrelerFanuc Parametre 3404 (Geri sarma davranışı), Siemens MD 22254 / MD 22256 (Özel durdurma M-kodları), Mitsubishi Parametre #12005 (Blok başına maksimum M-kodu)
Temel KısıtlamaÇevresel ekipman duruşları (spindle, soğutma sıvısı), temel CNC spesifikasyonlarından ziyade makine üreticisinin (Machine Tool Builder - MTB) özel PLC merdiven (ladder) mantığı tarafından yönetilir; Siemens stop gecikme alanlarının (stop delay areas) içinde programlanmamalıdır (Alarm 16954).

Hızlı Okuma

  • HMI Panel Durumunu Doğrulayın: Parça ölçümleri için M01 komutuna dayanan programları çalıştırmadan önce, operatör HMI panelinde "İsteğe Bağlı Durdurma" (Optional Stop) anahtarının aktif olduğunu her zaman kontrol edin.
  • Sonlandırma Komutlarını İzole Edin: Çubuk sürücüler (bar feeders) veya iş parçası sayacı mantığı gibi yardımcı işlevlerle PLC donanım el sıkışma (handshake) hatalarını önlemek için M02 ve M30 komutlarını kendi özel bloklarına yazın.
  • Durdurma Gecikme Alanlarından Kaçının: Senkronizasyon kaybını ve Siemens alarm 16954 hatasını önlemek için aktif diş çekme veya kılavuz çekme (rigid tapping) çevrimleri sırasında asla M00 veya M01 programlamayın.
  • Parametre 3404'ü Kontrol Edin: Yürütmenin otomatik olarak program başına mı döneceğini yoksa harici bir sinyal için mi duracağını kontrol etmek amacıyla Fanuc Parametre 3404 ayarını (M30 için bit 4, M02 için bit 5) yapılandırın.
  • El Sıkışma Sinyallerini Eşleştirin: Mitsubishi PLC merdiveninin (ladder) M02 ve M30 için alarm P36 koduna yol açan standart bir FIN1/FIN2 sinyali yerine, Reset & Rewind (RRW) sinyali döndürecek şekilde ayarlandığından emin olun.
  • Ön Okuma (Look-Ahead) Bloklarını İzleyin: Sonraki kodların erken çalıştırılmasını önlemek için M00, M01, M02 ve M30 komutlarının Fanuc, Siemens ve Mitsubishi sistemlerinde ön okuma tampon belleğini (pre-read look-ahead buffer) aktif olarak engellediğini unutmayın.

Temel Kavramlar

Program durdurma ve sonlandırma komutları, otomatik CNC operasyonlarını bölen, hızını ayarlayan ve güvenli bir şekilde sonlandıran birincil mantıksal arayüzlerdir. İlerleme motorlarını veya enterpolasyon yollarını doğrudan tahrik eden hareket komutlarının aksine; M00, M01, M02 ve M30 komutları, donanımsal el sıkışma rölelerini kullanarak makinenin Programlanabilir Mantıksal Denetleyicisi (PLC) ile doğrudan iletişim kurar. Bu komutlar sert bir operasyonel sınır çizerek, belirli operatör eylemleri veya otomatik yeniden yükleme dizileri başarıyla tamamlanana kadar sonraki koordinatların veya takım talimatlarının yürütülmesini engeller.

Durdurma komutları olan M00 ve M01, çevrim içi duraklatma işlevi görür. M00, CNC yorumlayıcısını anında durduran, eksen hareketini donduran ve program yürütmeyi askıya alan koşulsuz bir durdurmayı temsil eder. Bu duraklatma; mikrometre ile kritik bir toleransın kontrol edilmesi, derin bir kanaldan biriken metal talaşlarının temizlenmesi veya bir iş parçasının manuel olarak ters çevrilmesi gibi operatörün manuel müdahaleleri için tasarlanmıştır. Aksine, M01 koşullu bir durdurma görevi görür ve yalnızca makine operatörü kontrol ünitesinin donanım konsolundaki "İsteğe Bağlı Durdurma" (Optional Stop) anahtarını aktif hale getirmişse çevrimi duraklatır. İsteğe bağlı durdurma anahtarı pasif durumdaysa kontrol ünitesi M01 komutuna bir yorum satırı gibi davranır ve sonraki bloğu duraksamadan yürütür.

Program sonlandırma komutları olan M02 ve M30, parça programının fiziksel olarak sonlandırılmasını temsil eder. Her iki kod da CNC kontrolüne ve alttaki PLC'ye mevcut iş parçası için tüm işleme operasyonlarının bittiğini bildirir. Bu bildirim, sistemin spindle'ı durdurmasını, yüksek basınçlı soğutma sıvısı pompalarını kapatmasını ve dahili kayıtçıkları (registers) sıfırlamasını tetikler. M30 özellikle kontrol ünitesini parça programını en baştaki bloğa geri sarmaya yönlendirir; böylece çevrim başlatma (cycle start) butonuna basıldığında CNC, çevrimi bir sonraki parça üzerinde hemen yürütmeye hazır hale gelir. Çevrim geri dönüş seviyelerini tam olarak anlamak için G98 ve G99: Çevrim Geri Dönüş Seviyeleri kılavuzuna başvurun.

Komut Yapısı

Durdurma ve sonlandırma yardımcı işlevlerinin programlanması basittir, ancak doğru donanım dizisi yürütülmesini garanti etmek için mutlak sözdizimi izolasyonu gerektirir. Program durdurmaları ve sonlandırmaları; spindle röleleri, emniyet kapısı kilitleri ve çubuk sürücü el sıkışmaları gibi kritik donanımsal değişiklikleri tetiklediğinden, kontrol ünitesi bunları belirli ön okuma (look-ahead) kısıtlamaları altında değerlendirmelidir. Bu komutları yanlış yazmak veya çelişkili hareket yollarıyla birleştirmek, kontrol ünitesi ayrıştırma (parsing) hatalarının birincil kaynağıdır.

Optimal güvenilirlik için, M00, M01, M02 ve M30 komutları, hareket koordinatlarından ayrı olarak kendi özel NC bloklarında programlanmalıdır. Çoğu sistem bunları bir hareket satırına eklemeye izin verse de bunu yapmak, kontrol ünitesini hareketi ve yardımcı durdurmayı aynı anda çözmeye zorlar; bu da makine üreticisinin PLC merdiven mantığını nasıl yazdığına bağlı olarak kararsız zamanlama davranışlarına neden olabilir. Ek olarak, bu kodlar tamponlanmayan (non-buffering) kodlar olarak sınıflandırılır; yani M-kodu yürütülmesi tamamlanana kadar interpolatörün sonraki blokları okuması veya hazırlaması engellenir.

Programlama Sözdizimi:

M00 ; Koşulsuz Program Durdurma
M01 ; İsteğe Bağlı Program Durdurma
M02 ; Program Sonu
M30 ; Program Sonu ve Başa Dönme

Parametreler ve Sistem Ayarları:

MarkaSistem TanımlayıcıFonksiyonel Ayar
FanucParameter 3404 Bit 4 (M30)0: Otomatik olarak başa sar; 1: Harici Reset & Rewind sinyalini bekle.
FanucParameter 3404 Bit 5 (M02)0: Otomatik olarak başa sar; 1: Harici Reset & Rewind sinyalini bekle.
FanucParameter 3201 Bit 6 (NPE)0: M02, M30, M99 okunduğunda veri alımını anında durdur; 1: Sonlandırma kodlarını yoksay.
FanucParameter 3204 Bit 6 (MKP)0: M02/M30 yürütüldüğünde aktif MDI ekran sırasını temizle; 1: MDI programını koru.
SiemensMD22254 $MC_AUXFU_ASSOC_M0_VALUEKoşulsuz program durdurma için ek ve özelleştirilmiş bir M fonksiyonu tanımlar.
SiemensMD22256 $MC_AUXFU_ASSOC_M1_VALUEKoşullu program durdurma için ek ve özelleştirilmiş bir M fonksiyonu tanımlar.
SiemensMD10714 $MN_M_NO_FCT_EOPReset veya program sonundan sonra spindle'ı aktif ve çalışır durumda tutmak için özelleştirilmiş bir M fonksiyonu tanımlar.
Siemens$AC_ACTUAL_PARTSAktif iş parçası sayacı sistem değişkeni, M02/M30 yürütüldüğünde otomatik olarak artırılır.
Mitsubishi#12005 MfigTek bir blokta izin verilen maksimum M-kodu sayısını belirler (Aralık: 1 - 4).
Mitsubishi#1278 ext14/bit10: Normal PLC el sıkışma beklemesi; 1: Yüksek hızlı tamamlama yöntemi.
Mitsubishi#1405 M_mode(SMLK)Yüksek hızlı basit program kontrolleri sırasında yardımcı M-kodu sinyal çıkışını etkinleştirir veya devre dışı bırakır.

Marka Uygulamaları

Fanuc

Fanuc CNC sistemleri; program durdurmalarının ve sonlarının, aktif bellek kaydı ve harici veri aktarımı ile nasıl etkileşime gireceğini belirlemek için donanım düzeyindeki özel parametrelere güvenir. Parametre 3404 bit 4, M30 için geri sarma davranışını dikte ederken; parametre 3404 bit 5, M02 için geri sarma davranışını yönetir. Bu bitlerin ayarlanması, kontrol ünitesinin bellek imlecini otomatik olarak dosyanın başına mı konumlandıracağını yoksa harici röleler manuel sıfırlama (reset) sinyali verene kadar mı duraklayacağını belirler.

On Fanuc kontrollerinde M00, M01, M02 ve M30 standart formatta programlanır ve ön okuma (look-ahead) engellemesini garanti altına almak için bir blok içinde izole edilir. Torna sistemlerinde, seri veri aktarımları sırasında veri bozulmasını önlemek için geliştiricilerin NPE parametresini izlemesi gerekir.

Sistem KategorisiAyar / Alarm KoduAçıklama ve Donanım Davranışı
Sistem ParametreleriParameter 3404 bit 4 (M30)M30 bellekte yürütüldüğünde otomatik geri sarma davranışını kontrol eder. 0 değeri programın başına otomatik geri sarar; 1 değeri harici bir reset ve rewind sinyalini bekler.
Sistem ParametreleriParameter 3404 bit 5 (M02)M02 yürütüldüğünde otomatik geri sarma davranışını kontrol eder. 0 değeri otomatik geri sarar; 1 değeri harici bir reset ve rewind sinyalini bekler.
Sistem ParametreleriParameter 3201 bit 6 (NPE)0: M02, M30 veya M99 okunduğunda parça programı kaydını durdurur ve iletişim portlarını kapatır; 1: Durdurmadan almaya devam eder.
Sistem ParametreleriParameter 3204 bit 6 (MKP)0: M02, M30 veya % yürütüldüğünde aktif MDI ekran sırasını otomatik olarak siler; 1: Silinmeyi önler ve MDI kodunu korur.
Alarmlar / HatalarPS5010 (END OF RECORD)Parametre 3404 bit 6 değeri 0 olduğunda, öncesinde bir M02 veya M30 program sonu komutu olmadan program yürütme sırasında kayıt sonu işareti (%) okunursa tetiklenir.
Alarmlar / HatalarPS0008 (ILLEGAL USE)M-serisi kontrollerde, program sonunda M02, M30 veya M99 eksik olduğu için kayıt sonu (%) işareti yürütülmeye çalışılırsa tetiklenir.
Alarmlar / HatalarPS5016 (ILLEGAL COMBINATION)Aynı grubun birden fazla M-kodu tek bir blokta belirtilirse veya bir sonlandırma komutuyla birleştirilirse tetiklenir.
Sürüm FarklılıklarıLegacy Systems (0-Series)Eski nesil Fanuc kontrolörleri, M02 geri sarma davranışını kontrol etmek için 0019 parametresinin 5. bitini (M02NR) kullanır; modern kontroller ise bu işlevi 3404 parametresinin 5. bitine taşımıştır.

Uyarı: Bir Fanuc parça programının sonunda M02 veya M30'un atlanması, okuyucunun Kayıt Sonu (%) işaretine ulaşmasına neden olarak yürütmeyi anında durdurur ve öngörülemeyen bellek taşmalarını önlemek için bir PS5010 veya PS0008 alarmı verir.

Siemens

Siemens SINUMERIK denetleyicileri, durdurma komutlarını doğrudan iş parçası takibi ve ölçüm döngüsü güvenliği ile entegre eden esnek bir sözdizimi yapısı sunar. Kontrol ünitesi, M02 veya M30 işlendiğinde özel makro sayaçlarına ihtiyaç duymadan $AC_ACTUAL_PARTS ve $AC_SPECIAL_PARTS gibi sistem değişkenlerini yerel olarak günceller. Ek olarak Siemens, makine üreticilerinin özelleştirilmiş durdurma M-fonksiyonları tanımlamasına izin vermek için MD22254 ve MD22256 makine verilerini kullanır.

Siemens sözdizimi hem M0/M1 hem de M00/M01 blok formatlarını destekler. Bu kodlar hareket komutlarıyla birlikte yazılabilir, ancak program sonu blokları için katı biçimlendirme kısıtlamaları geçerlidir.

Sistem KategorisiAyar / Alarm KoduAçıklama ve Donanım Davranışı
Sistem ParametreleriMD22254 $MC_AUXFU_ASSOC_M0_VALUEKoşulsuz bir program durdurma için ek ve özelleştirilmiş yardımcı bir M fonksiyonu tanımlamak üzere kullanılan makine verisi.
Sistem ParametreleriMD22256 $MC_AUXFU_ASSOC_M1_VALUEKoşullu (isteğe bağlı) bir program durdurma için ek ve özelleştirilmiş yardımcı bir M fonksiyonu tanımlamak üzere kullanılan makine verisi.
Sistem ParametreleriMD10714 $MN_M_NO_FCT_EOPSıfırlama (reset) veya program sonundan sonra spindle'ın aktif ve çalışır durumda kalmasını sağlamak amacıyla özelleştirilmiş bir M fonksiyonu (örneğin 32 değeri) tanımlar.
Sistem Parametreleri$AC_ACTUAL_PARTSAktif iş parçası sayacı sistem değişkeni, M02 veya M30 yürütüldüğünde otomatik olarak 1 artırılır. Aralık: 0 ile 999.999.999.
Alarmlar / HatalarAlarm 16954Durdurma gecikme alanında (stop delay area) programlı durdurma (M0/M1) yasaktır. Senkronize diş çekme veya kılavuz çekme (rigid tapping) sırasında bir durdurma komutuyla karşılaşılırsa tetiklenir.
Alarmlar / HatalarAlarms 62304 / 62305 / 62306Üst tolerans sınırı aşılmış, alt tolerans sınırının altında kalınmış veya izin verilen boyutsal fark aşılmış. Ölçüm döngüleri sırasında bir tolerans ihlal edilirse kontrol ünitesi otomatik olarak dahili bir M00 duraklatması ekler.
Sürüm FarklılıklarıSubprogram NestingSiemens, çağrılan ana programlardaki M02 ve M30 komutlarını M17 subprogram (alt program) geri dönüşleri ile aynı şekilde işleyerek yürütmeyi sorunsuz bir şekilde üst seviyedeki çağıran program bloğuna döndürür.

Uyarı: M00 veya M01 komutunun kılavuz çekme (rigid tapping) veya diş çekme gibi durdurma gecikme bölgelerine yerleştirilmesi, interpolatör-spindle senkronizasyonunu bozar ve Alarm 16954'ü tetikleyerek kırılmış bir kılavuzun yüksek değerli bir iş parçasında kalıcı olarak sıkışmasına neden olur.

Mitsubishi

Mitsubishi CNC sistemleri, durdurma ve sonlandırma komutlarını doğrudan PLC ile iletişim kuran son derece yapılandırılmış, özel bir el sıkışma sinyal arayüzü kullanarak yönetir. Yardımcı işlevler için genel strobe sinyallerini paylaşan diğer markaların aksine Mitsubishi; M00, M01, M02 veya M30 okunduğunda PLC'ye bağımsız özel sinyaller gönderir. Bu, duruşlar sırasında güvenlik kapılarının kilidini açmak gibi makine tarafında özel mantıksal işlemlerin yürütülmesine olanak tanır.

Mitsubishi G-kod programları standart 8 haneli M-kodu sözdizimi yapılarını kullanır. Eksen hareketleri ve durdurma komutları aynı blokta yürütülebilir; yürütme sırası tamamen makine üreticisinin PLC merdiven mantığı tarafından belirlenir.

Sistem KategorisiAyar / Alarm KoduAçıklama ve Donanım Davranışı
Sistem ParametreleriParameter #12005 MfigTek bir blokta verilebilecek maksimum M-kodu sayısını belirler. En fazla 4 kodu destekler; aşılırsa sonraki M-kodları öncekilerin üzerine yazar.
Sistem ParametreleriParameter #1278 ext14/bit10: Normal tamamlama yöntemi (PLC tamamlama sinyalini bekler); 1: Döngü sürelerini kısaltmak için yüksek hızlı tamamlama yöntemi.
Sistem ParametreleriParameter #1405 M_mode(SMLK)Yüksek hızlı basit program kontrolü sırasında fiziksel yardımcı M-kodu sinyal çıkışını etkinleştirir veya devre dışı bırakır.
Alarmlar / HatalarAlarm P36 (Program Error)Program sonunda, PLC M02/M30'dan sonra zorunlu olan Reset & Rewind (RRW) sinyali yerine hatalı bir şekilde standart bir FIN1/FIN2 strobe sinyali gönderirse tetiklenir.
Alarmlar / HatalarAlarm M01 (Operation Alarm)CNC aktif olarak program kontrol (program check) modunda çalışırken operatör fiziksel olarak cycle start butonuna basarsa tetiklenir.
Sürüm FarklılıklarıHardware VariationsEski ekran üniteleri programlanan M-kodunun sekiz hanesinin tamamını gösteremez. M00 ile sistem sıfırlama ve M02/M30 ile geri sarma kesinlikle makine üreticisinin (MTB) spesifikasyonlarına bağlıdır.

Uyarı: PLC merdivenini (ladder) M02 veya M30 için zorunlu olan Reset & Rewind (RRW) sinyali yerine standart bir FIN1 veya FIN2 strobe bitiş sinyali döndürecek şekilde programlamak, sonlandırma dizisini ihlal eder ve bir P36 program hatası üretir.

Marka Karşılaştırmaları

Konu / ÖzellikFanucSiemensMitsubishi
Ön Okuma / Ön Belleğe Alma (Look-Ahead / Pre-Read Buffer)Aktif arabellek (buffering) parametrelerinden tamamen bağımsız olarak, M00/M01/M02/M30 komutlarının ötesini okuması fiziksel olarak engellenir.Yürütme bloğunda M00 veya M01 işlendiğinde interpolatörü ve eksen hareketini anında duraklatır.Sonraki koordinatların zamanından önce tetiklenmesini önlemek için ön okuma tamponunu anında kasıtlı olarak durdurur.
PLC El Sıkışma / Geri BildirimOtomatik geri sarma ile harici Reset & Rewind donanım sinyallerini bekleme arasında geçiş yapmak için parametre 3404 bitleri aracılığıyla yönetilir.HMI isteğe bağlı durdurma paneli VDI durumuna karmaşık bir şekilde bağlıdır; PLC mantık yapılandırması aktif spindle/soğutma sıvısı duraklatma davranışını kontrol eder.M00 ve M01 ilerlemek için FIN1/FIN2 strobe sinyallerine ihtiyaç duyar; M02 ve M30 ise zorunlu bir Reset & Rewind (RRW) sinyali talep eder.
İç İçe Yerleştirme ve Program Sonu DönüşleriM02 ve M30 her zaman aktif dosya seviyesinin bellek yürütmesini sonlandırır.İç içe yerleştirilmiş ana program (subprogram olarak çağrılan), M02/M30'u otomatik olarak bir M17 subprogram geri dönüş bloğuna dönüştürür.M98/M99 alt programları dahili olarak işlenir; M02 ve M30, MTB özelliklerine göre her zaman programın başını işaret eder.
Entegre Üretim TakibiManuel program sayaçları veya özelleştirilmiş harici PLC mantık programlaması gerektirir.M02 veya M30 yürütüldüğünde $AC_ACTUAL_PARTS ve $AC_SPECIAL_PARTS sistem değişken sayaçlarını yerel olarak 1 artırır.Sayaç takibi yerel değildir; makine üretici PLC merdiven yapılandırması veya özel makro müdahalesi gerektirir.

Teknik Analiz

Fanuc, Siemens ve Mitsubishi'nin durdurma ve sonlandırma komutlarını nasıl işlediğine dair analitik bir karşılaştırma; ön okuma tamponu (look-ahead buffering), PLC el sıkışması ve program iç içe yerleştirme (nesting) davranışları konusunda temelden farklı kontrol felsefelerini ortaya koymaktadır. Her üç marka da nihayetinde hareketi durdurup programın başını işaret etse de yürüttükleri alttaki hesaplama süreçleri kendi sistem mimarilerine göre uyarlanmıştır.

Ön okuma tamponunun yönetimi en büyük ayrışma noktalarından birini temsil eder. Fanuc; M00, M01, M02 ve M30 komutlarını katı engeller olarak ele alır. Kontrol ünitesinin ön okuma hesaplaması, arabellek parametre ayarlarından bağımsız olarak fiziksel olarak bu komutların ötesini okumaktan alıkonulur. Bu durum, koordinat matematiğinin tamamen donmasını garanti eder. Siemens'in yaklaşımı da benzer şekilde anlıktır; aktif yürütme bloğunda M00 veya M01 işlendiğinde interpolatörü ve eksenleri duraklatır. Mitsubishi ise bu spesifik M-kodlarıyla karşılaştığında ön okuma tamponunu hemen durdurarak agresif bir ön okuma engellemesi uygular; böylece sonraki geometrik hareketlerin önceden yüklenip makine tarafındaki reaksiyonları zamanından önce tetiklemesi önlenir.

CNC işlemcisi ile PLC kabini arasındaki geri bildirim döngüsü de farklılık gösterir. Fanuc, geri sarma kontrolünü parametre 3404'e devrederek CNC'nin otomatik olarak mı geri saracağına yoksa harici bir Reset & Rewind donanım rölesini mi bekleyeceğine makine üreticisinin karar vermesini sağlar. Siemens, HMI isteğe bağlı durdurma paneli durumlarına güvenir ve fiziksel spindle ile soğutma sıvısı reaksiyonlarını tamamen PLC mantığına bırakır. Mitsubishi, doğrudan PLC'ye özel sinyaller gönderen benzersiz bir "M-kodu bağımsız çıkış" yapısı kullanır. Mitsubishi ayrıca gerekli geri bildirimi de değiştirerek durdurmalar için standart bir tamamlama sinyali (FIN1/FIN2) isterken, çevrimleri sonlandırmak için zorunlu bir Reset & Rewind (RRW) el sıkışması talep eder. Bu PLC el sıkışmalarının eşleştirilememesi P36 program hatasına yol açar.

Son olarak, program iç içe yerleştirmesi Siemens yorumlayıcısının esnekliğini vurgular. Siemens kontrollerinde, M02 veya M30 içeren bir ana program başka bir dosya tarafından subprogram (alt program) olarak çağrılırsa yorumlayıcı bu sonlandırma komutlarına otomatik olarak M17 subprogram geri dönüşleri gibi davranır. Bu, geliştiricilerin eski ana dosyaları kodlarını değiştirmeden iç içe yerleştirmelerine olanak tanır. Fanuc ve Mitsubishi bu akıcı iç içe yerleştirme çevirisinden yoksundur; bir M02 or M30 komutu aktif seviyedeki bellek yürütmesini sonlandıracak ve programcıların M98 ve M99 gibi özel subprogram çağırma ve geri dönme yapılarını kullanmasını zorunlu kılacaktır. İlerleme hızlarının bu modlarla nasıl etkileşime girdiğini anlamak için G96 ve G97: Sabit Kesme Hızı ve Sabit Devir kılavuzuna bakın.

Program Örnekleri

Fanuc Program Örneği

O1001 (FANUC DURDURMA VE SONLANDIRMA ORNEGI) ;
N10 G90 G21 G17 ;
N20 T0101 M06 (Takim 1 Sec, takimi yukle) ;
N30 G54 G00 X0 Y0 S1200 M03 ;
N40 G43 H01 Z25.0 M08 (Takim boyu telafisini etkinlestir, sogutma sıvısı ACIK) ;
N50 G01 Z-5.0 F150. ;
N60 X50.0 ;
N70 G00 Z25.0 M09 (Takimi geri cek, sogutma sıvısı KAPALI) ;
N80 M00 (Kosilsuz Durdurma - Operator talaslari temizler ve parca oturmasini kontrol eder) ;
N90 G00 X100.0 Y100.0 ;
N100 T0202 M06 ;
N110 S1500 M03 M08 ;
N120 G00 Z5.0 ;
N130 G01 Z-2.0 F200. ;
N140 X150.0 ;
N150 G00 Z50.0 M05 M09 ;
N160 M30 (Program sonu ve O1001 bloguna otomatik geri sarma) ;
%

Kuru Çalıştırma (Dry Run) Analizi

  • Takım Durumları: Spindle, M03 altında 1200 RPM hızla döner, soğutma sıvısı M08 altında etkinleşir. Spindle, M05 altında Blok N150'de durur, soğutma sıvısı M09 altında kapanır.
  • Operatör Eylemleri: Blok N80 (M00) sırasında operatör kapıyı açar, talaşları temizler, cebi ölçer ve kapıyı kapatıp CYCLE START tuşuna basmadan önce parçanın tam oturduğunu doğrular.
  • PLC Tepkileri: N80'de M00 okunduğunda PLC, fener mili ve soğutma sıvısı rölelerini KAPALI konuma getirmek için tetikler ve eksen ilerlemesini dondurur. N160'ta M30 okunduğunda PLC, sonlandırma döngüsünü tamamlar ve Parametre 3404 bit 4'ün 0 olarak ayarlanmasıyla yönetildiği üzere, program imlecini otomatik olarak en baştaki O1001 bloğuna geri sarar.

Siemens Program Örneği

; SIEMENS M00/M30 PROGRAM DURDURMA VE SONLANDIRMA IS PARCASI
N10 G90 G71 G17
N20 T="END_MILL_10" D1 M6
N30 G54 S1800 M3
N40 G0 X0 Y0 Z30.0 M8
N50 G1 Z-8.0 F250.
N60 Y80.0
N70 G0 Z30.0 M9
N80 M01 ; Kosullu durdurma - Operatorler parca boyutlarini incelemek icin HMI panelini acip kapatır
N90 G0 X120.0 Y50.0
N100 G1 Z-4.0 F300.
N110 X200.0
N120 G0 Z100.0 M5 M9
N130 G53 X0 Y0 D0 ; Makine sifir noktasina donis
N140 M30 ; Program sonu, kontrolu resetler, $AC_ACTUAL_PARTS sayacini artirir

Kuru Çalıştırma Analizi

  • Takım Durumları: Spindle, N30 bloğunda 1800 RPM hızla çalışır, soğutma sıvısı N40'ta etkindir. Her ikisi de makine sıfırına dönmeden önce N120 bloğunda devre dışı bırakılır.
  • Operatör Eylemleri: Siemens HMI panelindeki "İsteğe Bağlı Durdurma" (Optional Stop) anahtarı AÇIK ise makine N80 bloğunda duraklar. Operatör takım aşınmasını ve cep derinliğini kontrol eder, ardından NC START tuşuna basar. Anahtar KAPALI ise N80 bloğu tamamen yoksayılır.
  • PLC Tepkileri: Kontrol ünitesi N80'de M01 komutunu işler. İsteğe bağlı durdurma aktifse PLC interpolatör darbelerini askıya alır. N140 bloğunda PLC, program sonu dizisini yürütür, modal kayıtçıkları sıfırlar ve $AC_ACTUAL_PARTS iş parçası sayacını otomatik olarak 1 artırır.

Mitsubishi Program Örneği

; MITSUBISHI M00/M30 OZEL PLC EL SIKISMASI
N10 G90 G21
N20 M06 T1
N30 G54 G00 X0 Y0 S1000 M03
N40 G43 H1 Z20. M08
N50 G01 Z-10. F180.
N60 X100.
N70 G00 Z20. M09
N80 M00 ; Ozel PLC duraklatmasi - kapi guvenlik kilidi acma tetikleyicisi
N90 G00 X0 Y0
N100 M30 ; RRW el sikismasi talep eden cevrim sonu

Kuru Çalıştırma Analizi

  • Takım Durumları: Takım 1 aktif. Spindle 1000 RPM hızla çalışır, soğutma sıvısı AÇIK. Spindle ve soğutma sıvısı N100 program sonlandırma bloğunda devre dışı bırakılır.
  • Operatör Eylemleri: N80 bloğundaki M00 duraklatması sırasında CNC durur. Güvenlik kilidi açılır, operatörün parçayı incelemesine, kapıyı kapatmasına ve CYCLE START tuşuna basmasına olanak tanır.
  • PLC Tepkileri: M00 komutu PLC'ye özel ve bağımsız bir sinyal gönderir. PLC, emniyet kapısı kilitleme rölesini açılacak şekilde tetikler. N100 bloğunda PLC, denetleyiciye bir Reset & Rewind (RRW) el sıkışması başlatarak sistemi N1 bloğuna sıfırlar.

Hata Analizi

MarkaAlarm KoduTetiklenme KoşuluOperatör BelirtisiKök Neden / Çözüm
FanucPS5010 (END OF RECORD)Parametre 3404 bit 6 değeri 0 olduğunda, öncesinde bir M02 veya M30 bulunmadan EOR (%) işaretinin yürütülmesi.CNC ekranında PS5010 END OF RECORD görüntülenir ve otomatik çalışma anında durur.Sondaki % karakterinden hemen önce uygun bir M02 veya M30 program sonu komutunun yazıldığından emin olun.
FanucPS0008 (ILLEGAL USE)Öncesinde bir M02, M30 veya M99 bulunmadan M-serisi kontrollerde EOR (%) işaretinin yürütülmesi.Kırmızı alarm lambası yanar, program yürütme aniden durur.Sondaki % sembolünden önce kendi bloğunda bir M30 veya M02 eklemek için programı düzenleyin.
FanucPS5016 (ILLEGAL COMBINATION)Tek bir blokta aynı grubun birden fazla M-kodunun programlanması veya sonlandırma komutlarının diğer M-kodlarıyla birleştirilmesi.Kontrolör PS5016 alarmı üretir ve bloğu çözümlemeyi (parse etmeyi) reddeder.Program sonu komutunu (M02/M30), içinde başka M-kodu bulunmayan kendi izole bloğuna taşıyın.
SiemensAlarm 16954Korumalı bir durdurma gecikme alanı (örneğin kılavuz çekme sırasında) içinde programlanmış durdurma (M0/M1) ile karşılaşılması.Sistem Alarm 16954: "Programlı durdurma yasak" hatası verir ve hareket yarıda kesilir.M0/M1 komutlarını senkronize kılavuz çekme, diş açma veya kontur çevrimlerinin dışına taşıyın.
SiemensAlarm 62304 / 62305İş parçası boyutsal ölçüm döngüsünün tolerans ihlali tespit etmesi (üst/alt sınır aşımı).Program yürütme, örtük (implicit) bir M00 duraklatması ile askıya alınır, HMI ekranında uyarı görüntülenir.Kontrol panelinde takım aşınma ofsetlerini ayarlayın ve yürütmeyi güvenli bir şekilde devam ettirmek için NC START tuşuna basın.
MitsubishiAlarm P36 (Program Error)PLC mantığı hatalı; M02/M30 için Reset & Rewind (RRW) yerine standart bir FIN1/FIN2 strobe sinyali döndürüyor.Parça programı sonlanır, ancak makine P36 kodu aktif olacak şekilde bir arıza durumunda durur.M02 ve M30 komutlarının CNC'ye bir Reset & Rewind (RRW) el sıkışması başlatması için PLC merdiven (ladder) programını değiştirin.
MitsubishiAlarm M01 (Operation Alarm)CNC aktif olarak program kontrol (program check) modunda çalışırken operatör cycle start butonuna basıyor.Kontrolör ekranda yanıp sönen bir M01 alarmı üretir; cycle start yoksayılır.Makineyi çalıştırmayı denemeden önce program kontrol rutininin M02 veya M30'a ulaşmasını bekleyin.

Uygulama Notu

Yüksek maliyetli bir iş parçasında kalıcı olarak sıkışan kırık bir kılavuz, Siemens kontrol ünitelerinde senkronize kılavuz çekme veya diş açma gibi korumalı durdurma gecikme alanlarında (stop delay areas) hatalı bir şekilde M00 veya M01 komutunun kullanılmasının doğrudan bir sonucudur; bu durum fener mili ile eksenlerin elektronik dişli senkronizasyonunu bozarak Alarm 16954 hatasını tetikler. Benzer şekilde, operatörün manuel takım aşınması veya iş parçası hizalama kontrolleri için M01 komutuna güvendiği bir senaryoda, HMI panelindeki "İsteğe Bağlı Durdurma" (Optional Stop) anahtarını aktif hale getirmeyi unutması, makinenin bu bloğu yoksayarak doğrudan fikstüre dalmasına yol açar. Takımın çelik bir mengene çenesine (vise jaw) veya taret kıskacına (clamp) şiddetle çarpmasıyla sonuçlanan bu sert çarpışma (hard collision), hem pahalı ekipman hasarına hem de telafi edilemez bir hurda (scrap) oluşumuna neden olur. Mitsubishi sistemlerinde ise, bir parça programı tamamlandığında PLC merdiven mantığının zorunlu olan Reset & Rewind (RRW) el sıkışma sinyali yerine hatalı bir şekilde standart bir bitiş strobu (FIN1 veya FIN2) göndermesi, sistemi kilitleyerek P36 program hatasını tetikler ve ciddi bir duruş süresi (downtime) kaybı yaratır. Üretim sürecinde bu tür donanımsal el sıkışma uyumsuzluklarını ve program sonlandırma hatalarını önlemek için, Fanuc parametrelerinin (özellikle geri sarma davranışını yöneten Parametre 3404 ve veri alımını kesen Parametre 3201 NPE) doğru yapılandırılması ve durdurma komutlarının hareket koordinatlarından arındırılarak her zaman izole NC bloklarında programlanması, makine verimliliği ve maliyet tasarrufu açısından hayati öneme sahiptir.

İlişkili Komut Ağı

  • M98 / M99 (Subprogram Çağırma ve Geri Dönüş): M98 harici bir subprogram bloğunu çağırır, M99 ise subprogramı sonlandırır ve yürütme kontrolünü birincil çağıran programa geri döndürür.
  • M17 (Siemens Subprogram Geri Dönüşü): Siemens kontrolörlerinde yerel subprogram sonu ve geri dönüş komutu olarak hizmet eder, işlem akışını üst seviyedeki çağıran program bloğuna döndürür.
  • M03 / M04 / M05 (Spindle Kontrolleri): Sırasıyla spindle dönüşünü saat yönünde, saat yönünün tersinde ve durdurma şeklinde kontrol eder ve genellikle program durdurmalarıyla birlikte veya hemen öncesinde kapanacak şekilde programlanırlar.
  • EOR / % (Kayıt Sonu - End of Record): Parça programı veri aktarımı için fiziksel dosya sınırı işareti olarak görev yapar, bellek okuyucusuna taramayı durdurmasını bildirir ve dosya taşma hatalarını önler.

Sonuç

Modern CNC üretim tesislerinde duruş süresini en aza indirmek ve hurda oranını sıfıra yakın tutmak, durdurma ve sonlandırma komutlarının titizlikle uygulanmasına bağlıdır. M00, M01, M02 ve M30 komutlarını basit G-kod satırları olarak görmek yerine, donanım düzeyinde PLC koruma kalkanları olarak değerlendirmek gerekir. Her yeni programın kuru çalıştırma (dry run) sürecinde operatör paneli anahtarlarının durumunu doğrulamak, sonlandırma kodlarını her zaman bağımsız NC bloklarında izole etmek ve kontrolör parametrelerini (örneğin Fanuc 3404 parametresini) makineye uygun şekilde yapılandırmak, işletmeler için beklenmedik çarpışma maliyetlerini ortadan kaldırır. Bu sistemik kontrollerin bir üretim standardı haline getirilmesi, hem takım ömrünü korur hem de operasyonel duruş sürelerini önleyerek doğrudan maliyet tasarrufu sağlar.

Sıkça Sorulan Sorular

CNC tezgahında M30 yürütüldükten sonra makinenin arızaya geçmesini ve P36 alarmı vermesini nasıl önlerim?

Mitsubishi kontrol ünitelerinde bu durum, PLC yazılımının program sonlandırma sırasında geri sarma el sıkışmasını tamamlayamamasından kaynaklanır. Standart bir FIN1 veya FIN2 sinyali yerine zorunlu olan Reset & Rewind (RRW) sinyalinin PLC merdiven programı (ladder) üzerinden doğru şekilde eşleştirilmesi gerekir. Pratik bir çözüm olarak, makine üreticisinin PLC dokümantasyonunu inceleyip termination (sonlandırma) bloğundaki el sıkışma adreslerini RRW çıkışına yönlendirin.

Kılavuz çekme (tapping) veya diş açma esnasında M00/M01 kullanımı neden yasaktır ve Alarm 16954 nasıl engellenir?

Siemens SINUMERIK ünitelerinde kılavuz çekme veya senkronize diş açma esnasında eksenler ile spindle devri birbirine hassas bir elektronik dişli (electronic gearing) mekanizmasıyla bağlıdır. Bu esnada programa duraklatma komutu gönderildiğinde, bu sıkı senkronizasyon aniden bozularak kılavuzun parça içinde kırılmasına ve pahalı parçanın hurdaya çıkmasına yol açar. Bu hatayı engellemek için, duraklatma veya ara kontrol işlemlerini diş açma çevrimi başlamadan önce veya diş tamamen tamamlanıp takım güvenli bir şekilde parça dışına çekildikten sonra gerçekleştirecek şekilde G-kodunuzu revize edin.

MDI modunda yazdığım programın M02 veya M30 sonrasında ekrandan silinmesini nasıl önleyebilirim?

Fanuc sistemlerinde bu davranış, tamamen kullanıcı parametrelerindeki bellek koruma ayarlarıyla ilgilidir. Parametre MKP (Parametre 3204 bit 6) değeri "0" olarak ayarlandığında, kontrolör M02/M30 veya % işareti gördüğü an MDI tamponunu temizler; bu da tekrarlayan manuel ayarlarda zaman kaybına neden olur. MDI modunda yazdığınız komut dizilerinin korunması ve ekranda kalması için Parametre 3204 bit 6 (MKP) değerini kontrol panelinden "1" olarak değiştirin.

Hala çözülmedi mi?

Bu makaledeki konuyu AI asistana doğal dilde sorabilirsin. Doğrulanmış kaynaklardan, halüsinasyon yok.

AI Asistana Sor
Hakan Gündoğdu
Hakan Gündoğdu
  • CNC CARE Co-Founder (May 2025 - Present)
  • Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
  • Reis CNC Service Engineer (2003 - 2005)
  • Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)

25 yılı aşkın CNC makine sektörü deneyimimle, marka-bağımsız danışmanlık, mühendislik ve orijinal yedek parça hizmetleri sunduğumuz CNC CARE'in kurucu ortağı olarak faaliyetlerime devam ediyorum.

İlgili Makaleler

Bu konuyla ilgili diğer makaleler