Ana içeriğe geç
CNC.wiki

Fanuc, Siemens ve Mitsubishi CNC Alt Program Yazma Rehberi

Fanuc, Siemens ve Mitsubishi ünitelerinde CNC alt program (M98, MCALL) kullanımı, parametre ayarları, yuvalama limitleri ve duruş/hurda maliyeti düşürme yolları.

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

CNC CARE Co-founder

Giriş

CNC alt programlarının sonunda mutlak koordinat sistemine (G90) geri dönülmemesi, taretin doğrudan ayna, mengene çenesi veya bağlama pabuçlarına şiddetle çarpmasına yol açan kontrolsüz eksen kaymalarının en yaygın nedenidir. Operatörün gözü önünde, G91 artışlı konumlandırma modunda kalan CNC kontrolörü, M99 veya M17 alt program sonlandırma kodunu okuduğu anda ana programa en son eksen koordinatlarından devam eder. Üstelik bu durum, kesici takımın iş parçasına veya fikstürlere dalmasına, mil şaftının bükülmesine ve tüm çevrim süresiyle birlikte binlerce liralık hammaddenin hurdaya dönmesine neden olur. Şüphesiz bu tür yüksek maliyetli duruş sürelerini engellemek; Fanuc, Siemens ve Mitsubishi sistemlerinde alt program yapısı, yuvalama sınırları ve modal verilerin doğru yapılandırılmasından geçer.

Teknik Özet

Teknik ÖzellikDetaylar
Komut KodlarıFanuc: M98, M99, M198
Siemens: L<numara>, <program adı>, MCALL, EXTCALL, M17, RET
Mitsubishi: M98, M99, M198
Modal Grup / ModellikAlt Program Çağırma ve Geri Dönüş Komutları
Kapsanan MarkalarFanuc, Siemens, Mitsubishi
Kritik ParametrelerFanuc: 3404#2 (SBP), 6001#5/7000#0 (TCS)
Siemens: P (INT), VAR anahtar kelimesi
Mitsubishi: #8876 (M198 cihazı), #8129 (Arama önceliği)
Temel KısıtlamaYuvalama (nesting) sınırları: Maks 4 seviye (Fanuc), Maks 11/16 seviye (Siemens), Maks 8/10 seviye (Mitsubishi). Harici depolama ortamlarında yuvalanmış M198 çağrıları yasaktır.

Hızlı Okuma

  • Modal Sıfırlama Eylemi: Katastrofik takım yolu kaymalarını önlemek için bir alt programdan çıkmadan önce mutlak konumlandırmayı (G90) tutarlı bir şekilde geri yükleyin ve değiştirilen modal ilerlemeleri sıfırlayın.
  • Yuvalama Sınırı Kısıtlaması: Yorumlayıcı bellek taşmalarını önlemek için alt program yuvalama seviyelerini Fanuc'ta 4, Mitsubishi'de 8 ila 10 ve Siemens'te 11 ila 16 ile sınırlayın.
  • Harici Depolama Çağrısı: Büyük programları doğrudan harici hafıza kartlarından veya veri sunucularından çalıştırmak için M198 (Fanuc/Mitsubishi) veya EXTCALL (Siemens) kodlarını programlayın.
  • Parametre Kilidi Koruması: Yanlışlıkla değişiklik yapılmasını önlemek için Fanuc'ta PRG8 (0389#2) ve PRG9 (0010#4) parametrelerini kullanarak 8000 ve 9000 serisi makro programların düzenleme izinlerini kilitleyin.
  • Takma Ad (Alias) Özelleştirme Kararı: Taret döndürme dizileri gibi arka plan alt programlarını otomatik olarak takma adlandırmak ve tetiklemek için özel M, S, T veya B kodlarını kullanın.
  • Siemens Modal MCALL: Seçim kaldırılana kadar sonraki bloklarda listelenen her koordinat konumunda bir alt programı otomatik olarak yürütmek için Siemens sistemlerinde MCALL komutunu uygulayın.

Temel Kavramlar

Alt programların pratik programlama etkisi, tekrarlayan işleme dizilerini modüler hale getirme, program dosya boyutlarını önemli ölçüde azaltma ve gelecekteki mühendislik değişikliklerini basitleştirme yeteneğidir. Geliştiriciler, aynı geometrik kaba talaş pasolarını, kanal açma rutinlerini veya palet değiştirme dizilerini tek bir büyük programda birden fazla kez kopyalayıp yapıştırmak yerine, bu eylemleri bağımsız, alt düzey dosyalar olarak kaydederler. Ana program, gerektiğinde bu alt programları çağırır ve alt program sonlandığında ana yola anında geri döner; bu da minimum bellek tüketen temiz, akıcı dosyalar sağlar.

