Petunjuk Penulisan Makalah

advertisement
Rancangan Perangkat Lunak G Code Interpreter
untuk Pengendalian CNC 3 Aksis
Berbasis Mikrokontroler
FREDY ANDRIAN ALFATAH
EKSTENSI TEKNIK ELEKTRO
UNIVERSITAS INDONESIA
E-mail : [email protected]
Skripsi ini membahas tentang perancangan dan
pembuatan G Code interpreter menggunakan
Microsoft Visual Studio 2010. Perangkat lunak
tersebut diimplementasikan pada mesin kartesian
CNC 3 aksis dengan perantara rangkaian
mikrokontroler yang berfungsi sebagai indexer atau
motion card. Mesin CNC 3 aksis yang digunakan
berfungsi untuk membuktikan bahwa software dapat
menerjemahkan G Code menjadi gerak interpolasi
linier dan gerak interpolasi melingkar. Software yang
dirancang mampu membuat mesin bekerja dengan
kecepatan mencapai 1000 mm/men, ketelitian 1 mm,
serta melakukan interpolasi pada bidang XY.
Kata Kunci : Perangkat lunak, G Code Interpreter,
interpolasi linier, interpolasi melingkar, CNC.
I. PENDAHULUAN
Di industri manufaktur, CNC Mill bisa memiliki
fungsi sebagai mesin produksi utama, yaitu sebagai mesin
untuk proses di jalur produksi, serta bisa juga sebagai
mesin pendukung, yaitu mesin pembuat mekanisme
pendukung yang biasanya dilakukan di bengkel pabrik.
Pada industri otomotif, mesin CNC Mill bisa digunakan
sebagai mesin milling blok mesin otomotif itu sendiri,
serta juga digunakan untuk proses milling komponen jig
yang digunakan pada proses di jalur produksi dan
perakitan.
Keberadaan mesin CNC Mill di industri tentu akan
diiringi dengan kebutuhan tenaga kerja yang memiliki
ketrampilan yang cukup memadai untuk mengoperasikan
serta merawat mesin tersebut. Oleh sebab itu, penting bagi
pelajar di bidang teknik untuk memahami cara kerja
mesin CNC Mill. Harga mesin CNC Mill relatif mahal.
Sebagai alternatif bisa dikembangkan mesin sederhana
yang mampu melakukan gerak tiga aksis dengan harga
yang relatif lebih murah untuk institusi pendidikan.
Dalam skripsi ini akan dirancang dan dibuat perangkat
lunak G Code interpreter. Perangkat lunak diaplikasikan
untuk menggerakkan mesin CNC 3 aksis. Fungsi mesin
CNC 3 aksis adalah untuk membuktikan bahwa perangkat
lunak dapat menerjemahkan G Code menjadi gerak
interpolasi linier dan gerak interpolasi melingkar.
Perangkat lunak yang dirancang ada dua macam, program
Human Machine Interface (HMI) dan perangkat lunak
mikrokontroler sebagai indexer. HMI diprogram dengan
Microsoft Visual Studio 2010 dengan bahasa basic. HMI
ditanam dalam personal computer (PC) yang dilengkapi
port serial RS232. Dengan menggunakan komunikasi
serial RS232, HMI di PC mengirim data ke indexer yang
kemudian oleh indexer dikonversikan menjadi gerak
mekanik mesin CNC 3 aksis. Tujuan akhir pembahasan
adalah:
a. Membuat perangkat lunak HMI G Code interpreter
dengan Microsoft Visual Studio 2010 untuk
menghasilkan data yang dibutuhkan indexer dalam
menggerakkan mesin CNC 3 aksis.
b. Membuat perangkat lunak mikrokontroler pengendali
stepper motor driver sehingga dapat menghasilkan
pulsa yang dibutuhkan untuk menggerakkan mesin
CNC 3 aksis sesuai dengan data program G Code yang
dikirim HMI dari PC.
Dalam skripsi ini, pembahasan dibatasi pada G Code
yang digunakan, bidang interpolasi, serta pengkhususan
pembahasan pada perangkat lunak G Code interpreter
tersebut. Perangkat lunak yang dibuat dibatasi untuk
menterjemahkan kode G00, G01, G02, G03, G53, G54,
G55, G56, G57, G58, G59, G90 dan G91. Gerak
interpolasi yang dilakukan adalah gerak interpolasi pada
bidang XY. Mesin CNC 3 aksis yang dipergunakan
hanya berfungsi untuk menguji dan membuktikan bahwa
perangkat lunak mampu menerjemahkan kode G Code
menjadi gerak mesin, yaitu gerak interpolasi linier dan
gerak interpolasi melingkar. Mesin CNC menggunakan
tiga buah stepper motor bersama dengan stepper motor
driver sebagai aktuator penggerak sumbu. Sistem kendali
yang digunakan adalah sistem open loop, demikian pula
untuk komunikasi serial yang digunakan antara PC
dengan mikrokontroler. Kondisi komunikasi serial PC
dengan mikrokontroler diasumsikan ideal tanpa
kesalahan.
II. LANDASAN TEORI
2.1 G Code
Mesin CNC selalu dilengkapi dengan kontrol
pengendali dimana pengguna dapat mengetikkan kode G
Code. Pada layar tersebut juga terdapat fungsi - fungsi
set up awal mesin dan operasi manual. Set awal mesin
disebut proses zero return, yaitu pencarian posisi nol
absolut mesin. Proses zero return bertujuan untuk
mensinkronkan posisi aktual mesin dengan layar
pengendali. Setelah dilakukan proses zero return,
pengguna dapat melakukan membuat program pada menu
Edit.
Rancangan perangkat..., Fredy Andrian Alfatah, FT UI, 2013
Tabel 1. Perintah G Code Dasar
Kode
G00
G01
G02
G03
G53
G54
G90
G91
Fungsi
Pergerakan aksis dengan kecepatan penuh
Pergerakan aksis dengan kecepatan proses
pemakanan
Perpindahan aksis berputar searah jarum dengan jari
jari tertentu pada kecepatan proses pemakanan
Perpindahan aksis berputar berlawanan arah jarum
dengan jari jari tertentu pada kecepatan proses
pemakanan
Sistem Koordinat Mesin
Sistem Koordinat Kerja (Working Coordinat System)
Pergerakan absolute
Pergerakan increamental
Tabel 1 memperlihatkan daftar perintah G Code yang
digunakan untuk mengoperasikan mesin CNC 3 aksis.
Penjelasan dari perintah tersebut adalah sebagai berikut:
1. G00 dan G01
Fungsi kedua kode ini adalah untuk memerintahkan
pergerakan interpolasi ketiga aksis kartesian mesin.
Pergerakan dilakukan menurut kecepatan tertentu yang
sudah dispesifikasikan oleh pembuat mesin, dan
dipilih dengan memasukkan kode kecepatan. Berikut
format perintah yang digunakan :
G01 X000.0 Y000.0 Z000.0 F000
Huruf X, Y, dan Z disertai angka adalah titik koordinat
yang hendak dituju dari pergerakan tersebut.
Kecepatan pergerakan diperoleh dari angka yang
mengikuti huruf F.
2. G90 dan G91
Kedua kode ini berfungsi untuk menentukan apakah
pergerakan tool mengacu pada titik nol mula – mula
(Working Coordinate System), atau mengacu pada
titik saat ini tool berada. Kedua kode ini dicantumkan
di awal kode pergerakan G00, G01, G02 dan G03. Jika
menggunakan G90, maka titik koordinat yang dituju
adalah absolut atau mengacu pada nol sistem
koordinat kerja.
3. G02 dan G03
Selain gerak linier, mesin CNC juga dituntut mampu
melakukan gerak rotasi. Untuk melakukan gerak rotasi
searah jarum jam atau clock wise (CW) digunakan
perintah G02. Untuk melakukan gerak rotasi
berlawanan arah jarum jam atau counter clock wise
(CCW) digunakan perintah G03. Penulisan perintah
ini adalah sebagai berikut :
G90 G02 X 5.0 Y 3.0 I 5.0 J 3.0 F 500
G91 G03 X 5.0 Y 3.0 I 5.0 J 3.0 F 500
G90 dan G91 adalah penanda dari jenis atau tipe
koordinat yang digunakan seperti penjelasan
sebelumnya. Huruf X dan Y diikuti angka
menunjukkan titik koordinat yang ingin dituju. Huruf I
dan J menunjukkan letak titik pusat lingkaran relatif
terhadap titik tool saat ini.
4. Working Coordinate System
Sistem koordinat mesin memiliki titik nol absolut yang
tetap karena menggunakan hardware untuk penanda
posisi nol. Terkadang dalam suatu proses pengerjaan,
terdapat situasi khusus seperti dicontohkan gambar 1,
dimana terdapat empat benda kerja dalam satu meja
mesin.
I
II
X,Y (4,4)
X,Y (12,4)
III
Machine
Home
IV
X,Y (4,1)
X,Y (12,1)
Gambar 1. WCS
Anggaplah keempat benda kerja tersebut akan
mengalami proses yang sama. Pembuat program tidak
perlu membuat program yang berbeda untuk tiap
benda kerja. Program cukup dibuat satu, namun
dipanggil dengan sistem koordinat kerja yang berbeda.
Misal pada gambar 1 titik koordinat benda I disimpan
dalam G54, titik koordinat benda II disimpan di G55
dan seterusnya sampai titik koordinat benda IV di
G57. Titik tersebut kemudian disebut titik koordinat
kerja atau Working Coordinate System. Dengan
memasukkan kode tersebut sebelum memanggil
perintah gerak maka titik koordinat yang digunakan
adalah titik koordinat memori Working Coordinate
System yang terakhir dipanggil.
2.2 Mesin CNC
Secara umum CNC bisa digambarkan menjadi tiga
bagian penting, yaitu : HMI, Control Unit dan Mechanical
Unit. Human Machine Interface atau HMI bersama
dengan Electrical Control Unit bisa dianggap sebagai satu
kesatuan kita sebut saja Unit Kendali CNC. Unit Kendali
CNC memiliki Central Processing Unit atau CPU yang
berfungsi mengendalikan semua fungsi fungsi CNC.
Manusia atau operator memberikan masukan melalui
HMI yang diteruskan ke CPU dan disimpan ke dalam unit
memori untuk diolah.
Ketika operator memberikan perintah kepada mesin
untuk mulai bekerja, maka semua data dalam memori
yang diberikan sebelumnya dibaca kembali dan diolah
menjadi gerakan. CPU menggerakkan aksis mesin melalui
perantara motion card. Motion Card bertugas merubah
input data aksis dan kecepatan menjadi sinyal perintah
yang diteruskan ke unit motor driver.
HUMAN
MACHINE
INTERFACE
CPU
I / O
RS232
MOTION
CARD /
INDEXER
MOTOR
DRIVE
MECHANICAL SYSTEM
MANUSIA /
OPERATOR
ELECTRICAL CONTROL UNIT
Gambar 2. Bagan Mesin CNC
Rancangan perangkat..., Fredy Andrian Alfatah, FT UI, 2013
Sistem closed loop pada gerakan aksis atau biasa
disebut servosystem berada pada unit driver dengan
motor yang digunakan. Jika motor tidak dilengkapi
encoder maka sistem merupakan open loop. Sistem
seperti ini biasanya menggunakan stepper motor. Selain
sebagai pengendali driver, motion card juga bertugas
mengendalikan spindle motor driver. Berbeda dengan
aksis yang memerlukan kendali posisi dan kecepatan,
spindle hanya membutuhkan kendali kecepatan.
Untuk membatasi gerak motor aksis, unit mekanis
dilengkapi limit switch yang dibaca oleh unit I/O. Jika
gerakan aksis melewati batas maka I/O unit menerima
sinyal limit switch, diteruskan ke CPU dan CPU
mengirim sinyal stop ke motor driver. Selain itu, unit I/O
juga berfungsi untuk menyalakan coolant pump, lampu
dan fungsi lain jika ada.
III. PERANCANGAN DAN PEMBUATAN
Sumbu Z
Sumbu Y
2.3 Mikrokontroler PIC
Secara
sederhana
dapat
disebutkan
bahwa
mikrokontroler adalah mikroprosesor yang dilengkapi
dengan periferal dan peralatan pendukung yang tidak ada
pada internal mikroprosesor. Satu mikrokontroler terdiri
dari central processing unit, memori dan I/O yang dapat
diprogram, yang semuanya dikemas ke dalam satu chip.
Salah satu jenis mikrokontroler adalah PIC 18F452
keluaran Microchip Technology Inc. Mikrokontroler ini
menggunakan arsitektur Harvard yang memisahkan
memori program dari memori data. Jumlah I/O yang
tersedia adalah sebanyak 33 dengan 8 di antaranya bisa
digunakan sebagai pembaca sinyal analog 10 (sepuluh)
bit. Spesifikasi lebih chip ditunjukkan oleh tabel 2.
Tabel 2. Spesifikasi PIC 18F452
Spesifikasi
Keterangan
OPERATING FREQUENCY
PROGRAM MEMORY
EEPROM
I/O
COMMUNICATION
4Mhz – 20 MHz
32 KBytes
256 bytes
33
ADDRESSABLE USART
Mikrokontroler PIC 18F452 memiliki internal flash
program memory sebesar 32 Kbytes artinya sama dengan
16384 word instruksi. Port terbagi menjadi lima, yaitu
enam pin port A, tiga pin port E, dan masing – masing
delapan pin untuk port B, C dan D. Konfigurasi letak
kaki – kaki bisa dilihat pada gambar 3.
Sumbu X
Gambar 4. Perangkat Keras Mekanik
Perangkat keras mekanik hanya akan dipaparkan
secara singkat untuk memeperlihatkan spesifikasi secara
umum. Pada Gambar 4 ditunjukkan mesin dibagi menjadi
tiga sumbu kartesian X, Y dan Z. Sumbu X memiliki
jangkauan mencapai 315 mm. Sumbu Y memiliki
jangkauan mencapai 580 mm. Sumbu Z memiliki
jangkauan mencapai 140 mm. Ketiga sumbu
menggunakan ball screw dengan pitch 5 mm yang artinya
untuk setiap satu putaran akan memberikan perubahan
gerak linier sejauh 5 mm.
Untuk mengkonversikan gerak rotari motor jadi gerak
linier diperlihatkan dengan gambar 5. Stepper motor
dihubungkan dengan ball screw menggunakan coupling.
Fungsi coupling selain sebagai penghubung juga sebagai
pengaman mekanik. Jika terjadi kegagalan di pergerakan
ball screw, kerusakan terjadi lebih dahulu pada coupling.
Meja atau tool terhubung dengan nut ball screw dan
bergerak secara linier. Sebagai sensor batas atau pembatas
jangkaun gerak dipasang dua limit switch di ujung
pergerakan. Jika limit switch teraktifkan oleh sentuhan
meja yang bergerak maka sinyal akan diterima kontrol
dan kontrol menghentikan putaran motor. Karena pada
sistem yang dibuat tidak menggunakan reduksi, baik roda
gigi atau yang lain, maka setiap satu putaran motor akan
menghasilkan satu putaran ball screw yang berarti
menghasilkan gerak linier sejauh 5 mm.
Meja penggerak
Mo
tor
Step
per
Limit switch
Ball Screw
Gambar 5. Skema Gerak Mesin dengan Motor Stepper
Gambar 3. Konfigurasi pin mikrokontroler 18F452
Rancangan perangkat..., Fredy Andrian Alfatah, FT UI, 2013
Stepper motor yg digunakan dalam sistem mesin
kartesian yang dibuat adalah stepper motor dari Autonics.
Tegangan kerja stepper motor adalah 3,54 V DC.
Ketelitian untuk satu step mencapai 0,72o, yang berarti
untuk satu putaran dibutuhkan 500 step atau 500 sinyal
pulsa digital. Frekuensi maksimum yang mampu direspon
oleh driver adalah 500 kpps dengan lebar pulsa minimum
yang bisa dibaca adalah 1 us. Tegangan pulsa pengendali
yang dibutuhkan adalah 5 V.
Supaya PC dapat mengendalikan stepper motor driver
maka dibutuhkan indexer. Indexer dirancang dengan
menggunakan mikrokontroler PIC 18F452. Untuk
menggerakkan tiga stepper motor dibutuhkan enam pin
keluaran. Mode yang digunakan adalah mode pertama
yaitu 1 pulsa kecepatan dan 1 pulsa arah. Sebagai kendali
arah digunakan pin D.1 sebagai arah sumbu Z, pin A.1
sebagai arah sumbu X dan pin A.3 sebagai arah sumbu Y.
Sebagai kendali kecepatan digunakan pin D0 sebagai
kecepatan sumbu Z, pin A0 sebagai kecepatan sumbu X
dan pin A2 sebagai kecepatan sumbu Y.
Agar pergerakan sumbu tidak melebihi batas
maksimal kontruksi mekanik, maka dipasang dua limit
switch di masing masing sumbu untuk memberi batas
minimum dan maksimum. Karena sinyal “batas tercapai”
terjadi saat kontrol sedang menggerakkan stepper motor,
maka sinyal “batas tercapai” dimasukkan ke dalam
kategori iterrupt signal. Interrupt signal akan memproses
prosedur tertentu yang sudah disiapkan sekalipun kontrol
sedang menjalankan prosedur lain yang mungkin belum
selesai dikerjakan. Port yang memiliki fasilitas ini
terdapat pada port B. Oleh alasaan tersebut semua sinyal
batas aksis diumpankan ke port B. Adapun diagram
indexer dengan PIC 18F452 seperti yang telah dijelaskan,
ditunjukkan oleh gambar 6.
13
1
XCW
XCCW
YCW
YCCW
Z+
ZX+
XY+
Y-
U1
OSC1/CLKI
MCLR/VPP
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2A
RC2/CCP1
RA0/AN0
RC3/SCK/SCL
RA1/AN1
RC4/SDI/SDA
RA2/AN2/VREFRC5/SDO
RA3/AN3/VREF+
RC6/TX/CK
RC7/RX/DT
RA4/T0CKI
RA5/AN4/SS/LVDIN
RA6/OSC2/CLKO
RD0/PSP0
RD1/PSP1
RB0/INT0
RD2/PSP2
RB1/INT1
RD3/PSP3
RB2/INT2
RD4/PSP4
RB3/CCP2B
RD5/PSP5
RB4
RD6/PSP6
RB5/PGM
RD7/PSP7
RB6/PGC
RB7/PGD
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
2
3
4
5
6
7
14
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
X0
Y0
Z0
19
20
21
22
27
28
29
30
ZCW
ZCCW
Perangkat lunak HMI dirancang agar memiliki
tampilan sederhana dan mudah dimengerti oleh pengguna.
Untuk perancangan disini, tampilan dibuat menjadi dua
bagian. Bagian pertama adalah bagian set up mesin,
dimana pengguna bisa melakukan proses zero return,
operasi manual mesin, dan set up sistem koordinat kerja
ke memori G54 sampai G59.
Gambar 7. Tampilan Bagian Set Up Mesin
Pada gambar 7 ditunjukkan bagaimana tampilan menu
Set Up HMI. Pada bagian tersebut terdapat posisi
koordinat G54 sampai dengan G59. Angka yang
ditunjukkan merupakan posisi WCS terhadap posisi nol
mesin. Sebagai contoh, jika posisi koordinat mesin pada
titik origin nol, sementara posisi WCS yang dipakai
adalah G54 dengan posisi origin X,Y,Z (-10, -10, -10),
maka posisi yang ditunjukkan oleh koordinat absolut
adalah (10,10,10), sebab posisi nol mesin adalah terhadap
G54 mesin adalah (10, 10, 10).
Bagian editing sintaks G Code ditunjukkan oleh
gambar 8. Sintaks G Code ditulis dengan memilih WCS,
sistem aksis yang digunakan, mode pergerakan, feed rate,
serta mengisi titik koordinat yang dibutuhkan. Dengan
menekan tombol add kode akan ditambahkan ke code list.
Program dijalankan dengan menekan tombol run.
Program disimpan dalam file txt. Programmer juga bisa
menulis program dengan txt editor kemudian membuka
kode ke dalam code list.
8
9
10
PIC18F452
C2
1
11
12
10
9
U2
3
1u
C1+
C1-
T1IN
R1OUT
T2IN
R2OUT
T1OUT
R1IN
T2OUT
R2IN
C2+
C2-
VS+
VS-
C1
4
5
14
13
7
8
2
6
C4
1u
C3
1u
MAX232
1u
P1
1
6
2
7
3
8
4
9
Gambar 8. Tampilan
DCD
DSR
RXD
RTS
TXD
CTS
DTR
RI
ERROR
COMPIM
Gambar 6. Indexer atau Motion Card
bagian Editor G Code
Kode yang ditulis akan dideteksi satu persatu pada
saat tombol ditekan. Pengelolaan WCS, mode aksis dan
mode pergerakan dilakukan di PC di mana program
ditanam. Data yang dikirim ke motion card atau indexer
Rancangan perangkat..., Fredy Andrian Alfatah, FT UI, 2013
hanyalah pergerakan increamental. Jika program
menggunakan mode aksis absolut maka aksis diubah
terlebih dahulu ke dalam bentuk increamental. Misal
posisi saat ini adalah X1,Y1 absolut dan kode akan
menggerakan tool ke posisi X2,Y2 absolut maka aksis
increamental adalah jarak antara dua titik tersebut yang
dapat diperoleh dengan :
Xincreament = X2 – X1
Yincreament = Y2 – Y1
start
Baca Data
Serial dari
PC
Set Lebar Pulsa
Set Jarak Tempuh
Kirim Pulsa ke
Driver
TIDAK
Apakah jarak
telah tercapai ?
YA
Kirim sinyal
“selesai” ke
PC
Finish
Gambar 9. Indexer Flowchart
Alur kerja program indexer diperlihatkan oleh gambar
9. Ketika motion card atau indexer siap maka motion card
atau indexer akan menunggu sejumlah data dari PC. Kode
yang digunakan adalah :
HSERIN [MD, X1, X2, SX, LX1, LX2, Y1, Y2, SY,
LY1, LY2, Z1, Z2, SZ, LZ1, LZ2, DUMMY1 ]
Jumlah data adalah 16, namun ditambahkan data dummy
sebagai penutup data yang otomatis terkirim.
Jangkauan maksimum mesin adalah 580 mm. Karena
angka yang dikirim memiliki ketelitian sampai 0,01 mm,
maka angka 58000 mewakili nilai maksimum 580,00.
Dalam 1 byte angka desimal yang bisa dikirim adalah
255. Solusi pengiriman data dilakukan dengan membagi
angka jangkauan menjadi dua bagian. Variabel X1
menampung angka hasil bagi jangkauan sumbu X dengan
255. Variabel X2 menampung sisa hasil bagi. Sehingga,
jika jangkauan diberi variabel XC maka nilai jangkauan
diperoleh dengan sintaks :
XC = X1 * 255 + X2
Arah putar sumbu X ditentukan oleh SX. Jika SX
bernilai 0 maka putaran ke arah negatif sebaliknya jika
SX bernilai 1 putaran kea rah positif. Kecepatan putar
ditentukan oleh lebar pulsa. Perhitungan lebar pulsa
dilakukan dengan cara yang sama dengan penentuaan
jangkauan. Hanya saja data yang diperoleh adalah ½ lebar
pulsa. Jika ½ lebar pulsa adalah LX, maka setiap LX
tercapai sinyal akan dirubah ke kondisi berlawanan, yaitu
jika 1 ke 0 dan jika 0 ke 1. Setiap terjadi perubahan dari 0
ke 1 maka terjadi pergerakan sejauh 0,72o atau 0,01 mm.
Variabel untuk menghitung perubahan gerak tersebut
adalah KX untuk sumbu X. Adapun untuk kode lebih
lengkap adalah sebagai berikut :
I=I+1
IF KX < XC THEN
IF I = LX THEN
PORTA.0 = NOT PORTA.0
I=0
IF PORTA.0 = 1 THEN
KX = KX + 1
ENDIF
ENDIF
ENDIF
Proses pemberian sinyal akan terus dilakukan selama
posisi X yang ditunjukkan oleh KX belum mencapai set
poin yang ditunjukkan oleh XC. Variabel I merupakan
penghitung untuk menentukan lebar ½ pulsa. Jika I telah
sama dengan LX maka kondisi lebar ½ pulsa tercapai dan
kondisi sinyal diinversikan. Jika terjadi perubahan pada
pin A0 menjadi 5 V atau dibaca 1 oleh compiler, berarti
terjadi satu langkah stepper sehingga I dikembalikan ke
nol untuk menghitung ulang dan KX ditambah 1. Proses
terus diulang hingga KX = XC yang berarti posisi telah
tercapai.
Dalam proses menjalankan serangkaian kode tersebut
dibutuhkan waktu oleh mikrokontroler. Dari hasil
percobaan, diperoleh bahwa satu siklus untuk proses
interpolasi membutuhkan sekitar 72 us. Jadi untuk satu
pulsa, lebar terkecil adalah sekitar 144 us, yaitu dengan
Rancangan perangkat..., Fredy Andrian Alfatah, FT UI, 2013
hitungan counter I = 0 ke I = 1 dan kembali I = 0. Namun
demikian, motor hanya mampu merespon untuk counter
terkecil I = 0 sampai I = 4 atau 4 hitungan atau 4 siklus.
Jadi lebar pulsa terkecil yang bisa direspon adalah 576 us.
72 us
Counter I
1
2
3
4
1
2
3
4
Motor
Driver
Pulse
1 step gerakan motor
Gambar 10. Pengaruh I terhadap kecepatan motor
Counter I berfungsi menentukan lebar pulsa yang
diberikan ke stepper motor driver. Kecepatan putar motor
yang digunakan dikendalikan dengan memberikan pulsa
dengan frekuensi tertentu ke driver. Gambar 10
menunjukkan bagaimana lebar pulsa pengendali driver
dihasilkan. Jika lebar pulsa sempit maka frekuensi akan
tinggi dan motor akan bergerak lebih cepat.
IV. PENGUJIAN
1. Pengujian Indexer
Pengujian indexer dilakukan dengan perintah gerak
maksimum. Dari hasil pengujian osiloskop pada posisi
Volt/Div 5 V dan Time/Div 250 ms diperoleh data sesuai
gambar 11. Dengan melihat gambar didapat pulsa digital
dengan tegangan 1 Vpp atau 5 V. Frekuensi tersebut
adalah frekuensi tertinggi yang bisa direspon oleh stepper
motor dalam sistem kontruksi yang digunakan. Dari
gambar dapat dilihat bahwa periode untuk satu pulsa
adalah 2,3 div atau 250 us x 2,3 div yaitu mendekati
575us.
Gambar 11. Uji Sinyal Frekuensi Maksimum
Dari periode bisa didapat kecepatan maksimum dari
sistem yang dibuat. Pertama dihitung frekuensi :
F = 1000000/T
dengan T adalah periode dan 10000000 adalah 1 detik
dalam satuan us (1 detik = 1000000 us) maka dapat
diperoleh :
F = 1000000/575
F = 1739,13 pps
Dari frekuensi maksimum 1739,13 pps kemudian
dibagi dengan 500 yaitu banyaknya pulsa yang diperlukan
untuk satu putaran motor.
Jumlah putaran per detik = 1739,13 / 500 = 3,48 rps
Dengan demikian kecepatan linier per detik dapat
dihitung dengan mengalikan kecepatan rotasi dengan
jarak yang ditempuh dalam 1 putaran yaitu pitch dari ball
screw 5mm.
Feed Rate = 3,48 * 5 = 17,39 mm / detik
Feed Rate = 17,39 * 60 = 1043,48 mm / menit
Dengan demikian bisa diambil kesimpulan mesin
dapat bekerja pada kecepatan maksimum sekitar
1000mm/menit.
2. Pengujian Algoritma Interpolasi Linier
Interpolasi linier yang dibuat adalah gerak interpolasi
untuk aksis X dan aksis Y. Sedang gerak aksis Z
dilakukan independen terpisah dari gerak aksis X dan Y.
Gerak interpolasi diperoleh dengan memberikan lebar
pulsa yang berbeda antara sumbu X dengan sumbu Y.
Proses ini dilakukan dengan melihat jarak tempuh
resultan dan kecepatan pemakanan (feed rate). Dengan
mengetahui jarak tempuh X dan jarak tempuh Y maka
dapat diketahui pula kecepatan sumbu X dan kecepatan
sumbu Y.
Misal pada kecepatan maksimum 1000 mm/menit
dilakukan gerak dari titik X,Y (0,0) menuju X,Y(4,3).
Resultan diperoleh dengan :
RL = √((XL)2+(YL)2)
Dimana XL dan YL adalah jarak tempuh X dan Y
sehingga :
RL = √((X2 – X1)2+(Y2 – Y1)2)
RL = 5
Langkah berikutnya menetukan sinus dan cosines
sudut resultan RL, dengan :
SinV = YL / RL = 0,6
CosV = XL / RL = 0,8
Sehingga kita bisa mengukur kecepatan masing
masing sumbu, misal untuk sumbu Y adalah :
Kecepatan Y = Feed Rate x SinV / 60
Kecepatan Y = 10 (dalam mm per detik)
Putaran per detik = Kecepatan Y / 5 = 2
Pulsa per detik = Putaran per detik x 500 = 1000
Lebar Pulsa = 1000000 / Pulsa per detik = 1000 us
Dalam mengaplikasikan angka tersebut menjadi gerak
digunakan kode dalam mikrokontroler yang berperan
sebagai indexer. Idealnya, siklus pengulangan adalah 1us
agar diperoleh gerak yang presisi. Namun karena adanya
proses pembacaan kode dalam mikrokontroler untuk
menghasilkan pulsa, membutuhkan waktu sekitar 144us
Rancangan perangkat..., Fredy Andrian Alfatah, FT UI, 2013
untuk ½ pulsa. Oleh sebab itu untuk memperoleh lebar
pulsa 1000us counter yang digunakan adalah per 144us.
Karena counter dilakukan untuk setengah pulsa, maka
perhitungan counter adalah :
Counter Y = 1000 / 144 = 7
Dengan cara yang sama maka diperoleh kecepatan di
X:
Lebar pulsa = 750 us
Counter X = 5
Semua hasil perhitungan dibulatkan karena
mikrokontroler hanya menerima data dalam byte sebesar
1 byte.
(a)
07, pada saat kecepatan feed rate ditingkatkan menjadi
500 mm/m ketelitian berkurang menjadi kisaran angka 0,7 sampai dengan 0,15. Dengan demikian mesin
memiliki karakteristik yang menurun ketelitiannya saat
kecepatan proses bertambah.
2. Pengujian Algoritma Interpolasi Sirkular
Gerak interpolasi sirkular pada dasarnya merupakan
segmen dari gerak interpolasi linier. Input data oleh
programmer berupa titik pusat lingkaran dan titik tujuan
akhir kemudian dipilah menjadi segmen gerak interpolasi
linier. Hal tersebut dilakukan dengan menggunakan
persamaan lingkaran :
X2 + Y2 = R2
Input pusat lingkaran, kita sebut saja I dan J, mula –
mula kita gunakan untuk mendapatkan radius (R). Dengan
menjadikan I dan J sebagai titik nol maka posisi saat ini
tool berada adalah – I dan – J. Segmen pertama diperoleh
dengan menambah atau mengurangi – I dengan angka
tertentu, missal 1 untuk pergerakan 1 mm. Jika Xo dan Yo
adalah titik tujuan segmen pertama, maka kedua titik
diperoleh dengan langkah berikut :
R2 = X2 + Y2 = = I2 + J2
Xo = – I – 1 atau Xo = – I + 1
Yo = √ ( R2 – Xo )
Pengurangan atau penambahan Xo tergantung dengan
arah putar dan posisi tool terhadap I dan J sebagai acuan.
Pengurangan dilakukan jika arah putar adalah berlawanan
arah jarum dan tool ada di kuadran 1 atau 2. Pengurangan
juga dilakukan jika arah putar searah jarum jam dengan
tool berada di kuadran 3 atau 4. Selain kedua kondisi
tersebut, maka dilakukan terhadap Xo untuk mendapat
segemen berikutnya. Proses pencarian segmen akan
dihentikan jika tool telah mencapai titik tujuan akhir
lingkaran.
(b)
Gambar 12. Pengujian algoritma interpolasi linier
Dari pengujian algoritma tersebut diperoleh data
seperti ditunjukkan oleh gambar 12. Pada gambar 12 (a)
ditunjukkan hasil pengujian gerak interpolasi pada
kecepatan 100 mm/m. Sebagai perbandingan pada gambar
12 (b) ditunjukkan ketika pengujian dilakukan pada
kecepatan yang lebih cepat. Sumbu X merepresentasikan
tidak adanya kesalahan gerak mekanis. Sumbu Y positif
merepresentasikan kelebihan langkah dari kondisi gerak
aktual mekanis. Sedangkan sumbu Y negatif
merepresentasikan kekurangan langkah dari gerak aktual
mekanis. Dari kedua gambar tersebut dapat disimpulkan
bahwa semakin cepat aksis bergerak, semakin besar pula
kemungkinan kesalahan yang terjadi. Jika pada gambar 12
(a) kesalahan berkisar dari angka – 0,1 sampai dengan 0,
Gambar 13. Pengujian Gerak Interpolasi Sirkular
Pengujian pada algoritma ini dilakukan dengan cara
yang sama dengan pengujian gerak interpolasi linier.
Rancangan perangkat..., Fredy Andrian Alfatah, FT UI, 2013
Dalam setiap segmen gerakan mesin dilakukan
pengukuran gerak aktual. Hasil pengukuran gerak aktual
tersebut kemudian dibandingkan dengan hasil perhitungan
ideal. Dari hasil perbandingan berupa grafik berbentuk
lingkaran akan bisa dilihat kondisi sebenarnya dari
gerakan yang telah dilakukan mesin.
IV. KESIMPULAN
Hasil pengujian telah ditampilkan dan dijelaskan. Dari
semua hasil yang diperoleh dan dijelaskan maka dapat
dirangkum kesimpulan sebagai berikut :
a. G Code interpreter dapat membaca kode G Code dasar
yaitu G90, G91, G01, G02 dan G03.
b. Perangkat keras indexer dapat menterjemahkan data
dari komputer pengendali menjadi sinyal perintah
yang dibutuhkan oleh driver dari stepper motor.
c. Mesin CNC 3 aksis dengan kontruksi kartesian dapat
beroperasi dengan G Code interpreter dan indexer
yang dibuat, dengan ketelitian 1 mm.
d. Mesin dapat dioperasikan dengan
kecepatan
maksimum mencapai 1000 mm/m.
V. DAFTAR ACUAN
Bai, Ying. 2005. The Windows Serial Port
Programming Handbook. United States of America:
CRC Press.
Curran, Kelly dan Stenerson, Jon. 2007. Computer
Numerical Control operation and Programming (3rd
ed.). Columbus, Ohio: Pearson Education.
De Silva, Clarence W. 2010. Mechatronics: A
Foundation Course. Boca Raton, Florida: CRC Press.
Grier, Richard. 2004. Visual Basic Programmer’s
Gude to Serial Communication
(4th ed.). Standwood:
Mabry Publishing.
Peatman, John B. 2003. Embedded Design with the
PIC 18F452 Microcontroller. Upper Saddle River, New
Jersey: Pearson Education.
Subagio,
Dalmasius
Ganjar.
2008.
Teknik
Pemrograman CNC Bubut dan Frais. Jakarta: LIPI.
Sutrisno. 2008. Aplikasi Bahasa G Code dan M Code
untuk Kontrol Gerak PCI 1864 pada Mesin Cartesian di
Polman ASTRA dengan menggunakan Visual Basic 6.0.
Jakarta: Polman ASTRA.
Rancangan perangkat..., Fredy Andrian Alfatah, FT UI, 2013
Download