Rehber
CNC programlama dilleri: G-kodu, M-kodları ve tezgâh lehçeleri
CNC programlama dilleri nelerdir? G-kodu (ISO 6983), M-kodları, Fanuc, Siemens, Heidenhain lehçeleri, woodWOP, Xilog, CAM ve post-processor.
Yayın: 8 dk okuma
Bir CNC tezgâhı çizim okumaz; satır satır verilen komutları okur. Bu komutların yazıldığı dile genel olarak CNC programlama dili denir. Pratikte tek bir dil yoktur: ortak bir çekirdek (G-kodu) ve üstüne her kontrol ünitesi üreticisinin eklediği lehçeler vardır. Mobilya ve ahşap router dünyasında ise bazı tezgâh üreticileri G-kodu yerine kendi program biçimlerini kullanır. Bu yazı, tezgâhın başındaki operatörün ve CAM ile çalışan teknik ressamın bilmesi gereken çerçeveyi çizer: G-kodu ne, M-kodu ne, lehçeler nerede ayrılır ve bugün kodu neden çoğunlukla bir yazılım yazar.
G-kodu: ortak dil (ISO 6983 / RS-274)
G-kodu, sayısal denetimli tezgâhlar için geliştirilen ve bugün hâlâ temel olan programlama dilidir. ABD'de EIA RS-274 (yaygın sürümü RS-274-D), uluslararası alanda ISO 6983 standardı olarak tanımlanmıştır; Avrupa'da bu yüzden "ISO kodu" da denir. Program bloklardan (satırlardan) oluşur; her blok bir ya da birkaç adres + sayı çiftinden kurulur:
- N: blok (satır) numarası — isteğe bağlıdır.
- G: hazırlık komutu — hareket türü, düzlem, birim, koordinat sistemi.
- X, Y, Z (A, B, C): hedef koordinatlar ve döner eksenler.
- I, J, K / R: yay merkezi ya da yarıçapı.
- F: ilerleme hızı (genellikle mm/dk), S: iş mili devri (dev/dk).
- T: takım numarası, D / H: takım yarıçapı ve boy telafisi kayıtları.
- M: yardımcı (makine) komutu — iş mili, soğutma, takım değişimi, program sonu.
G-kodlarının çoğu kalıcıdır (modal): bir kez G01 yazıldıktan sonra sonraki satırlarda başka bir hareket kodu gelene kadar geçerli kalır. Bu yüzden bir programı ortasından okumak yanıltıcı olabilir; o satırda hangi modların etkin olduğunu bilmek için yukarıya bakmak gerekir.
Temel G kodları ve M kodları tablosu
Aşağıdaki kodlar freze ve router kontrol ünitelerinin büyük çoğunluğunda aynı anlamı taşır. Yine de anlamı üreticiye ve tezgâh tipine göre değişen kodlar vardır (örneğin birim seçimi Fanuc'ta G20/G21, Siemens'te G70/G71); son söz her zaman tezgâhın kendi programlama kılavuzundadır.
| Kod | Anlamı | Not |
|---|---|---|
| G00 | Hızlı konumlama | Kesim yapmadan en yüksek hızla gider; talaş kaldırmaz |
| G01 | Doğrusal kesme hareketi | F ile verilen ilerleme hızında düz çizgi |
| G02 / G03 | Dairesel hareket (saat yönü / tersi) | Merkez I/J/K ya da R ile verilir |
| G04 | Bekleme (dwell) | Süre adresi kontrol ünitesine göre değişir |
| G17 / G18 / G19 | Çalışma düzlemi XY / XZ / YZ | Yay ve telafi bu düzlemde hesaplanır; router'da çoğunlukla G17 |
| G20 / G21 | İnç / milimetre (Fanuc tarzı) | Siemens'te G70/G71 |
| G28 | Referans noktasına dönüş | Fanuc tarzı |
| G40 / G41 / G42 | Takım yarıçapı telafisi: iptal / sol / sağ | Telafi CAM'de mi kontrolde mi yapılacak, tek yerde seçilir |
| G43 / G49 | Takım boyu telafisi aç / iptal | H kaydıyla |
| G54–G59 | İş parçası sıfır noktaları | Masadaki farklı istasyonlar için ayrı sıfır |
| G80 / G81 / G83 | Çevrim iptali / delik delme / kademeli delme | Delik çevrimleri |
| G90 / G91 | Mutlak / artımsal koordinat | Karıştırılması en tehlikeli ikili |
| M03 / M04 / M05 | İş mili saat yönü / ters / dur | S devriyle birlikte |
| M06 | Takım değişimi | Router'larda magazin davranışı üreticiye özgü |
| M08 / M09 | Soğutma aç / kapat | Ahşap router'da çoğunlukla toz emme ya da kullanılmaz |
| M00 / M01 | Program durdurma / isteğe bağlı durdurma | Operatör onayı için |
| M30 | Program sonu ve başa dönüş | Bazı ünitelerde M02 |
Küçük bir örnek: 100 × 60 mm dikdörtgen kontur
Aşağıdaki Fanuc tarzı program, 100 × 60 mm'lik bir dikdörtgenin dış konturunu 6 mm derinlikte, takım yarıçapı telafisiyle keser. Her satırın yanında ne yaptığı yazılıdır:
- O1000 (DIKDORTGEN 100X60) — program numarası ve açıklama
- G21 G17 G90 G40 G80 — milimetre, XY düzlemi, mutlak koordinat; telafi ve çevrimler iptal (güvenli başlangıç)
- T1 M06 — 1 numaralı takımı tak
- G54 G00 X-10. Y-10. S18000 M03 — 1. sıfır noktası, parçanın dışındaki giriş noktasına hızlı git, iş milini 18.000 dev/dk çalıştır
- G43 H1 Z20. — takım boyu telafisiyle güvenli yüksekliğe in
- G00 Z5. — yaklaşma yüksekliği
- G01 Z-6. F2000 — parçanın dışında 6 mm derinliğe dal
- G41 D1 X0. Y0. F6000 — sol telafiyi açarak köşeye gir (dış kontur, tırmanma yönü)
- X100. → Y60. → X0. → Y0. — dört kenar
- G40 G01 X-10. Y-10. — telafiyi kapatarak parçadan uzaklaş
- G00 Z20. — güvenli yüksekliğe çık
- M05 — iş milini durdur
- M30 — program sonu
Kontrol ünitesi lehçeleri: Fanuc, Siemens, Heidenhain, Osai
Çekirdek komutlar ortak olsa da her kontrol ünitesi üreticisi dile kendi eklerini yapmıştır. Bir tezgâh için yazılmış program başka bir kontrolde genellikle olduğu gibi çalışmaz; farklar çoğunlukla program başlığında, takım çağrısında, çevrimlerde ve değişken kullanımındadır.
- Fanuc: dünyada en yaygın kontrol ailelerinden biri; birçok üretici "Fanuc uyumlu" sözdizimi kullanır. Yukarıdaki örnek bu tarzdadır.
- Siemens Sinumerik: ISO komutlarının yanında kendi yüksek seviyeli dil öğelerine (değişkenler, CYCLE81 gibi adlandırılmış çevrimler) sahiptir; ShopMill/ShopTurn gibi atölye tipi (diyalog) programlama arayüzleri sunar.
- Heidenhain: kendi Klartext (düz metin, diyalog) diliyle bilinir: L X+100 Y+0 RL F6000 gibi satırlar G kodlarından farklı bir yapıdadır. Çoğu Heidenhain kontrol ISO programı da çalıştırabilir.
- Osai, Fagor, Mitsubishi, Haas ve diğerleri: ISO temelli, üreticiye özgü çevrim ve M kodlarıyla. Yerli ahşap router'larda Osai ve Asya menşeli kontrol üniteleri (LNC, Syntec gibi) sık görülür.
Mobilya router tarafı: woodWOP, Biesse ve Xilog
Levha işleyen büyük marka tezgâhlarda operatör çoğu zaman G-kodu görmez. Tezgâh üreticisinin yazılımı, işlemleri makro bloklar halinde tutan kendi program biçimini kullanır:
| Tezgâh / yazılım | Program biçimi | Yapı |
|---|---|---|
| Homag / Weeke — woodWOP | .mpr | Parça ölçüsü, değişkenler ve işlem blokları (kontur, delik, kanal) |
| Biesse — BiesseWorks / bSolid | .bpp, .cix | Üreticinin kendi işlem ve değişken yapısı |
| SCM — Xilog / Maestro | .xxl, .pgm | Xilog dili; delik ve freze makroları |
| Yerli ve genel router'lar | .nc, .iso, .tap vb. | Doğrudan G-kodu |
Bu biçimlerin ortak özelliği parametrik olmalarıdır: parça boyu ve eni değişken olarak tutulur, delikler bu değişkenlere göre konumlanır. Uzantılar ve sözdizimi tezgâh yazılımının sürümüne göre değişir.
Elle programlama mı, CAM ile üretim mi?
Basit bir dikdörtgen ya da birkaç delik tezgâhın başında elle yazılabilir. Ancak iş karmaşıklaştıkça elle programlama hızla sınırına ulaşır:
| Elle programlama | CAM ile üretim | |
|---|---|---|
| Uygun iş | Basit kontur, delik dizisi, tekrar eden tek parça | Serbest eğriler, desenli kapak, nesting, 3D yüzey |
| Hız | Kısa programda hızlı, uzunda çok yavaş | Çizim hazırsa dakikalar |
| Hata riski | Yazım hatası doğrudan tezgâha gider | Simülasyonla önceden görülür |
| Değişiklik | Satır satır düzeltilir | Çizim değişir, kod yeniden üretilir |
| Bilgi gereksinimi | Kontrol ünitesini iyi bilmek | CAM yazılımı + doğru post |
Mobilya atölyesinde gerçekçi durum şudur: operatör G-kodunu okuyabilmeli (bir hatayı teşhis etmek, sıfır noktasını kontrol etmek için), ama kodu yazan CAM yazılımıdır. CAM yazılımlarının sınıflandırması için CAM yazılımı türleri: işleme, eksen ve sektöre göre rehber; Alphacam'in bu zincirdeki yeri için Alphacam nedir? Mobilya ve ahşap CNC için CAD/CAM rehberi yazısına bakın.
Post-processor: CAM ile dil arasındaki çevirmen
CAM yazılımı takım yolunu tezgâhtan bağımsız bir iç biçimde hesaplar. Bu yolu Fanuc tarzı G-koduna mı, Heidenhain Klartext'e mi, woodWOP .mpr dosyasına mı çevireceğine post-processor karar verir. Yani "hangi dili konuşuyoruz" sorusunun yanıtı CAM tarafında post'tadır: aynı çizim, farklı post seçilerek farklı tezgâhlar için çıktı verebilir.
- Program başlığını ve sonunu (birim, düzlem, güvenli yükseklik) yazar.
- Takım değişimini kontrolün beklediği komutla verir.
- Delikleri G81/G83 çevrimine ya da üreticinin delik bloğuna çevirir.
- Telafinin CAM'de mi kontrolde mi yapılacağını belirler — ikisi birden açıksa takım iki kez kaydırılır.
Post seçimi, test sırası ve sık yapılan hatalar ayrı bir yazıda: Alphacam post-processor nedir? Tezgâha uygun NC kodu nasıl üretilir.
Parametrik ve makro programlama
G-kodunun düz hali sabit sayılarla çalışır. Kontrol üniteleri buna değişken, aritmetik, koşul ve döngü ekleyerek parametrik programlamaya izin verir. En bilinen örneği Fanuc'un Custom Macro B özelliğidir: #100 gibi numaralı değişkenler, IF [...] GOTO koşulları, WHILE [...] DO döngüleri ve G65 ile alt program çağırma. Siemens'te R parametreleri ve kullanıcı değişkenleri, Heidenhain'de Q parametreleri aynı işi görür. woodWOP ve Xilog gibi mobilya tezgâhı biçimleri de parça ölçülerini değişken olarak tutar.
Parametrik program, "en ve boy verilince kapağı kesen" tek bir program yazmayı sağlar; ama mantık tezgâhın içinde, o kontrolün diline bağlı kalır. CAM tarafındaki karşılığı ise parametrik çizim makrolarıdır: ölçüyü alıp geometriyi CAM programında üretir, NC kodunu yine post yazar. Böylece aynı makro her tezgâhta kullanılabilir. Alphacam'de bu makroların nasıl çalıştığı: Alphacam tabanlı parametrik kapı ve kapak makroları nasıl çalışır?.
Alphacam Router ile CNC programlama
Alphacam Router kullanan bir mobilya atölyesinde akış şöyledir: kapak ya da dolap parçası çizilir ya da DXF olarak alınır, işlemler atanır (elle veya Auto Style ile), simülasyonda kontrol edilir ve seçilen post tezgâhın diline uygun dosyayı yazar. Operatörün görevi dili ezberlemek değil; çıktının başlığını, sıfır noktasını ve takım çağrısını okuyup doğrulayabilmektir. İşin asıl zamanı ise çizimde geçer. GMacros makroları bu adımı Alphacam Router içinde hızlandırır: kapak, kapı ve dolap parçalarını ölçüden çizer, kodu yine sizin post'unuz üretir. Paketler için ürünler sayfasına bakın.
Sık sorulanlar
CNC programlamak için hangi dili öğrenmeliyim?
Önce ISO G-kodunun çekirdeğini (G00–G03, G17, G40–G42, G54, G90/G91 ve temel M kodları) öğrenin; bu tüm lehçelerin temelidir. Sonra tezgâhınızın kontrol ünitesinin kılavuzundaki farklara bakın.
G-kodu ile M-kodu arasındaki fark nedir?
G kodları hareketi ve geometriyi tanımlar (doğrusal, dairesel, düzlem, koordinat sistemi); M kodları makinenin yardımcı işlevlerini yönetir (iş mili, soğutma, takım değişimi, program sonu).
Homag ya da Biesse tezgâhı G-kodu kullanır mı?
Operatör genellikle üreticinin kendi biçimiyle (woodWOP .mpr, Biesse .bpp/.cix) çalışır. CAM yazılımı uygun post ile bu biçimi doğrudan üretebilir.
CAM kullanıyorsam G-kodu bilmem gerekir mi?
Yazmanız gerekmez ama okuyabilmeniz gerekir: birim, mutlak/artımsal mod, sıfır noktası ve takım çağrısını kontrol edebilmek, hatalı bir programı tezgâha göndermeden yakalamanızı sağlar.
İlgili ürünler
Yazıda anlatılan işleri Alphacam içinde tek tıkla yapan araçlar: GMacros eklentisi ve makro paketleri. Nasıl satın alındığı ve lisansın nasıl çalıştığı Nasıl çalışır sayfasında.
GMacros ekibi tarafından yazıldı. Alphacam, Hexagon AB'nin tescilli markasıdır; bu rehber bağımsızdır.