Kontrol markaları, bu alt düzey dosyaları nasıl buldukları, çağırdıkları ve yürüttükleri konusunda ayrışırlar. Eski platformlar katı sayısal O-numarası adlandırma kuralları gerektirirken, modern kontroller açıklayıcı alfanumerik isimlere izin verir. Alt programlar ayrıca farklı koordinatlarda modal benzeri şekilde yürütülebilir veya dahili bellek kısıtlamalarını tamamen aşmak için harici donanım arayüzlerinden dinamik olarak aktarılabilir. Bir alt program, çağıran programın aktif bir uzantısı olarak yürütüldüğünden, ilerleme hızları ve konumlandırma koordinatları gibi modal durumlar seviyeler arasında akıcı bir şekilde akar ve koordinat sızmasını önlemek için katı programlama uygulamaları gerektirir.

Komut Yapısı

Bir alt programı çağırmak için, CNC yorumlayıcısı hedef programın tanımlayıcısı ve tekrarlama sayısı ile birlikte belirli bir komut kodunu çözümlemelidir. Standart Fanuc ve Mitsubishi ortamlarında, M98 kodu bu atlamayı başlatarak kontrolü P adresi tarafından belirtilen programa aktarır. Kontrolör, nihai geri dönüş sırasını yürütmeden önce bir yineleme sayacı kullanarak alt programın her bir yinelemesini izler. Alt programın sonuna ulaşıldığında, bir geri dönüş kodu alt programdaki yürütmeyi durdurur ve program göstericisini doğrudan orijinal çağrı komutunu takip eden bloğa geri döndürür.

Siemens kontrolleri, alt programların doğrudan program adı veya bir L adresi ile çağrılmasına izin veren daha esnek bir yapıyı destekler. Bir Siemens alt programının tanımı, program seviyeleri arasında değer aktarımı için parametre türlerini ve adlarını tanımlayan bir PROC başlığı içerebilir. Geri dönüş atlaması M17 veya RET aracılığıyla yürütülür. Tüm markalarda, M198 veya EXTCALL gibi harici çağrılar, bellek kartlarından veya ağ sürücülerinden veri akışına izin verir. Parametreler ve sözdizimi adresleri, kontrolün bu rutinleri nasıl arayacağını, tekrarlayacağını ve bunlardan nasıl döneceğini yönetir.

Komut Sözdizimi Adresleri:

  • Fanuc Standart Çağrı: M98 P_ L_ ;
  • Fanuc Harici Çağrı: M198 P_ ;
  • Fanuc Geri Dönüş: M99 ;
  • Siemens Tanımlama: PROC <program adı> (<ParamTürü> <ParamAdı>, VAR <ParamTürü> <ParamAdı>) [SAVE] [DISPLOF] [SBLOF] [ACTBLOCNO]
  • Siemens Çağrı: <program adı> (<Param1>, <Param2>) veya L<numara> veya MCALL <program adı>
  • Siemens Geri Dönüş: M17 veya RET
  • Mitsubishi Standart Çağrı: M98 P__ H__ L__ ,D__ ; veya M98 <dosya adı> H__ L__ ,D__ ;
  • Mitsubishi Harici Çağrı: M198 P__ L__ ; veya M198 <dosya adı> L__ ;
  • Mitsubishi Geri Dönüş: M99 P__ ;
Parametre AdresiKontrol MarkasıAçıklamaGeçerli Ayarlar
PFanuc / MitsubishiÇağrılacak hedef program numarasını belirtirEn fazla 8 hane
LFanuc / MitsubishiAlt programın kaç kez tekrarlanacağını belirler1 ila 9999 (Varsayılan: 1)
HMitsubishiAlt program içindeki başlangıç sıra blok numarasını belirtirSıra kodu (örneğin, H100 kodu N100 ile eşleşir)
,DMitsubishiÇağrıyı doğrudan belirli bir fiziksel depolama cihazına yönlendirir0 ila 4 (parametreler aracılığıyla eşlenir)
<dosya adı>MitsubishiAçılı ayraçlar içinde alfanumerik bir dosya adı belirtirEn fazla 32 karakter
P (çağrıda)SiemensProgramın kaç kez tekrarlanacağını kontrol eder1 ila 9999 (örneğin, P3)
VARSiemensPROC başlığında referans ile çağrı (call-by-reference) parametre aktarımını bildirirBulunmamaktadır (anahtar kelime)
SAVESiemensAktif modal G-fonksiyonlarını ve çerçevelerini (frames) otomatik olarak kaydeder ve geri yüklerBulunmamaktadır (öznitelik)
DISPLOFSiemensAlt program yürütülmesi sırasında HMI ekranında blok gösterimini bastırırBulunmamaktadır (öznitelik)
SBLOFSiemensYürütme sırasında tek blok (single-block) modunda adım adım ilerlemeyi devre dışı bırakırBulunmamaktadır (öznitelik)

