Apr 15, 2023 Mesaj bırakın

CNC Makro Programlarından Bahsedelim

 

Basitçe söylemek gerekirse, bir makro, parçaları işlemek için formüller kullanmaktır. Örneğin elips, makro yoksa eğri üzerindeki noktaları nokta nokta hesaplamamız ve ardından düz bir çizgi ile yavaş yavaş ona yaklaşmamız gerekir. Pürüzsüzlük gereksinimi yüksek bir iş parçasıysa o zaman çok nokta hesaplamamız gerekiyor ama makroyu uyguladıktan sonra elips formülünü sisteme giriyoruz ve ardından Z koordinatını verip her seferinde bir miktar ekliyoruz, ardından makro otomatik olarak X koordinatını hesaplar ve kesme işlemini gerçekleştirir. Aslında programdaki makronun asıl işlevi hesaplamadır.

resim

01

Makro programları hakkında

makro programı nedir

Programlama yaparken, belirli bir işlevi tamamlayabilen bir dizi talimatı bir alt program gibi hafızaya kaydedeceğiz ve bunları genel bir talimatla çağıracağız. Bunu kullanırken, depolanan işlevi yürütmek için yalnızca bu genel talimatı vermemiz gerekir. Bu talimat dizisine kullanıcı makro programı gövdesi veya kısaca makro programı denir.

Bu genel komut, kullanıcı makro çağırma komutu olarak adlandırılır. Programlama yaparken, programcıların yalnızca makro talimatlarını ezberlemesi gerekir, makro programlarını ezberlemesi gerekmez.

Makro programlama ne zaman kullanılacak?

1) Manuel olarak programlanmış işleme formül eğrisi (basit hesaplama, hızlı giriş)

2) Normal kesme yolu (kesme modülü olarak)

3) Programlar arası kontrol (program planlama)

4) Takım yönetimi (takım aşınması)

5) Otomatik ölçüm (makine içi prob)

Makro program ile normal program arasındaki fark

1) Makro program gövdesinde değişkenler kullanılabilir, değişkenlere değer atanabilir, değişkenler arasında hesaplamalar yapılabilir, programlar atlanabilir.

2) Sıradan programlarda sadece sabitler belirtilebilir ve sabitler arasında işlem yapılamaz. Programlar yalnızca sıralı olarak yürütülebilir ve atlanamaz, bu nedenle işlevler sabittir ve değiştirilemez.

3) Makro işlevi, kullanıcının CNC takım tezgahının performansını iyileştirmesi için özel bir işlevdir ve benzer iş parçalarının işlenmesinde makro programın ustaca kullanılması, yarı çabayla iki kat sonuç elde edecektir.

02

Makro programlarının değişkenleri ve formatları

Makro programlarının özellikleri

Makro programı değişkeni kullanabilir ve değişken karşılık gelen işlemleri gerçekleştirmek için kullanılabilir; gerçek değişken değeri, makro program talimatı ile değişkene atanabilir.

Üç Değişken Türü

CNC sisteminin değişken temsil biçimi "#" ve ardından 1 ila 4 hanedir ve üç tür değişken vardır:

(1) Yerel değişkenler: #1~#33, makro programında yerel olarak kullanılan ve bağımsız değişken aktarımı için kullanılan değişkenlerdir.


(2) Ortak değişken: kullanıcı onu serbestçe kullanabilir ve ana program tarafından çağrılan her alt program ve her makro program için ortaktır. #100~#149, gücü kapattıktan sonra tüm değişken değerleri silinirken #500~#509, gücü kapattıktan sonra değişken değerleri kaydedilebilir.


(3) Sistem değişkeni: Ardından 4 hane ile tanımlanır, takım tezgahı işlemcisi veya NC belleğinde yer alan salt okunur veya okuma/yazma bilgilerini alabilir, takım tezgahı işlemcisi, takım tezgahı durum edinimi ile ilgili değişim parametreleri dahil parametreler, işleme parametreleri gibi sistem bilgileri.

Makro programının basit çağrı formatı

Makro programının basit çağrılması, ana programda makro programının tek bir blok tarafından çağrılabileceği anlamına gelir.

Çağırma biçimi:

G65 P (makro program numarası) L (tekrar sayısı) (değişken ataması).

Bunların arasında: G65—makro program çağırma komutu;

P (makro program numarası) - çağrılacak makro programın kodu;

L (tekrar sayısı) - makro programın tekrarlanan çalıştırma sayısı, tekrar sayısı 1 olduğunda atlanabilir;

(Değişken Atama) - Makro programında kullanılan değişkenlere değer atayın.

