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.