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ı.
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 Özellik | Detaylar |
|---|---|
| Komut Kodları | Fanuc: M98, M99, M198Siemens: L<numara>, <program adı>, MCALL, EXTCALL, M17, RETMitsubishi: M98, M99, M198 |
| Modal Grup / Modellik | Alt Program Çağırma ve Geri Dönüş Komutları |
| Kapsanan Markalar | Fanuc, Siemens, Mitsubishi |
| Kritik Parametreler | Fanuc: 3404#2 (SBP), 6001#5/7000#0 (TCS)Siemens: P (INT), VAR anahtar kelimesiMitsubishi: #8876 (M198 cihazı), #8129 (Arama önceliği) |
| Temel Kısıtlama | Yuvalama (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) veyaEXTCALL(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) vePRG9(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
MCALLkomutunu 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>)veyaL<numara>veyaMCALL <program adı> - Siemens Geri Dönüş:
M17veyaRET - Mitsubishi Standart Çağrı:
M98 P__ H__ L__ ,D__ ;veyaM98 <dosya adı> H__ L__ ,D__ ; - Mitsubishi Harici Çağrı:
M198 P__ L__ ;veyaM198 <dosya adı> L__ ; - Mitsubishi Geri Dönüş:
M99 P__ ;
| Parametre Adresi | Kontrol Markası | Açıklama | Geçerli Ayarlar |
|---|---|---|---|
P | Fanuc / Mitsubishi | Çağrılacak hedef program numarasını belirtir | En fazla 8 hane |
L | Fanuc / Mitsubishi | Alt programın kaç kez tekrarlanacağını belirler | 1 ila 9999 (Varsayılan: 1) |
H | Mitsubishi | Alt program içindeki başlangıç sıra blok numarasını belirtir | Sıra kodu (örneğin, H100 kodu N100 ile eşleşir) |
,D | Mitsubishi | Çağrıyı doğrudan belirli bir fiziksel depolama cihazına yönlendirir | 0 ila 4 (parametreler aracılığıyla eşlenir) |
<dosya adı> | Mitsubishi | Açılı ayraçlar içinde alfanumerik bir dosya adı belirtir | En fazla 32 karakter |
P (çağrıda) | Siemens | Programın kaç kez tekrarlanacağını kontrol eder | 1 ila 9999 (örneğin, P3) |
VAR | Siemens | PROC başlığında referans ile çağrı (call-by-reference) parametre aktarımını bildirir | Bulunmamaktadır (anahtar kelime) |
SAVE | Siemens | Aktif modal G-fonksiyonlarını ve çerçevelerini (frames) otomatik olarak kaydeder ve geri yükler | Bulunmamaktadır (öznitelik) |
DISPLOF | Siemens | Alt program yürütülmesi sırasında HMI ekranında blok gösterimini bastırır | Bulunmamaktadır (öznitelik) |
SBLOF | Siemens | Yürütme sırasında tek blok (single-block) modunda adım adım ilerlemeyi devre dışı bırakır | Bulunmamaktadı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 / Versiyon | Tip | Açıklama | Ayarlar / Detaylar |
|---|---|---|---|
Parametre 0010#4 (PRG9) | Parametre | O9000 ila O9999 alt programlarının düzenlenmesinin yasaklanıp yasaklanmayacağını belirler. | 0 (yasak değil), 1 (yasak) |
Parametre 0389#2 (PRG8) | Parametre | O8000 ila O8999 alt programlarının düzenlenmesinin yasaklanıp yasaklanmayacağını belirler. | 0 (yasak değil), 1 (yasak) |
Parametre 3404#2 (SBP) | Parametre | M198'deki P adresinin bir dosya numarasını mı yoksa program numarasını mı belirteceğini dikte eder. | 0 (dosya numarası), 1 (program numarası) |
Parametre 3457 | Parametre | Arama 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 6079 | Parametre | O9001 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 0076 | Alarm | PROGRAM 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 0077 | Alarm | TOO MANY SUB, MACRO NESTING: Yuvalama seviyesi sınırı aşıyor. | Maksimum 4 yuvalanmış alt program (makro çağrıları dahil 8). |
Alarm 1080 | Alarm | DUPLICATE 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 1091 | Alarm | DUPLICATE SUB-CALL WORD: Aynı blokta birden fazla çağrı. | Alt program çağrılarını ayrı bloklarda belirtin. |
Parametre 0001#1 (FCV) | Versiyon | FS0-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 / Versiyon | Tip | Açıklama | Ayarlar / Detaylar |
|---|---|---|---|
P (INT) | Parametre | Alt program tekrarlama sayısını programlamak için adres. | 1 ila 9999 |
VAR | Parametre | PROC başlığında referans ile çağrı (call-by-reference) parametrelerini bildirir. | Bulunmamaktadır (anahtar kelime) |
SAVE | Öznitelik | Aktif modal G-fonksiyonlarını ve çerçevelerini otomatik olarak kaydeder ve geri yükler. | Bulunmamaktadır |
DISPLOF / SBLOF | Öznitelik | HMI ekranında blok gösterimini bastırır / tek blok modunu devre dışı bırakır. | Bulunmamaktadır |
Alarm 14011 | Alarm | program 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 14012 | Alarm | maximum subroutine level exceeded. Maksimum yuvalama derinliği aşıldı. | Yuvalama seviyelerini kontrol edin. |
Alarm 12720 | Alarm | ISO 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 sl | Versiyon | Alt 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+ | Versiyon | Dü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 / Versiyon | Tip | Açıklama | Ayarlar / Detaylar |
|---|---|---|---|
#8876 (M198 pro stor: dev) | Parametre | M198 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 #8888 | Parametre | ,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) | Parametre | Alt 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) | Alarm | Subprogram nesting over: Maksimum yuvalama derinliği aşıldı. | Yuvalama seviyelerini ve veri sunucu yapılandırmalarını kontrol edin. |
Program Error (P231) | Alarm | No 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) | Alarm | No 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/M80V | Versiyon | Alt program yuvalama seviyeleri için CNC serisi sınırları. | M70V/M700V: 8 seviye · M800V/M80V: 10 seviye |
M800VW/M80VW vs M800VS/M80V | Versiyon | Parametre #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ı
| Konu | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Alphanumeric Files | Yerel 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ği | Maks 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
| Marka | Alarm Kodu | Tetiklenme Koşulu | Operatör Belirtisi | Kök Neden / Çözüm |
|---|---|---|---|---|
| Fanuc | Alarm 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. |
| Fanuc | Alarm 0077 | Yuvalama 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. |
| Fanuc | Alarm 1080 | Aktif 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. |
| Fanuc | Alarm 1091 | Aynı 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. |
| Siemens | Alarm 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. |
| Siemens | Alarm 14012 | Yuvalama 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. |
| Siemens | Alarm 12720 | ISO 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. |
| Mitsubishi | Error P230 | Yuvalama 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. |
| Mitsubishi | Error P231 | Belirtilen 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. |
| Mitsubishi | Error 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ğı
G65Basit 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.G66Modal 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.

