CNC Frezede M98 ve M99 Alt Program Kullanımı

19 Temmuz 2026

Mentor CNC Editör Ekibi

CNC programında aynı işlem birden fazla yerde tekrarlanıyorsa bütün hareketleri tekrar tekrar yazmak programı uzatır. Bunun yerine tekrar eden bölüm ayrı bir program olarak hazırlanabilir. Bu ayrı bölüme alt program, onu çağıran programa ise ana program denir.

Alt program kullanımı özellikle şu işlemlerde yararlıdır: aynı delik grubunun farklı bölgelerde işlenmesi, aynı kanalın birkaç noktada tekrarlanması, aynı konturun farklı iş parçası sıfırlarında kullanılması, aynı hareketin belirli sayıda tekrarlanması ve uzun programların daha düzenli hâle getirilmesi.

Ana Program ve Alt Program

Ana program, parçanın genel işleme sırasını yönetir; genellikle güvenli başlangıç kodları, takım çağırma, spindle ve soğutma komutları, iş parçası sıfırı, alt program çağırma satırları ve program sonu bulunur.

%
O1000
G17 G21 G40 G49 G80 G90
T01 M06
G54
S1500 M03
G00 X20 Y20
G43 H01 Z50
M08
M98 P2000
G00 Z50
M09
M05
M30
%

Burada M98 P2000 satırı O2000 numaralı alt programı çağırır. Alt program ise tekrar kullanılacak hareketlerin bulunduğu ayrı programdır:

%
O2000
G81 Z-15 R2 F120
X50 Y20
X80 Y20
G80
M99
%

Alt programın sonundaki M99, işlemi tamamlayarak kontrolü ana programda M98 satırından sonraki bloğa geri gönderir.

M98 Komutu ve P Adresi

M98 alt program çağırma komutudur. Yaygın FANUC tipi format M98 P2000 şeklindedir ve “O2000 numaralı alt programı bir kez çalıştır” anlamına gelir. Basit kullanımda P, çağrılacak alt program numarasını gösterir. Ancak P adresinin yazım biçimi kontrol ünitesine göre değişebilir; bazı sistemlerde program numarasıyla tekrar sayısı aynı P değeri içinde kodlanabilir. Bu nedenle makinenin programlama kılavuzu kontrol edilmelidir.

M99 Komutu

M99, alt programı bitirerek çağrıldığı programa dönmeyi sağlar. Kontrol M99’a ulaştığında ana programdaki M98 satırının sonrasına döner. Alt program sonunda yanlışlıkla M30 kullanılırsa bütün program sonlanabilir. Temel ayrım şöyledir:

KodGörevi
M98Alt programı çağırır
M99Alt programdan geri döner
M30Ana programı bitirir ve başa sarar
M02Programı sona erdirir

Basit M98–M99 Örneği

Ana program takımı hazırlar, alt program dikdörtgen biçimindeki takım yolunu uygular:

(ANA PROGRAM)
%
O1000
G17 G21 G40 G49 G80 G90
T01 M06
G54
S1800 M03
G00 X20 Y20
G43 H01 Z50
M08
M98 P2000
G00 Z50
M09
M05
M30
%

(ALT PROGRAM)
%
O2000
G00 Z5
G01 Z-2 F100
G01 X60 F300
G01 Y40
G01 X20
G01 Y20
G00 Z20
M99
%

Alt Programı Birden Fazla Kez Çalıştırma

Bazı FANUC tipi kontrollerde tekrar sayısı L adresiyle yazılabilir: M98 P2000 L4 satırı O2000 alt programını dört kez çalıştırabilir. Bazı kontrol sistemlerinde ise tekrar sayısı P adresinin başına eklenir; örneğin M98 P00042000 bazı sistemlerde O2000 programını dört kez çağırabilir. Format kontrol ünitesine göre değiştiğinden doğrudan kopyalanmamalıdır.

Aynı Alt Programı Farklı Konumlarda Kullanma

Alt program yalnızca sabit koordinatlar içeriyorsa her çağrıldığında aynı yerde çalışır. Farklı konumlarda kullanmak için üç temel yöntem vardır: ana programda farklı başlangıç noktalarına gitmek, alt programda G91 artırımlı hareket kullanmak veya farklı iş parçası sıfırları kullanmak. Başlangıç seviyesinde en anlaşılır yöntem, ana programda yeni konuma gidip alt programı oradan çağırmaktır.

G91 ile alt program kullanımı

G91 altında yazılan hareketler mevcut konuma göre uygulanır; böylece aynı takım yolu farklı başlangıç noktalarında tekrar kullanılabilir.

(ANA PROGRAM)
%
O1100
G17 G21 G40 G49 G80 G90
T01 M06
G54
S2000 M03
G00 X20 Y20
G43 H01 Z50
M08
M98 P2100
G90 G00 X80 Y20
M98 P2100
G00 Z50
M09
M05
M30
%

(ALT PROGRAM)
%
O2100
G91
G00 Z-45
G01 Z-2 F100
G01 X30 F250
G01 Y20
G01 X-30
G01 Y-20
G00 Z47
G90
M99
%

Alt program mevcut başlangıç noktasına göre aynı dikdörtgeni oluşturur. Ancak buradaki Z hareketleri yalnızca eğitim mantığını gösterir; gerçek programda güvenli Z seviyeleri parçaya ve makineye göre doğrulanmalıdır.

Alt Programda G90 ve G91’in Önemi