Bir makro programı ile bir alt program arasındaki aynı şey, bir makro programının başka bir makro programı tarafından 4 defaya kadar çağrılabilmesidir.

Makro program yazma formatı

Bir makro programının yazma formatı, bir alt program ile aynıdır. Formatı:

0-(0001-8999, makro program numarasıdır)

N10 komutu

N-M99

Yukarıdaki makro programın içeriğinde yaygın olarak kullanılan programlama komutlarının yanı sıra değişkenler, aritmetik işlem komutları ve diğer kontrol komutları da kullanılabilmektedir. Değişken değeri, makro programı çağırma talimatında atanır.

03

FANUC sistem makro programı uygulaması

(1) Makro programı kanal açma

resim

1) WHILE ifadesi

G00 X52 Z2;

#2=-14;

Takımın z yönündeki başlangıç ​​noktasıdır (çünkü takım genişliği 4 mm'dir, başlangıç ​​noktası Z-14 olarak ayarlanmıştır)

[#2 GE -30] DO2;

z yönünde bir kısıtlamadır. z, -30 değerine eşit olduğunda, z yönü artık hareket etmeyecektir

G00 Z〔#2〕;

z yönündeki geçerli konum

#2=#2-2;

Her seferinde 2 mm hareket eden z yönünde hareket eden adım

#1=52;

bıçağın x yönündeki başlangıç ​​noktasıdır

[#1 GE 20] DO1;

X yönündeki kısıtlamalar, çap 20'ye eşit olduğunda artık kesmeyecektir

G01 X〔#1〕F0.2;

x yönünde kesme derinliği

G00 X〔#1 artı 1〕;

x yönünde göreli geri çekme miktarı

#1=#1-1;

x yönünde adım mesafesi (her seferinde 1 mm kesin)

END1;

G00 X52;

END2;

Tam program:

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X52 Z2;

#2=-14;

WHILE〔#2GE-30〕DO2; END1;

G00 Z〔#2〕;

#2=#2-2;

#1=52

〔#1GE20〕DO1;

G01X〔#1〕F0.2;

G00X〔#1 artı 1〕;

#1=#1-1;

G00 X52;

END2;

G00 X150 Z150;

M30;

2) IF ifadesi

G00 X52 Z-2;

#1=-14;

Aletin z-yönü başlangıç ​​noktasıdır (alet genişliği 4 mm'dir)

N2 #1=#1-2;

z yönündeki hareket adımıdır

#2=52;

takımın x yönündeki başlangıç ​​noktasıdır

N1#2=#2-1;

x yönündeki adım mesafesidir (her seferinde 1 mm kesme derinliği)

G01 X〔#2〕F0.2;

X yönünde mevcut konum

G00 X〔#2 artı 1〕;

X yönünde göreli geri çekme miktarı

IF [#2 GE 21] GOTO1;

x yönündeki kısıtlamalar (x'in değeri 20'ye kesildiğinde aşağıdaki işlem yapılacak ve dönüş yapılmayacaktır)

G00 X52;

X, 52. konuma geri çekilir

G00 Z〔#1〕;

Z yönünde mevcut konum

IF [#1 GE -30] GOTO2;

Z yönündeki kısıtlamalar, z, -30 değerine eşit olduğunda, z yönü hareket etmeyecektir

Tam program:

O1234;

G40G97G99;

T0101;

S1000M3;

G00 X52 Z-2;

#1=-14;

N2 #1=#1-2;

#2=52;

N1#2=#2-1;

G01 X〔#2〕F0.2;

G00 X〔#2 artı 1〕;

IF〔#2GE21〕GOTO1;

G00X52;

G00Z〔#1〕;

IF[#1GE-30]GOTO2;

G00X200;

Z200;

M5;

M30;

(2) Elips programlama

1) Elips WHILE ifadesinin standart biçimi:

#1=a;

a: Aletin başlangıç ​​noktası, elipsin Z eksenine göre a mm pozitif yöndedir

[#1 GE b] DO1;

b: Elips işlemenin bitiş noktası, elipsin Z eksenine göre negatif yönde b mm'dir (tam bir yarı elips işlenirse, o zaman a ve b aynı değere ve farklı işaretlere sahip iki değerdir)

#2= c*KAREKÖK[1-#1*#1/d*d];

c: elipsin yarı küçük ekseni

d: elipsin yarı ana ekseni (elips formülüne göre #2'yi hesaplayın, yarı ana eksen d'dir, yarı küçük eksen c'dir, #2 X'in değerini, #1 Z'nin değerini temsil eder) , ve SQRT karekök anlamına gelir)

G01 X〔±2*#2 artı e〕Z〔#1±f〕;

e: İş parçası koordinat sistemine göre elipsin X ekseninin ofseti (çap değeri)

f: İş parçası koordinat sistemine göre elipsin Z ekseninin ofseti

#1=#1-1; adım mesafesi (her seferinde 1 mm hareket eder)

END1;

Not: İçbükey bir elipsi döndürürken, X'ten sonra parantez içindeki "±" "-" olarak alınır; dışbükey bir elipsi döndürürken, X'ten sonra parantez içindeki "±" "artı" olarak alınır.

Elipsin X ekseni pozitif yöne kaydığında, Z'den sonra parantez içindeki "±" "artı" alır; elipsin X ekseni negatif yöne kaydığında, Z'den sonra parantez içindeki "±" "-" alır

2) Elips şeklindeki IF ifadesinin standart formatı

#1=a;

a: Aletin başlangıç ​​noktası, elipsin Z eksenine göre a mm pozitif yöndedir

N1#2=b*KAREKÖK〔1-#1*#1/c*c〕;

b: elipsin yarı kısa ekseni c: elipsin yarı ana ekseni (X/c artı Y/b=1 elips formülüne göre, SQRT karekök anlamına gelir)

G01X〔±2*#2 artı d〕Z〔#1±e〕F0.2; d: koordinat sıfır noktasına göre elipsin X ekseninin ofseti (çap değeri) e: sıfır düzlemine göre elipsin Z ekseni

#1=#1-1;

Adım mesafesi (her seferinde 1 mm hareket eder)

IF [#1 GE -f] GOTO1

f: Elips işlemenin sonlandırılması

 

Not: İçbükey bir elipsi döndürürken, X'ten sonra parantez içindeki "±" "-" olarak alınır; dışbükey bir elipsi döndürürken, X'ten sonra parantez içindeki "±" "artı" olarak alınır. Elipsin X ekseni pozitif yöne saptığında, Z'den sonra parantez içindeki "±" "artı" alır; elipsin X ekseni negatif yöne saptığında, Z'den sonra parantez içindeki "±" "-" alır.

resim

WHILE ifadesi

#1=20;

IKEN〔#1GE-20〕DO1;

#2=10*KAREKÖK〔1-#1*#1/400〕;

G01X〔-2*#2 artı 50〕Z〔#1-25〕;

#1=#1-1;

END1;

IF ifadesi

#1=20;

N1#2=10*KAREKÖK〔1-#1*#1/400〕;

G01X〔-2*#2 artı 50〕Z〔#1-25〕F0.2;

#1=#1-1;

IF[#1GE-20]GOTO1;

tam program

O1234;

G40G97G99;

T0101;

S1000 M3;

G00 X50 Z2;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G0 G42 Z-5;

#1=20;

IKEN〔#1GE-20〕DO1;

#2=10*KAREKÖK〔1-#1*#1/400〕;

G01X〔-2*#2 artı 50〕Z〔#1-25〕F0.2;

#1=#1-1;

END1;

G00 X50;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

IF deyiminin tam biçimi atlanır (döngü eklendiği sürece aynı durum IF deyimi için de geçerlidir). FANUC-0i sisteminde, makro programı yalnızca G73'te eklenebilir.

(3) Parabolün işlenmesi

1) Parabolik WHILE ifadesinin standart biçimi:

#1=a;

a: Aletin başlangıç ​​noktası, parabolik eksen Z yönünde bir mm'dir

[#1 GE -b] DO1;

b: elipsin z yönündeki işlem uzunluğudur

#2=KAREKÖK〔-#1*5/3〕;

(Z=-3/5*X*X parabolik formülüne göre, #2 olan X değerini bulun, burada SQRT karekök anlamına gelir)

G01 X〔±2*#2 artı c〕Z〔#1〕;

c: iş parçası koordinat sistemine göre parabolün X ekseninin ofseti (çap değeri), "±"

"Artı" alındığında dışbükey, "-" alındığında içbükeydir.

#1=#1-1; Adım mesafesi (her seferinde 1 mm hareket eder)

END1;

2) Parabolik IF ifadesinin standart formatı

#1=a;

a: Aletin başlangıç ​​noktası, parabolik eksen Z yönünde bir mm'dir

N1 #2=KAREKÖK〔-#1*5/3〕;

(Z=-3/5*X*X parabolik formülüne göre, #2 olan X değerini bulun, burada SQRT karekök anlamına gelir)

G01 X〔±2*#2 artı b〕Z〔#1〕;

b: Parabolün X yönü ekseninin koordinat sıfır noktasına göre kaymasıdır (çap değeri). "±" alındığında "artı" dışbükey, "-" alındığında içbükey olur

#1=#1-1;

(Z yönünde adım mesafesi, her hareket 1 mm'dir)

IF〔#1 GE -c〕GOTO1; c: elipsin z yönündeki işlem uzunluğu

parabolik IF

başka bir cümle şekli

#1=a;

N1 #2=KAREKÖK〔( artı )#1*5/3〕;

"artı" işareti atlanabilir

G01 X〔2*#2 artı b〕Z〔-#1〕;

#1=#1 artı 1;

IF [#1 LE c] GOTO1;

Parabolün Z'nin pozitif yönünde olduğunu varsayarak Z〔-#1〕 kullanın; parabolü negatif yöne simetrik yapmak için

resim

WHILE ifadesi

#1=0;

[#1 GE -15] DO1;

#2=KAREKÖK〔-#1*5/3〕;

G01 X〔2*#2 artı 30〕Z〔#1〕;

#1=#1-1;

END1;

IF ifadesi

#1=0;

N1 #2=KAREKÖK〔-#1*5/3〕;

G01X〔2*#2 artı 30〕Z〔#1〕;

#1=#1-1;

IF [#1 GE -15] GOTO1;

tam program

O1234;

G40 G97 G99;

T0101;

S1000 M3;

G00 X42 Z1;

G73 U5 R5;

G73 P10 Q20 U0.5 F0.2;

N10 G00 G42 Z0;

#1=0;

[#1 GE -15] DO1;

#2=KAREKÖK〔-#1*5/3〕;

G01 X〔2*#2 artı 30〕Z〔#1〕;

#1=#1-1;

END1;

G00 X42;

N20 G00 G40 Z2;

G70 P10 Q20;

G00 X200;

Z200;

M5;

M30;

(4) WHILE ifadesi ile IF ifadesi arasındaki fark

1) İki ifadenin yönleri farklı

WHILE ifadesi geriye doğru döner

Örnek: WHILE〔#1 GE 20〕DO1;

G01 X〔#1〕F0.2;

Makine aletinin #1=20 bu cümleyi yürüttüğünde yürütmeye devam edeceğini varsayarsak. #1=#1-1 çalıştırıldıktan sonra, #1'in değeri 19 olur, bu artık kısıtlama koşullarını karşılamaz, dolayısıyla geri dönmez. (X yönünde 20'ye kesin)

G00 X〔#1 artı 1);

#1=#1-1;

END1;

2) IF ifadesi ileri geri döner

Örnek: N1 #2=#2-1;

G01X〔#2〕F0.2; Takım tezgahı bu cümleyi çalıştırdığında #2=20 olduğunu varsayarsak, IF〔#2 GE 20〕GOTO1; koşul hala karşılanıyorsa, N1# 2=#2-1'ye dönmeye devam edecektir; ve mevcut X değeri, artık kısıtlama koşullarını karşılamayan 19 olur ve ardından başka bir yürütme gerçekleştirir.

G01X〔#2〕F0.2; Son olarak aşağıdaki programı çalıştırın (X yönü 19'a düşürüldü)

G00X〔#2 artı 1);

IF [#2 GE 20] GOTO1;

3) Yukarıdaki yiv açma programından da görülebileceği gibi IF deyimindeki kelime sayısı WHILE deyimindekinden çok daha azdır.

4) Farklı dönüş yönleri nedeniyle, işlem sırasında WHILE ifadesi için bir cümle eksik ve IF ifadesi için bir cümle daha okuyun.

04

SIEMENS sistem (torna) makro programı uygulaması

Not: Makro programı değişkenlerle programlanmıştır ve Siemens sisteminin değişken sayısı R ile temsil edilir.

Örneğin, ortak programlama yöntemiyle yazılmış: G01X-10

Makro programı şu şekilde ifade edilebilir:

R1=-10

G01 X=R1

Koşullu transfer:

IF GOTOB: geriye atla

IF GOTOF: ileri atla

ortak programlama ile yazılmış

GO1X100

Değişkenler şu şekilde ifade edilebilir:

R1=0

AA: R1=R1 artı 1

G01X=R1

EĞER R1<100 GOTOB AA

R1 bağımsız bir değişkendir, başlangıç ​​değeri 0'dir, R1=R1 artı 1, bağımsız değişkenin artımlı değerinin 1 olduğu anlamına gelir, program her seferinde bu satırdan geçtiğinde, değeri R1 1 artar, R1<100 is a conditional expression, IF R1<100 GOTOB AA This line means that if the argument R1<100, the program jumps backward to the mark: AA

R1, 100'den büyük veya eşitse, program kapanır.

Makro programlar hem G90 hem de G91 modlarında kullanılabilir ancak anlamları farklıdır, örneğin;

R1=0, G90R1=R1 artı 1, G1X=R1, bu programın ikinci geçişinden sonraki X değeri 2'dir.

R1=0, G91R1=R1 artı 1, G1X=R1, programın ikinci geçişinden sonraki X değeri 3'tür. Açıklama: Birinci geçişten sonraki R1 değeri 1'dir. programın geçişi ve R1'in değeri ikinci geçiştir. 2'dir, ancak G91 modunda bir öncekini temel alır.

(1) Kanal açma

resim

T1

TC

T1D1

G0G40X100Z100

M03S1000

G0X54Z2

Hızlı bir şekilde başlangıç ​​noktasına ulaşın

Z-10

R1=3

Bıçak genişliğini 3mm olarak tanımlayın

R2=-10-R1-0.2

Aletin başlangıç ​​noktası -10'dir ve aracı ayarlarken bıçağın sol tarafı kullanılır;

Takım ayarı, dolayısıyla bıçağın genişliği çıkarılmalıdır, 0.2 bitirme payıdır

G1Z=R2F0.1

Takım, Z ekseninin başlangıç ​​noktasına ulaşır

AA:R2=R2-2.5

R3=50

Oluğun X ekseni noktaya ulaşır

BB: R3=R3-2

Her bıçağın kesme derinliğini 2 mm olarak tanımlayın

G1X=R3

X=R3 artı 1

0, her 2 mm kesme derinliğinde bir tarafta 5 mm talaş kaldırma

IF R3>30 artı 0,4 GOTOB BB

Define the groove depth as 10mm, if R3>30mm, program BB işaretine geri atlar ve 0,4 bitirme payıdır

G0X50

Takım, X ekseninin başlangıç ​​noktasına ulaşır

G1Z=R2

IF R2>{{0}} artı 0,2 GOTOB AA

Yiv genişliğini 20mm olarak tanımlayın ve 0,2 bitirme payıdır

G0X50

G01Z-13

Bitiricilik

X30

Z-16

G0X50

Z-30

G01X30

Z-16

G0X50

Geri çekilmek

G0X100

Z100

M05

M30

(2) Elips

1) Temel format

R1=0

R1 değişkenini 0 başlangıç ​​değeriyle tanımlayın

AA:R2=b×SQRT(1-R1×R1/a×a)

Elips denklemine göre, a elipsin yarı ana ekseni, b elipsin yarı küçük ekseni ve SQRT karekök simgesidir.

G1X=±2×R2 artı XZ=R1-Z

Elipsin konumunu ve şeklini ayarlayın, artı 2 dışbükeydir, -2 içbükeydir, X, Z iş parçasının ekseni ile elipsin ekseni (çap sistemi) arasındaki mesafelerdir.

R1=R1-1

İşleme adımını ayarlayın

IF R1>=n ​​GOTOB AA

R1 değişkeni ise

2) Programlama örneği:

resim

T1D1

G0G40X100Z100

M3S1000

G0X52Z2

Z-20

DÖNGÜ95 ( )

G42S1500

OO:

R1=20

AA:R2=5×SQRT(1-R1×R1/400)

G1X=-2×R2 artı 50 Z=R1-40

R1=R1-2

IF R1>=-20 GOTOB AA

PP:X42

G0G40X100Z100

M05

M09

M30

(3) Parabol

1) Temel biçim:

R1=0

R1 değişkeninin başlangıç ​​değerini 0 olarak ayarlayın

AA: R2=KAREKÖK(-R1×n)

SQRT'nin karekök sembolü ve n'nin katsayı olduğu parabolün temel formatına göre elde edilir.

G01X=2×R2 artı n

Z=R1

İşleme yolu artı 2 dışbükeydir, n, X ekseninin başlangıç ​​noktasının değeridir

R1=R1-1

Değişken artış değeri 1 mm'dir

IF R1>-30 GOTOB AA

If the variable R1>-30, program işarete geri atlar: AA

2) Programlama örneği:

resim

T1

Tc

T1D1

G0G40X100Z100

M03S1000

G0X52Z2

DÖNGÜ95 ( )

G0G42

OO:

R1=0

AA:R2=KAREKÖK(-R1×5/3)

G01X=2×R2 artı 30 Z=R1

R1=R1-2

IF R1>-60 GOTOB AA

PP: X52

G0X100Z100

M05

M30

Soruşturma göndermek

whatsapp

skype

E-posta

Sorgulama