Polanya lubang berulang jarang membutuhkan program CNC yang panjang. Jika koordinat membentuk barisan sederhana, siklus G81, pemrograman inkremental G91, dan pengulangan L biasanya sudah cukup. Namun, untuk pola lubang dalam bentuk grid persegi panjang, beberapa ukuran bagian, atau pola dengan jarak yang sering berubah, mengedit koordinat satu per satu menjadi lambat dan rawan kesalahan. Makroprogramming menyimpan logika pengulangan dalam satu subprogram dan mengoper dimensi serta jumlah lubang sebagai parameter.
Contoh berikut ditujukan untuk kontrol milling Haas dengan opsi makro. Sintaks variabel, loop, dan pemanggilan subprogram berbeda tergantung sistem CNC dan konfigurasi perangkat lunak. Selalu periksa manual kontrol yang digunakan, verifikasi program secara grafis, dan lakukan uji coba pertama di atas benda kerja.
Kapan siklus standar sudah cukup
G81 sudah menghilangkan sebagian besar kode berulang dalam operasi pengeboran. Setelah siklus aktif, kontrol akan mengebor di setiap posisi X/Y baru sampai perintah G80 membatalkannya. Dokumentasi Haas menunjukkan contoh di mana perpindahan inkremental X dan parameter L menghasilkan barisan lubang dengan jarak sama:
G90 G54 X10. Y20.
G43 H01 Z50.
G99 G81 Z-12. R2. F120.
G91 X25. L4
G80
G90Solusi ini cocok untuk satu barisan lurus. Lubang pertama dibuat di posisi saat G81 diaktifkan, sedangkan baris dengan G91 X25. L4 menambahkan empat posisi lagi. Jika tidak memperhatikan eksekusi siklus pertama, bisa terjadi lubang tambahan atau pola bergeser.
Siklus standar lain juga tersedia untuk operasi pengeboran berbeda. G82 menambahkan jeda di dasar lubang, G83 untuk pengeboran bertahap (peck drilling), dan G98 atau G99 mengatur level pengembalian. Pilihan siklus harus sesuai alat potong, kedalaman, material, dan kondisi pembuangan serpihan. Makro mengatur koordinat dan pengulangan, bukan menggantikan proses pengeboran yang tepat.
Keunggulan makro parameter
Sebuah grid persegi panjang dapat didefinisikan dengan sembilan nilai: koordinat lubang pertama, jarak antar lubang di kedua sumbu, jumlah kolom dan baris, kedalaman pengeboran, bidang R, dan kecepatan potong. Operator cukup mengubah satu baris pemanggilan, sementara loop bersarang menghitung posisi setiap lubang.
Pada pemanggilan berikut, X dan Y menentukan titik awal grid, I dan J jarak antar lubang, A dan B jumlah kolom dan baris:
G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.Di kontrol Haas, argumen G65 dipetakan ke variabel lokal dalam makro. Contohnya, X menjadi #24, Y #25, I #4, J #5, A #1, B #2, Z #26, R #18, dan F #9. Setiap pemanggilan G65 menyediakan set variabel lokal baru, sehingga makro yang sama dapat digunakan dengan parameter berbeda.
Makro untuk grid persegi panjang
O09010 (DRILL RECTANGULAR PATTERN)
#30 = 0 (ROW INDEX)
WHILE [#30 LT #2] DO1
#31 = 0 (COLUMN INDEX)
WHILE [#31 LT #1] DO2
#32 = [#24 + #31 * #4] (CURRENT X)
#33 = [#25 + #30 * #5] (CURRENT Y)
G90 G00 X#32 Y#33
G81 Z#26 R#18 F#9
G80
#31 = #31 + 1
END2
#30 = #30 + 1
END1
M99Loop luar menghitung baris, loop dalam menghitung kolom. Setiap koordinat dihitung dengan menambahkan indeks posisi dikalikan jarak ke koordinat awal. Dengan A4 dan B3, makro akan mengebor 12 lubang: 4 lubang di setiap 3 baris.
Dalam versi pembelajaran ini, G81 diaktifkan dan dibatalkan di setiap posisi. Ini menambah sedikit waktu eksekusi, tapi menjaga status siklus terbatas pada satu operasi. Versi produksi dapat menjaga siklus tetap aktif antar posisi, asalkan programmer mengontrol eksekusi awal, status modal, dan pembatalan G80 dengan cermat.
Program utama dan kondisi aman
Makro tidak boleh menebak nomor alat, kompensasi panjang, kecepatan spindle, atau offset kerja. Menyimpan data tersebut di program utama memudahkan pengecekan persiapan operasi.
O01000
G90 G17 G40 G49 G80 G94
G54
T1 M06
S1800 M03
G00 X10. Y20.
G43 H01 Z50.
M08
G65 P9010 X10. Y20. I25. J20. A4. B3. Z-12. R2. F120.
G80
G00 Z50.
M09
M05
G53 G00 Z0.
M30Program ini menetapkan bidang G17, pemrograman absolut G90, sistem koordinat kerja G54, dan kompensasi panjang alat G43 H01 sebelum memanggil makro. Tinggi aman, retraksi ke nol mesin, dan urutan pengaktifan peralatan harus sesuai mesin dan template program yang disetujui di pabrik.
Pemeriksaan yang wajib ada di makro produksi
Kode parameter mengurangi pengeditan manual, tapi satu parameter salah bisa mengubah seluruh pola lubang. Makro produksi harus memeriksa inputnya. Jumlah baris dan kolom harus bilangan bulat positif, bidang R harus berada di sisi aman permukaan benda kerja, dan posisi X/Y yang dihitung harus tetap dalam batas benda kerja dan jangkauan mesin.
- Pastikan pemetaan argumen ke variabel sesuai kontrol yang dipakai.
- Periksa bahwa nomor DO dan END pada loop bersarang berpasangan dengan benar.
- Hitung titik akhir terlebih dahulu: X + (A − 1) × I dan Y + (B − 1) × J.
- Periksa tanda Z, posisi bidang R, dan mode pengembalian G98 atau G99.
- Jalankan simulasi grafis, lalu blok tunggal dengan pengurangan kecepatan rapid.
- Jika ada ragum atau penjepit, periksa jalur perpindahan selain titik pengeboran.
Perlindungan terhadap argumen yang tidak diisi juga berguna. Pada kontrol yang variabel lokal yang tidak diisi bernilai kosong, makro dapat menampilkan alarm sebelum gerakan dimulai. Sintaks pemeriksaan variabel kosong dan alarm harus diambil dari manual kontrol CNC tersebut.
Kapan makro benar-benar menghemat kerja
Untuk satu bagian dengan lima lubang yang sudah diketahui, siklus G81 biasa dan daftar koordinat sering lebih mudah dibaca. Makro berguna saat pola berubah sesuai aturan yang jelas: array persegi atau lingkaran, beberapa ukuran bagian sama, lubang berulang di offset kerja berbeda, atau keluarga produk dengan proses pengeboran sama.
Makro yang mudah dipelihara memiliki tugas jelas dan antarmuka sederhana. Setiap argumen didokumentasikan dalam komentar program atau lembar set-up, dan contoh pemanggilan yang benar disimpan bersama program. Operator tinggal mengubah dimensi pola dan parameter pemesinan tanpa mengedit rumus atau penghitung loop.
Haas menyediakan dokumentasi resmi untuk pemetaan argumen G65 dan variabel lokal serta siklus pengeboran standar. Gunakan referensi ini sebagai titik awal dan sesuaikan dengan versi perangkat lunak di mesin Anda.