Professional Documents
Culture Documents
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.)
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.
ÖMER SEÇGİN
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.
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
İ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.
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.
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.
Ömer SEÇGİN
Tuzla - Mayıs 2013
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.
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.
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.
Ö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.
Ö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.)
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.
Ö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.)
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
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
#1ve #2’yi
4. deliğin üzerine
tanımla
git ve deliği del.
SON
Örnek:
………………………..
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
Z ekseninde 10
mm aşağı in. F50 ilerlemesi ile -X
yönünde 40mm, -Y
yönünde 40mm git.
Şekil 24. Sabah tezgâhı ısıtmak için kullanılabilecek programın akış diyagramı
Ö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.)
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.
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.
Şekil 26. Tornada G94 kaba boşaltma çevrimi mantığıyla çalışan IF ve GOTO
kullanılarak programı yazılacak parça
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.
Ö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.
Örnek:
G65 P7005 A45 X25 Y42.5 Z‐15.8 F120; Bu satırın açıklaması şöyledir:
Örnek;
Ö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; % % %
%
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
2 1
6
7 5
9
8
3 4
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
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
2
Marposs - D6C03800G0 - ed. 09/2009
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.
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.
X ekseni
Şekil 80. Delik merkezleri doğrusal eksen üzerinde olan, çok satırlı delikleri olan parça.
# 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