BAB III SPESIFIKASI dan PERANCANGAN SISTEM
3.1 Spesifikasi Sistem Untuk memudahkan pengguna dalam mengendalikan mesin CNC, maka perlu dibuat suatu Graphic User Interface yang dapat menampilkan secara tiga dimensi posisi dari objek yang akan dikendalikan pada mesin CNC. Representasi tiga dimensi dari pergerakan mesin CNC dibuat dengan membuat model animasi 3-D dari mesin CNC tersebut dari berbagai sudut penglihatan. Model animasi 3-D yang telah dibuat kemudian dimasukkan ke dalam perangkat lunak pengendali mesin CNC. Sebelum menggerakkan motor stepper sebagai aktuator dari sistem kendali, pengguna dapat mengatur posisi tujuan objek kendalian dengan mengatur model animasi 3-D mesin CNC pada perangkat lunak pengendali. Perangkat lunak pengendali akan menerjemahkan nilai posisi objek kendalian yang diinginkan kepada modul kontroller melalui komunikasi serial, sehingga motor akan bergerak sesuai dengan nilai enkoder yang harus dicapai hingga objek kendalian mencapai posisi yang diinginkan. Untuk itu perlu diatur bagaimana komunikasi antara komputer dengan mesin CNC. Berikut ini adalah gambar mesin CNC yang akan dikendalikan:
21
Gambar 3.1 Mesin CNC yang akan dikendalikan Adapun urutan pengerjaan perangkat lunak Graphic User Interface untuk mesin CNC ini adalah sebagai berikut:
22
Gambar 3.2 Urutan Pengerjaan perangkat lunak pengendali Mesin CNC Terdapat 3 jenis parameter yang dilakukan dalam Tugas Akhir ini, yaitu: 1. Perancangan model grafik 3-D yang memodelkan bentuk komponenkomponen penting mesin CNC ke dalam bentuk grafik 3-D sesuai dengan skala yang disesuaikan dengan ukuran mesin sebenarnya. 2. Perancangan Graphic User Interface untuk menampilkan secara visual gerakan dari objek dalam berbagai pandangan, untuk mempresentasikan nilai posisi dari objek. 3. Perancangan komunikasi data antara komputer dengan mesin CNC
23
3.1.1
Spesifikasi Perancangan Model Grafik 3-D dari Mesin CNC
1
Merepresentasikan model mesin CNC dalam bentuk grafik 3-D
2
Merepresentasikan model mesin CNC jika dilihat dari pandangan pengguna, dari atas, dari depan, dan dari samping
3
Merepresentasikan ukuran komponen-komponen penting mesin CNC dengan skala yang proporsional
4
Merepresentasikan model komponen-komponen penting mesin CNC dengan warna yang menarik pandangan mata (eye-catching)
3.1.2 Spesifikasi Perancangan Perangkat lunak Graphic User Interface 1. Mampu menampilkan grafik 3-D yang telah dibuat dalam berbagai pandangan 2. Mampu mengontrol gerakan mesin CNC dengan 7 derajat kebebasan 3. Perangkat lunak mampu menampilkan secara visual gerakan dari objek dalam berbagai pandangan untuk mempresentasikan nilai posisi dari objek sebelum digerakkan oleh motor stepper, serta menampilkan posisi objek sewaktu dan setelah bergerak 4. Perangkat lunak mampu mengatur kecepatan masing-masing motor 5. Perangkat lunak mampu mengatur posisi grafik 3-D pada masing-masing window. 6. Tampilan memiliki user interface untuk pengguna yang bersifat user friendly 7. Pengendalian berbasis sistem komputer, dengan menggunakan platform operating system Microsoft XP. 3.1.3 Spesifikasi Perancangan Komunikasi Data Komputer - Mesin CNC Terdapat 2 parameter yang dilakukan dalam perancangan komunikasi data komputer dengan mesin CNC, yaitu: 1. Komunikasi dilakukan melalui port serial komputer dengan mesin CNC.
24
2. Komunikasi yang dilakukan antara komputer dengan mesin CNC mencakup: •
Penentuan address dari modul kontroller pada setiap motor atau kendalian yang diakses oleh komputer.
•
Perintah pergerakan dari modul stepper pada setiap motor atau kendalian baik arah dan kecepatan
•
Perintah penentuan posisi seluruh kendalian dari mesin CNC.
•
Perintah untuk meminta status dari modul kontroller setiap sumbu
3.2 Perancangan Untuk memenuhi spesifikasi sistem diatas, maka dilakukan perancangan model grafik 3-D dari mesin CNC, perancangan Graphic User Interface, dan perancangan komunikasi data antara komputer dengan CNC. 3.2.1 Perancangan Model Animasi 3-D dari Mesin CNC Untuk membuat model animasi 3-D dari Mesin CNC, digunakan perangkat lunak Blender 2.48.a, seperti dilihat pada gambar berikut :
Gambar 3.3 Pembuatan animasi 3-D mesin CNC menggunakan Blender File yang dihasilkan oleh Blender adalah berupa *.blend. File berupa *.blend ini akan diekspor ke XAML, sehingga bisa digunakan pada Windows Presentation 25
Foundation (WPF). Kemudian WPF bisa diintegrasikan dengan Windows Form Application (WFA) dengan menambahkan UserControl ke dalam WFA. File XAML ini akan ada pada UserControl1.xaml. Adapun Hierarki dari UserControl yang digunakan adalah sebagai berikut :
26
User Control
Grid
View Port 3-D
View Port 3-D Camera
Model Visual 3D Model Visual 3-D Content
Model 3-D
Model 3-D Group
Model 3-D Group
Model 3-D Group
Model 3-D Group
Gambar 3.4 Hirarki UserControl pada WPF Pengaturan sumbu grafik untuk berbagai sudut pandang adalah sebagai berikut:
Gambar 3.5 Penentuan Sumbu X-Y-Z mesin CNC NO
Pandangan
27
Sumbu
1
Atas
X-Y
2
Depan
X-Z
3
Samping
Y-Z
Tabel 3.1 Penentuan sumbu X-Y-Z mesin CNC 3.2.2 Perancangan Graphic User Interface Perancangan Graphic User Interface yang dilakukan adalah sebagai berikut: a. Menampilkan grafik 3-D pada Windows Form Application Untuk membuat perangkat lunak pengendali mesin CNC, digunakan Visual Studio 9.0 (disebut juga Visual Studio 2008). Alasan pemilihannya karena Visual Studio 9.0 memiliki interoperability dengan Windows Presentation Foundation (WPF). WPF mendukung penggunaan grafik 3-D secara mudah dan sederhana. WPF ditambahkan pada Windows Forms Application dengan menambahkan WPF UserControl pada project. Dalam hal ini UserControl1.xaml menampilkan pandangan dari sisi pengguna, UserControl2.xaml dari atas, UserControl3.xaml dari depan, dan UserControl4.xaml dari samping. Tampilan dari Windows Form Application yang dirancang adalah sebagai berikut :
28
Gambar 3.6 Tampilan Windows Form Application pengendali CNC Untuk mengendalikan model animasi 3-D tersebut, masing-masing objek yang telah diekspor ke bahasa XAML diberi nama. Nama ini menjadi acuan bagi control pada Windows Forms untuk mengendalikan property yang ingin dikendalikan. Contoh penamaan dan property yang akan dikendalikan:
Pada contoh di atas dapat kita lihat bahwa property objek yang ingin dikendalikan adalah OffsetX, OffsetY, dan OffsetZ. Untuk memanggil property tersebut dari Windows Form, objeknya perlu dinamai dengan sintaks x:Name="samping_4". Kemudian windows control akan mengendalikan property
dengan memanggil namanya, contohnya pada file UserControl1.xaml.vb : Public WriteOnly Property samping_Y() As Double Set(ByVal y As Double) samping_1.OffsetY = y samping_5.OffsetY = y - 0.1 samping_4.OffsetY = y - 0.108 samping_3.OffsetY = y - 0.005 samping_15.OffsetY = y - 0.006 samping_6.OffsetY = y - 0.132 samping_12.OffsetY = y - 0.005 29 End Set End Property
Property di atas untuk mengatur nilai OffsetY pada berbagai objek. Kemudian property itu
dikendalikan dengan control NumericUpDown.
Contohnya: Private Sub nudSampingZ_ValueChanged(ByVal sender As_ System.Object, ByVal e As System.EventArgs) Handles_ nudSampingZ.ValueChanged ModelUser.UserControl11.samping_Z = nudSampingZ.Value End Sub
Untuk menampilkan model animasi 3-D CNC dari berbagai pandangan (sudut pandang pengguna, atas, depan, dan samping), dibuat 4 window yang merupakan child-window dari window utama, seperti dilihat pada gambar berikut:
Gambar 3.7 Tampilan model CNC dalam berbagai sudut pandang Untuk memilih window mana yang akan dijadikan tampilan utama, pengguna dapat menggunakan tombol-tombol yang telah disediakan. Windows itu sendiri dapat diperbesar dan diperkecil sesuai keperluan. Selain itu, gerakan suatu objek 30
dapat dilihat dari berbagai pandangan secara bersamaan, sehingga pengguna dapat mengendalikan posisi objek kendalian dengan lebih mudah. Untuk mengatur ukuran model 3-D dalam masing-masing window, disediakan tombol ‘Fit Width’. Untuk men-zoom, disediakan sebuah control trackbar dan dua tombol, masing masing untuk zoom-in dan zoom-out. Hanya window yang sedang aktif saja yang akan diperbesar dan diperkecil oleh control ini.
Gambar 3.8 Kontrol untuk memperbesar dan memperkecil grafik 3-D b. Mengontrol gerakan mesin CNC dengan 7 derajat kebebasan Dalam rangka mengendalikan mesin CNC dengan tujuh derajat kebebasan, disediakan dua bentuk perintah, yaitu dengan memakai tampilan grafik 3-D atau langsung memerintahkan suatu motor bergerak ke arah yang ditentukan. Untuk lebih jelasnya dapat kita lihat diagram alir berikut:
31
Gambar 3.9 Diagram alir perintah menggerakkan mesin CNC Pertama, jika pengguna ingin memakai tampilan grafik 3-D, disediakan tujuh control NumericUpDown yang masing-masing mengendalikan tujuh derajat kebebasan mesin CNC, yaitu: No
Controls
Gerakan
1.
nudSampingX
Translasi pada sumbu X (pinggir)
2.
NudSampingY
Translasi pada sumbu Y (pinggir)
3.
NudSampingZ
Translasi pada sumbu Z (pinggir)
4.
nudTengahHrz
Translasi pada jari-jari lingkaran (tengah atas)
5.
nudTengahVert
Translasi pada sumbu Z (tengah atas)
6.
NudRotasiBawah
Rotasi bawah
7.
NudRotasiAtas
Rotasi atas
Tabel 3.2 Kontrol Windows Untuk mengendalikan mesin CNC Nilai pada masing-masing control NumericUpDown diterjemahkan menjadi nilai posisi pada grafik 3-D dan nilai tujuan enkoder. Yang perlu 32
diperhatikan
adalah
nilai
maksimum
dan
minimum
masing-masing
NumericUpDown harus diatur agar perangkat lunak tidak memberikan perintah di luar batas fisik mesin CNC. Jika pengguna menggerakkan salah satu objek pada grafik 3-D, maka pengguna dapat melihat pergerakan objek tersebut pada keempat window secara bersamaan. Hal ini akan meningkatkan ketelitian posisi yang dituju. Untuk menghentikan gerakan motor walaupun belum mencapai posisi yang diinginkan, disediakan tombol ‘STOP ALL’. Kedua, jika pengguna ingin menggerakkan motor tanpa melihat tampilan grafik 3-D terlebih dahulu, disediakan tombol ‘STEP LEFT’ dan ‘STEP RIGHT’. Untuk menghentikan gerakan motor, disediakan tombol ‘STEP OFF’. Sebelum memberi perintah STOP LEFT atau STOP RIGHT, pengguna harus menentukan dahulu motor mana yang ingin digerakkan, dengan memilih control RadioButton1 – RadioButton7. Control RadioButton ini berguna untuk menentukan address yang akan dikirim ke salah satu driver motor. Perintah yang diberikan kepada motor adalah berdasarkan address ini. c. Mempresentasikan nilai posisi dari objek. Nilai posisi dari objek yang akan dikendalikan adalah nilai enkoder, nilai satuan panjang dan nilai satuan sudut. Untuk itu perlu dilakukan perhitungan perbandingan perubahan nilai enkoder dengan perubahan nilai satuan panjang atau nilai satuan sudut. Hasil perhitungan perbandingan dapat dilihat pada Bab IV. Di samping itu, diperlukan juga perhitungan perbandingan antara ukuran pada grafik 3-D dengan ukuran sebenarnya. Hal ini penting karena posisi pada grafik merepresentasikan posisi objek sebenarnya. Posisi mesin CNC yang sedang bergerak dapat ditampilkan pada grafik 3D, dengan mengatur perbandingan antara ukuran sebenarnya dengan ukuran pada grafik. Untuk itu, enkoder mengirim data terus menerus kepada komputer dengan cara mengaktifkan timer1. Nilai enkoder tersebut akan menset nilai posisi objek pada grafik 3-D. Pengguna dapat memilikih untuk mengaktifkan timer ini atau tidak. 33
d. mengatur kecepatan motor Mengatur kecepatan motor, dilakukan dengan mengatur nilai control HScrollBar1. Nilai ini kemudian akan dikirim oleh sebagai nilai kecepatan motor stepper. Kecepatan dapat diubah tanpa menghentikan motor terlebih dahulu. e. Mengatur posisi grafik 3-D pada setiap window. Pengaturan posisi grafik 3-D pada masing-masing window bertujuan untuk memudahkan pengguna melihat setiap posisi objek kendalian secara detil, sebagai representasi
posisi
sebenarnya.
Untuk
itu
disediakan
empat
control
NumericUpDown dan satu tombol Fit Width, berguna untuk mengatur posisi objek pada windows grafik. Control tersebut berguna untuk mengatur posisi grafik, sehingga memudahkan pengguna dalam melihat suatu objek dalam grafik.
3.2.3 Perancangan Komunikasi Data Antara Komputer dengan CNC Komunikasi serial ini akan mengirimkan perintah yang telah disepakati dengan mikrokontroller. Komputer akan mengirimkan 4 byte kepada mikrontroler. Dengan byte pertama adalah berupa alamat dari mikrokontroler yang dituju, byte kedua adalah instruksi yang diinginkan, byte ketiga adalah data1 dan byte keempat adalah data2 Komunikasi ini harus mampu membedakan mikrokontroler yang mana diperintah sehingga mikrokontroller yang tidak diperintah tidak menjalankan perintah dari komputer. Sehingga masing-masing mikrokontroler memiliki address yang unik. Dengan address yang unik ini dan MPCM, banyak mikrokontroller dapat berkomunikasi dengan komputer namun hanya satu yang menjalankan perintah dari komputer. Komunikasi MPCM membuat semua mikrokontroler dari setiap sumbu menjadi slave.
34
Gambar 3.10 Diagram Komunikasi Komputer dengan tujuh buah mikrokontroler Urutan operasi dari komputer terhadap mikrokontroller adalah : 1. Mengatur komunikasi serial agar dapat mengirimkan data address ke mikrokontroller. Aktifkan port serial yang digunakan. Agar komputer dapat mengirimkan 8 bit data yang berupa address yang ingin diakses, 1 bit parity berupa Mark dan 1 bit stop. 2. Agar komputer dapat mengirimkan perintah dan data, komunikasi serial diubah menjadi 8 bit data, 1 bit parity berupa Space dan 1 bit stop. 3. Komputer mengirimkan 1 byte perintah dan 2 byte data yaitu data1 dan data2. 4. Mikrokontroller akan merespons dengan mengirimkan data berupa 2 byte kepada komputer
35
Berikut instruksi yang diberikan oleh komputer kepada modul kontroller: INSTRUKSI
NILAI BYTE
DESKRIPSI
RESPONS
TEST COM
0
test komunikasi serial
Ok
MOVE LEFT
1
gerakan motor stepper ke kiri
Ok
MOVE RIGHT
2
gerakan motor stepper ke kanan
Ok
STOP STEP
3
Ok
MOVE ZERO
4
motor stepper berhenti bergerak ke kiri dan berhenti bila optocoupler zero on dan clear counter ,selanjutnya periksa status zero A
SET LOW POS
5
set low byte dari posisi tujuan
Ok
set high byte dari posisi tujuan bergerak ke kiri dan berhenti bila posisi <= counter encoder
Ok
SET HIGH POS
6
MOVE LEFTC
7
MOVE RIGHTC
8
ISRICH
9
selanjutnya periksa status RICHPOS bergerak ke kanan dan berhenti bila posisi >= counter encoder selanjutnya periksa status RICHPOS mengecek status posisi tercapai atau belum .cek RICHPOS
READZEROA
10
read status zero A
READZEROB
11
read status zero B
CLEARENC
12
clear nilai counter dari encoder
READLOWENC
13
read low part counter dari encoder
READHIGHENC
READALLSTAT
14
15
read high part counter dari encoder
baca input status
Tabel 3.3 Instruksi Komputer – Modul Kontroler NC Drill
36
Ok
Ok
Ok
Ok DBUF1 = $FF if zero DBUF1 = 0 if not zero DBUF2 = 0 DBUF1 = $FF if zero DBUF1 = 0 if not zero DBUF2 = 0 Ok DBUF1 = low byte DBUF2 = high byte DBUF1 = low byte DBUF2 = high byte DBUF1 = low byte DBUF2 = high byte
data data data data data data
Gambar 3.11 Diagram alir serial
37