G65, G66, G67 Özel Makro Çağırma Komutları: Fanuc, Siemens, Mitsubishi
Fanuc, Siemens ve Mitsubishi CNC sistemlerinde G65, G66 ve G67 makro parametrelerini doğru ayarlayarak çarpışmaları, plansız duruşları ve hurdaları önleyin.
Giriş
Fener milinin, eksen hareketlerini otomatik olarak tekrarlayan bir modal makro alt programını çalıştırması esnasında G67 iptal komutunun programlanmasının unutulması, karbür takımın saniyeler içinde sertleştirilmiş bir mengene çenesine (vise jaw), kapalı bir aynaya (chuck), fikstür pabucuna (clamp) veya taret (turret) mekanizmasına yüksek hızda çarparak kırılmasına neden olur. Bu kritik yapılandırma hatası fener milini durdurmakla kalmaz; iş parçasını anında hurdaya ayırır, takımı parçalar ve tüm çevrim süresinin boşa gitmesine yol açar. G65 ve G66 komutları ile değişken argüman iletimi, parça programlamayı dinamikleştirse de, bu durumun otonom olarak kontrol edilememesi feci mekanik çarpışmaların ve plansız duruş sürelerinin (unplanned downtime) en birincil kaynağıdır. İmalat süreçlerinde maliyet tasarrufu sağlamak, plansız duruş sürelerini ortadan kaldırmak ve hurda oranını (scrap rate) sıfıra yakın tutmak için Fanuc, Siemens ve Mitsubishi sistemlerinde G65 basit çağrı, G66 modal çağrı ve G67 iptal komutlarının parametrik olarak kusursuzca konfigüre edilmesi ve ilk imalat öncesinde kuru çalıştırma (dry run) doğrulamalarının yapılması zorunludur.
Teknik Özet
| Teknik Özellik | Detaylar |
|---|---|
| Komut Kodları | G65 (Basit Çağrı), G66 (Modal Çağrı A), G66.1 (Modal Çağrı B), G67 (Modal İptal) |
| Modal Grup / Kategori | Grup 00 / Non-modal (G65), Grup 12 / Modal (G66, G66.1), İptal (G67) |
| Desteklenen Markalar | Fanuc, Siemens, Mitsubishi |
| Kritik Parametreler | Fanuc Parametre No. 6000 (Bit 0 - G67, Bit 5 - SBM), Siemens $MC_EXTERN_FUNCTION_MASK (Bit 6), Mitsubishi Parametresi #1241 set13/bit5, Parametresi #11053 UserProgramStorage |
| Ana Kısıt | Makro yerleştirme (nesting) derinliği, M98 alt program çağrılarına kıyasla son derece sınırlıdır (Fanuc'ta 5 seviye, Mitsubishi'de 4 seviye) ve sabit çevrimlerle aynı NC bloğunda G65/G66 programlanması kesinlikle yasaktır. |
Hızlı Okuma
- Tek Blokluk Yürütmeler İçin G65 Kullanın: Bir özel alt programın modal bir durum aktif bırakmadan, koşulsuz olarak tam bir kez yürütülmesi gerektiğinde G65 programlayın.
- G67 ile Modal Durumu Devre Dışı Bırakın: Sonraki eksen hareketlerinde istenmeyen makro yürütmelerini önlemek için G66 veya G66.1 döngülerini tamamladıktan hemen sonra bağımsız bir G67 komutunu mutlaka programlayın.
- Parametre Sayısal Tiplerini Doğrulayın: Siemens ve Mitsubishi sistemlerinde anında kontrolör arızalarını önlemek için alt program numaraları (P) ve yineleme sayıları (L) için yalnızca tam sayı (integer) iletin.
- Katı Yerleştirme Limitlerini Yönetin: Aşırı yüklenmeli alarm durumlarını önlemek için yerleştirme (nesting) derinliklerini yakından takip edin ve çağrıları Fanuc'ta 5 seviyeli tavan sınırında, Mitsubishi'de ise 4 seviyeli sınırda tutun.
- Depolama Konumlarını Sabitleyin: Alt program dosyalarını, Mitsubishi #11053 UserProgramStorage gibi parametreler tarafından tanımlanan kesin disk veya bellek aygıtı yollarına kaydedin.
- Çağrı Bloklarını İzole Edin: Yinelenen kelime çakışmalarını ve program yürütme durmalarını önlemek için NC bloğu başına yalnızca bir makro çağrısı veya sabit çevrim programlayın.
Temel Kavramlar
G65, G66 ve G66.1 gibi özel makro komutları, programcılara değişken argümanları doğrudan alt programlara aktarma pratik programlama etkisini sağlayarak son derece dinamik parça programlamaya ve tekrarlayan çevrimlerin oluşturulmasına olanak tanır. Yaygın bir arıza nedeni, programcıların yanlışlıkla rezerve edilmiş adresleri kullanmasıdır — örneğin standart bir G65 çağrısı sırasında G adresini bir değişken argümanı olarak iletmeye çalışmak anında bir PS0129 alarm kodunu tetikler ve çalışmayı durdurur. Programcılar ve operatörler G66 (eksen hareketinden sonra makroyu yürüten modal çağrı) veya G66.1 (her NC bloğu için makroyu yürüten modal çağrı) kullanırken aktif modal durumu son derece dikkatli bir şekilde izlemelidir. Eğer bir operatör yeni bir takım yoluna veya takım değişimine geçmeden önce modal çağrıyı iptal etmek için G67 yazmayı unutursa, CNC makroyu beklenmedik bir şekilde yürütmeye devam edecektir. Verilen kılavuzlar mekanik hasarlardan ziyade sözdizimi hatalarına odaklansa da, iptal edilmemiş bir modal makro, takımı çalışma sınırlarının dışına çıkarıp mengene çenesine (vise jaw), aynaya (chuck), fikstür pabucuna (clamp) veya tarete (turret) sürükleyecek düzensiz, birikimli ikincil hareketlere kolayca yol açabilir; bu da feci bir mekanik çarpışmaya veya iş parçasının hurdaya (scrap) çıkmasına neden olur.
Güvenli kullanım, bu makroların kuru çalıştırma (dry run) testleri sırasında nasıl yürütüldüğü üzerinde sıkı bir kontrol gerektirir. Parametre No. 6000 Bit 5 (SBM) kullanılarak, operatörler tek blok duruşunun (single-block stop) makro ifadesi içinde geçerli veya geçersiz olduğunu açıkça belirleyebilir ve böylece ilk parça doğrulaması sırasında makinenin karmaşık, denetlenmemiş mantık döngülerinden kontrolsüzce geçmesini fiziksel olarak engelleyebilir. Fanuc mimarisi, makro çağrı yönetiminde oldukça farklı davranışlar sergiler. İlk olarak, Fanuc modal makro işlevselliğini iki ayrı davranışa ayırır: G66 makro yürütülmesini matematiksel olarak eksen hareket bloğu tamamlanana kadar geciktirir (özel delik delme kalıpları için idealdir), G66.1 ise hareketten bağımsız olarak her NC bloğu için makroyu koşulsuz olarak yürütür. İkinci olarak Fanuc, makine imalatçılarının standart G-kodlarını veya M-kodlarını doğrudan 9000 serisi makro programlarına eşlemesine olanak tanıyan katı bir parametre takma ad (aliasing) hiyerarşisine (6050 ila 6059 parametreleri gibi) sahiptir ve karmaşık G65 sözdizimini operatörden gizler. Son olarak Fanuc, makro çağrılarına özel olarak maksimum beş seviyeli derinlik sınırı uygulayarak matematiksel yerleştirme (nesting) limitlerini kesin olarak ayırır; bu limit 15 seviyeli alt program yerleştirme sınırından tamamen bağımsız çalışır.
G65 ve G66 kullanmanın pratik programlama etkisi, çekirdek alt programı değiştirmeden değişkenleri kontrolörün arka plan belleğine dinamik olarak aktarırken özel mantığı anında yürütebilmektir. G65 makroyu tam olarak bir kez çalıştırırken, G66 aktif olduğunda programcılar ve operatörler sistem durumunu pürüzsüzce izlemelidir. Çünkü bir modal makro her eksen hareketi bloğundan sonra örtük olarak yürütüldüğünden, izlenmeyen herhangi bir aktif durum geçiş hareketleri sırasında feci sonuçlara yol açabilir. Örneğin, bir operatör G67 komutunu vermeyi unutup hızlı bir takım değiştirme hareketi gerçekleştirirse veya eksenleri rijit bir çevre sabitleme elemanına yakın konumlandırırsa, kontrolör otomatik olarak yanlış konumda makro işleme mantığına dalacaktır. Bu plansız yürütme, takımı doğrudan sertleştirilmiş bir mengene çenesine (vise jaw), kapalı bir aynaya (chuck) veya döner bir tarete (turret) sürükleyebilir; bu da feci bir mekanik çarpışmaya neden olur veya plansız fazla işleme nedeniyle hurda (scrap) parça üretir. Güvenli kullanımı sağlamak için operatörler koordinat sisteminin temiz olduğunu garanti etmeli, fikstür pabucu (clamp) gibi mekanik tutma elemanlarının düzgün şekilde sıkıldığını doğrulamalı ve kontrol dışı yürütmeyi önlemek için modal makroları her zaman sistematik olarak ayrı program bloklarında izole etmelidir. Bu durumların yönetilememesi kaçınılmaz olarak ciddi koordinat ihlallerine yol açacak ve kanalı tamamen kilitleyen bir alarm kodunu tetikleyecektir.
Komut Yapısı
Bir makro çağrısının yapısı; çağıran G-kodundan, hedef program numarasından, yineleme sayısından ve argüman listesinden oluşur. Argüman listesi, doğrudan alt programdaki ilgili değişkenlere sayısal değerler atar ve bu sayede tek bir programın girilen boyutlara göre birden fazla görevi yürütmesini sağlar.
CNC sistem tipine bağlı olarak değişkenler, numaralandırılmış yerel değişkenlere (local variables) veya adlandırılmış sistem değişkenlerine (system variables) eşlenir. Çağrı sözdizimi ana endüstriyel platformlar arasında benzer kalırken, her marka benzersiz parametre genişletmelerini ve değişken eşleme sınırlarını destekler.
[Fanuc & Mitsubishi Syntax] G65 P_ L_ [Variable Arguments] ; G66 P_ L_ [Variable Arguments] ; G66.1 P_ L_ [Variable Arguments] ; G67 ;
[Siemens Syntax] G65 P... L... [Parameters] G66 P... L... [Parameters] G67
| Adres | Açıklama | Format | Notlar |
|---|---|---|---|
| P | Çağrılan alt program numarası veya dosya adı | Tam sayı (Integer) veya köşeli parantezli dize | Fanuc/Siemens'te kesinlikle tam sayıdır; Mitsubishi açılı parantez içinde < > 32 karaktere kadar dosya adını destekler. |
| L | Yineleme sayısı (geçiş sayısı) | Tam sayı (Integer) | Belirtilmezse varsayılan olarak L1 kabul edilir. Siemens ve Mitsubishi ondalıklı formatları kesinlikle reddeder. |
| Argümanlar | Makroya aktarılan dinamik değişkenler | A-Z Harfleri (P, L, O, N hariç) | Fanuc/Mitsubishi'de yerel değişkenlere (#1-#33) veya Siemens'te $C_A-$C_Z değişkenlerine eşlenir. |
Marka Uygulamaları
Fanuc
Fanuc sistemlerinde, özel makro çağırma davranışı sistem değişkenleri ve yapılandırma parametreleri tarafından derinlemesine yönetilir. Programcılar, makro kontrol parametrelerini değiştirmek için Parametre No. 6000 ve Parametre No. 6007'yi kullanırlar.
Standart sözdizimi yapılandırmaları; tekli çağrılar için G65'i, hareketle tetiklenen modal çağrılar için G66'yı ve blok blok modal yürütme için G66.1'i kullanır, G67 ise iptal mekanizmasını sağlar.
| Parametre / Değişken | Ayar Davranışı | İlişkili Alarm / Sürüm |
|---|---|---|
| Parametre No. 6000 (Bit 0) | 0 (Gereksiz G67'de PS1100 alarmı verir); 1 (Gereksiz G67 komutunu göz ardı eder) | PS1100 Modal çağrı olmadan iptal |
| Parametre No. 6000 (Bit 5) | 0 (Makroda tek blok duruşu devre dışı); 1 (Makroda tek blok duruşu geçerli) | SBM Kontrolü |
| Parametre No. 6007 (Bit 3) | 0 (Özel G-kodu modal çağrısı G66.1 gibi davranır); 1 (G66 gibi davranır) | MGE Kontrolü |
| Parametre No. 6007 (Bit 4) | 0 (Argümanları standart NC formatında iletir); 1 (Makro formatına dönüştürür) | CVA Kontrolü |
Uyarı: Manuel takım değişimleri veya hızlı hareketler (rapids) yürütülürken modal bir makroyu aktif bırakmak, istenmeyen makro döngülerini tetikler ve taret veya ayna ile sert çarpışmalara yol açar.
Siemens
Siemens kontrolleri, standart ISO tarzı diyalekt çağrılarını yerel Sinumerik değişkenlerine eşleyerek son derece esnek bir entegrasyon sağlar. Kontrolör, $MC_EXTERN_FUNCTION_MASK değişkenini kullanarak program adlarını genişletir.
Sözdizimi yürütme; non-modal işlemler için G65'i, modal makro çağrıları için G66'yı ve aktif modal makro seçimlerini silmek için G67'yi kullanır.
| Parametre / Değişken | Ayar Davranışı | İlişkili Alarm / Sürüm |
|---|---|---|
| $C_A ila $C_Z | A-Z adreslerinden eşlenen aktarım parametreleri (P, L, O, N hariç) | Sistem değişkenleri |
| $C_I[], $C_J[], $C_K[] | Tek bir blokta birden fazla I, J, K parametre geçişini depolayan kronolojik dizi dizilimleri | $C_I_ORDER içinde sıra takibi |
| $MC_EXTERN_FUNCTION_MASK (Bit 6) | 0 (P adresini 4 basamağa tamamlar, >4 basamak alarm verir); 1 (Sıfır genişletmesi yok, 8 basamağa kadar izin verilir) | Alarm 12720 |
Uyarı: Program numarası P veya döngü sınırı L için katı tam sayı (integer) formatının ihlal edilmesi, anında blok yürütme hatalarına yol açar ve kanalı kilitler.
Mitsubishi
Mitsubishi CNC platformları, alt programları özel kodlara eşlemek için parametre güdümlü takma ad (aliasing) özelliğini entegre eder. Operatörler, argüman eşlemesini ve program depolamayı kontrol etmek için Parametre #1241 ve Parametre #11053'ü yapılandırırlar.
Platform; basit çağrılar için G65'i, Modal Çağrı A için G66'yı, Modal Çağrı B için G66.1'i ve aktif modal durumları iptal etmek için G67'yi destekler.
| Parametre / Değişken | Ayar Davranışı | İlişkili Alarm / Sürüm |
|---|---|---|
| Parametre #1241 set13/bit5 | 0 (L ve P değişken argüman olarak geçersiz); 1 (L ve P aynı anda değişken argüman olarak geçerli) | Makro argüman geçerlilik ayarı |
| Parametre #11053 | Çağrılan makro programı için arama cihazını ve dizin yolunu tanımlar | P232 Program Error eğer başka bir yere kaydedilirse |
| Parametre #7202 G[10] Tipi | 0 (M98'e eşdeğer); 1 (G65'e eşdeğer); 2 (G66'ya eşdeğer); 3 (G66.1'e eşdeğer) | Özel G-kodu yürütme tipi |
| Parametre #1081 Gmac_P | 0 (Standart G-kodu davranışı); 1 (Sistem G-kodu için takma ad makrosu aktif) | G-kodu aliasing aktivasyonu |
Uyarı: Yüksek hızlı yüksek hassasiyetli kontrol modları aktifken bir kullanıcı makro çağrısını devreye sokmak anında program hatalarını tetikler.
Marka Karşılaştırmaları
| Karşılaştırma Alanı | Fanuc | Siemens | Mitsubishi |
|---|---|---|---|
| Makro Yerleştirme Derinliği | Kesinlikle 5 seviye ile sınırlıdır. | — (kaynak yok) | En fazla 4 seviye derinliğindedir. |
| Alt Program Yerleştirme Derinliği | M98 ile en fazla 15 seviye derinliğindedir. | — (kaynak yok) | M98/M99 ile en fazla 27 seviye derinliğindedir. |
| Metinsel Dosya Adlandırma | — (kaynak yok) (yalnızca sayısal programlar) | — (kaynak yok) | Desteklenir. Açılı parantez < > içinde <Dosya adı> şeklinde 32 karaktere kadar yazılabilir. |
| Modal Çağrı Çeşitleri | G66 (hareket tetikleyici) ve G66.1 (blok başına yürütme) modlarını destekler. | G66 (eksen hareket tetikleyici) modunu destekler. | G66 (Modal Çağrı A, hareket tetikleyici) ve G66.1 (Modal Çağrı B, blok başına yürütme) modlarını destekler. |
| Parametre Dizi Aktarımı | A-Z adreslerinin yerel değişkenlere (#1-#33) standart eşlemesi yapılır. G adresi yasaktır. | $C_A-$C_Z değişkenlerine eşlenir. Dizi dizilim eşlemesi aracılığıyla tek bir blokta 10 adede kadar I, J, K örneğini destekler. | Standart atama yapılır. Parametre #1241 set13/bit5 = 1 olduğunda L ve P değişkenlerinin aynı anda kullanılmasını destekler. |
Teknik Analiz
Fanuc, Siemens ve Mitsubishi makro mimarileri arasındaki temel farklar; sistem değişkenlerini, bellek tahsisini ve sözdizimi sınırlarını nasıl yönettiklerinde yatmaktadır. Fanuc, harflerin kesin olarak belirli numaralandırılmış yerel değişkenlere bağlı olduğu ve yerleştirmenin sıkı bir şekilde beş seviye ile sınırlandırıldığı, son derece yapılandırılmış, katı bir adres eşleme sistemi uygular. Sistem, hareket tabanlı ve blok tabanlı çağrılar arasındaki çakışmaları önlemek için modal yürütmeyi G66 ve G66.1 arasında net bir şekilde ayırır ve özel takma adlar (aliasing) için 6050-6059 gibi katı parametre haritalarına güvenir.
Siemens, makro mimarisini üç gelişmiş davranışsal yapı aracılığıyla diğer kontrol markalarından güçlü bir şekilde ayırır. İlk olarak Siemens, benzersiz bir diller arası (cross-dialect) birlikte çalışılabilirlik sağlar; ISO tarzı bir G65 aracılığıyla çağrılan bir makro, yerel Siemens sistem değişkenlerini (like $C_X or $C_A) sorunsuz ve otomatik olarak doldurur; bu da arka plan alt programının tamamen güçlü yerel G290 Siemens dilinde yazılabileceği, ana programın ise eski ISO Dialect parça programlarıyla 100% uyumlu kalacağı anlamına gelir. İkinci olarak Siemens, inanılmaz derecede derin dizi tabanlı parametre aktarma yeteneklerini doğrudan standart blok dizgesine yerleştirir. Yinelenen parametrelerin üzerine yazan diğer kontrollerin aksine Siemens, programcıların tek bir G65 bloğunda on ayrı I, J ve K değeri iletmesine izin verir, bunları kronolojik diziler halinde (örneğin $C_I ila $C_I[12]) yerel olarak düzenler ve bunların kesin programlama sırasını $C_I_ORDER aracılığıyla takip ederek, özel değişken tabloları gerektirmeden son derece karmaşık geometrik desenlerin iletilmesini sağlar. Son olarak Siemens, makine imalatçısının makro program numaralarının makine veri bit maskeleri aracılığıyla nasıl işleneceğini derinlemesine yönetmesine izin vererek, eski 4 haneli sıfır dolgulu program sınırlarını katı bir şekilde uygulama veya sözdizimi hataları vermeden modern 8 haneli program adlandırma kurallarını barındıracak şekilde P adresi yorumlamasını genişletme konusunda benzersiz bir esneklik sunar.
Mitsubishi, makro mimarisini diğer kontrol platformlarından üç ayrı, son derece esnek davranışla ayırır. İlk olarak Mitsubishi, makroyu standart G66 komutu gibi yalnızca eksen hareket bloklarından sonra çalıştırmak yerine, her bir blok için koşulsuz olarak çağıran (O, N ve G kodları dışındaki tüm blok verilerini argüman olarak işleyen) son derece benzersiz bir G66.1 "Makro Modal Çağrı B" işlevi içerir. İkinci olarak, Mitsubishi platformu G-kodu bloğunda doğrudan alfanümerik dize hedeflemeyi yerel olarak destekler; programcılar geleneksel sayısal P-adresleriyle kesin olarak sınırlandırılmak yerine, açılı parantezler içinde 32 karaktere kadar belirli bir <Dosya adı> belirterek bir makro çağrı yapabilirler. Son olarak Mitsubishi, kullanıcıların 538 adede kadar özel veya sistem G-kodunu doğrudan G65, G66 veya G66.1 makro çağrılarına açıkça eşlemesine olanak tanıyan devasa bir parametre güdümlü takma ad (aliasing) sistemi entegre eder. Parametre #7202 G[10] Tipi gibi parametreleri kullanan bu sistem, makine imalatçılarının operatörlerin karmaşık değişken dizilerini ezberlemesini gerektirmeden tescilli çevrim mantığını tezgahın temel mimarisine kalıcı olarak yerleştirmesini sağlar.
Program Örnekleri
Fanuc Örneği: Cep Boşaltma Çevrimi
%
O0001 (ANA PROGRAM - CEP BOŞALTMA KURULUMU) ;
G90 G54 G00 X0 Y0 Z10. ;
G65 P9010 L1 X100.0 Y80.0 Z-5.0 F300 ; ; Boyutlar ile cep rutininin basit çağrılması
G00 Z100. M30 ;
%
%
O9010 (CEP RUTİNİ - ALT PROGRAM) ;
#10 = #24 / 2.0 (X YARI GENİŞLİĞİ) ;
#11 = #25 / 2.0 (Y YARI GENİŞLİĞİ) ;
G01 Z#26 F#9 ; ; Hedef Z derinliğine dalma
G01 X#10 F#9 ; ; X yarı genişliği boyunca kesme
Y#11 ; ; Y yarı genişliği boyunca kesme
X-#10 ; ; Negatif X boyunca kesme
Y-#11 ; ; Negatif Y boyunca kesme
X0 Y0 ; ; Merkeze geri dön
M99 ; ; Ana programa geri dön
%
kuru çalıştırma: Operatör G65 bloğunu yürütür. Kontrolör, O9010 programını okuyarak X (100.0) adresini #24 değişkenine, Y (80.0) adresini #25 değişkenine, Z (-5.0) adresini #26 değişkenine ve F (300) adresini #9 değişkenine eşler. Takım, 300 ilerleme hızında Z-5.0 seviyesine dalar. Ardından #10 (50.0) ve #11 (40.0) yarı genişliklerini hesaplayarak sırasıyla dikdörtgen bir cep yörüngesini yürütür. M99 bloğunda alt programdan çıkılır ve yörünge kontrolü doğrudan O0001 ana programındaki G00 bloğuna geri döner.
Siemens Örneği: Helisel Delik Dizisi
; ANA PROGRAM - DAİRESEL HAREKET
G90 G54 G00 X0 Y0 Z50.0
G66 P1234 A10.0 C45.0 X100.0 Z-10.0 ; Modal çağrı eksen hareketlerinden sonra yürütülür
X50.0 Y50.0 ; Eksen hareket bloğu 1234 alt programını tetikler
X150.0 Y100.0 ; İkinci eksen hareket bloğu 1234 alt programını tetikler
G67 ; Aktif modal makro çağrısını iptal et
G00 Z100.0 M30
%
; ALT PROGRAM 1234 - HELİSEL DELİK İŞLEME
G01 Z$C_Z F250 ; Z adresinden aktarılan Z derinliğine dal
G03 I$C_A U$C_C ; A ve C parametrelerini kullanarak dairesel helisel giriş yap
G01 Z5.0
M99
%
kuru çalıştırma: Kontrolör G66'yı işler ve 1234 alt programını A=10.0, C=45.0, X=100.0 ve Z=-10.0 argümanlarıyla yükler. Eksen X50.0 Y50.0 koordinatına hareket eder. Bu koordinata ulaşıldığında modal tetikleyici ateşlenir ve 1234 alt programını yürütür. Takım Z-10.0 ($C_Z) seviyesine dalar ve $C_A ile $C_C argümanlarını kullanarak helisel giriş gerçekleştirir. M99'dan sonra takım X150.0 Y100.0 koordinatına hareket eder ve bu hareket yeni konumda 1234 alt programını anında yeniden tetikler. G67 bloğu yürütülerek takım geri çekilmesinden önce modal durum iptal edilir.
Mitsubishi Örneği: Özel Prob Alma Çevrimi
; ANA PROGRAM - DOSYA ADI HEDEFLEME
G90 G54 G00 X0 Y0 Z25.
G65 <PROBE_X> L1 X150. Y100. S2. ; ; Hedef değişkenlerle dosya adına göre makro çağır
G00 Z100. M30
%
; DOSYA ADI: PROBE_X
(YAN ÖLÇÜM İÇİN ALT PROGRAM)
G01 X#24 F150 ;
IF [#19 EQ 2.] GOTO 10 ;
#30 = #5021 ;
GOTO 20 ;
N10 #30 = #5022 ;
N20 G00 X0 ;
M99 ;
%
kuru çalıştırma: Operatör, alfanümerik hedef olan <PROBE_X> ile G65'i başlatır. Kontrolör, Parametre #11053 UserProgramStorage diskini arar, PROBE_X dosyasını yükler ve X (150.0) adresini #24 değişkenine, Y (100.0) adresini #25 değişkenine ve S (2.0) adresini #19 değişkenine atar. Prob, 150 ilerleme hızında X150.0 koordinatına hareket eder. #19 değişkeninin 2.0'a eşit olduğunu bulan mantık, N10 satırına atlar ve #5022 koordinat kaydedicisini #30 içine kaydeder. Prob X0 konumuna geri çekilir ve M99 aracılığıyla ana programa geri döner.
Hata Analizi
| Marka ve Alarm Kodu | Tetiklenme Koşulu | Operatör Belirtisi | Kök Neden / Çözüm |
|---|---|---|---|
| Fanuc - PS1100 | Aktif bir G66 modal durumu yokken G67 iptal komutu yürütülmüştür. | Program, paneldeki kırmızı durum göstergesiyle anında durur. | Parametre 6000#0 değeri 0'a ayarlanmıştır. Programı yinelenen G67'yi kaldıracak şekilde düzeltin veya Parametre 6000#0 değerini 1 yapın. |
| Fanuc - PS0129 | G65 veya G66 argüman atama listesine 'G' adresi dahil edilmiştir. | Çağrı ayrıştırılırken anında sözdizimi alarmı ve blok duruşu oluşur. | G adresi rezerve edilmiştir. Argüman kodunu G'den başka bir değişken harfine (P, L, O, N hariç A-Z) değiştirin veya G66.1 kullanın. |
| Siemens - Alarm 12720 | G65 veya G66, P adresi aracılığıyla bir alt program numarası tanımlanmadan programlanmıştır. | Tezgah durur ve ekranda çevrim yürütme alarmı belirir. | Eksik alt program numarası hedefi. Makro çağrısındaki P adresini kullanarak geçerli bir alt program numarası ekleyin. |
| Siemens - Alarm 12722 | G65/G66, sabit bir çevrim (G81-G89) veya başka bir makro ile aynı blokta programlanmıştır. | CNC blok ayrıştırmayı reddeder ve kanal hareketini dondurur. | Blok çakışması. Makro çağrısını ve sabit çevrimi veya ikincil komutu ardışık ayrı bloklara ayırın. |
| Mitsubishi - P276 | CNC aktif olarak bir G66/G66.1 modal çağrı durumunda değilken G67 modal makro iptal komutu verilmiştir. | NC çevrimleri durur ve program yürütme hatası döner. | Geçersiz iptal sırası. G67 komutunu yalnızca aktif modal makro rutinlerinden sonra programlayın. |
| Mitsubishi - P232 | Tanımlanan makro alt programı, yetkisiz bir depolama aygıtına kaydedilmiştir. | Kontrolör dosya eksik hatası vererek çevrim ortasında durur. | Yol uyumsuzluğu. Alt program dosyasını, Parametre #11053 UserProgramStorage ile eşleşen aygıta taşıyın. |
Uygulama Notu
Eksen hareketlerinden sonra otomatik olarak yürütülen bir modal makronun G67 komutuyla iptal edilmesinin unutulması, karbür kesici takımın fener mili hızıyla sertleştirilmiş bir mengene çenesine (vise jaw), kapalı aynaya (chuck), fikstür pabucuna (clamp) veya taret (turret) mekanizmasına şiddetle çarpmasına yol açarak binlerce liralık mekanik hasara, plansız duruş sürelerine (unplanned downtime) ve iş parçasının anında hurdaya (scrap) çıkmasına neden olan en kritik imalat hatasıdır. Fanuc sistemlerinde, bu tür feci çarpışmaları önlemek için Parametre No. 6000 Bit 5 (SBM) aktif edilerek ilk parça doğrulamasında tek blok (single-block) modu üzerinden makro mantık adımları adım adım kontrol edilmeli ve olası koordinat sapmaları izlenmelidir. Ayrıca, rezerve edilmiş olan G adresinin standart G65 veya G66 içinde değişken argüman olarak kullanılmasıyla tetiklenen PS0129 alarmı ya da G67 iptal komutunun modal durum yokken çağrılmasıyla oluşan PS1100 (Parametre 6000#0 = 0 ise) alarmı, çevrimi anında durdurarak parça kalitesini tehlikeye atar. Siemens sistemlerinde, çoklu I, J, K parametre geçişlerinin kronolojik sırasını yöneten $C_I[] ve $C_I_ORDER dizilerinin doğru izlenmesi ve $MC_EXTERN_FUNCTION_MASK Bit 6 parametresiyle P adres hanesinin doğru konfigüre edilmesi, preprocessor seviyesindeki çakışmaları (Alarm 12720 veya 12722) önler. Mitsubishi ünitelerinde ise, alt program dosyalarının Parametre #11053 UserProgramStorage ile tanımlanan doğru disk dizininde bulunmaması P232 program hatasını tetikleyerek eksenleri kilitler. İmalat mühendisleri, G65 basit ve G66 modal çağrılarının ardından mutlaka G67 iptal bloğunu programlamalı, fikstür pabuçlarının sıkma durumunu denetlemeli ve her yeni program öncesinde kuru çalıştırma (dry run) prosedürünü uygulayarak hurda oranlarını sıfıra indirmelidir.
İlişkili Komut Ağı
- M98 / M99 Alt Program Çağrısı: Argüman değişkeni iletimi olmadan alt programları yürütür; Fanuc'ta 15 seviyeye, Mitsubishi'de ise 27 seviyeye kadar iç içe yerleştirmeye (nesting) izin verir.
- G60 Tam Duruş / Sürekli Kesme Yolu: Genellikle koordinat adımları arasında tam eksen yavaşlamasını zorlamak için özel makro rutinleriyle eşleştirilir ve yüksek ilerlemeli makro döngüleri sırasında köşe yuvarlanmasını (corner rounding) önler; detaylar G60 Tam Duruş / Sürekli Kesme Yolu rehberindedir.
- G62 / G63 Köşe Yavaşlatma / Kılavuz Çekme: Kritik makro cep boşaltma ve kılavuz çekme alt programlarında kesme ilerleme yavaşlamasını veya köşe kırılmalarını önler; detaylar G62/G63 Köşe Yavaşlatma / Kılavuz Çekme rehberindedir.
- G50 / G92 Koordinat Sistemi Ayarı: Değişken makro ofsetlerinin fiziksel iş parçası referanslarıyla kusursuz şekilde hizalanmasını sağlayarak küresel iş koordinatlarını kurar; detaylar G50 ve G92 Koordinat Sistemi Ayarı rehberindedir.
Sonuç
CNC imalat süreçlerinde parça başına düşen maliyeti en aza indirmek ve plansız duruş sürelerini ortadan kaldırmak, makro çağırma komutlarının ve güvenlik kilitlerinin (interlocks) hatasız yönetilmesiyle mümkündür. G65, G66 ve G66.1 ile tasarlanan dinamik alt program çevrimleri, imalat esnekliğini maksimuma çıkarırken; modal durumların sonlandırılması için G67 komutunun kullanılması ve ilk parça öncesi kuru çalıştırma (dry run) rutinlerinin gerçekleştirilmesi makine sağlığını korur. Üretim yöneticileri, Fanuc Parametre No. 6000 veya Siemens $MC_EXTERN_FUNCTION_MASK gibi sistemsel parametreleri tezgah özelinde kalibre ederek, operatör hatalarından kaynaklanabilecek eksen aşırı hareketlerini ve mekanik sıkışmaları önlemelidir. Bu proaktif kontrol ve parametrik optimizasyon yaklaşımları, tescilli makro çevrimlerinizi güvence altına alarak plansız bakım duruşlarını sıfırlar ve yüksek katma değerli parçalarınızda sıfır hurda oranı elde etmenizi sağlar.
Sıkça Sorulan Sorular
Fanuc makinesinde G65 makro çağrısı yaparken tetiklenen PS0129 (USE 'G' AS ARGUMENT) alarmı nasıl çözülür?
Bu alarm, standart bir G65 veya G66 komut bloğunda harfi rezerve edilmiş olan G adresinin bir değişken değişkeni olarak iletilmeye çalışılmasıyla tetiklenir ve tezgahı anında durdurur. G adresi yalnızca her blokta koşulsuz çağrı yapan G66.1 modal çevrimlerinde serbestçe kullanılabilir. Eylem: Programınızdaki G65 veya G66 satırındaki G harfini A-Z harfleri arasından başka bir harfe (P, L, O, N hariç, örneğin W veya U) değiştirin ve alt program içerisindeki karşılık gelen yerel değişkeni (#1-#33) buna göre güncelleyin.
Mitsubishi CNC sisteminde G65 makro çağrısı sırasında oluşan P232 program hatası nasıl giderilir?
P232 hatası, çağrılan makro alt program dosyasının kontrolör tarafından bulunamaması durumunda tetiklenir ve eksen hareketini dondurarak plansız duruşa neden olur. Mitsubishi platformunda alt program dosyalarının aranacağı kesin bellek veya disk aygıtı yolu Parametre #11053 UserProgramStorage tarafından sıkıca denetlenir. Eylem: Alt program dosyanızı Parametre #11053 içinde tanımlanan disk dizinine (örneğin dahili kart veya USB bellek) tam olarak aktarın ve dosya adının açılı parantezler <PROBE_X> ile doğru yazıldığından emin olun.
Siemens ISO Dialect modunda G65/G66 makro çağrılarında program numarasının 4 haneden uzun olması durumunda oluşan Alarm 12720 nasıl önlenir?
Bu hata, Siemens kontrolörünün P adresiyle çağrılan program numarasını işleme biçimindeki bit maskesi yapılandırmasından kaynaklanır. Eğer $MC_EXTERN_FUNCTION_MASK Bit 6 değeri 0 ise, sistem program numarasını 4 haneye tamamlar ve daha uzun numaralarda anında çevrim alarmı verir. Eylem: Tezgah üreticinizden veya yetkili teknisyenden $MC_EXTERN_FUNCTION_MASK Bit 6 değerini 1 olarak ayarlamasını isteyin; bu sayede sistem sıfır eklemesi yapmadan 8 haneye kadar program numaralarını hatasız işleyebilir.
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
Siemens CYCLE800 G-Kodu: Düzlem Çevirme ve Takım Hizalama
Siemens CYCLE800 ile 3+2 eksen düzlem çevirme ve takım hizalama rehberi. Geri çekilme parametrelerini kurun, Alarm 61190 ve 61153 hatalarını giderin.
Siemens CYCLE72 Kontur Frezeleme: Sinumerik Yol Frezeleme Rehberi
Siemens CYCLE72 kontur frezeleme döngüsünü Sinumerik CNC kontrolörlerinde hatasız programlayın. Alarm 61123 simülasyon hatasını çözün ve çarpışmaları önleyin.
Siemens CYCLE952 Kontur Tornalama Döngüsü Programlama Kılavuzu
Sinumerik kontrolörlerde Siemens CYCLE952 kontur tornalama parametrelerini öğrenin. Alarm 61051 ve Alarm 61059 hatalarını gidererek plansız duruş sürelerini azaltın.
Siemens SLOT1 ve SLOT2 Kanal Çevrimleri Programlama Kılavuzu
Siemens Sinumerik kontrol ünitelerinde SLOT1 ve SLOT2 kanal frezeleme cycle'larını öğrenin. Hurda oranını azaltan parametreleri ve Alarm 61000 çözümlerini keşfedin.