Microsoft Word - 17.MT Alexander_Ok.docx 154 ComTech Vol.3 No. 1 Juni 2012: 154-161 PENGEMBANGAN PROGRAM APLIKASI ENHANCED MACHINE CONTROL DENGAN PYTHON UNTUK METODE INTERPOLASI NEWTON Alexander A S Gunawan1; Jimmy Linggarjati2 1Mathematics & Statistics Department, School of Computer Science, Binus University Jln. K.H. Syahdan No. 9, Palmerah, Jakarta Barat 11480 aagung@binus.edu 2Computer Engineering Department, Faculty of Engineering, Binus University Jln. K.H. Syahdan No. 9, Palmerah, Jakarta Barat 11480 jimmyl@binus.edu ABSTRACT Nowadays, one of industrial main problems is the flexibility of machines to be customized since they are designed based on certain standard. This research develops software for CNC (Computer Numerically Controlled) machine in order to execute the Newton Interpolation using Python. The platform used in the CNC machine is EMC (Enhanced Machine Control) and GUI (Graphical User Interface) AXIS on the operating system Linux Ubuntu. The Newton interpolation is used to create a curve based on several point determined by user. By converting this curve into G-Code, which could be read by CNC machine, the machine can move according to curve designed by user. This research is an initial study to customize the CNC machine and will continue to fulfill the user needs. This research obtained a program that is able to run well up to 4 input pairs. The higher number inputs will cause the oscillation in the interpolation curve. Keywords: CNC, EMC, AXIS, Newton interpolation, G-Code, Python ABSTRAK Masalah yang dihadapi dunia industri saat ini ialah mesin yang kurang fleksibel untuk diubahsesuaikan karena dirancang oleh manufaktur yang berdasarkan standar tertentu. Penelitian ini mencoba untuk mengembangkan program untuk mesin CNC (Computer Numerically Controlled) agar mesin tersebut dapat menjalankan metode interpolasi Newton menggunakan bahasa pemrograman Python. Platform yang digunakan dalam mesin CNC ini adalah perangkat lunak EMC (Enhanced Machine Control) dengan menggunakan GUI (Graphical User Interface) AXIS pada sistem operasi Linux Ubuntu. Metode interpolasi Newton digunakan untuk membentuk suatu kurva dengan sejumlah titik tertentu. Dengan mengubah kurva tersebut menjadi G-Code yang dapat dibaca oleh mesin CNC, mesin tersebut dapat bergerak mengikuti kurva yang sudah dibuat pada perangkat lunak. Penelitian ini merupakan contoh bagaimana cara untuk mengubahsesuaikan mesin CNC sehingga dapat sesuai dengan kebutuhan pemakai. Hasil pengujian dapat berjalan dengan baik sampai dengan empat pasang data masukan dan untuk masukan yang lebih banyak akan menimbulkan osilasi pada kurva hasil interpolasi. Kata kunci: CNC, EMC, AXIS, interpolasi Newton, G-Code, Python Pengembangan Program Aplikasi... (Alexander A S Gunawan; Jimmy Linggarjati) 155 PENDAHULUAN Awal lahirnya mesin CNC (Computer Numerically Controlled) bermula dari 1952 yang dikembangkan oleh John Pearseon dari Institut Teknologi Massachusetts, atas nama Angkatan Udara Amerika Serikat (Smid,P, 2003). Sekarang ini, fungsi mesin CNC semakin berkembang untuk menjawab tantangan dunia manufaktur yang semakin modern. Selain itu ketelitian mesin CNC telah dapat mencapai 20 mikron (0.02 milimeter) atau bahkan bisa lebih presisi. Dengan adanya mesin CNC yang dilengkapi perangkat lunak CAM (Computer Aided Manufacturing), seorang operator cukup membuat gambar kerja dari benda yang akan dibuat dengan mesin CNC pada PC (Personal Computer). Hasil gambar kerja dapat dieksekusi secara simulasi untuk melihat pelaksanaan pengerjaan benda kerja di mesin CNC melalui layar monitor. Jika hasil eksekusi simulasi sudah sesuai dengan yang diharapkan, program dilanjutkan dengan eksekusi program mesin. Dengan cara ini, waktu yang diperlukan untuk menyelesaikan pekerjaan yang menggunakan model serupa menjadi jauh lebih cepat dan efisien. Dalam Starovešk, et al. (2009), dijelaskan pemanfaatan sistem kontrol arsitektur terbuka berbasis Linux (OAC) sebagai platform untuk Mesin CNC Milling. Sedangkan di penelitian ini, mesin CNC yang digunakan juga dirakit sendiri, dengan menggunakan perangkat lunak open source EMC (Enhanced Machine Control) dengan menggunakan GUI (Graphical User Interface) AXIS pada sistem operasi Linux Ubuntu. Penelitian ini mencoba untuk mengembangkan program untuk metode interpolasi Newton menggunakan bahasa pemrograman Python. Hal ini dimaksudkan sebagai contoh bahwa mesin CNC tersebut dapat dikustomisasi oleh pengguna untuk berbagai keperluan yang spesifik sehingga tidak tergantung lagi dengan perangkat lunak standar yang ada di pasar. METODE EMC(Enhanced Machine Controller) EMC(Enhanced Machine Controller) adalah suatu perangkat lunak komputer untuk mengontrol mesin seperti milling machines, bubut, plasma cutters, cutting machines, robots, hexapods, dan lain lain. EMC adalah perangkat lunak Open Source berlisensi di bawah GNU General Public License dan GNU Lesser General Public License (GPL dan LGPL). EMC2 merupakan pengembangan dari perangkat lunak EMC. Ada empat komponen utama untuk perangkat lunak EMC2, yaitu: kontroler gerak, kontroler I/O diskrit, modul untuk mengkoordinasi kontroler, dan antarmuka pengguna grafis (Getting Started Guide, 2011). Selain itu ada fasilitas disebut HAL (Hardware Abstraction Layer) yang memungkinkan penyesuaian konfigurasi EMC2 tanpa perlu mengkompilasi ulang. EMC2 ini juga menyediakan: (1) beberapa antarmuka untuk pengguna grafis termasuk satu untuk layar sentuh; (2) interpreter untuk "G-Code" (RS-274 alat mesin bahasa pemrograman); (3) gerakan sistem mesin secara realtime dengan tampilan-depan; (4) pengoperasian mesin elektronik tingkat rendah seperti sensor dan motor; (5) perangkat lunak PLC yang dapat diprogram dengan ladder diagram; (6) kemudahan instalasi dengan CD-Live. Gambar 1 menunjukkan diagram blok sederhana yang menunjukkan sistem EMC2 untuk mesin 3-axis. Diagram ini menunjukkan sistem motor stepper. PC dengan Linux sebagai sistem operasinya, digunakan untuk mengendalikan drive stepper motor dengan mengirimkan sinyal melalui port printer (paralel). Sinyal-sinyal (pulsa) yang dikirim ini membuat drive stepper motor dapat bergerak. 156 AXIS I A interface AXIS I menyesu kebutuha Bahasa P bahasa p perangka bahasa p bahasa in yang lua dan Java G-Cod G Bahasa i Interface AXIS Interfa e pada EMC Interface in uaikan bentu an pengguna a Pemrogr Program apl pemrograma at lunak EM pemrograma ni mudah di as. Di sampi a. de G-Code ada ini memakai face merupak C2 yang seca ni dapat dik uk tampilan a. Tampilan A raman Pyt likasi untuk an Python 2 MC2-AXIS y an dinamis y gunakan kar ing itu bahas alah bahasa p komputer se Gambar 1. E kan salah sat ra aktif dike konfigurasi n pada saat AXIS dapat d Gamba thon 2.6 metode int .6 (Ascher e yang berada yang mendu rena memilik sa Python in pemrograma ebagai alat b EMC2 Contro tu tampilan a embangkan o dengan me t menjalank dilihat pada g ar 2. AXIS In terpolasi Ne et al., 2005 di sistem op kung pemro ki susunan ta ni dapat diint an mesin yan bantu penghu ComTec olled Machine antar muka d oleh para pen enambahkan an program gambar 2 ber terface. wton akan ). Dimana b perasi Linux ograman ber ata bahasa ya tegrasikan d ng berkaitan ubung antara ch Vol.3 No. dari EMC2. nggunanya ( Virtual C m EMC2 su rikut ini: dirancang d bahasa ini a x Ubuntu. B orientasi obj ang jernih se dengan bahas n erat denga a mesin dan p 1 Juni 2012: AXIS adala (User Manua Control Pane upaya sesuai dengan meng akan dijalank Bahasa Pytho jek. Di sam erta memilik sa lain seper an grafik da perangkat lu 154-161 ah default al, 2011). el untuk i dengan ggunakan kan pada on adalah mping itu, ki pustaka rti C/C++ n vektor. unak yang Pengembangan Program Aplikasi... (Alexander A S Gunawan; Jimmy Linggarjati) 157 terdapat di komputer. Mesin akan mengikuti gerak alur dari vektor yang dituliskan dalam G-Code. Bahasa pemrograman G-Code ini ditulis dalam file dengan ekstensi .ngc (Numerical G-Code). Berikut adalah beberapa contoh bahasa G-Code disertai dengan fungsinya masing-masing: Code Description G0 Rapid motion G1 Coordinated motion ("Straight feed") G2, G3 Coordinated helical motion ("Arc feed") G4 Dwell (no motion for P seconds) G38.2…G38.5 Straight probe G80 Cancel motion mode G81, G82 Drilling cycle without (with) dwell G83, G73 Peck and Chip-break drilling cycles G85, G89 Boring cycle without (with) dwell G33 Spindle-synchronized motion G33.1 Rigid tapping G76 Multiphase lathe threading cycle Spesifikasi Mesin CNC Spesifikasi mesin CNC yang digunakan adalah sebagai berikut: Minimum Track Width 0.5 mm Minimum Isolation Width 0.5 mm Minimum Drill Hole Diameter 0.6 mm Working Area (X/Y/Z) 500 mm x 400 mm x 50 mm Resolution 0.1 mm Travel speed (max) 200 mm per second X positioning system dc-servo motor Y/Z positioning system 5-phase stepper motors Dimensions (W x H x D) 600 mm x 500 mm x 1500 mm Weight 300 kg Power supply 220 V, 60 Hz/500 VA Mesin CNC yang digunakan dapat dilihat pada Gambar 3 berikut ini: Gambar 3. Mesin CNC. 158 Interpo J diketahu melewat aplikasi kombina Di mana D U Tabel 1 Beda Ter D 1 di atas Implem U pembuat menghas Abstract CNC di ya = 00 olasi Newt Jika diberika ui bentuk atu ti pasangan t adalah interp Interpolasi N asi (x-xi) dan a koefisien a0 Dengan beda Untuk memp rbagi Di mana koe . mentasi Pr Untuk impl tan Virtual C silkan file .xm tion Layer). dalam file ya ∇= 110 ton an sekumpul uran fungsiny titik – titik te polasi Newto Newton men n didefinisika 0, a1, …, an d a terbagi ini, permudah pe efisien polino rogram lementasi pr Control Pane ml; (2) meng Langkah ini axis_mm.ini n xP ( na =…1 an berhingga ya, interpolas ersebut. Sala on (Kiusalaas nggunakan p an dengan: dapat dihitung koefisien po erhitungan, b om dalam in rogram apli el yang terin gkoneksikan i akan meng i agar memb x xax ( () 0 −+ += … 2 =∇ =∇ =∇ n n i i y y x y y n n y∇= a pasangan t si polinom a ah satu interp s,J, 2010) pendekatan f g dengan bed olinom dalam biasanya akan nterpolasi Ne ikasi ini m ntegrasi deng n PyVCP den ghasilkan file baca file .xm xx axx () () 1 11 −− +− … 1 1 1 1 − − − − − − ∇−∇ = − ∇−∇ − − n n n ii ii ii ii xx y xx yy i xx yy ComTec titik - titik (x adalah jawab polasi polino fungsi polin da terbagi (d m interpolasi n dibuat perh ewton adalah memerlukan gan AXIS m ngan EMC2 e .hal; (3) m ml dan file .h nn ax xxx ) )(( 1 − −− 1 1 1 1 ,2 ,,2,1 − − −∇ = = n n n x y i n … … ch Vol.3 No. x1, y1), (x2, y2 ban untuk me om yang ser nomial yang divided differe Newton ada hitungan beri h nilai pada d beberapa t melalui PyVC melalui fasil mengatur ulan hal yang tel ax ) 22 , n… 1 Juni 2012: 2), . . . , (xn, embentuk ku ring digunak disusun dal ences) beriku alah: ikut ini (Tabe diagonal dal tahapan ber CP. Langkah litas HAL (H ng konfigura ah dibuat ya 154-161 yn) tanpa urva yang an dalam lam deret (1) ut ini: (2) (3) el 1). am Tabel ikut: (1) h ini akan Hardware asi mesin aitu pada Pengembangan Program Aplikasi... (Alexander A S Gunawan; Jimmy Linggarjati) 159 bagian PYVCP dan POSTGUI_HALFILE; (4) membuat program utama dalam bahasa Python, yang akan menghasilkan G-Code dalam file .ngc; (5) mengeksekusi file .ngc dari AXIS Interface. HASIL DAN PEMBAHASAN Pembuatan Virtual Control Panel Untuk membuat GUI Interpolasi Newton seperti pada Gambar 4 di bawah ini diperlukan pembuatan file .xml untuk mengatur tampilan tersebut. Dalam implementasi, file ini dinamai interpolasi.xml yang isinya dapat dilihat sebagai berikut: ("Helvetica",9) 3 Dalam file interpolasi.xml yang pertama kali membuat tag . PyVCP (Python Virtual Control Panel) dibutuhkan untuk melakukan suatu virtualisasi panel di perangkat lunak EMC2. Bentuk virtualisasi panel ini dibutuhkan karena perangkat lunak EMC2 mengenal panel sebagai suatu objek yang telah dibuat pada perangkat lunak tersebut. Dalam implementasi ini, virtualisasi panel dengan PyVCP dipakai sebagai penghubung (connector) antara perangkat lunak EMC2 dengan program interpolasi yang telah dibuat. Gambar 4. GUI interpolasi Newton. 160 ComTech Vol.3 No. 1 Juni 2012: 154-161 Mengkoneksikan PyVCP dengan HAL (Hardware Abstraction Layer) HALUI (Hardware Abstraction Layer User Interface) adalah salah satu fungsi dalam perangkat lunak EMC2 yang digunakan untuk membuat suatu sinyal dan port sehingga GUI yang dibuat dengan PyVCP dapat terkoneksi dengan mesin CNC nya (HAL Manual, 2011). Untuk itu dibuat file .hal untuk membuat koneksi sinyal melalui port tertentu pada perangkat lunak EMC2 ke mesin CNC dan dalam implementasi file ini dinamai interpolasipostgui.hal yang isinya dapat dilihat sebagai berikut: net btn5 halui.mdi-command-04 <= pyvcp.newton net btn6 halui.mdi-command-05 <= pyvcp.runn Mengatur Ulang Konfigurasi Mesin CNC Dalam perangkat lunak EMC2-Axis ini, terdapat file .ini (initial) dimana file tersebut akan menyimpan dan memanggil semua pengaturan yang ada untuk ditampilkan ketika perangkat lunak EMC2 dipanggil. File ini dapat diakses oleh pengguna dan dapat dimodifikasi sesuai dengan kebutuhan. Untuk implementasi interpolasi Newon, digunakan file axis_mm.ini dan dilakukan beberapa pengaturan pada file tersebut. Modifikasi file .ini terutama agar perangkat lunak EMC2 dapat membaca file .xml dan file .hal yang telah dibuat yaitu pada bagian PYVCP dan POSTGUI_HALFILE. Membuat Interpolasi Newton dengan Python Metode interpolasi Newton diimplementasikan melalui program Python 2.6 dalam sistem operasi Linux Ubuntu, Perangkat lunak EMC2-Axis tersebut memanggil program Python dalam pengoperasiannya melalui fasilitas MDI commands pada HALUI (Hardware Abstraction Layer) dan mengeksekusi perintah G-Code M101…M199 (User-defined M-codes). Selain itu untuk membuat GUI pada Python untuk menginput data interpolasi digunakan Tkinter (Swipman,et al, 2010). Program interpolasi Newton yang dibuat dengan bahasa pemrograman Python akan menghasilkan file yang berupa G-Code (file .ngc). Dalam implementasi, file Python dinamai M101 dan hasilnya berupa file 101.ngc yang isinya dapat dilihat sebagai berikut: O101 Sub G20 F8.0 G1 X 0.000000 Y 0.000000 (Koordinat pada G-Code tergantung kurva yang dibentuk) G1 X 1.000000 Y 1.000000 O101 Endsub M2 Mengeksekusi File .ngc dari AXIS Setelah file .ngc terbentuk maka file tersebut dapat dipanggil melalui fasilitas MDI commands pada HALUI (Hardware Abstraction Layer) dan mengeksekusi perintah G-Code O101…O199 (Call Subroutines). Untuk melakukan ini, pengguna cukup mengklik tombol Run yang sudah dibuat dengan PyVCP. Pengembangan Program Aplikasi... (Alexander A S Gunawan; Jimmy Linggarjati) 161 PENUTUP Untuk mempercepat proses kinerja dalam suatu industri yang memakai mesin CNC, seringkali dibutuhkan customization atau pengubahsesuaian mesin misalnya untuk membuat kurva berdasarkan beberapa data tertentu dan metode interpolasi Newton dapat memenuhi kebutuhan untuk membuat kurva ini. Dengan menggunakan perangkat lunak EMC2 yang bersifat terbuka sehingga dapat dimodifikasi dengan relatif mudah, dapat diimplementasi metode interpolasi Newton dengan bahasa pemrograman Python pada mesin CNC yang digunakan. Hasil pengujian interpolasi Newton pada mesin CNC telah dapat berjalan dengan baik sampai dengan 4 pasang data masukan dan untuk masukan yang lebih banyak akan menimbulkan osilasi pada kurva hasil interpolasi. Penelitian ini merupakan contoh bagaimana mesin CNC dapat dikustomisasi sehingga dapat memenuhi kebutuhan yang spesifik. DAFTAR PUSTAKA Ascher, D., Martelli, A., Ravenscroft, A. (2005). Python Cookbook. California: O’Reilly. Kiusalaas, Jaan. (2010). Numerical Methods in Engineering with Python. Pennsylvania: Pennsylvania State University. Smid, P. (2003). CNC Programming Handbook, (2nd edition). New York: Industrial Press. Starovešk, T., Brezak, D., Udiljak, T., & Majetić, D. (2009). Implementation of a Linux-based CNC open control system. 12th International Scientific Conference on Production Engineering – CIM. Swipman, John W. (2010). Tkinter 8.4 Reference: a GUI for Python. Mexico: New Mexico Tech.