Marka Uygulamaları

Fanuc CNC Entegrasyonu

Fanuc kontrolleri, alt programları tetiklemek için parametre tabanlı takma adları (alias) destekler. Sistem, takım çağrılarını O9000 programına eşlemek için parametre 6001#5 (TCS) kullanarak arka plan alt programlarını yürütebilir.

Standart alt programlar M98 ile, harici depolama kartı dosyaları M198 ile çağrılır ve M99 komutu kullanılarak geri dönülür.

Parametre / Alarm / VersiyonTipAçıklamaAyarlar / Detaylar
Parametre 0010#4 (PRG9)ParametreO9000 ila O9999 alt programlarının düzenlenmesinin yasaklanıp yasaklanmayacağını belirler.0 (yasak değil), 1 (yasak)
Parametre 0389#2 (PRG8)ParametreO8000 ila O8999 alt programlarının düzenlenmesinin yasaklanıp yasaklanmayacağını belirler.0 (yasak değil), 1 (yasak)
Parametre 3404#2 (SBP)ParametreM198'deki P adresinin bir dosya numarasını mı yoksa program numarasını mı belirteceğini dikte eder.0 (dosya numarası), 1 (program numarası)
Parametre 3457ParametreArama klasörü hiyerarşisi yapılandırmaları (örneğin, kullanıcı klasörleri, MTB klasörleri, sistem klasörleri).Bit değerleri
Parametre 6071 ila 6079ParametreO9001 ila O9009 alt programlarını otomatik olarak çağırmak için belirli M kodlarını atar.3 ila 99999999 (rezerve edilmiş M kodları hariç)
Alarm 0076AlarmPROGRAM NOT FOUND: Çağrılan program bellekte veya arama klasörlerinde bulunamıyor.Parametre 3457'yi kontrol edin ve O-numarası kaydını doğrulayın.
Alarm 0077AlarmTOO MANY SUB, MACRO NESTING: Yuvalama seviyesi sınırı aşıyor.Maksimum 4 yuvalanmış alt program (makro çağrıları dahil 8).
Alarm 1080AlarmDUPLICATE DEVICE SUB PROGRAM CALL: Yuvalanmış M198 çağrısı.Aktif bir M198 alt programının içinden M198 çağırmaktan kaçının.
Alarm 1091AlarmDUPLICATE SUB-CALL WORD: Aynı blokta birden fazla çağrı.Alt program çağrılarını ayrı bloklarda belirtin.
Parametre 0001#1 (FCV)VersiyonFS0-TC/FS15-TA şerit formatları için eski uyumluluk modu.0 (standart format), 1 (Series 15 formatına geri döner, tekrar ve P adresini birleştirir)

Uyarı: Bir M99 geri dönüş komutundan önce koordinat ofsetlerinin veya modal konumlandırmanın (G91) sıfırlanmaması koordinat sistemi kaymasına neden olarak tareti mengene çenesine sürer.

Siemens SINUMERIK Entegrasyonu

Siemens, yerel değişken kapsamlandırması ile üst düzey alt program tanımlarını destekler. Standart çağrılar program adı veya L-numarası kullanır ve parametreleri doğrudan PROC başlığı üzerinden iletir.

Modal alt program çağrıları MCALL aracılığıyla başlatılır ve iptal edilene kadar her koordinat bloundan sonra alt programı yürütür. Geri dönüşler M17 veya RET kullanır.

