You are on page 1of 53

CNC MAKRO

ROGRAMLAMA
Fanuc, Haas (Yasnac), Mazatrol (Mazak),
Meldas (Mitsubishi) İçin Custom Macro B

Kitabından

Örnek
Bölümler
(Örnek bölümlerin olduğu bu dokümanda kitabın çeşitli bölümlerinden kısmi
alıntılar yapıldığı için konu akışlarında kopukluklar bulunmaktadır. Gerçek
kitapta ise konular oldukça akıcı bir şekilde açıklanmıştır.)

Kitabın tam halini edinmek için:

Pîrî Reis Üniversitesi yayınları tarafından basılan CNC Makro Programlama kitabını edinmek
için osecgin@pirireis.edu.tr ve info@cncmakro.com e‐posta adreslerinden biri ile iletişime
geçiniz.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~
CNC MAKRO
PROGRAMLAMA
Fanuc, Haas (Yasnac), Mazatrol (Mazak),
Meldas (Mitsubishi) İçin Custom Macro B

ÖMER SEÇGİN

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Her türlü yayın hakkı T.C. Pîrî Reis Üniversitesine aittir.

Bu kitabın tamamı veya bir kısmı T.C. Pîrî Reis Üniversitesi Rektörlüğünden yazılı izin alınmaksızın
mekanik veya elektronik yollarla çoğaltılamaz ve / veya kopya edilemez.

T.C. Pîrî Reis Üniversitesi Yayınları


© I. Baskı: 2013

Kitap No: 2
Baskı Tarihi: 2013
ISBN: 978‐605‐60740‐3‐5

Baskı:
HAS MATBAACILIK SAN. ve TİC. LTD. ŞTİ.
100, Yıl Mahallesi, MAS‐SİT Matbaacılar Sitesi
3. Cadde, 199/A BAĞCILAR / İSTANBUL
Tel: (0212) 629 02 49 Fax: (0212) 629 06 47

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Refik’e

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


ÖNSÖZ

Ulusların dünyadaki konumunu belirleyen en önemli etkenlerden biri teknoloji


üretim seviyesi, diğeri de teknolojiyi kullanabilme seviyesidir.

İleri teknoloji ürünü olan CNC tezgâhlar talaşlı üretim sektöründe yoğun bir
şekilde kullanılmaktadır. Ülkemizde, bu tezgâhların kullanımına yönelik birçok “CNC
programcılığı” kitabı yazılmasına rağmen maalesef bu kitaplarda makro programlama
yöntemine yer verilmemiştir. Yerli ve yabancı kaynaklar tarandığında bu konuda çok az
çalışma yapıldığı görülmüş; bu konuda Türkçe bir kitap yazmanın gerekli ve faydalı
olacağı kanaatine varılmıştır.

Makro programlama, CNC program yazma işlemini oldukça kolaylaştıran bir


yöntemdir. Birbirine benzer fakat ölçüsel farklılıkları olan parçaların işlenmesi; cep
boşaltma v.b. özel çevrimler oluşturulması; helisel-parabolik v.b. standart olmayan eksen
hareketlerinin oluşturulması; program çalışırken alarm veya mesaj üretilmesi; tezgâhın
sahip olmadığı bazı opsiyonların makrolarla yazılarak kullanılması; kesici ve iş parçası
ölçme ve kontrol amaçlı propların kullanılması v.b. işlemlerde makro programlardan
yararlanılır.

Kitap hazırlanırken CNC programcılığı ile ilgili yazılmış kitapların yanı sıra
Fanuc, Haas (Yasnac), Mazatrol (Mazak), Meldas (Mitsubishi) operatör kılavuzları ve
makro programlama hakkında yazılmış olan bilimsel makaleler incelenmiştir.

Kitapta, makro programlama hakkında genel bilgiler verildikten sonra


programcılığın temeli olan algoritma ve akış diyagramı konularına değinilmiştir.
Değişken kavramı ve değişkenlerin kullanımı açıklanmıştır. Döngüler ve makro alt
programların çağırılması anlatılıp sistem değişkenlerinin kullanımı örneklerle
açıklanmıştır. Makro program yazmanın püf noktaları üzerinde durulup son olarak
birçok makro program örneği verilerek makro program yazmanın daha iyi kavranması
hedeflenmiştir.

Bu kitap sadece eğitimcilere ve uzmanlara yönelik değil, sanayide çalışan tüm


personele ve öğrencilere de başvuru kaynağı olarak hazırlanmıştır. Bu nedenle kitapta
akademik dil kullanılmayarak herkesin rahatça anlayabileceği sade bir üslup tercih
edilmiştir. Ayrıca kitabın bazı bölümlerinde (okuyucu ile konuşurcasına) okuyucuya
hitap edilerek konunun daha iyi anlaşılması hedeflenmiştir.

Kitabın hazırlanması esnasında her türlü desteği veren aileme, Prof. Dr.
Süleyman ÖZKAYNAK’a, Doç. Dr. Vedat SAVAŞ’a, ve Yrd. Doç. Dr. Çetin ÖZAY’a;
kitabın basımı aşamasında desteklerini esirgemeyen Pîrî Reis Üniversitesi
Rektörlüğüne teşekkürü borç bilirim.

Gelecek baskılar için kitabın daha da geliştirilmesi amacıyla görüş ve


önerilerinizi osecgin@pirireis.edu.tr ve osecgin@gmail.com adreslerine elektronik
posta yolu ile bildirmenizi rica ederim.

Makro programlama yönteminin sanayide daha yaygın bir şekilde kullanılarak


birçok işin çok daha kısa sürede ve daha az maliyetle üretilmesini sağlayacağı
düşüncesiyle hazırlanan bu kitabın sanayicilere, CNC operatörlerine, öğrencilere ve
öğretmenlere faydalı olması dileği ile,

Ömer SEÇGİN
Tuzla - Mayıs 2013

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


ÖNEMLİ UYARI!

Bu kitapta “Custom Macro B” veya “User Macro B” olarak adlandırılan makro


programlama yöntemi açıklanmıştır. Bu yönteme kısaca “CNC makro programlama”
denilmiştir.

Makro program yazmayı doğru şekilde öğrenebilmek için hazırlık komutlarını (G


kodlarını), yardımcı fonksiyonları (M kodlarını), alt programların yapısını ve
kullanımını doğru bir şekilde biliyor olmalısınız. Aksi takdirde temel CNC programlama
bilgisine sahip olmadan hazırlayacağınız makro programlarda çeşitli yapısal/mantıksal
hatalar olabilir, tezgâh veya iş parçasının hasar göreceği iş kazaları meydana gelebilir.

Sistem değişkenlerinin kullanımları CNC kontrol ünitelerinin


modellerine göre değişiklik gösterebilmektedir. Sistem değişkenlerini doğru bir
şekilde kullanabilmek için tezgâhınızın kullanım kılavuzunu referans
almalısınız.

CNC kontrol ünitelerinin değişik versiyonlarında G kodlarının, M


kodlarının ve sistem değişkenlerinin kullanımı farklılaşabilmektedir.
Herhangi bir iş kazasına meydan vermemek için, bu kitapta verilen örnek
programları tezgâhınızda kullanırken ilk önce programı inceleyerek
programda kullanılan komutların tezgâhınızla uyumlu olup olmadıklarını
kontrol ediniz, herhangi bir sorun tespit etmeseniz dahi (programı ilk kez
çalıştırırken) tekli satır işleme (Single Block), Dry Run v.b. güvenlik
opsiyonlarını kullanınız.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


