Sederhananya, makro adalah menggunakan rumus untuk memproses bagian. Misalnya, elips, jika tidak ada makro, kita perlu menghitung titik pada kurva titik demi titik, lalu mendekatinya secara perlahan dengan garis lurus. Jika itu adalah benda kerja dengan persyaratan kehalusan tinggi, maka kita perlu menghitung banyak titik, tetapi setelah menerapkan makro, Kami memasukkan rumus elips ke dalam sistem dan kemudian kami memberikan koordinat Z dan menambahkan jumlah setiap kali, lalu makro akan secara otomatis menghitung koordinat X dan melakukan pemotongan. Padahal, fungsi utama makro dalam program ini adalah perhitungan.
gambar
01
Tentang program makro
Apa itu program makro
Saat memprogram, kami akan menyimpan serangkaian instruksi yang dapat menyelesaikan fungsi tertentu ke dalam memori seperti subrutin, dan memanggilnya dengan instruksi umum. Saat menggunakannya, kita hanya perlu memberikan instruksi umum ini untuk menjalankan fungsi yang disimpan Rangkaian instruksi ini disebut badan program makro pengguna, atau singkatnya program makro.
Perintah umum ini disebut perintah panggilan makro pengguna. Saat memprogram, programmer hanya perlu menghafal instruksi makro tetapi bukan program makro.
Kapan pemrograman makro akan digunakan?
1) Kurva formula pemrosesan yang diprogram secara manual (perhitungan sederhana, input cepat)
2) Jalur pemotongan biasa (sebagai modul pemotongan)
3) Kontrol antar program (penjadwalan program)
4) Manajemen alat (keausan alat)
5) Pengukuran otomatis (probe dalam mesin)
Perbedaan antara program makro dan program normal
1) Dalam badan program makro, variabel dapat digunakan, nilai dapat diberikan ke variabel, perhitungan dapat dilakukan antar variabel, dan program dapat dilompati.
2) Dalam program biasa, hanya konstanta yang dapat ditentukan, dan operasi antar konstanta tidak dapat dilakukan. Program hanya dapat dijalankan secara berurutan dan tidak dapat dilompati, sehingga fungsinya tetap dan tidak dapat diubah.
3) Fungsi makro adalah fungsi khusus bagi pengguna untuk meningkatkan kinerja alat mesin CNC, dan penggunaan program makro yang terampil dalam pemrosesan benda kerja yang serupa akan mencapai hasil dua kali lipat dengan setengah usaha.
02
Variabel dan format program makro
Fitur program makro
Program makro dapat menggunakan variabel, dan variabel dapat digunakan untuk melakukan operasi yang sesuai; nilai variabel aktual dapat diberikan ke variabel dengan instruksi program makro.
Tiga Jenis Variabel
Bentuk representasi variabel dari sistem CNC adalah "#" diikuti oleh 1 hingga 4 digit, dan ada tiga jenis variabel:
(1) Variabel lokal: #1~#33 adalah variabel yang digunakan secara lokal dalam program makro, yang digunakan untuk transfer variabel independen.
(2) Variabel umum: pengguna dapat menggunakannya secara bebas, dan umum untuk setiap subrutin dan setiap program makro yang dipanggil oleh program utama. #100~#149, setelah mematikan daya, semua nilai variabel akan dihapus, sedangkan #500~#509, setelah mematikan daya, nilai variabel dapat disimpan.
(3) Variabel sistem: Didefinisikan dengan diikuti oleh 4 digit, dapat memperoleh informasi baca-saja atau baca/tulis yang terkandung dalam prosesor alat mesin atau memori NC, termasuk parameter pertukaran yang terkait dengan prosesor alat mesin, akuisisi status alat mesin parameter, Informasi sistem seperti parameter pemrosesan.
Format panggilan sederhana dari program makro
Pemanggilan sederhana dari program makro berarti bahwa dalam program utama, program makro dapat dipanggil dengan satu blok.
Format doa:
G65 P (nomor program makro) L (jumlah pengulangan) (penugasan variabel).
Diantaranya: G65—perintah panggilan program makro;
P (nomor program makro) - kode program makro yang akan dipanggil;
L (jumlah pengulangan) - jumlah pengulangan program makro, ketika jumlah pengulangan adalah 1, dapat dihilangkan;
(Penugasan Variabel) - Menetapkan nilai ke variabel yang digunakan dalam program makro.
Hal yang sama antara program makro dan subrutin adalah bahwa satu program makro dapat dipanggil oleh program makro lainnya hingga 4 kali.
Format penulisan program makro
Format penulisan program makro sama dengan format penulisan subrutin. Formatnya adalah:
0-(0001-8999 adalah nomor program makro)
perintah N10
N-M99
Dalam isi program makro di atas, selain instruksi pemrograman yang umum digunakan, variabel, instruksi operasi aritmatika, dan instruksi kontrol lainnya juga dapat digunakan. Nilai variabel diberikan dalam instruksi pemanggilan program makro.
03
Aplikasi program makro sistem FANUC
(1) Penyusunan program makro
gambar
1) pernyataan WHILE
G00 X52 Z2;
#2=-14;
Ini adalah titik awal pahat dalam arah z (karena lebar pahat adalah 4mm, titik awal ditetapkan pada Z-14)
SEMENTARA [#2 GE -30] DO2;
Ini adalah kendala dalam arah z. Saat z sama dengan -30, arah z tidak akan bergerak lagi
G00 Z〔#2〕;
Posisi saat ini dalam arah z
#2=#2-2;
Langkah bergerak ke arah z, bergerak 2mm setiap kali
#1=52;
adalah titik awal pisau dalam arah x
SAAT [#1 GE 20] DO1;
Kendala pada arah X, bila diameter sama dengan 20 maka tidak akan dipotong lagi
G01 X〔#1〕F0.2;
Kedalaman pemotongan dalam arah x
G00 X〔#1 ditambah 1〕;
Jumlah retraksi relatif dalam arah x
#1=#1-1;
Langkah jarak dalam arah x (potong 1mm setiap kali)
AKHIR1;
G00 X52;
AKHIR2;
Program lengkap:
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X52 Z2;
#2=-14;
WHILE〔#2GE-30〕DO2; AKHIR1;
G00 Z〔#2〕;
#2=#2-2;
#1=52
SAAT〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1 ditambah 1〕;
#1=#1-1;
G00 X52;
AKHIR2;
G00 X150 Z150;
M30;
2) pernyataan JIKA
G00 X52 Z-2;
#1=-14;
Ini adalah titik awal z-arah alat (lebar alat adalah 4mm)
N2 #1=#1-2;
adalah langkah gerakan dalam arah z
#2=52;
adalah titik awal alat dalam arah x
N1#2=#2-1;
adalah jarak langkah dalam arah x (kedalaman pemotongan 1mm setiap kali)
G01 X〔#2〕F0.2;
Posisi saat ini dalam arah X
G00 X〔#2 ditambah 1〕;
Jumlah retraksi relatif dalam arah X
JIKA [#2 GE 21] GOTO1;
Kendala dalam arah x (ketika nilai x dipotong menjadi 20, prosedur berikut akan dilakukan, dan tidak ada pengembalian yang dilakukan)
G00 X52;
X mundur ke posisi 52
G00 Z〔#1〕;
Posisi saat ini dalam arah Z
JIKA [#1 GE -30] GOTO2;
Kendala dalam arah Z, ketika z sama dengan -30, arah z tidak akan bergerak
Program lengkap:
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 ditambah 1〕;
JIKA〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
JIKA[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Pemrograman elips
1) Format standar pernyataan WHILE elips:
#1=a;
a: Titik awal pahat berada pada arah positif mm relatif terhadap sumbu Z elips
SEMENTARA [#1 GE b] DO1;
b: Titik akhir pemrosesan elips berada pada arah negatif b mm relatif terhadap sumbu Z elips (jika semi-elips lengkap diproses, maka a dan b adalah dua nilai dengan nilai yang sama dan tanda yang berbeda)
#2= c*SQRT[1-#1*#1/d*d];
c: sumbu semiminor elips
d: sumbu semi-mayor dari elips (hitung #2 sesuai dengan rumus elips, sumbu semi-mayor adalah d, sumbu semi-minor adalah c, #2 mewakili nilai X, #1 adalah nilai Z , dan SQRT artinya akar kuadrat)
G01 X〔±2*#2 ditambah e〕Z〔#1±f〕;
e: Offset (nilai diameter) sumbu X elips relatif terhadap sistem koordinat benda kerja
f: Offset sumbu Z elips relatif terhadap sistem koordinat benda kerja
#1=#1-1; jarak langkah (bergerak 1mm setiap kali)
AKHIR1;
Catatan: Saat memutar elips cekung, "±" dalam tanda kurung setelah X diambil sebagai "-"; saat memutar elips cembung, "±" dalam tanda kurung setelah X diambil sebagai " tambah ".
Saat sumbu X elips bergeser ke arah positif, "±" di dalam tanda kurung setelah Z mengambil " tambah "; ketika sumbu X elips bergeser ke arah negatif, "±" dalam tanda kurung setelah Z mengambil "-"
2) Format standar pernyataan IF berbentuk elips
#1=a;
a: Titik awal pahat berada pada arah positif mm relatif terhadap sumbu Z elips
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: sumbu semi-pendek elips c: sumbu semi-mayor elips (menurut rumus elips X/c ditambah Y/b=1, SQRT artinya akar kuadrat)
G01X〔±2*#2 ditambah d〕Z〔#1±e〕F0.2; d: offset (nilai diameter) sumbu X elips relatif terhadap koordinat titik nol e: sumbu Z elips relatif terhadap bidang nol Offset
#1=#1-1;
Jarak langkah (bergerak 1mm setiap kali)
JIKA [#1 GE -f] GOTO1
f: Penghentian pemrosesan elips
Catatan: Saat memutar elips cekung, "±" dalam tanda kurung setelah X diambil sebagai "-"; saat memutar elips cembung, "±" dalam tanda kurung setelah X diambil sebagai " tambah ". Saat sumbu X elips menyimpang ke arah positif, "±" dalam tanda kurung setelah Z mengambil " tambah "; ketika sumbu X elips menyimpang ke arah negatif, "±" dalam tanda kurung setelah Z menjadi "-".
gambar
pernyataan SAAT
#1=20;
SEMENTARA〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 ditambah 50〕Z〔#1-25〕;
#1=#1-1;
AKHIR1;
pernyataan JIKA
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 ditambah 50〕Z〔#1-25〕F0.2;
#1=#1-1;
JIKA[#1GE-20]GOTO1;
program lengkap
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;
SEMENTARA〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 ditambah 50〕Z〔#1-25〕F0.2;
#1=#1-1;
AKHIR1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
Format lengkap pernyataan IF dihilangkan (hal yang sama berlaku untuk pernyataan IF, selama siklus ditambahkan). Di sistem FANUC-0i, program makro hanya dapat ditambahkan di G73.
(3) Pengolahan parabola
1) Format standar pernyataan parabola WHILE:
#1=a;
a: Titik awal pahat adalah mm dengan arah sumbu parabola Z
SEMENTARA [#1 GE -b] DO1;
b: adalah panjang pemrosesan elips dalam arah z
#2=SQRT〔-#1*5/3〕;
(Menurut rumus parabola Z=-3/5*X*X, temukan nilai X, yaitu #2, dengan SQRT berarti akar kuadrat)
G01 X〔±2*#2 ditambah c〕Z〔#1〕;
c: adalah offset (nilai diameter) sumbu X parabola relatif terhadap sistem koordinat benda kerja, "±"
Saat mengambil " plus ", itu cembung, dan saat mengambil "-", itu cekung
#1=#1-1; Jarak langkah (bergerak 1mm setiap kali)
AKHIR1;
2) Format standar pernyataan IF parabola
#1=a;
a: Titik awal pahat adalah mm dengan arah sumbu parabola Z
N1 #2=SQRT〔-#1*5/3〕;
(Menurut rumus parabola Z=-3/5*X*X, temukan nilai X, yaitu #2, dengan SQRT berarti akar kuadrat)
G01 X〔±2*#2 ditambah b〕Z〔#1〕;
b: Ini adalah offset (nilai diameter) sumbu arah-X parabola relatif terhadap koordinat titik nol. Ketika "±" mengambil "plus", itu adalah cembung, dan ketika "-" diambil, itu adalah cekung
#1=#1-1;
(jarak langkah dalam arah Z, setiap gerakan adalah 1mm)
JIKA〔#1 GE -c〕GOTO1; c: panjang pemrosesan elips dalam arah z
Parabola JIKA
bentuk kalimat lain
#1=a;
N1 #2=SQRT〔( tambah )#1*5/3〕;
Tanda "plus" bisa dihilangkan
G01 X〔2*#2 ditambah b〕Z〔-#1〕;
#1=#1 ditambah 1;
JIKA [#1 LE c] GOTO1;
Asumsikan bahwa parabola berada di arah positif Z, lalu gunakan Z〔-#1〕; untuk membuat parabola simetris dengan arah negatif
gambar
pernyataan SAAT
#1=0;
WHILE [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 ditambah 30〕Z〔#1〕;
#1=#1-1;
AKHIR1;
pernyataan JIKA
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 ditambah 30〕Z〔#1〕;
#1=#1-1;
JIKA [#1 GE -15] GOTO1;
program lengkap
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;
SEMENTARA [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 ditambah 30〕Z〔#1〕;
#1=#1-1;
AKHIR1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Perbedaan antara pernyataan WHILE dan pernyataan IF
1) Arah kedua pernyataan berbeda
Pernyataan WHILE kembali ke belakang
Contoh: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Asumsikan bahwa ketika alat mesin mengeksekusi kalimat ini, #1=20, itu akan terus dieksekusi. Setelah menjalankan #1=#1-1, nilai #1 menjadi 19, yang tidak lagi memenuhi syarat kendala, sehingga tidak akan kembali. (Potong ke 20 dalam arah X)
G00 X〔#1 ditambah 1);
#1=#1-1;
AKHIR1;
2) Pernyataan IF kembali ke depan
Contoh: N1 #2=#2-1;
G01X〔#2〕F0.2; Asumsikan bahwa #2=20 saat alat mesin mengeksekusi kalimat ini, ia akan terus mengeksekusi hingga IF〔#2 GE 20〕GOTO1; jika kondisinya masih terpenuhi, maka akan terus kembali ke N1# 2=#2-1; dan nilai X saat ini akan menjadi 19, yang tidak lagi memenuhi kondisi kendala, lalu jalankan yang lain
G01X〔#2〕F0.2; Terakhir, jalankan program berikut (arah X telah dipotong menjadi 19)
G00X〔#2 ditambah 1);
JIKA [#2 GE 20] GOTO1;
3) Seperti dapat dilihat dari program grooving di atas, jumlah kata dalam pernyataan IF jauh lebih sedikit daripada pernyataan WHILE.
4) Karena arah pengembalian yang berbeda, baca satu kalimat lebih sedikit untuk pernyataan WHILE dan satu kalimat lagi untuk pernyataan IF selama pemrosesan.
04
Aplikasi program makro sistem (bubut) SIEMENS
Catatan: Program makro diprogram dengan variabel, dan nomor variabel sistem Siemens diwakili oleh R.
Misalnya, ditulis dalam metode pemrograman umum: G01X-10
Program makro dapat dinyatakan sebagai:
R1=-10
G01 X=R1
Transfer bersyarat:
JIKA GOTOB: lompat mundur
JIKA GOTOF: lompat ke depan
ditulis dalam pemrograman umum
GO1X100
Variabel dapat dinyatakan sebagai:
R1=0
AA: R1=R1 ditambah 1
G01X=R1
JIKA R1<100 GOTOB AA
R1 adalah variabel independen, nilai awal adalah 0, R1=R1 ditambah 1 berarti nilai inkremental dari variabel independen adalah 1, ketika program melewati baris ini setiap saat, nilai dari R1 bertambah 1, 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
Jika R1 lebih besar dari atau sama dengan 100, program turun.
Program makro dapat digunakan dalam mode G90 dan G91, tetapi artinya berbeda, misalnya;
R1=0, G90R1=R1 plus 1, G1X=R1, nilai X setelah melewati kedua program ini adalah 2.
R1=0, G91R1=R1 plus 1, G1X=R1, nilai X setelah melewati program yang kedua adalah 3. Penjelasan: Nilai R1 adalah 1 setelah yang pertama lulus program, dan nilai R1 adalah lulus kedua Ini adalah 2, tetapi dalam mode G91 didasarkan pada yang sebelumnya.
(1) Grooving
gambar
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Cepat mencapai titik awal
Z-10
R1=3
Tentukan lebar pisau sebagai 3mm
R2=-10-R1-0.2
Titik awal alat adalah -10, dan sisi kiri mata pisau digunakan saat menyetel alat;
Pengaturan pahat, sehingga lebar bilah harus dikurangi, 0.2 adalah tunjangan penyelesaian
G1Z=R2F0.1
Pahat mencapai titik awal sumbu Z
AA:R2=R2-2.5
R3=50
Sumbu X alur mencapai titik
BB: R3=R3-2
Tentukan kedalaman pemotongan setiap pisau sebagai 2 mm
G1X=R3
X=R3 ditambah 1
0.5mm pelepasan chip di satu sisi setiap 2mm kedalaman pemotongan
IF R3>30 ditambah 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm, program melompat mundur ke tanda BB, dan 0,4 adalah batas akhir
G0X50
Pahat mencapai titik awal sumbu X
G1Z=R2
IF R2>{{0}} ditambah 0,2 GOTOB AA
Tentukan lebar alur sebagai 20mm, dan 0,2 adalah batas akhir
G0X50
G01Z-13
menyelesaikan
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Menarik
G0X100
Z100
M05
M30
(2) Elips
1) Format dasar
R1=0
Tentukan variabel R1 dengan nilai awal 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Menurut persamaan elips, a adalah sumbu semi-mayor dari elips, b adalah sumbu semi-minor dari elips, dan SQRT adalah simbol akar kuadrat.
G1X=±2×R2 ditambah XZ=R1-Z
Atur posisi dan bentuk elips, tambah 2 cembung, -2 cekung, X, Z jarak antara sumbu benda kerja dan sumbu elips (sistem diameter).
R1=R1-1
Tetapkan langkah pemrosesan
IF R1>=n GOTOB AA
Jika variabel R1
2) Contoh pemrograman:
gambar
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
SIKLUS95 ( )
G42S1500
OO:
R1=20
AA:R2=5×SQRT(1-R1×R1/400)
G1X=-2×R2 ditambah 50 Z=R1-40
R1=R1-2
IF R1>=-20 GOTOB AA
PP:X42
G0G40X100Z100
M05
M09
M30
(3) Parabola
1) Format dasar:
R1=0
Tetapkan nilai awal variabel R1 menjadi 0
AA: R2=SQRT(-R1×n)
Didapatkan sesuai dengan format dasar parabola, dimana SQRT adalah lambang akar kuadrat, dan n adalah koefisien
G01X=2×R2 ditambah n
Z=R1
Jalur pemrosesan, plus 2 adalah cembung, n adalah nilai titik awal sumbu X
R1=R1-1
Nilai kenaikan variabel adalah 1mm
IF R1>-30 GOTOB AA
If the variable R1>-30, program melompat mundur ke tanda: AA
2) Contoh pemrograman:
gambar
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
SIKLUS95 ( )
G0G42
OO:
R1=0
AA:R2=SQRT(-R1×5/3)
G01X=2×R2 ditambah 30 Z=R1
R1=R1-2
IF R1>-60 GOTOB AA
PP: X52
G0X100Z100
M05
M30