- 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
Fanuc 3D Girişim Önleme Kılavuzu: 10930 Parametre Kurulumu
Fanuc CNC 3D Girişim Önleme sistemini kurun. 10930 parametre ayarlarını öğrenin, PS0492 alarmını giderin ve iş parçası hurda oranını kalıcı olarak düşürün.
Fanuc Custom Macro Parametreleri 0932 & 8135 Ayar Kılavuzu
Fanuc CNC'de custom macro etkinleştirme parametreleri 0932 ve 8135 ayarlarını öğrenin. Alarm 113, 114 ve 123 hatalarını önleyerek hurda oranını düşürün.
Fanuc CNC Takım Ömrü Yönetimi Parametreleri Ayar Kılavuzu
Fanuc CNC'de 6800, 6805 ve 6810 takım ömrü parametrelerini ayarlamayı öğrenin. Alarm 156 ve 159 hatalarını önleyerek insansız ve güvenli üretimi etkinleştirin.
Fanuc Rijit Kılavuz Çekme İvmelenme Parametreleri Ayar Kılavuzu
Fanuc CNC kontrolörlerinde 11420#0 parametresi ile rijit kılavuz çekme ivmelenmesini optimize edin, duruş sürelerini azaltın ve SP0741 alarmını kalıcı olarak çözün.