Parametre / Alarm / VersiyonTipAçıklamaAyarlar / Detaylar
P (INT)ParametreAlt program tekrarlama sayısını programlamak için adres.1 ila 9999
VARParametrePROC başlığında referans ile çağrı (call-by-reference) parametrelerini bildirir.Bulunmamaktadır (anahtar kelime)
SAVEÖznitelikAktif modal G-fonksiyonlarını ve çerçevelerini otomatik olarak kaydeder ve geri yükler.Bulunmamaktadır
DISPLOF / SBLOFÖznitelikHMI ekranında blok gösterimini bastırır / tek blok modunu devre dışı bırakır.Bulunmamaktadır
Alarm 14011Alarmprogram not existing or will be edited. Çağrılan dosya eksik veya HMI ekranında açık.Dosyayı HMI ekranında kapatın; _N_SPF_DIR yolunu kontrol edin.
Alarm 14012Alarmmaximum subroutine level exceeded. Maksimum yuvalama derinliği aşıldı.Yuvalama seviyelerini kontrol edin.
Alarm 12720AlarmISO modunda makro çağrısı (G65/G66) için program numarası eksik.P adresini kullanarak hedef program numarasını belirtin.
SINUMERIK 808D vs 828D/840D slVersiyonAlt program yuvalama seviyeleri için donanım katmanı farklılıkları.808D: 11 seviye · 828D/840D sl: 16 seviye (ASUB'lar ile 18)
Yazılım Versiyonu 5+VersiyonDüzenleme için açık olan programların yürütülmesini engelleyen güvenlik kilidi.HMI'da açık olan programlar NC Start ile başlatılamaz.

Uyarı: PROC satırından SAVE özniteliğinin çıkarılması, modal G-kodu ayarlarının (G91 gibi) ana programa sızmasına izin vererek ani eksen çarpmalarına neden olur.

Mitsubishi CNC Entegrasyonu

Mitsubishi, G-kodu bloğunda doğrudan alfanumerik alt program çağrılarına olanak tanır. Arama önceliği, O-numarası biçimlendirmesini belirlemek için parametre #8129 kullanılarak yapılandırılır.

Alt programlar, açılı ayraçlar ile M98 kullanılarak çağrılır (örneğin, <PART.PRG>) ve M198 veya ,D adresi kullanılarak harici ortama yönlendirilir.

Parametre / Alarm / VersiyonTipAçıklamaAyarlar / Detaylar
#8876 (M198 pro stor: dev)ParametreM198 ile çağrılan alt programlar için hedef depolama cihazını seçer.G (Sabit Disk), R (Bellek kartı), D (Veri sunucusu), N (USB bellek)
#8880 ila #8888Parametre,D adresine (0 ila 4) eşlenen belirli donanım cihazlarını ayarlar.M (Bellek), G (HD), R (M-Kartı), D (Veri sunucusu), T (Ethernet), F (FLD)
#8129 (Subpro No. select)ParametreAlt program numaralarını arama önceliğini belirler.0 (komut verilen numara), 1 (O ile başlayan 4 haneli numara), 2 (8 haneli O numarası)
Program Error (P230)AlarmSubprogram nesting over: Maksimum yuvalama derinliği aşıldı.Yuvalama seviyelerini ve veri sunucu yapılandırmalarını kontrol edin.
Program Error (P231)AlarmNo sequence No.: Geri dönüş sıra bloğu veya atlama hedefi eksik.Sıra numarasının M99 P'deki hedefle eşleştiğinden emin olun.
Program Error (P232)AlarmNo program No.: Hedef dosya eksik veya harici sürücü bağlı değil.Sürücü bağlantı durumunu ve dosya adı uzunluğunu kontrol edin (maks 32 karakter).
M70V/M700V vs M800V/M80VVersiyonAlt program yuvalama seviyeleri için CNC serisi sınırları.M70V/M700V: 8 seviye · M800V/M80V: 10 seviye
M800VW/M80VW vs M800VS/M80VVersiyonParametre #8876 ayarlanmadığında M198 için varsayılan arama cihazı.VW/Type-W: Veri Sunucusu · VS/Type-S: Ön panel SD kartı

Uyarı: Bir SD karttan M198 alt programının birden fazla parça sisteminde eşzamanlı olarak çalıştırılması engellenir ve anında yürütme durmalarını tetikler.

Marka Karşılaştırmaları

KonuFanucSiemensMitsubishi
Alphanumeric FilesYerel destek yoktur; kesinlikle O-numaraları gerektirir.Program adı dizeleri kullanılarak yerel olarak desteklenir.Açılı ayraçlar kullanılarak yerel olarak desteklenir (örneğin, <PART-FILE.PRG>).
Tekrarlayan Modal ÇağrıBlok blok yürütme veya G66 modal makro çağrısı.MCALL <prog> aracılığıyla modal alt program yürütme.Blok blok yürütme.
Yuvalama DerinliğiMaks 4 yuvalanmış seviye (makrolar dahil 8).Maks 11 (808D), 16 (828D/840D sl), ASUB'lar ile 18'e kadar.Maks 8 (M70V/M700V), 10 (M800V/M80V).
Depolama Ortamı ÇağrısıM198 P_ karttan/veri sunucusundan akış gerçekleştirir.EXTCALL harici alt programları çağırır.M198, #8876 veya açık ,D adresi parametresi ile yapılandırılmış cihazdan çağırır.
Parametre AktarımıÖzel Makro çağrıları gerektirir (G65/G66).Doğrudan PROC tanımı aracılığıyla desteklenir (değer ile çağrı ve VAR aracılığıyla referans ile çağrı).Makro çağrısı veya değişkenler gerektirir.

Teknik Analiz

Bu üç CNC mimarisinin analitik bir incelemesi; alt program yürütme, bellek kapsamı ve parametre aktarımına yönelik farklı yaklaşımları ortaya koymaktadır. Siemens, yürütme modelini üst düzey PC programlama dillerine dayandırarak programcıların doğrudan alt program başlığında yerel kapsamlar ve parametre aktarım mekanizmaları tanımlamasına olanak tanır. Siemens, PROC satırında VAR anahtar kelimesini kullanarak referans ile çağrı yürütmeyi etkinleştirir ve alt programların hesaplamaları değiştirmesine ve ana programa döndürmesine izin verir. Fanuc ve Mitsubishi ise eski yazmaç (register) mimarilerini kullanarak değerleri aktarmak için G65 veya G66 gibi makro seçeneklerini gerektirir ya da programcıları kararsız ortak veya küresel değişkenlere güvenmeye zorlar, bu da modal veri bozulması riskini beraberinde getirir.

Yuvalama hiyerarşileri de farklı donanım felsefelerini yansıtır. Fanuc'un 4 seviyeli yuvalama sınırı, programcıların basitleştirilmiş, sığ çağrı ağaçları sürdürmesini gerektirir. Siemens, 16 ila 18 seviyeye kadar yuvalama sağlar ancak bu seviyeler kullanıcı alt programları, standart Siemens çevrimleri ve üretici OEM arka plan rutinleri (spindle hız sınırları veya taret kontrol makroları gibi) arasında dinamik olarak paylaşıldığı için bu bütçe hızla tükenebilir. Mitsubishi, eski M70V serisinde 8 seviye ve daha yeni M80V kontrollerinde 10 seviye sunarak orta bir yol izler. Herhangi bir kontrolde bu limitlerin aşılması yürütmeyi anında durdurur ve bu da tüm aktif sistemlerde çağrı derinliklerinin izlenmesinin zorunluluğunu gösterir.

Dizin yönlendirme ve güvenlik kontrolleri bu platformları birbirinden ayırır. Fanuc, katı ve otomatik bir klasör hiyerarşisinde arama yapmak için parametre 3457'yi kullanırken, Mitsubishi <PART.PRG> gibi açılı ayraçlı dosya adları veya ,D adresi aracılığıyla doğrudan fiziksel yönlendirmeye izin verir. Siemens ise bir EXTERN bildirimi yapılmadığı sürece alt program çağrılarını yerel iş parçası diziniyle sınırlandırır. Siemens, çağrılan dosya ekranda açık olduğunda NC Start'ı engelleyen bir HMI düzenleme güvenliği kilidi (versiyon 5 ve üzeri) uygulayarak Fanuc veya Mitsubishi sistemlerinde yerel olarak bulunmayan bir koruma sağlar.

Program Örnekleri

Fanuc Subprogram Call Example

; Fanuc Alt Program Çağırma Örneği
O0001 (ANA PROGRAM) ;
G90 G54 G00 X0 Y0 Z10.0 ; Eksenleri ön konumlandır
M98 P1000 L5 ; O1000 alt programını beş kez çağır
G00 Z50.0 M30 ; Geri çekil ve ana programı sonlandır

O1000 (ALT PROGRAM) ; G91 G01 Z-2.0 F150 ; Artışlı moda geç ve Z ekseninde ilerle G90 G01 X50.0 F300 ; Mutlak moda geç ve X50.0 koordinatına kes G91 G01 Z2.0 ; Artışlı Z geri çekilmesi G90 G01 X0 ; Mutlak X0 koordinatına geri dönüş M99 ; Ana programa geri dönüş

kuru çalıştırma (dry run)

Fanuc kodu kuru çalıştırma ile test edilirken, makine ilk olarak mutlak modda X0, Y0 ve Z10.0 koordinatlarına hareket eder. Yorumlayıcı M98 P1000 L5 bloğuna ulaştığında ana programı askıya alır ve O1000 alt programına atlar. O1000'de kontrolör, Z eksenini 2.0 mm aşağı beslemek için artışlı moda (G91) geçer, ardından X ekseni beslemesini 50.0 mm'ye yürütmek için mutlak moda (G90) geri döner. Artışlı bir geri çekilme gerçekleştirir, mutlak X0'a döner ve ardından M99'u okur. Kontrolör, Z'yi 50.0 mm'ye çektiği ve M30 ile sonlandırdığı ana programa dönmeden önce bu döngüyü beş kez tekrarlar.

Siemens Subprogram Call Example

; Siemens Alt Program Çağırma Örneği
N10 G90 G54 G00 X0 Y0 Z10.0 ; Eksenleri ön konumlandır
N20 MCALL POCKET_CYCLE(3.0, 150.0) ; POCKET_CYCLE alt programını modal olarak çağır
N30 X50.0 Y50.0 ; 1. koordinatta alt programı yürüt
N40 X100.0 Y50.0 ; 2. koordinatta alt programı yürüt
N50 MCALL ; Modal alt program çağrısını iptal et
N60 G00 Z50.0 M30 ; Z eksenini geri çek ve ana programı sonlandır

Not: Aşağıda iş parçası dizinine kaydedilen POCKET_CYCLE.SPF alt programı yer almaktadır:

PROC POCKET_CYCLE(REAL DEPTH, REAL FEED) SAVE DISPLOF ;
G91 G01 Z=-DEPTH F=FEED ; Artışlı dalma
G90 G01 G41 X0 Y0 ; Takım yarıçap telafisini etkinleştir
G03 X0 Y0 CR=25.0 ; Dairesel cep işle
G40 G01 X0 Y0 ; Telafiyi iptal et
G91 G01 Z=DEPTH ; Artışlı geri çekilme
M17 ; Ana programa geri dönüş

kuru çalıştırma

Siemens programının kuru çalıştırma sırasında test edilmesi, makinenin önce X0, Y0 ve Z10.0 koordinatlarına gittiğini gösterir. N20 bloğundaki MCALL komutu, POCKET_CYCLE rutinini NC belleğine modal olarak kaydeder. Makine alt programı N20'de yürütmez, ancak N30 bloğunu (X50.0 Y50.0) okuduğunda koordinata gider, duraklar ve alt programı çağırır. Alt program, çağıran programın modal ayarlarını otomatik olarak depolayan SAVE özniteliği aktif olarak çalışır. Z eksenini 3.0 mm aşağı beslemek için artışlı moda geçer, dairesel cep işler, geri çekilir ve M17'yi okur. Kontrolör otomatik olarak orijinal modal ayarları geri yükler ve devam eder. N50 bloğu modal durumu temizlemeden önce, bu sırayı N40 koordinatında (X100.0 Y50.0) tekrarlar.

Mitsubishi Subprogram Call Example

; Mitsubishi Alt Program Çağırma Örneği
O0002 (ANA PROGRAM) ;
G90 G54 G00 X0 Y0 Z10.0 ; Eksenleri ön konumlandır
M98 <POCKET-ROUT.PRG> H200 L3 ,D1 ; POCKET-ROUT.PRG dosyasını N200 bloğundan başlayarak cihaz 1'den çağır
G00 Z50.0 M30 ; Geri çekil ve ana programı sonlandır

Not: Aşağıda CF Kartında (Cihaz 1) saklanan POCKET-ROUT.PRG alt programı yer almaktadır:

O2000 (ALT PROGRAM) ;
N100 G01 Z-5.0 F100 ; H200 başlangıç adresi nedeniyle bu blok atlanır
N200 G91 G01 Z-2.0 F120 ; Yürütme burada başlar; artışlı ilerleme
N300 G90 G01 X30.0 Y30.0 F250 ; Mutlak profili kes
N400 G91 G01 Z2.0 ; Artışlı geri çekilme
N500 G90 G01 X0 Y0 ; Mutlak geri dönüş
M99 ; Ana programa geri dönüş

kuru çalıştırma

Kuru çalıştırma sırasında, Mitsubishi kontrolörü takımı X0, Y0 ve Z10.0 koordinatlarında önceden konumlandırır. M98 komutunu yürüttüğünde, CNC cihaz 1'i (CF Kartı) kontrol eder, <POCKET-ROUT.PRG> dosyasını bulur ve N200 sıra bloğunu arar. Yorumlayıcı N100 bloğunu tamamen atlayarak Z ekseni artışlı hareketini N200'de başlatır. Profil kesimlerini gerçekleştirdikten sonra takım mutlak modda X0, Y0'a geri döner. M99 okunduğunda, kontrolör ana programa geri döner ve M30 ile sonlandırmadan önce bu işlemi üç kez tekrarlar.

Hata Analizi

MarkaAlarm KoduTetiklenme KoşuluOperatör BelirtisiKök Neden / Çözüm
FanucAlarm 0076Çağrılan program numarası bellekte veya arama klasörlerinde eksik.Makine anında durur ve ekranda PROGRAM NOT FOUND hata mesajı gösterilir.Parametre 3457 klasör yolu yapılandırmalarını kontrol edin ve O-numaralı dosyanın yerel bellekte var olduğunu doğrulayın.
FanucAlarm 0077Yuvalama derinliği izin verilen maksimum sınırı aşıyor.CNC çevrim ortasında durur ve TOO MANY SUB, MACRO NESTING hatası sunar.Program mantığını basitleştirin. Çağırma seviyelerinin 4 seviyeyi (makro çağrıları dahil 8) aşmadığından emin olun.
FanucAlarm 1080Aktif bir M198 alt programı içinden ikincil bir M198 harici cihaz çağrısı yürütüldü.Yürütme donar ve DUPLICATE DEVICE SUB PROGRAM CALL hatası gösterilir.M198 bloklarını yuvalamaktan kaçının. İkincil rutinleri yerel SRAM belleğine kopyalayın.
FanucAlarm 1091Aynı blokta birden fazla alt program çağırma komutu programlandı.Yorumlayıcı durur ve DUPLICATE SUB-CALL WORD hatası verir.Her alt program çağırma komutunu kendi bloğunda izole edin.
SiemensAlarm 14011Çağrılan alt program eksik, serbest bırakılmamış veya düzenleme için açık.Kontrolör yürütmeyi durdurur ve program not existing or will be edited mesajı görüntüler.Düzenleme kilidini kaldırmak için HMI ekranındaki dosyayı kapatın. _N_SPF_DIR içindeki yolu doğrulayın.
SiemensAlarm 14012Yuvalama derinliği sınırı aşıldı.Sistem maximum subroutine level exceeded mesajı ile durur ve NC Start'ı devre dışı bırakır.Çağrı ağacını inceleyin. Yuvalanmış çevrimleri veya Turret3_CODE_T gibi OEM makrolarını azaltın.
SiemensAlarm 12720ISO modu makro çağrısı, P aracılığıyla program numarası tanımlanmadan yürütüldü.Kontrol komutu reddeder ve program number for macro call missing hatası gösterir.P adresini kullanarak hedef program numarasını belirtin.
MitsubishiError P230Yuvalama seviyesi kapasiteyi aşıyor veya veri sunucusunda yuvalanmış M198 çağrıları yürütülüyor.Kontrol durur ve Subprogram nesting over hatası görüntüler.Yuvalama limitlerini gözden geçirin. Çağrıları 8 (M70V/M700V) veya 10 (M800V/M80V) ile sınırlayın.
MitsubishiError P231Belirtilen geri dönüş bloğu (M99 P) veya atlama hedefi eksik.Yorumlayıcı hata verir ve No sequence No. hatası görüntüler.P'den sonra programlanan sıra numarasının hedef programda mevcut olduğundan emin olun.
MitsubishiError P232Çağrılan dosya eksik, sürücü takılı değil veya adı 32 karakteri aşıyor.Yürütme durur ve No program No. hatası gösterir.Harici medyayı güvenli bir şekilde takın, dosya adlarını kontrol edin ve karakter sayısını 32'nin altında tutun.

Uygulama Notu

Eksen koordinatlarının yanlış hizalanması nedeniyle tareti ve mili kullanılmaz hale getiren, pahalı kesici takımları kıran ve yüksek hassasiyetli iş parçalarını hurdaya çıkaran kazalar; genellikle alt programların kontrolsüz sonlandırılması ve yetersiz parametre güvenliğinden kaynaklanır. Siemens ünitelerinde PROC satırına SAVE özniteliği eklenmediğinde, alt program içindeki G91 gibi modal durumlar ana programa sızarak takım yolunu saptırır ve tareti doğrudan iş parçası sabitleme pabuçlarına bindirir. Fanuc tarafında ise, 0010#4 (PRG9) ve 0389#2 (PRG8) parametreleriyle O9000 ve O8000 serisi kritik makroların kilitlenmemesi, operatörlerin yanlışlıkla bu programları değiştirmesine ve hatalı takım indeksleme çevrimleriyle tezgahın çarpmasına sebep olur. Mitsubishi kontrolörlerinde harici SD karttan M198 ile çalışan bir alt programın, kartın yuvaya tam oturmaması nedeniyle okunamaması anında P232 (No program No.) hatasını tetikleyerek üretimi durdurur ve duruş maliyetini artırır. Bu riskleri bertaraf etmek için, alt program çağrılarının yuvalama derinliklerini (Fanuc'ta maks 4, Siemens'te makrolarla birlikte maks 16-18, Mitsubishi'de maks 8-10) titizlikle takip etmek ve Siemens'te SBLOF (tek blok kilidi) kullanarak operatörlerin kuru çalıştırma testlerinde hesaplama adımlarını atlayarak tezgahı riske atmasını önlemek şarttır. Tüm bu önlemler, doğrudan makine duruş sürelerini kısaltıp duruş/hurda maliyetlerini düşürerek üretim verimliliğine katkı sağlar.

İlişkili Komut Ağı

  • G65 Basit Makro Çağrısı: Yerel değişkenlerin makro yazmaçlarına doğrudan aktarılmasına izin verirken bir alt programa tek bir modal olmayan çağrı başlatır.
  • G66 Modal Makro Çağrısı: CNC yorumlayıcısına, iptal edilene kadar sonraki her hareket bloğundan sonra belirlenen bir makro alt programını otomatik olarak yürütmesini bildirir.
  • G645 Tolerans Tabanlı Yumuşatma: Yüksek hızlı işleme sırasında kontur yumuşatma toleranslarını düzenler ve kordal hataları önlemek için alt program ilerleme hızlarıyla dikkatli bir şekilde koordine edilmelidir.
  • G68.2 Eğik Yüzey Kontrolü: Çok eksenli işleme için eğik çalışma düzlemi koordinatlarını oluşturur ve alt program döngülerini yürütmeden önce doğru koordinat eşlemesini gerektirir.
  • Mitsubishi Yüksek Hızlı Kontrol III (G05 P20000): Mikro segment işleme için gelişmiş öngörülü (look-ahead) yol arabelleğe almayı etkinleştirir ve komut çakışmalarını önlemek için alt program çağrılarından bağımsız bir blokta programlanmalıdır.

Sonuç

Plansız duruş sürelerini ve parça hurda oranlarını en aza indirmek için alt programlardan önce ve sonra modal durum kontrol listeleri uygulanmalıdır. Programcılar, alt program bitimindeki M99 veya M17 kodundan hemen önce G90 mutlak koordinat modunu ve G40/G49 gibi aktif telafi iptallerini açıkça yazarak takımın beklenmedik yollara sapmasını kesin olarak önlemelidir. Ayrıca, harici hafıza kartından yürütülen M198 rutinleri için donanım tabanlı yuvalama sınırlarının aşılmadığından emin olunmalı ve kritik makro kütüphaneleri parametre kilitleriyle koruma altına alınmalıdır. Bu sistematik kontroller, özellikle seri imalatta binlerce liralık takım kırılması ve malzeme israfının önüne geçerek sürdürülebilir bir operasyonel kârlılık sağlar.

Sıkça Sorulan Sorular

CNC alt programlarında G91 (artışlı mod) kullanımı neden çarpma riski yaratır?

Artışlı modda (G91) eksen hareketleri gerçekleştirildikten sonra ana programa dönerken mutlak moda (G90) geçilmezse, ana programdaki tüm koordinatlar son bulunulan noktanın üzerine eklenerek yürütülür. Bu durum takımın fikstürlere veya aynaya çarpmasına neden olur. Eylem Planı: Alt programın en son satırına, M99 veya M17 kodundan hemen önce G90 G40 komutlarını ekleyerek koordinat sistemini sıfırlayın.

Fanuc sistemlerinde 9000 serisi makroların kazara silinmesini veya değiştirilmesini nasıl önleriz?

Takım değiştirici veya parça sıfırlama probu gibi hayati makroların saklandığı O9000-O9999 aralığındaki alt programlar korumasız bırakılırsa, operatör hataları veya dikkatsiz düzenlemeler tezgahın mekanik zarar görmesine ve üretimin durmasına yol açar. Eylem Planı: Fanuc parametre sayfasından 0010 numaralı parametrenin 4. bitini (PRG9) 1 konumuna getirerek yazma korumasını aktif hale getirin.

Mitsubishi CNC ünitesinde M198 harici alt program çağrısı neden P232 program hatası verir?

P232 alarmı, ünitenin aradığı alfanumerik dosyayı veya program numarasını harici bellek kartı ya da veri sunucu üzerinde bulamadığını gösterir. Bu durum çoğunlukla SD kartın yuvaya tam oturmaması, parameter #8876'da yanlış cihazın tanımlanması veya dosya adının 32 karakter sınırını aşmasından kaynaklanır. Eylem Planı: Alt programı çalıştırmadan önce SD kartın fiziksel bağlantısını kontrol edin ve dosya adını 32 karakterden kısa olacak şekilde düzeltin.

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