Makro Kustom Dapat Melewati Lubang Setelah Mengganti Alat yang Rusak
Beberapa pemrogram menghindari penggunaan makro khusus karena mereka merasa makro ini mempersulit untuk memulai ulang program dari tengah operasi pemesinan yang rumit. Kekhawatiran ini seringkali dapat diatasi dengan sedikit perencanaan. Memang, makro khusus terkadang memudahkan untuk memulai ulang program dan dijalankan dari tengah operasi pemesinan pahat.
Teknik dalam artikel ini terinspirasi oleh Chad Kluth dari Mid Valley Industries di Kaukuana, Wisconsin. Saya membantunya menyelesaikan masalah yang berbeda dalam makro kustom pemesinan lubang lingkaran baut. Saya memasukkannya di sini karena relevan dengan diskusi kita.
Aplikasi Kluth melibatkan pemesinan 4140 komponen baja yang sangat besar dan tangguh yang digunakan dalam industri pertambangan. Dia perlu mengebor sebanyak 100 lubang, masing-masing berdiameter 2 inci, di sekitar pola lingkaran-baut ke permukaan/flange bulat hingga kedalaman 6 inci. Seperti yang dapat Anda bayangkan, keausan pahat dan kerusakan pahat adalah masalah besar. Bahkan bor dengan sisipan baru mungkin tidak berhasil melewati siklus tanpa aus — dan bor bisa mencapai 90 lubang ke dalam siklus saat sudah aus. Lebih buruk lagi, penyertaan bahan mentah yang keras dapat menyebabkan bor putus kapan saja.
Kluth menggunakan makro khusus lingkaran baut universal yang mampu melakukan beberapa jenis operasi pemesinan lubang, termasuk pengeboran, penyadapan standar, penyadapan kaku, reaming dan counterboring. Masalah aslinya berkaitan dengan penyadapan yang kaku. Menjadi makro kustom "universal", perintah M29 perlu mengabaikan ketukan kaku jika mesin melakukan operasi lain. Untuk mengatasi masalah ini, kami menggunakan variabel lokal “kosong”.
Untuk melewatkan lubang, argumen dalam perintah pemanggilan menentukan jumlah lubang yang akan dilewati. Misalnya, jika bor aus selama 90
th
lubang, pengguna perlu menyetel argumen ini ke 89. Kami menggunakan kata-K (kata-L dengan FANUC CNC yang lebih lama) dalam perintah siklus kalengan untuk menentukan apakah mesin harus melewati lubang. Jika K diatur ke nol (K0), lubang dilewati. Jika K diatur ke satu (K1), lubang akan dikerjakan.
Berikut adalah contoh program yang berisi contoh perintah pemanggilan:
- 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 tengah)
- (Y =Y tengah)
- (Z =Z permukaan)
- (D =Kedalaman lubang)
- (C =Siklus yang akan digunakan — G81, G82, G83, G73 atau G84)
- (R =Z posisi cepat)
- (B =Jari-jari lingkaran baut)
- (A =Sudut awal)
- (I =Jumlah lubang)
- (F =Tingkat umpan)
Ini adalah argumen yang hanya diperlukan dalam kasus khusus:
- (T =Diperlukan dengan G82 untuk menentukan waktu tinggal)
- (Q =Diperlukan dengan G73 atau G83 untuk menentukan kedalaman peck)
- (M29.0 =Diperlukan jika ketukan kaku)
- (Sxxxx.x =Diperlukan jika ketukan kaku untuk menentukan RPM spindel)
- (H =Diperlukan jika melewatkan lubang untuk menentukan jumlah lubang yang akan dilewati)
Berikut adalah makro khusus:
- O9010 (Makro khusus lingkaran baut universal)
- #101=1 (Inisialisasi penghitung)
- #102=#1 (Inisialisasi sudut arus ke A)
- #103=360 / #4 (Jarak sudut tambahan antar lubang)
- #104=#26 + 0,1 (Pesawat pendekatan cepat)
- #105=#26 - #7 (Z posisi dasar lubang)
- #32=1 (Penghitung lubang lompat — digunakan jika H disertakan dalam perintah pemanggilan)
- N1 IF[#101 GT #4] GOTO 99 (Uji apakah lubang pemesinan selesai)
- #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, disetel ke 1 jika lubang berikutnya akan dikerjakan)
- IF[#11EQ#0] GOTO5 (Uji apakah H disertakan dalam perintah pemanggilan)
- JIKA[#32GT#11] GOTO5 (Uji apakah selesai melewati lubang)
- #33=0 (Lubang berikutnya akan dilewati)
- N5 M#13 S#19 (Tidak dieksekusi jika #13 dan #19 kosong)
- G#3 X#110 Y#111 R#104 Z#105 P#20 T#17 F#9 K#33 (Lubang arus mesin)
- G80 (Batalkan siklus)
- #101=#101 + 1 (Penghitung langkah)
- #102=#102 + #103 (Sudut langkah saat ini)
- #32=#32+1 (Penghitung lubang lompatan langkah)
- GOTO 1 (Kembali untuk menguji)
- N99 M99 (Akhir)
Berikut adalah panduan untuk item yang dicetak tebal di makro khusus:
- L#13 S#19 – Jika kata CNC berisi variabel lokal yang kosong, CNC akan mengabaikan kata tersebut. Saat melakukan sadapan kaku, perintah pemanggilan harus menyertakan kata-kata M29.0 dan Sxxxx.0 (S menentukan RPM untuk sadapan kaku). Jika melakukan operasi lain, pengguna harus meninggalkan M dan S dari perintah pemanggilan.
- P#20 dan T#17 – Jika pengguna menggunakan counterboring (G82), mereka harus menyertakan T dalam perintah pemanggilan untuk menentukan waktu tunggu. Saat mengebor peck (G73 atau G83), pengguna harus menyertakan Q untuk menentukan kedalaman peck.
- K#33 – FANUC memiliki dua format pemrograman untuk siklus kalengan. Dengan FANUC CNC yang lebih baru, K menentukan jumlah lubang yang sedang dikerjakan. FANUC CNC lama menggunakan L untuk tujuan yang sama. Jika makro khusus ini tidak berfungsi (mesin tidak melewatkan lubang meskipun H disertakan dalam perintah pemanggilan), ubah K#33 dalam perintah ini menjadi L#33.