İÇİNDEKİLER:
BÖLÜM 1. GENEL BİLGİLER _________________________________________________________ 15
1. GENEL BİLGİLER _____________________________________________________________ 16
2. G KODLARI _________________________________________________________________ 18
3. CNC MAKRO PROGRAMLAMAYA GİRİŞ __________________________________________ 26
4. TEMEL PROGRAMLAMA KODLARI ______________________________________________ 27
5. ALGORİTMA VE AKIŞ DİYAGRAMI _______________________________________________ 29
5.1. AKIŞ DİYAGRAMININ HAZIRLANMASI ______________________________________ 29
5.2. MANTIKSAL AKIŞ DİYAGRAMLARI: _________________________________________ 34
5.3. DÖNGÜSEL AKIŞ DİYAGRAMLARI: _________________________________________ 35
BÖLÜM 2. DEĞİŞKENLER ___________________________________________________________ 37
6. DEĞİŞKENLER ______________________________________________________________ 38
6.1. DEĞİŞKENLERİN TANIMLANMASI _________________________________________ 39
7. DEĞİŞKENLERİN MATEMATİKSEL İFADELERLE KULLANIMI ___________________________ 42
7.1. DEĞİŞKENLERLE DÖRT İŞLEM VE İŞLEM ÖNCELİĞİ ____________________________ 43
7.2. SIN[#j] FONKSİYONU ___________________________________________________ 44
7.3. ASIN[#J] FONKSİYONU __________________________________________________ 45
7.4. COS[#J] FONKSİYONU ___________________________________________________ 45
7.5. ACOS[#J] FONKSİYONU _________________________________________________ 45
7.6. TAN[#J] FONKSİYONU __________________________________________________ 45
7.7. ATAN[#J] FONKSİYONU _________________________________________________ 45
7.8. SQRT[#J] FONKSİYONU __________________________________________________ 46
7.9. ABS[#J] FONKSİYONU ___________________________________________________ 46
7.10. ROUND[#J] FONKSİYONU _______________________________________________ 46
7.11. FIX[#J] FONKSİYONU __________________________________________________ 46
7.12. FUP[#J] FONKSİYONU __________________________________________________ 47
7.13. LN[#J] FONKSİYONU ___________________________________________________ 47
7.14. EXP[#J] FONKSİYONU __________________________________________________ 47
7.15. #i=BIN[#j]; ve #i=BCD[#j]; FONKSİYONLARI _________________________________ 47
7.16. MATEMATİKSEL İFADELER İÇİN ÖRNEK PROGRAMLAR ________________________ 49
BÖLÜM 3. DÖNGÜLER _____________________________________________________________ 55
8. YÖNLENDİRME (DALLANMA) KOMUTU ( GOTO N ) _________________________________ 56
9. BOOLE ve MANTIKSAL FONKSİYONLAR __________________________________________ 60
9.1. BOOLE FONKSİYONLAR (ŞART İFADELERİ) ___________________________________ 60
9.2. MANTIKSAL FONKSİYONLAR _____________________________________________ 61
10. IF KOMUTU _______________________________________________________________ 64
10.1. ŞARTLI DALLANMA: IF [şart ifadesi] GOTO N________________________________ 65

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


10.1.1. ÇİFT ŞART İFADESİ KULLANMA: _____________________________________ 65
10.2. “IF[şart ifadesi] THEN ifade” KOMUTU ____________________________________ 72
11. WHILE DÖNGÜSÜ __________________________________________________________ 76
11.1. WHILE [şart ifadesi] DO n END n _________________________________________ 76
BÖLÜM 4. G65 VE G66 KOMUTU _____________________________________________________ 85
12. ALT PROGRAMLAR _________________________________________________________ 86
12.1. MAKRO PROGRAMLARIN ALT PROGRAM OLARAK KULLANILMASI ______________ 88
12.1.1. MAKRO ALT PROGRAMLARIN ÇAĞRILMASI ___________________________ 89
13. DEĞİŞKEN KAVRAMI ________________________________________________________ 90
13.1. GENEL DEĞİŞKENLER __________________________________________________ 91
13.2. BAĞIMSIZ DEĞİŞKENLERİN TANIMLANMASI: _______________________________ 91
13.2.1. BAĞIMSIZ DEĞİŞKEN TANIMLAMA YÖNTEM 1 _________________________ 91
13.2.2. BAĞIMSIZ DEĞİŞKEN TANIMLAMA YÖNTEM 2 _________________________ 93
14. BAĞIMSIZ DEĞİŞKENLER KULLANARAK MAKRO PROGRAMLARIN ÇAĞIRILMASI _________ 95
14.1. G65 BASİT ÇAĞIRMA __________________________________________________ 96
14.2. G66 MODAL ÇAĞIRMA _________________________________________________ 99
15. YEREL DEĞİŞKENLERİN DALLANMASI __________________________________________ 102
16. MAKRO PROGRAM YAZMA ÖDEVLERİ _________________________________________ 104
BÖLÜM 5. SİSTEM DEĞİŞKENLERİ ___________________________________________________ 107
17. SİSTEM DEĞİŞKENLERİNİN MAKRO PROGRAMLARDA KULLANILMASI ________________ 108
17.1. SİSTEM PARAMETRELERİ VE SİSTEM DEĞİŞKENLERİ _________________________ 108
17.2. #1000 GRUBU SİSTEM DEĞİŞKENLER ____________________________________ 111
17.3. #2000 GRUBU SİSTEM DEĞİŞKENLERİ ____________________________________ 112
17.3.1. FREZE İÇİN #2000’Lİ DEĞİŞKENLER: ________________________________ 112
17.3.1.1. KESİCİ TAKIM BOYU OFSET DEĞERİ (Freze İçin): _________________ 112
17.3.1.2. KESİCİ TAKIM BOYU AŞINMA DEĞERİ (Freze İçin): ________________ 112
17.3.1.3. TAKIM YARIÇAP OFSETİ (Freze İçin): __________________________ 112
17.3.1.4. TAKIM YARIÇAP AŞINMA DEĞERLERİ (Freze İçin): ________________ 112
17.3.1.5. İŞ PARÇASI SIFIR NOKTASI DEĞİŞKENLERİ (Freze İçin): ____________ 113
17.3.2. TORNA İÇİN #2000 GRUBU SİSTEM DEĞİŞKENLERİ ____________________ 115
17.3.2.1. KESİCİ TAKIM X EKSENİ OFSET DEĞERİ (Torna İçin): ______________ 115
17.3.2.2. KESİCİ TAKIM X EKSENİ AŞINMA DEĞERİ (Torna İçin): _____________ 115
17.3.2.3. KESİCİ TAKIM Z EKSENİ OFSET DEĞERİ (Torna İçin): ______________ 116
17.3.2.4. KESİCİ TAKIM Z EKSENİ AŞINMA DEĞERİ (Torna İçin): _____________ 116
17.3.2.5. KESİCİ UÇ RADYÜSÜ OFSET DEĞERİ (Torna İçin): _________________ 117
17.3.2.6. KESİCİ UÇ RADYÜSÜ AŞINMA DEĞERİ (Torna İçin): _______________ 117
17.3.2.7. HAYALİ TAKIM UCU YÖNÜ (Torna İçin): ________________________ 118

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


17.3.2.8. KESİCİ TAKIM Y EKSENİ OFSET DEĞERİ (Torna İçin): ______________ 120
17.3.2.9. İŞ PARÇASI “SHIFT” KOORDİNAT DEĞERLERİ (Torna İçin): __________ 120
17.4. #3000 GRUBU SİSTEM DEĞİŞKENLERİ ____________________________________ 122
17.4.1. KONTROL VE ALARM FONKSİYONU (#3000) _________________________ 122
17.4.2. TARİH VE ZAMAN BİLGİSİ ________________________________________ 123
17.4.2.1. TEZGÂHIN AÇIK KALDIĞI SÜRE (#3001) ________________________ 123
17.4.2.2. OTOMATİK ÇEVRİM (CYCLE) SÜRESİ (#3002) ____________________ 123
17.4.2.3. TARİH BİLGİSİ (#3011) _____________________________________ 124
17.4.2.4. SİSTEM SAATİ (#3012) _____________________________________ 124
17.4.3. OTOMATİK OPERASYON KONTROLÜ _______________________________ 124
17.4.3.1. OTOMATİK ÇALIŞMA KONTROLÜ(#3003) ______________________ 124
17.4.3.2. İLERLEME KONTROLÜ (#3004) _______________________________ 125
17.4.3.2.1. G09 – TAM DURMA: _________________________________ 126
17.4.4. MESAJ GÖRÜNTÜLEME (#3006) ___________________________________ 126
17.4.5. AYARLAR (#3005) ______________________________________________ 127
17.4.6. AYNALAMA (İKİZ GÖRÜNTÜ) (#3007) _______________________________ 127
17.4.7. İŞLENMİŞ PARÇA SAYISI (#3901, #3902) _____________________________ 128
17.5. #4000 GRUBU SİSTEM DEĞİŞKENLERİ ____________________________________ 129
17.6. #5000 GRUBU SİSTEM DEĞİŞKENLERİ: ___________________________________ 139
17.6.1. ENSON TANIMLANMIŞ OLAN EKSEN KOORDİNATLARI: _________________ 140
17.6.2. MAKİNE KOORDİNATLARI: _______________________________________ 141
17.6.3. İŞ KOORDİNATLARI: _____________________________________________ 143
17.6.4. G31 ATLAMA FONKSİYONU _______________________________________ 144
17.6.4.1. G31 ATLAMA FONKSİYONUNUN KULLANIMI: ___________________ 145
17.6.5. TAKIM TELAFİSİ DEĞERİ: _________________________________________ 147
17.6.6. SERVO SAPMA DEĞERİ: __________________________________________ 147
17.6.7. İŞPARÇASI EV KOORDİNATLARI (WORKSHIFT) : _______________________ 147
18. PROGRAMLARIN KORUMA ALTINA ALINARAK VERİ GÜVENLİĞİNİN SAĞLANMASI ______ 150
18.1. 8000’Lİ PROGRAMLARI KORUMA ALTINA ALMA____________________________ 151
18.2. 9000’li PROGRAMLARI KORUMA ALTINA ALMA ____________________________ 152
BÖLÜM 6. PÜF NOKTALAR _________________________________________________________ 153
19. MAKRO PROGRAMLAMA PÜF NOKTALARI ______________________________________ 154
19.1. G01, G02, G03’Ü HAFIZAYA ALMA _______________________________________ 155
19.2. G90, G91’İ HAFIZAYA ALMA ____________________________________________ 155
19.3. O ANDA BULUNULAN X, Y, Z EKSEN POZİSYONUNU HAFIZAYA ALMA ___________ 155
19.4. DEĞİŞKEN TANIMLANMAMIŞSA ALARM VERME____________________________ 156
19.5. BİRDEN ÇOK DEĞİŞKEN TANIMLANMAMIŞSA ALARM VERME _________________ 156

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


19.6. DEĞİŞKENİN POZİTİF TAM SAYI OLUP OLMADIĞININ KONTROLÜ ______________ 156
19.7. DEĞİŞKEN SIFIRDAN BÜYÜK DEĞİLSE ALARM VERME ________________________ 156
19.8. DEĞİŞKEN TANIMSIZSA DEĞİŞKENE DEĞER ATAMA _________________________ 157
19.9. DEĞİŞKENİN İŞARETİNİ DEĞİŞTİRME (POZİTİF DEĞİŞKENİ NEGATİF YAPMA) ______ 157
19.10. CNC FREZE İÇİN SIKLIKLA KULLANILAN MAKRO DEĞİŞKENLERİ________________ 157
19.10.1. TAKIM KOMPENZASYONU_______________________________________ 157
19.10.2. İŞ PARÇASI SIFIR NOKTASI OFSETİ _________________________________ 157
19.10.3. G KODLARI ___________________________________________________ 158
19.10.4. ALFABETİK KODLAR ____________________________________________ 158
19.10.5. POZİSYON VERİLERİ ____________________________________________ 159
19.10.6. KONTROL DEĞİŞKENLERİ ________________________________________ 160
19.10.7. #3003 TEK SATIR İŞLEME ________________________________________ 160
19.10.8. #3004 İLERLEME KONTROLÜ_____________________________________ 160
19.10.9. BAĞIMSIZ DEĞİŞKENLER ________________________________________ 161
19.10.10. 100'LÜ GENEL DEĞİŞKENLER ____________________________________ 161
19.10.11. 500'LÜ GENEL DEĞİŞKENLER ____________________________________ 161
19.10.12. VERİ GİRİŞİ __________________________________________________ 162
19.10.13. VERİ ÇIKIŞI __________________________________________________ 162
19.11. CNC TORNA İÇİN SIKLIKLA KULLANILAN MAKRO DEĞİŞKENLERİ _______________ 162
19.11.1. TAKIM KOMPENZASYONU_______________________________________ 162
19.11.2. İŞ PARÇASI SIFIR NOKTASI OFSETİ _________________________________ 163
19.11.3. G KODLARI ___________________________________________________ 163
19.11.4. ALFABETİK KODLAR ____________________________________________ 164
19.11.5. POZİSYON VERİLERİ ____________________________________________ 164
19.11.6. KONTROL DEĞİŞKENLERİ ________________________________________ 165
19.11.7. #3003 TEK SATIR İŞLEME ________________________________________ 165
19.11.8. #3004 İLERLEME KONTROLÜ_____________________________________ 165
19.11.9. BAĞIMSIZ DEĞİŞKENLER ________________________________________ 166
19.11.10. 100'LÜ GENEL DEĞİŞKENLER ____________________________________ 166
19.11.11. 500'LÜ GENEL DEĞİŞKENLER ____________________________________ 166
19.12. NEGATİF SAYININ POZİTİF YAPILMASI ___________________________________ 167
19.13. EN YAKIN TAM SAYIYA YUVARLAMA ____________________________________ 167
BÖLÜM 7. ÖRNEKLER _____________________________________________________________ 169
20. MAKRO PROGRAMLAMA ÖRNEKLERİ__________________________________________ 170
21. FAYDALANILAN ESERLER ____________________________________________________ 200
22. İNDEKS __________________________________________________________________ 201

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


BÖLÜM 1
GENEL BİLGİLER

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


1. GENEL BİLGİLER

Bu kitap üst seviye CNC programcılarına yönelik olarak hazırlanmıştır.


Dolayısıyla bu kitapta geleneksel programlama yönteminde kullanılan komutların (G02,
G40, G81, G91, G76 v.b.) kullanım özelliklerine değinilmemiştir. Sadece hatırlatma
amaçlı olarak komutlar tablolar halinde verilmiştir.

Makro programlama birçok CNC kontrol ünitelerinde mantık olarak aynıdır. Bu


kitaptaki örnekler Fanuc, Mazatrol (Mazak), Meldas (Mitsubishi), Yasnac (Haas) v.b.
kontrol ünitelerin Custom Macro B’yi destekleyen modellerine uygundur. Okuma,
Siemens, Heidenhain v.b. CNC kontrol ünitelerinde de yine aynı mantık kullanılmasına
rağmen kullanılan komutlarda farklılıklar vardır. Örneğin, Fanuc, Mazatrol (Mazak),
Meldas (Mitsubishi), Yasnac (Haas) kontrol ünitelerinde değişkenler “ # ” simgesiyle
gösterilirken Heidenhain kontrol ünitesinde değişkenler “ Q ” simgesiyle gösterilmektedir.

Makro programlamayı doğru şekilde öğrenebilmek için hazırlık komutlarını (G


kodları), yardımcı fonksiyonları (M kodları), alt programların yapısını ve kullanımını
doğru bir şekilde biliyor olmalısınız. Aksi takdirde, bu temel CNC programlama bilgisine
sahip olmadan hazırlayacağınız makro programlarda çeşitli hatalar oluşabilir, tezgâh
veya iş parçasının hasar göreceği iş kazaları oluşabilir.

Konuların daha iyi anlaşılmasına yardımcı olmak için birçok satır örneğinin yanı
sıra birçok örnek program da verilmiştir. Bölüm 5’ten önceki örneklerde “SİSTEM
DEĞİŞKENLERİ” kullanılmamıştır. Bölüm 5’ten sonraki örnekler “SİSTEM
DEĞİŞKENLERİ” kullanılarak hazırlanmıştır.

İlk seviye CNC kontrol ünitelerinde kullanılan makro programlama yöntemine


“Custom Macro A” denilmektedir. “Custom Macro A” yönteminde bu gün kullanılan
çeşitli özellikler daha kısıtlıydı. Bu kısıtlı özelliklerin geliştirilmesiyle oluşturulan yeni
yönteme CNC kontrol ünitesi üreticileri tarafından “Custom Macro B” ismi verilmiştir.

Bu kitapta “Custom Macro B” veya “User Macro B” ismiyle adlandırılan makro


programlama yöntemi açıklanmıştır. Söz konusu olan yöntem bu kitapta “CNC makro
programlama” olarak anılmaktadır.

Makro programlama yöntemiyle;


• Aritmetik ve cebirsel hesaplamalar yapılabilmektedir.
• Trigonometrik hesaplamalar yapılabilmektedir.
• Mantıksal işlemler yapılabilmektedir.
• Değişkenlerde veri saklanabilmektedir.
• Program içerisinde akış bozularak başka bir satıra dallanma / atlama
yapılabilmektedir.
• Program içerisinde akış bozularak ekranda hata mesajı veya alarm mesajı
yazdırılabilmektedir.
• IF, WHILE döngüleri kullanılabilmektedir.
• CNC kontrol ünitesine veri girişi ve CNC kontrol ünitesinden veri çıkışı
yapılabilmektedir.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Makro programlama şu amaçlarla kullanılabilir;
• Birbirine benzer fakat ölçüsel farklılıkları olan parçaların işlenmesinde,
• Takım ve parça ofseti kontrolünde,
• İşinize özgü sabit çevrimler oluşturmanızda,
• Helisel, parabolik v.b. standart olmayan eksen hareketlerinin
oluşturulmasında,
• Program çalışırken alarm veya mesaj üretilmesinde,
• Tezgâhın sahip olmadığı bazı opsiyonların makrolarla yazılarak
kullanılmasında,
• Programların gizlenmesi ve kilitlenerek korunmasında,
• Ölçme ve kontrol amaçlı propların kullanılmasında,
• Modern CNC tezgâhlarda olan fakat tezgâhınızda kullanıma açık olmayan
hazır çevrimlerin kullanılabileceği programların oluşturulmasında,

2. G KODLARI
Geleneksel G kodları (G00, G01, G02 v.b.) standartlaştırılmış olmasına rağmen
(özellikle çok eksenli tezgâhların 4., 5. eksenleriyle ilgili) komutların kullanımıyla ilgili
farklılıklar olabilmektedir. Bilgilendirme amaçlı olarak G kodları aşağıda tablo halinde
verilmiştir. Özellikle Tablo 2.’de aynı kontrol ünitesinin farklı versiyonlarında çeşitli
komutların farklı anlamlara geldiği açık bir şekilde görülmektedir. Herhangi bir
problemle karşılaşmamak için tezgâhınıza ait kullanma kılavuzunda yer alan
G kodlarını referans alarak çalışmalısınız.

Aşağıdaki tabloda 1. sütunda G kodu, 2. sütunda o komutun açıklaması, 3.


Sütunda ise o kodun bağlı olduğu grubun adı yer almaktadır. Grup numarasının
kullanımı 17.5. #4000 Grubu Sistem Değişkenleri başlığı altında açıklanmıştır.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


3. CNC MAKRO PROGRAMLAMAYA GİRİŞ
CNC Makro programlama çeşitli değişkenlerin tanımlanıp bu değişkenlerle
matematiksel ve/veya mantıksal işlemler yaparak iş parçası işleme esasına dayanır.

İşlenecek yüzeyi matematiksel denklemle tanımlanan parçaların geleneksel


programlama yöntemiyle işlenmesi mümkün değildir. Bu durumda çizim esnasında
denklemlerle ilişkilendirme yapabileceğiniz bir CAD programı kullanarak yüzeyleri
oluşturmalı daha sonra CAM programında bu yüzeyleri işleyebilecek komutları elde
etmelisiniz ya da sadece basit bir makro program yazarak binlerce Lira değerindeki
tasarım programları satın almanıza gerek kalmayacak; ayrıca yaptığınız işin
doğruluğundan şüphe duymayacaksınız. Bazı CAD programları ne kadar güçlü olsalar
da denklemsel çizimlerde ve denklemsel ilişkilendirmelerde yetersiz kalabilmektedir.
Makro programlamada doğrudan ilgili denklemler kullanıldığı için herhangi bir sorunla
karşılaşılmamaktadır. (Yeter ki program doğru bir şekilde yazılmış olsun.)

Ayrıca, CNC tezgâhlarda sıklıkla kullanılan hazır çevrimler (Canned Cycle) bazı
durumlarda ihtiyacımızı karşılayamaz olurlar. Bu nedenle CNC kontrol paneli
üreticileri modern kontrol panellerine eski tezgâhlarda bulunmayan yeni hazır çevrimler
(Canned Cycle) eklemektedirler. Modern CNC tezgâhlarda olan fakat tezgâhınızda
kullanıma açık olmayan hazır çevrimleri CNC makro programlama ile
hazırlayabilirsiniz.

CNC tezgâhlar offset sayfasındaki makro değişkenlerini kullanarak çalışırlar. Bu


değişkenlerin bir kısmı CNC işletim sistemi üreticisi (Fanuc, Mazatrol, Yasnac, Meldas
v.b.) tarafından tanımlandığı gibi bir kısmı da tezgâh üreticisi ve operatör tarafından
tanımlanır. Bu değişkenlerin bir kısmı geçici hafızaya kaydedilir ve tezgâh
kapatıldığında kendiliğinden silinir, bir kısmı da kalıcı hafızaya kaydedilir. Tezgâh
kapatılıp açıldığında yine kullanılabilir durumda olurlar. Kalıcı hafızaya kaydedilen bu
değişkenler yerel değişkenler ve sistem değişkenleri olarak iki gruba ayrılmaktadır. Bu
konu ve değişkenlerin kullanımı 2. bölümde detaylı olarak açıklanmıştır.

Sistem değişkenlerinde hangi değişkeninin neyi kontrol ettiği farklı CNC


işletim sistemlerinde değişebildiği gibi aynı üreticinin farklı modellerinde de
değişebilmektedir. Bu nedenle bu kitapta (5. bölüm ve sonrası hariç) makro
programlar sistem değişkenleri kullanılmadan yapılmıştır. 5. bölüm ve
sonrasında ise sistem değişkenleri açıklanıp sistem değişkenlerinin makro
programlarda kullanımıyla ilgili de çeşitli örnekler verilmiştir. Sistem
değişkenlerinin kullanıldığı programları tezgâhınızda çalıştırırken sorun
yaşamamanız için azami surette dikkat etmelisiniz.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


5. ALGORİTMA VE AKIŞ DİYAGRAMI
CNC makro programlama algoritma olarak TURBO C, C++, PASCAL, BASIC
v.b. programların mantığıyla aynıdır. Program yazmaya başlamadan önce ne yapılmak
istendiği doğru bir şekilde belirlenir. Buna uygun bir akış diyagramı hazırlanır.
Değişkenler tanımlanır. Bu değişkenlerle matematiksel ve mantıksal işlemler yaparak
tezgâh kumanda edilir.

5.1. AKIŞ DİYAGRAMININ HAZIRLANMASI


Bir problemin çözümü için izlenecek yola “algoritma” denir. Algoritmaların şema
halinde gösterimine ise “akış diyagramı” denir. Akış diyagramı sayesinde problemin
çözüm basamakları, birbirleri ile ilişkileri ve bilgi akışı daha kolay görülebilir ve
yanlışlıklar düzeltilebilir.

Makro programı yazmak için önce sıra ile:


• Problemi tanımlama
• Algoritma geliştirme
• Akış diyagramını çizme
• Programı yazma
• Programın doğruluğunu kontrol etme
işlemleri yapılmalıdır.

Akış diyagramı programın ana bölümlerini ve bu bölümlerin birbirleriyle olan


ilişkilerini gösterir.

Akış diyagramında, program yazarken izlenecek adımlar o işlemi simgeleyen


kutuların içine yazılır ve adımlar arasındaki ilişkiler oklarla gösterilir.

Akış diyagramının hazırlanmasında aşağıda yer alan simgeler kullanılır.

Şekil 1. Programa başla veya programı bitir.

Şekil 2. Hesaplamalar veya değişkenlere değer atanması. (Tüm matematiksel işlemler


dikdörtgenin içinde ifade edilir.)

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


BÖLÜM 2
DEĞİŞKENLER

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


6. DEĞİŞKENLER
CNC makro programlama çeşitli değişkenlerin tanımlanıp bu değişkenlerle
matematiksel ve mantıksal işlemler yaparak tezgâhı kumanda etme esasına dayanır.

Diğer birçok programlama yöntemlerinde olduğu gibi CNC makro


programlamada da değişkenler “ # ” işaretiyle ifade edilmektedir.

Değişkenler 4 ana gruba ayrılırlar.

#0: 0 numaralı değişkene değer atanamamaktadır. Daima tanımsızdır.

#1~#33: Bu değişkenler yerel değişkenler olup tezgâh hafızasına kaydedilmezler.


Bu değişkenler daha önceden tanımlanmış olsalar dahi tezgâh kapatılıp açıldığında veya
“RESET” butonuna basıldığında tanımsız hale gelirler.

#100~#999: Bu değişkenler ortak / genel değişkenler olup tezgâh hafızasına


kaydedilirler. Tezgâh kapatılıp açılsa bile yine en son tanımlandığı değer ile
kullanılabilirler. Fakat bazı tip CNC kontrol ünitelerinde #100~#500 arasındaki
değişkenler de tezgâh kapatıldığında silinmekte, #700~#999 arasındaki değişkenler
kalıcı olarak hafızada tutulabilmektedir. #100~#999 arasındaki değişkenleri kullanırken
tezgâhınızın özelliklerinizi de iyi bilmelisiniz. Ayrıca bazı tezgâh üreticileri bu
bölgeyi de kullanıp bu değişkenlere değer atayabilmektedirler (takım ve/veya
parça ölçme probu değişkenleri gibi). Program çalışırken yanlışlıkla prop
değişkenlerine değer atanması iş kazalarına yol açabilir. O nedenle bu
değişkenler kullanılırken çok dikkatli olunmalıdır.

#1000 ve yukarısı: Bu değişkenler sistem değişkenleridir. Bu değişkenlerle iş


parçası ofset verisi, takım boy-çap ofset verisi, fener mili devir verisi v.b. sistem
değişkenleri makro program içerisinde kullanılır. Bu değişkenleri yanlış
kullanmanız tezgâha veya iş parçasına zarar verilebilir.

Fanuc CNC kontrol ünitesinde değişken ekranına ulaşabilmek için OFSET


sayfasına girilir. Ekranın altında “MACRO” yazısı gözükene kadar (bir veya iki sefer)
ekranın sağ altındaki tuşa basılır. Daha sonra ekranın altındaki “MACRO” tuşuna basılır.
Ekrana gelen sayfada makro değişkenleri görülecektir. PAGEUP ( ), PAGEDOWN
( ) tuşları ile önceki ve sonraki sayfalarda bulunan makro değişkenleri (variable)
görüntülenir. Bu sayfada değişkenin sıra numarasının yanında değer yazmıyorsa o
değişkene henüz değer atanmamıştır. Şekil 14.’te 1 ila 8 numaralı değişkenlere çeşitli
değerler atanmış ……..

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


6.1. DEĞİŞKENLERİN TANIMLANMASI
Bu bölümde değişkenlerin tanımlanması ve matematiksel işlemlerde kullanılması
v.b. işlemler anlatılmıştır. Değişken çeşitleri, yerel değişkenler, genel değişkenler ile
bağımsız değişkenlerin kullanımı Bölüm 4.’te 13. başlık ve sonrasında detaylı olarak
anlatılmıştır.

Makro programlamada değişkenleri ifade etmek için “ # ” sembolü kullanılır.

Örnek:
“ #1” ifadesi 1 numaralı değişkeni simgeler.
“ #43” ifadesi 43 numaralı değişkeni simgeler.
“ #2256” ifadesi 2256 numaralı değişkeni simgeler.

Değişkenler tanımlanırken önce # simgesi sonra değişken numarası yazılır ve


daha sonra değer atma işlemi yapılır.

Örnek:
#1=0; (İfadesiyle 1 numaralı değişkenin değeri 0’a eşitlenir.)
#14=25; (İfadesiyle 14 numaralı değişkenin değeri 25’e eşitlenir.)
#86=45.256; (İfadesiyle 86 numaralı değişkenin değerini 45.256’ya eşitlenir.)

5=#1; (Bu ifade geçersizdir. Doğrusu #1=5; şeklindedir.)


#6=25; (Bu ifade geçerlidir (6 numaralı değişkenin değeri 25’e eşitlendi.))
#1+#2=#3; (Bu ifade geçersizdir. Doğrusu #3=#1+#2; şeklindedir.)

Değişken adları pozitif tam sayılardır. Değişken adları negatif veya ondalıklı
olamaz.

Örnek:
#5=25; (Bu ifade geçerlidir.)
#1=145,7; (Bu ifade geçerlidir.)
#6=‐425,896; (Bu ifade geçerlidir.)

#1,5=2;
#‐5=7; Bu tanımlamalar hatalıdır.

Değişkenler kullanılarak program yazılırken tam sayılar için ondalık kısmı


belirtmeye gerek yoktur. Tam sayılarda tezgâh değişkenin ondalık kısmındaki sıfırları
yazılmış gibi kabul eder.

Örnek:
#1=42; (1 numaralı değişkenin değeri 42.000’dır.)
#2=856; (2 numaralı değişkenin değeri 856.000’dır.)
#3=2.44; (3 numaralı değişkenin değeri 2.440’dır.)
#4=63.7; (4 numaralı değişkenin değeri 63.700’dür.)
#5=‐243.000; (5 numaralı değişkenin değeri -243.000’dır.)

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


7. DEĞİŞKENLERİN MATEMATİKSEL İFADELERLE KULLANIMI
CNC makro program içerisinde değişkenler birbirleriyle toplanabilir,
çıkartılabilir, çarpılabilir, bölünebilir, sinüs-kosinüs-tanjant gibi trigonometrik değerleri
hesaplanabilir. Matematiksel fonksiyon olarak ifade edilen işlemler makro program
içerisinde rahatlıkla kullanılır.

Kullanım Biçimi
Fonksiyon Açıklamalar
(i, j, k Değişken Adı)
Tanımlama #i=#j; Değişkene değer atama.
Toplam #i=#j+#k;
Fark #i=#j‐#k;
Klasik dört işlem.
Çarpım #i=#j*#k;
Bölümü #i=#j/#k;
Sinüs #i=SIN[#j];

Arksinüs #i=ASIN[#j];
Açı değeri 10’luk tabana göre ifade
Kosinüs #i=COS[#j];
edilir. Derece cinsinden olan açı 10’luk
tabana çevrilmelidir.
Arkkosinüs #i=ACOS[#j];
Örnek:
Tanjant #i=TAN[#j];

Arktanjant #i=ATAN[#j];
Karekök #i=SQRT[#j];
Mutlak değer #i=ABS[#j];
Yuvarlama #i=ROUND[#j];
Aşağı yuvarlama #i=FIX[#j];
Bütünleme #i=FUP[#j];
Doğal logaritma #i=LN[#j];
Üstel fonksiyon #i=EXP[#j];
OR #i=#j OR #k;
Mantıksal bir işlem her bitte ikili
XOR #i=#j XOR #k;
sayılarla gerçekleştirilir.
AND #i=#j AND #k;
BCD’den BIN’e
#i=BIN[#j];
dönüştürme PMC’ye ve PMC’densinyal değiştirme
için kullanılır.
BIN’den BCD’ye
#i=BCD[#j];
dönüştürme

Tablo 3. Aritmetik ve mantıksal işlem1


Açıklamalar:

SIN, COS, ASIN, ACOS, TAN ve ATAN fonksiyonlarıyla kullanılan açı birimi
derecedir. Dakika kısmı onluk tabana göre ifade edilir. Örneğin 45°30' için 45.50
yazılması gerekmektedir. Onluk tabana göre açı hesabı şöyle yapılır:

1
Fanuc Serisi 18i/180i/180is-MB Operatör Klavuzu B---63534TR/02 Sayfa 406

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


7.16. MATEMATİKSEL İFADELER İÇİN ÖRNEK PROGRAMLAR
Makrolar doğrudan ana programda kullanılabileceği gibi G65 “basit çağırma”
ve G66 “modal çağırma” yöntemleri ile de kullanılabilmektedir. Basit çağırma ve modal
çağırma konuları 4. bölümde 14. başlık altında detaylı olarak anlatılacaktır. Konunun
daha rahat anlaşılabilmesi için bu bölümde makrolar doğrudan ana program
içinde kullanılacaktır.

Örnek program (CNC freze için):

Şekil 16. Düzlemsel 6 delik delinecek parça

BAŞLA 3. deliğin üzerine


git ve deliği del.

#1ve #2’yi
4. deliğin üzerine
tanımla
git ve deliği del.

1. deliğin üzerine 5. deliğin üzerine


git ve deliği del git ve deliği del.

2. deliğin üzerine 6. deliğin üzerine


git ve deliği del git ve deliği del.

SON

Şekil 17. Düzlemsel 6 deliği delecek programın akış diyagramı.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


BÖLÜM 3
DÖNGÜLER

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


8. YÖNLENDİRME (DALLANMA) KOMUTU ( GOTO N )
CNC tezgâhlarda parça işlenirken program satır satır çalışır. Önce imlecin
olduğu satır çalıştırılır sonra da altındaki satır çalıştırılır daha sonra da onun altındaki
satır çalıştırılır. Bu sırayı bozmak istediğimizde GOTO N komutunu kullanırız.

GOTO N komutunda, “ N ” ifadesi dallanma yapılacak satır numarasını


tanımlar.

Örnek:

………………………..

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Örnek Program (CNC Freze için):
Sabah tezgâhı ısıtmak için kullanılabilecek örnek program. Bu program operatör
“RESET” butonuna basana kadar sürekli çalışır.

BAŞLA
#1’in değerini 50
arttır.

Fenermili devir
artış miktarını
tanımla.
#1’in değeri Evet
1000’den
Makineyi ev büyük
koordinatlarına mü?
gönder. #1= 1000
Hayır

G01 ile X50 Y50


koordinatlarına Fener milini
git. #1 devriyle
döndür.

Z ekseninde 10
mm aşağı in. F50 ilerlemesi ile -X
yönünde 40mm, -Y
yönünde 40mm git.

F50 ilerlemesi ile -Z


yönünde 40mm git.

F100 ilerlemesi ile


+X yönünde 40mm,
+Y yönünde 40mm
git.

F100 ilerlemesi ile +Z


yönünde 40mm git.

Şekil 24. Sabah tezgâhı ısıtmak için kullanılabilecek programın akış diyagramı

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


O 0006; (Sabah tezgâhı ısıtmak için kullanılabilecek program)
G91 G28 Z0; (Z eksenini evine gönder)
G91 G28 X0 Y0; (X ve Y eksenlerini evine gönder)
G01 X50 Y50 F100; (X50 Y50 koordinatlarına F100 ilerlemesi ile git)
G91; (Artımlı programlama)
G01 Z‐10 F50;
#1=50; (Devir artım değişkeni)
N15 #1=#1+50;
IF[#1 GT 1000] THEN #1=1000;
M03 S#1;
G01 X–40 Y–40 F50;
Z–40;
G01 X40 Y40 F100;
Z40;
GOTO15;
%

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


9. BOOLE ve MANTIKSAL FONKSİYONLAR

9.1. BOOLE FONKSİYONLAR (ŞART İFADELERİ)


Boole fonksiyonlar (şart ifadeleri), iki değişkenin değerlerinin birbirlerine göre
büyük-küçük-eşit olup olmadığının karşılaştırılmasında kullanılırlar.

Örnek:
#1=15; (1 numaralı değişkenin değeri 15.000)
#2=20; (2 numaralı değişkenin değeri 20.000)
#3=25; (3 numaralı değişkenin değeri 25.000)
#4=30; (4 numaralı değişkenin değeri 30.000)
IF[#2 EQ 20]GOTO15; (2 numaralı değişkenin değeri 20’ye eşit olduğu için 15
numaralı satıra atlanılır.)

9.2. MANTIKSAL FONKSİYONLAR


AND, OR ve XOR fonksiyonları mantıksal karşılaştırma işlemlerinde
kullanılırlar. AND, OR ve XOR fonksiyonları iki şart ifadesini karşılaştırmak için de
kullanılabilir.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


10. IF KOMUTU
IF karar verme döngüsü olarak da bilinen ve makro programlarda sıklıkla
kullanılan bir komuttur. İki değişkenin kıyaslanarak kıyaslanma sonucuna göre
programın akışını değiştirmek için kullanılır.

IF komutundaki şartın “evet” veya “hayır” olmak üzere iki cevabı olabilir ve
bunlardan sadece biri geçerlidir.

Aşağıdaki örnekte bir delik delme programında istenilen sayıda delik delinip
delinmediğinin kontrol edildiği bölüm verilmiştir.

Örnek:

İstenen
sayıda delik Evet Programı
delindi mi? sonlandır.
Hayır

Sıradaki
deliğin
merkezine git ve
deliği del.

Şekil 25. If döngüsünün çalışma mantığı.

İstenen sayıda delik delindi mi? (cevap evet veya hayırdır.)


Eğer istenen sayıda delik delindi (cevap evet) ise programı sonlandır.
Eğer istenen sayıda delik delinmedi (cevap hayır) ise sıradaki deliğin merkezine
git ve deliği del. Kıyaslama satırına geri dön.

IF komutundaki şart sağlanıyorsa (cevap evet ise) dallanma yapılarak başka bir
satıra atlanabilir ya da herhangi bir değişkene değer atanabilir. IF komutundaki şart
sağlanmıyorsa (cevap hayır ise) IF komutundaki ifadeler ihmal edilip hiçbir işlem
yapılmadan alt satırına geçilir.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


10.1. ŞARTLI DALLANMA:
IF [şart ifadesi] GOTO N
Formatı:
IF[şart ifadesi]GOTO N;
Buradaki “ N ” atlama yapılacak satır numarasını ifade eder.

10.1.1. ÇİFT ŞART İFADESİ KULLANMA:


Karmaşık hesaplamalarda iki ya da daha fazla şart ifadesinin karşılaştırılması
gerekebilir.

Örnek program: (CNC torna için)

Şekil 26. Tornada G94 kaba boşaltma çevrimi mantığıyla çalışan IF ve GOTO
kullanılarak programı yazılacak parça

Örnek program: (CNC freze için)

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


10.2. “IF[şart ifadesi] THEN ifade” KOMUTU
“IF[şart ifadesi] THEN ifade” komutu ile şart ifadesindeki şartlar
sağlanıyorsa herhangi bir değişkene değer atanabilir.

11. WHILE DÖNGÜSÜ

11.1. WHILE [şart ifadesi] DO n


END n
WHILE’den sonra şart ifadesi belirtilir. Belirtilen şart sağlandığı sürece DO n’den
END n’e kadar olan satırlar işlenir ve tekrar döngünün başına dönülür

Örnek program (freze için);

Şekil 34. Açılı doğrusal eksen üzerinde birçok deliğin delinmesi

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


BÖLÜM 4
G65 VE G66 KOMUTU

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


12. ALT PROGRAMLAR
Doğru çalışan profesyonel makro programlar yazabilmek için alt programların ne
olduğunu ve nasıl çalıştığı iyi bir şekilde bilinmelidir.

12.1. MAKRO PROGRAMLARIN ALT PROGRAM OLARAK KULLANILMASI


Programımızda belli aralıklarla tekrarlanması gereken işlemler varsa bunlar alt
program olarak yazılırlar. Tekrarlanacak işlemler ana programda her defasında ayrı
ayrı yazmak yerine alt program kullanarak ana program basitleştirilir. Ana
programların sonuna M30 yazılırken alt programın sonuna M99 kodu yazılır.

Ana programda alt program çağırmak için M98 P_____; satırı yazılır. Bu satırda
P çağırılacak olan alt programın tekrar sayısını ve adını tanımlar.

12.1.1. MAKRO ALT PROGRAMLARIN ÇAĞRILMASI


Makro programlar doğrudan ana programların içinde kullanılabileceği gibi alt
program olarak da kullanılabilmektedir.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


13.2. BAĞIMSIZ DEĞİŞKENLERİN TANIMLANMASI:
Basit çağırma ve modal çağırma yöntemlerinde yerel değişkenler (#1 ~ #33)
harflerle tanımlanırlar. Harflerle tanımlanan bu değişkenlere “bağımsız değişken”
denir. Bağımsız değişkenler tanımlanırken G, L, O, N, P harfleri kullanılamaz, çünkü;

Önemli Uyarı!
Yazdığınız makro program sizden başka kişiler tarafından
kullanılacaksa bu yöntemi kullanmak uygun olmayacaktır, çünkü bu
yöntemle yapılan tanımlamalar birbirine karıştırılabilmektedir. Bu yöntem
yerine 1. yöntemi kullanmanız daha uygun olacaktır.

14. BAĞIMSIZ DEĞİŞKENLER KULLANARAK MAKRO PROGRAMLARIN


ÇAĞIRILMASI
Makro alt program sadece 1 defa çalıştırılacaksa G65 P_ _ _ _; komutu
kullanılmaktadır. P harfinden sonra makro alt programın adı olan 4 haneli sayı yazılır,
daha sonra makro değişkenler alfabetik olarak tanımlanır.

Örnek:
G65 P7005 A45 X25 Y42.5 Z‐15.8 F120; Bu satırın açıklaması şöyledir:

14.1. G65 BASİT ÇAĞIRMA


G65 komutu ile sadece bir kez çalıştırılacak makro alt programlar çağırılır.

Örnek;

Şekildeki parçaya delik delmek için


Kalınlık=15mm
G81 komutu kullanılmaktadır. Ama siz de
kendinize özel bir makro program yazarak
da böyle bir parçaya delik delebilirsiniz.

Şekil 38. G81 komutu ile delinecek parça.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


14.2. G66 MODAL ÇAĞIRMA
G65 komutu 1 defa çalıştırılacak makro alt programların çağırılması için
kullanılırken, aynı makro program birçok kez çalıştırılacak ise G66 komutu
kullanılmaktadır.

15. YEREL DEĞİŞKENLERİN DALLANMASI

Örnek:
O 1000; O 7001; O 7002; O 7003; O 7004;
#1=1; #1=2; #1=3; #1=4; #1=5;
G65P7001; G65P7002; G65P7003; G65P7004; #2=#1+4;
#5=#1+12; #2=#1*4; #2=#1‐2; #2=#1/2; G00Z#2;
G00X#1; G00X#2; G00Y#2; G00X#2; M99;
G00Y#5; M99; M99; M99; %
M30; % % %
%

1. seviye 2. seviye 3. seviye 4. seviye


Ana program alt program alt program alt program alt program
(0. seviye) #1’in değeri 2 #1’in değeri 3 #1’in değeri 4 #1’in değeri 5
#1’in değeri 1 #2’in değeri 8 #2’in değeri 1 #2’in değeri 2 #2’in değeri 9

Yukarıdaki tabloda da görüldüğü gibi;

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


16. MAKRO PROGRAM YAZMA ÖDEVLERİ

ÖDEV 3 (Torna için):


Şekil 43. deki gibi bir kanal açabilecek makro program yazınız.

Kanal kateri

B= Kesici uç genişliği
A= Kanal açısı
H= Kanal genişliği
D= Parçanın dış çapı
R= Kanalın iç çapı
L=Pah yüksekliği

Şekil 43. Tornada özel kanal açılacak parça

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


BÖLÜM 5
SİSTEM DEĞİŞKENLERİ

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


17. SİSTEM DEĞİŞKENLERİNİN MAKRO PROGRAMLARDA KULLANILMASI

17.1. SİSTEM PARAMETRELERİ VE SİSTEM DEĞİŞKENLERİ


CNC kontrol ünitesi hafızasında kayıtlı olan çeşitli verileri (ofset verisi, makine
eksenleri pozisyon verisi, rapid hareket hızı, fener milinin maksimum devri, eksen
hareket boyları v.b.) kullanarak tezgâhı kontrol eder.

Makro programlamada sistem değişkenleri kullanılmaktadır. Sistem


değişkenlerinin kullanılması aslında sistem parametrelerinin okunması veya
değiştirilmesi işlemidir. Bazı önemli sistem değişkenleri koruma altına alınmıştır. Bu
değişkenlerin değerlerinin değiştirilmesi engellenmiştir, sadece değişken değerleri
okunabilmektedir. Bu konu sistem değişkenleri bölümünde detaylı olarak açıklanacaktır.

Şekil 49. 3000 grubu parametreler.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


ÖNEMLİ UYARI:

Sistem değişkenleri kullanılırken oldukça dikkatli olunmalıdır. Hangi


sistem değişkeninin ne işe yaradığı iyi bilinmelidir. Makro programlama
yöntemleri aynı olmasına rağmen Fanuc’un bazı versiyonları arasında
farklılıklar olabildiği gibi Fanuc, Mitsubishi, Yasnac, Mazatrol v.b. kontrol
panellerinin sistem değişkenlerinde de bazı farklılıklar olabilmektedir.
Kullanılan işletim sisteminin değişkenleri tezgâhın kılavuzundan iyice
öğrenilmelidir.

Bu bölümde CNC freze için Fanuc 16i-MB/16i-MA/18i-MB/18i-MA/20i-


FA/21i-MB serileri, CNC torna için Fanuc 16i-TB/16i-TA/18i-TB/18i-TA/20i-
TA/21i-TB serileri sistem değişkenleri anlatılmaktadır.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


17.2. #1000 GRUBU SİSTEM DEĞİŞKENLER

17.3. #2000 GRUBU SİSTEM DEĞİŞKENLERİ


#2000 grubu değişkenler kesici ve iş parçası ofset verileri ile ilgilidir.

Şekil 50. CNC torna için “OFFSET/WEAR” sayfası.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Şekil 51. CNC torna için “OFFSET/GEOMETRY” sayfası.

2 1
6

7 5
9

8
3 4

Şekil 53. Takım uç yönlerinin kodları.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


17.4. #3000 GRUBU SİSTEM DEĞİŞKENLERİ
#3000 gurubu değişkenler hareket, zaman v.b. sistem fonksiyonları ile ilgili
değişkenlerdir.

Değişken
Anlamı
Adı
#3000 Kontrol ve alarm fonksiyonu
#3001 Tezgâhın açık kaldığı süre (milisaniye)
#3002 Otomatik çevrim (cycle) süresi (saat)
#3003 Tek satır işleme
#3004 İlerleme kontrolü
#3005 Temel sistem özelliklerinin kontrolü
#3006 Mesaj görüntüleme
#3007 İkiz görüntü
#3011 Tarih bilgisi
#3012 Sistem saati (saat dakika saniye)
#3901 İşlenmiş olan parça sayısı
#3902 İşlenmesi istenen parça sayısı
Tablo 18. #3000 grubu sistem değişkenleri

17.5. #4000 GRUBU SİSTEM DEĞİŞKENLERİ


G komutlarının çoğu modal (kalıcı) komutlardır. Bu komutların tersi / iptal
komutları yazılıncaya kadar geçerliliğini korurlar. Örneğin program içinde G01
yazıldıysa alttaki satırlarda G00, G02, G03 komutlarından herhangi biri yazılıncaya
kadar bütün satırlarda yazılan eksen koordinatlarına G01 (doğrusal kesme hareketi) ile
gider.

#4001 ~ #4021 arası değişkenler modal G kodlarının gruplarıyla işlem


yapılmasını sağlar. Bu değişkenlerin değerleri okunabildiği gibi bu değişkenlere makro
program içerisinde değer atanabilmektedir.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


17.6. #5000 GRUBU SİSTEM DEĞİŞKENLERİ:

Değişken İlgili
Freze Torna
No eksen no
#5 - - 1 1. eksen X ekseni X ekseni
#5 - - 2 2. eksen Y ekseni Z ekseni
#5 - - 3 3. eksen Z ekseni 3. eksen
#5 - - 4 4. eksen 4. eksen 4. eksen
#5 - - 5 5. eksen 5. eksen 5. eksen
#5 - - 6 6. eksen 6. eksen 6. eksen
#5 - - 7 7. eksen 7. eksen 7. eksen
#5 - - 8 8. eksen 8. eksen 8. eksen
Tablo 25. 5000 grubu sistem değişkenlerinde eksenlerin durumu

17.6.2. MAKİNE KOORDİNATLARI:


#5021 ~ #5028 arası değişkenler, bulunulan satırın okunduğu andaki makine
koordinat değerlerini belirtir.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Şekil 64. Yerel değişkenlerin 5000 grubu sistem değişkenlerinin atanmış hali.

17.6.4. G31 ATLAMA FONKSİYONU

17.6.4.1. G31 ATLAMA FONKSİYONUNUN KULLANIMI:


G31 atlama fonksiyonu bir hareket komutunun istenilen herhangi bir yerde yarıda
kesilip programın alt satırından devam edilmesini sağlar.

Takım ölçme propları ve iş parçası ölçme propları G31 atlama fonksiyonunu


kullanarak çalışmaktadır.

Şekil 67. Parça ölçme probu2

2
Marposs - D6C03800G0 - ed. 09/2009

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Şekil 68. Takım ölçm
me probu13

T
Takım ölççme propla arı genellikle kablollu sistem ile CNC kontrol ünitesine
ü
bağlanıırken, parça a ölçme proopları kızıl ötesi ışınla
arla iletişim
m kurmakta
adır.

Parça ölçm
P me propları tezgâh içeerisine yerleeştirilen allıcı tarafınd
dan kızıl ötesi
ö ışın
algılandığında kontrol ünitesine atlamaa sinyali gö
önderir.

Şekil 69. Parça


P ölçm
me probu kızzıl ötesi ışın
n algılayıcı.

CNC MAKRO
MA PRO
OGRAMLAM
MA ~Öme
er SEÇGİN
N~
18. PROGRAMLARIN KORUMA ALTINA ALINARAK VERİ GÜVENLİĞİNİN
SAĞLANMASI
Programınıza O0001 ~ O9999 arasında her hangi bir isim verebilirsiniz. O0001 ~
O7999 arasındaki programlar standart program isimleridir. Bu programları koruma
altına almak mümkün değildir. Tezgâha ait “Program Protect” anahtarına sahip
herhangi bir kişi bu programlarda değişiklik yapabilir. O8000 ~ O9999 arasındaki
programlar ise gerekli değişken ayarları yapılarak koruma altına alınabilir.

Koruma altına alınabilen programlar iki gruba ayrılırlar.

Şekil 73. Parametrelerin değiştirilebilir hale getirilmesi.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


BÖLÜM 6
PÜF NOKTALAR

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


BÖLÜM 7
ÖRNEKLER

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


20. MAKRO PROGRAMLAMA ÖRNEKLERİ

Örnek (freze için);

G81 komutu mantığıyla delik delen makro alt program:

G81 hazır çevrim formatı G81 X_ Y_ Z_ R_ F_ H_K_; şeklindedir. Aşağıdaki


program G65 veya G66 komutlarıyla kullanılarak G81’in yaptığı işi yapabilmektedir.

Örnek (freze için);

Delik merkezleri doğrusal eksen üzerinde olan, çok satırlı delikleri


delebilen makro program:
Y ekseni

X ekseni

Şekil 80. Delik merkezleri doğrusal eksen üzerinde olan, çok satırlı delikleri olan parça.

Bir satırdaki iki delik arasının bulunuşu:


X: #7=#4*COS#1;
Y: #8=#4*SIN#1;

Satır değiştirme mesafesinin bulunuşu;


X’: #9=COS#1*#5;
Y’: #10=SIN#1*#5;

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Örnek (freze için);
Delik merkezleri dairesel eksen üzerinde olan delikleri delebilen makro
alt program:

Şekil 82. Delik merkezleri dairesel eksen üzerinde olan parça.

Örnek (freze için);


İçi boşluklu malzemeye (boru v.b.) delik delerken zamanı optimize etmek
için parçanın içindeki boşlukta rapid hızla ilerleyerek delik delebilen makro
program:

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


Örnek (freze için);
İki eksenli CNC tornada gagalayarak delik delebilen makro alt program:

Şekil 86. CNC tornada gagalayarak delik delme.

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


21. FAYDALANILAN ESERLER

• Vedat SAVAŞ, Çetin ÖZAY “CNC Tezgâhlarında Kamın Makro Programlanması


ve İmalatı” Makine Teknolojileri Elektronik Dergisi 2005 (2) 63-68
• Fanuc Serisi 16i/160i/160is-MB Operatör Kılavuzu B---63534TR/02
• Fanuc Serisi 16i-TB Operatör Kılavuzu B---63524TR/01
• Mitsubishi 700/70 Serisi Programlama Kılavuzu (İşleme merkezi sistemi) IB-
1500868(TUR)-E
• Programmıng Manual For Mazatrol Fusıon 640 Programming EIA/ISO Manual
No. : H734PB0010E
• HAAS Torna Kullanım Kılavuzu, 9 6 - 0 1 2 4 r e v T, Ocak 2008
• Marposs - D6C03800G0 - ed. 09/2009

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


22. İNDEKS

# D
#0 ………………………...………..38, 60, 61, 90 Dallanma ............................................. 56, 102
#1000........................................................... 111 Değişken ................................................. 38, 90
#2000........................................................... 112 Değişkenlerin matematiksel ifadelerle
#3000........................................................... 122 kullanımı ................................................. 42
#3001........................................................... 123 Değişkenlerin tanımlanması ....................... 39
#3002........................................................... 123 Doğal logaritma ........................................... 42
#3003........................................................... 124 Döngüsel akış diyagramları........................ 35
#3004........................................................... 125
E
#3005........................................................... 127
#3006........................................................... 126 Enson tanımlanmış olan eksen koordinatları
#3007........................................................... 127 ................................................................ 140
#3011........................................................... 124 EQ ........................................................... 60, 66
#3012........................................................... 124 Eşitdeğil ....................................................... 60
#3901........................................................... 128 Eşittir ........................................................... 60
#3902........................................................... 128 EXP............................................................... 47
#4000..................................................... 18, 129
F
#5000........................................................... 139
Fanuc.................................................... 16, 110
A
Fark .............................................................. 42
ABS ............................................................... 46 Faydalanılan eserler ................................. 199
ACOS ............................................................ 45 FIX ................................................................ 46
Akış diyagramı ............................................. 29 FUP .............................................................. 47
Algoritma ...................................................... 29
G
Alt programlar.............................................. 86
Ancak Ve Ancak ............................................ 62 G kodları ...................................................... 18
AND .................................................. 42, 61, 65 G09 ..................................................... 125, 126
Arkkosinüs .................................................... 42 G31 ..................................................... 144, 145
Arksinüs ........................................................ 42 G65 ..................................... 49, 88, 95, 96, 102
Arktanjant .................................................... 42 G66 ........................................... 49, 88, 95, 102
ASIN ............................................................. 45 G67 ............................................................... 95
Aşağı yuvarlama .......................................... 42 GE ................................................................. 60
ATAN ............................................................ 45 Geçici İlerleme Durdurma......................... 125
Atlama fonksiyonu ............................. 144, 145 Genel değişkenler ......................................... 91
Aynalama.................................................... 127 GOTO ..................................................... 56, 81
GT ................................................................. 60
B
H
Bağımsız değişken ........................................ 91
Bağımsız değişken tanımlama yöntem 1 .... 91 HAAS.................................................... 16, 110
Bağımsız değişken tanımlama yöntem 2 .... 93 Hayali takım ucu yönü .............................. 118
Basit çağırma ................................... 49, 95, 96 Hazırlık komutları ...................................... 27
BCD ......................................................... 42, 47
I
BIN .......................................................... 42, 47
BOOLE.......................................................... 60 IF 64
Bölüm ............................................................ 42 IF[şart ifadesi] THEN ifade ........................ 72
Bütünleme ..................................................... 42
İ
Büyükeşit ...................................................... 60
Büyüktür ....................................................... 60 İçindekiler .................................................... 11
İlerleme kontrolü ....................................... 125
C
İndeks ......................................................... 200
COS ............................................................... 45 İş koordinatları .......................................... 143
İş parçası “shıft” koordinat değerleri........ 120
Ç
İş parçası sıfır noktası değişkenleri .......... 113
Çarpım .......................................................... 42 İşlem önceliği ............................................... 43
Çift şart ifadesi kullanma............................ 65 İşlenmesi istenen parça sayısı ................... 128
İşlenmiş olan parça sayısı ......................... 128

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


İşparçası ev koordinatları .......................... 147 Programları koruma ......................... 151, 152
Prop ............................................................ 145
K
Püf noktaları .............................................. 154
Karekök ......................................................... 42
R
Kesici takım boyu aşınma değeri............... 112
Kesici takım boyu ofset değeri.................... 112 ROUND ........................................................ 46
Kesici takım x ekseni aşınma değeri ......... 115
S
Kesici takım x ekseni ofset değeri .............. 115
Kesici takım y ekseni ofset değeri .............. 120 Servo sapma değeri.................................... 147
Kesici takım z ekseni aşınma değeri.......... 116 SIN ............................................................... 44
Kesici takım z ekseni ofset değeri .............. 116 Single block ................................................ 124
Kesici uç radyüsü aşınma değeri ............... 117 Sinüs ............................................................ 42
Kesici uç radyüsü ofset değeri.................... 117 Sistem parametreleri ................................. 108
Kontrol ve alarm fonksiyonu ..................... 122 Sistem saati................................................ 124
Kosinüs ......................................................... 42 SQRT ............................................................ 46
Küçükeşit ...................................................... 60
Ş
Küçüktür ....................................................... 60
Şartlı dallanma ........................................... 65
L
T
LE .................................................................. 60
LN ................................................................. 47 Takım telafisi değeri.................................. 147
LT .................................................................. 60 Takım yarıçap aşınma değerleri............... 112
Takım yarıçap ofseti .................................. 112
M
Tam durdurma .................................. 125, 126
M98 ................................................... 88, 89, 96 TAN .............................................................. 45
M99 ............................................................... 88 Tanımlama .................................................. 42
Makine koordinatları ................................. 141 Tanjant ......................................................... 42
Makro program yazma ödevleri ................ 104 Tarih bilgisi ............................................... 124
Makro programlama örnekleri .................. 169 Tek satır işleme .......................................... 124
Makro programların alt program olarak Tezgâhın açık kaldığı süre ........................ 123
kullanılması ............................................. 88 Toplam ......................................................... 42
Mantıksal akış dıyagramları....................... 34
Ü
Mantıksal fonksiyonlar ................................ 61
MAZATROL ......................................... 16, 110 Üstlü fonksiyon ............................................ 42
MELDAS....................................................... 16
V
Mesaj görüntüleme ..................................... 126
MITSUBISHI ....................................... 16, 110 VE ................................................................. 61
Modal çağırma ............................................. 49 VEYA ............................................................ 61
Modal çağırma ............................................. 95
W
Mutlak değer................................................. 42
WHILE döngüsü .......................................... 76
N
Workshift .................................................... 147
NE ........................................................... 60, 66
X
O
XOR .................................................. 42, 62, 65
OR ..................................................... 42, 61, 65
Y
Otomatik çevrim (cycle) süresi ................... 123
Otomatik operasyon kontrolü .................... 124 Yardımcı fonksiyonlar ......................... 27, 124
Yönlendirme ................................................. 56
P
Yuvarlama ................................................... 42
PLC ............................................................... 47
PMC .............................................................. 47

CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~


CNC MAKRO PROGRAMLAMA ~Ömer SEÇGİN~

You might also like