Bagaimana Macro Kustom Mempermudah Penggantian Alat dan Melanjutkan Operasi dengan Lancar
Beberapa pemrogram menghindari penggunaan macro kustom karena merasa makro ini membuatnya lebih sulit untuk memulai ulang program dari tengah operasi pemesinan yang kompleks. Kekhawatiran ini seringkali dapat diatasi dengan sedikit perencanaan. Memang, macro kustom terkadang membuatnya lebih mudah untuk memulai ulang program dan menjalankan dari tengah operasi pemesinan alat potong.
Teknik dalam artikel ini terinspirasi oleh Chad Kluth dari Mid Valley Industries di Kaukuana, Wisconsin. Saya sedang membantu dia menyelesaikan masalah yang berbeda dalam custom macro pemasangan lubang bolt-circle. Saya menyertakannya di sini karena relevan dengan diskusi kami.
Aplikasi Kluth melibatkan pemesinan komponen baja 4140 yang sangat besar dan tahan lama yang digunakan di industri pertambangan. Dia perlu membuat hingga 100 lubang, masing-masing 2 inci diameter, di sekitar pola bolt-circle ke dalam muka bundar/flange hingga kedalaman 6 inci. Seperti yang Anda bayangkan, aus alat dan patahnya alat adalah masalah besar. Bahkan bor dengan insert baru mungkin tidak bisa melewati seluruh siklus tanpa aus — dan bor mungkin sudah berada pada lubang ke-90 dalam siklus ketika itu aus. Untuk membuatnya lebih buruk, inklusi keras dalam bahan mentah dapat menyebabkan bor patah kapan saja.
Kluth menggunakan custom macro bolt-circle universal yang mampu melakukan beberapa jenis operasi pemasangan lubang, termasuk bor, tap standar, tap rigid, reaming, dan counterboring. Masalah asli berkaitan dengan tap rigid. Sebagai custom macro "universal", perintah M29 perlu mengabaikan tap rigid jika mesin melakukan operasi lain. Untuk menyelesaikan masalah ini, kami menggunakan variabel lokal "kosong".
Seperti yang disebutkan untuk melewatkan lubang, argumen dalam perintah pemanggilan menentukan jumlah lubang yang akan dilewatkan. Misalnya, jika bor aus selama lubang ke-90, pengguna perlu mengatur argumen ini ke 89. Kami menggunakan kata K (kata L dengan CNC FANUC yang lebih lama) dalam perintah siklus terpadu untuk menentukan apakah mesin harus melewatkan lubang. Jika K diatur ke nol (K0), lubang dilewatkan. Jika K diatur ke satu (K1), lubang diproses.
Berikut adalah program contoh yang berisi perintah pemanggilan contoh:
- O0001
- N005 G90 S500 M03
- N010 G00 X0 Y0
- N015 G43 H01 Z0.1
- N020 G65 P9010 X0 Y0 Z0 C81.0 D6.0 R0.1 B12.0 A90.0 I100.0 F12.0 H89.0
- N025 G91 G28 Z0
- N030 M30
Ini adalah argumen wajib yang harus ada dalam perintah pemanggilan:
- (X = X pusat)
- (Y = Y pusat)
- (Z = Z permukaan)
- (D = Kedalaman lubang)
- (C = Siklus yang digunakan — G81, G82, G83, G73 atau G84)
- (R = Posisi rapid Z)
- (B = Jari-jari bolt circle)
- (A = Sudut awal)
- (I = Jumlah lubang)
- (F = Laju pemasok)
Ini adalah argumen yang hanya diperlukan dalam kasus khusus:
- (T = Diperlukan dengan G82 untuk menentukan waktu diam)
- (Q = Diperlukan dengan G73 atau G83 untuk menentukan kedalaman peck)
- (M29.0 = Diperlukan jika tap rigid)
- (Sxxxx.x = Diperlukan jika tap rigid untuk menentukan RPM palas)
- (H = Diperlukan jika melewatkan lubang untuk menentukan jumlah lubang yang akan dilewatkan)
Berikut adalah custom macro:
- O9010 (Custom macro bolt-circle universal)
- #101=1 (Inisialisasi counter)
- #102=#1 (Inisialisasi sudut saat ini ke A)
- #103=360 / #4 (Jarak sudut inkremental di antara lubang)
- #104=#26 + 0.1 (Posisi pendekatan rapid)
- #105=#26 - #7 (Posisi dasar Z lubang)
- #32=1 (Counter melewatkan lubang — digunakan jika H disertakan dalam perintah pemanggilan)
- N1 IF[#101 GT #4] GOTO 99 (Uji apakah selesai memproses lubang)
- #110=#24 + COS[#102] * #2 (Posisi X untuk lubang saat ini)
- #111=#25 + SIN[#102] * #2 (Posisi Y untuk lubang saat ini)
- #33=1 (Nilai kata K, diatur ke 1 jika lubang berikutnya akan diproses)
- IF[#11EQ#0] GOTO5 (Uji apakah H disertakan dalam perintah pemanggilan)
- IF[#32GT#11] GOTO5 (Uji apakah selesai melewatkan lubang)
- #33=0 (Lubang berikutnya akan dilewatkan)
- N5 M#13 S#19 (Tidak dieksekusi jika #13 dan #19 kosong)
- G#3 X#110 Y#111 R#104 Z#105 P#20 Q#17 F#9 K#33 (Proses lubang saat ini)
- G80 (Batalkan siklus)
- #101=#101 + 1 (Langkah counter)
- #102=#102 + #103 (Langkah sudut saat ini)
- #32=#32+1 (Langkah counter melewatkan lubang)
- GOTO 1 (Kembali ke uji)
- N99 M99 (Akhir)
Berikut adalah panduan untuk item-item bold dalam custom macro:
- M#13 S#19 — Jika kata CNC berisi variabel lokal kosong, CNC akan mengabaikan kata. Saat melakukan tap rigid, perintah pemanggilan harus menyertakan kata M29.0 dan Sxxxx.0 (S menentukan RPM untuk tap rigid). Jika melakukan operasi lain, pengguna harus meninggalkan M dan S dari perintah pemanggilan.
- P#20 dan Q#17 — Jika pengguna menggunakan counterboring (G82), mereka harus menyertakan T dalam perintah pemanggilan untuk menentukan waktu diam. Saat peck drilling (G73 atau G83), pengguna harus menyertakan Q untuk menentukan kedalaman peck.
- K#33 — FANUC memiliki dua format pemrograman untuk siklus terpadu. Dengan CNC FANUC yang lebih baru, K menentukan jumlah lubang yang diproses. CNC FANUC yang lebih lama menggunakan L untuk tujuan yang sama. Jika custom macro ini tidak bekerja (mesin tidak melewatkan lubang bahkan jika H disertakan dalam perintah pemanggilan), ubah K#33 dalam perintah ini menjadi L#33.