Alt program içinde G91 kullanılıp sonunda G90 çağrılmazsa ana programa artırımlı modda dönülebilir. Bu durumda ana programdaki G00 X100 Y50 satırı, X100 Y50 noktasına gitmek yerine mevcut konumdan X yönünde 100 mm, Y yönünde 50 mm hareket edebilir. Bu nedenle alt program, değiştirdiği önemli modal durumları bitmeden önce güvenli duruma geri getirmelidir (örneğin G91 ile başlayıp G90 ile bitirmek).

Delik Grubunu Alt Programla İşleme

Aynı üçlü delik grubu iki farklı bölgede bulunuyor olsun:

(ANA PROGRAM)
%
O1200
G17 G21 G40 G49 G80 G90
T02 M06
G54
S1400 M03
G00 X20 Y20
G43 H02 Z50
M08
M98 P2200
G00 X80 Y20
M98 P2200
G00 Z50
M09
M05
M30
%

(ALT PROGRAM)
%
O2200
G91
G98 G81 Z-15 R2 F120
X20
X20
G80
G90
M99
%

İlk delik, alt program çağrılmadan önce takımın bulunduğu noktada açılır; sonraki iki delik X yönünde 20 mm arayla işlenir. Fakat G91 altında Z ve R değerlerinin yorumlanması kontrol ünitesine göre dikkatle doğrulanmalıdır; başlangıç seviyesinde delik çevrimleri için mutlak koordinatlı ayrı alt programlar daha güvenli olabilir.

Alt Programda Takım Değiştirilir mi?

Teknik olarak bazı sistemlerde mümkündür, ancak başlangıç seviyesinde takım değişiminin ana programda yapılması daha düzenlidir. Ana program takım, spindle, G54, G43 H, soğutma ve güvenli başlangıç işlerini yönetir; alt program yalnızca tekrar eden işleme hareketlerini içerir. Bu ayrım programın okunmasını kolaylaştırır ve hangi takımın, hangi ofsetin, hangi devrin kullanıldığının takibini basitleştirir.

İç İçe Alt Programlar

Bir alt program başka bir alt programı çağırabilir (örneğin O2000 içinde M98 P3000). Ancak iç içe çağırma sayısı kontrol ünitesinin kapasitesiyle sınırlıdır. Aşırı iç içe alt program, programın takip edilmesini zorlaştırır ve geri dönüş hatalarına, çağırma seviyesi alarmına veya yanlış tekrar sayısına neden olabilir. Başlangıç seviyesinde basit ve az katmanlı yapı tercih edilmelidir.

Sonsuz Döngü ve “Alt Program Bulunamadı” Alarmları

Ana programın sonunda yanlışlıkla M99 kullanılırsa program başa dönebilir ve kontrol sistemine göre sürekli yeniden başlayabilir. Benzer şekilde bir alt program kendisini çağırırsa (O2000 içinde M98 P2000) sonsuz çağırma oluşabilir veya kontrol alarm verir. Ana programın sonunda genellikle M30, alt programın sonunda M99 kullanılmalıdır.

M98 P2500 çağrılmış ancak bellekte O2500 programı yoksa kontrol “alt program bulunamadı” alarmı verebilir. Kontrol edilmesi gerekenler: program numarası doğru mu, alt program belleğe yüklenmiş mi, numarada sıfır/basamak hatası var mı, alt program başka cihazda mı kaldı? Ana program başka makineye taşınırken bağlı alt programların da aktarılması gerekir.

Alt Programlarda Sık Yapılan Hatalar

  • M99 yerine M30 kullanmak (alt program bitince bütün program sona erer)
  • Ana program sonunda M99 kullanmak (program sürekli başa döner)
  • G91’i açık bırakmak (ana programdaki sonraki koordinatlar yanlış uygulanır)
  • Alt program numarasını yanlış çağırmak (bulunamadı alarmı)
  • Güvenli Z hareketini unutmak (takım parçaya/fikstüre çarpabilir)
  • G41/G42’yi yanlış yönetmek (telafi açık dönülebilir)
  • G80 yazmamak (delik çevrimi ana programa taşınabilir)
  • Aynı alt programı yanlış başlangıç noktasında çağırmak

Güvenli Alt Program Yazma Kuralları

  • Ana program ve alt program numaralarını açıkça ayırın; alt programın başına işlem açıklaması yazın.
  • G90/G91 durumunu açıkça tanımlayın; alt program sonunda modal durumları güvenli hâle getirin.
  • Delik çevrimlerini G80 ile, takım yarıçap telafisini uygun noktada G40 ile kapatın.
  • Alt program sonunda M99, ana program sonunda M30 kullanın.
  • İlk çalıştırmada grafik simülasyon, Single Block ve düşük Rapid Override uygulayın.

Mentor CNC Sorumluluk Reddi ve Güvenlik Uyarısı

M98, M99, P ve L adreslerinin formatı kontrol ünitesine göre değişebilir. Özellikle tekrar sayısının P adresine eklenmesi, iç içe çağırma sınırı ve G91 altında sabit çevrim kullanımı makinenin programlama kılavuzundan doğrulanmalıdır. Yeni alt programlar ilk kez grafik simülasyon, Single Block ve düşük Rapid Override ile test edilmelidir.

MENTOR CNC
Sahadan gelen cnc bilgisi

Mentor CNC; CNC torna, CNC freze, kontrol üniteleri, kesici takımlar ve teknik hesaplamalar konusunda üretim sahasında edinilen tecrübeyi anlaşılır ve uygulanabilir teknik içeriklere dönüştürür.

Amacımız; operatörlerin, öğrencilerin, mühendislerin ve atölye sahiplerinin doğru bilgiye daha hızlı ulaşmasını ve üretimde daha güvenli, verimli kararlar almasını sağlamaktır.