21 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:
Gambar 3.1 Mesin CNC yang akan dikendalikan
Adapun urutan pengerjaan perangkat lunak Graphic User Interface untuk mesin CNC ini adalah sebagai berikut:
23
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 komponen-komponen 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.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:
25
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
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 :
27
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 Sumbu
User Control
Grid
View Port 3-D
View Port 3-D
Camera Model Visual
3-D Model Visual 3-D Content Model 3-D Model 3-D Group Model 3-D Group Model 3-D Group Model 3-D Group
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 :
29
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 : <TranslateTransform3-D x:Name="samping_4" OffsetX="-0.180" OffsetY="-1.415357232093811" OffsetZ="0.79312461614608765"/>
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 End Set End Property
Property di atas untuk mengatur nilai OffsetY pada berbagai objek. Kemudian property itu dikendalikan dengan control NumericUpDown. Contohnya:
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
Private Sub nudSampingZ_ValueChanged(ByVal sender As_
System.Object, ByVal e As System.EventArgs) Handles_
nudSampingZ.ValueChanged
ModelUser.UserControl11.samping_Z = nudSampingZ.Value
31
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:
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
33
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 3-D, 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.
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.
35
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
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 motor stepper berhenti Ok
MOVE ZERO 4
bergerak ke kiri dan berhenti bila optocoupler
zero on Ok
dan clear counter ,selanjutnya periksa status zero A
SET LOW POS 5 set low byte dari posisi tujuan Ok
SET HIGH POS 6 set high byte dari posisi tujuan Ok
MOVE LEFTC 7
bergerak ke kiri dan berhenti bila posisi <=
counter encoder Ok
selanjutnya periksa status RICHPOS
MOVE RIGHTC 8
bergerak ke kanan dan berhenti bila posisi >=
counter encoder Ok
selanjutnya periksa status RICHPOS
ISRICH 9
mengecek status posisi tercapai atau belum .cek
RICHPOS Ok
READZEROA 10 read status zero A
DBUF1 = $FF if zero DBUF1 = 0 if not zero DBUF2 = 0 READZEROB 11 read status zero B
DBUF1 = $FF if zero DBUF1 = 0 if not zero DBUF2 = 0
CLEARENC 12 clear nilai counter dari encoder Ok
READLOWENC 13 read low part counter dari encoder
DBUF1 = data
low byte
DBUF2 = data
high byte
READHIGHENC 14 read high part counter dari encoder
DBUF1 = data
low byte
DBUF2 = data
high byte
READALLSTAT 15 baca input status
DBUF1 = data
low byte
DBUF2 = data
high byte Tabel 3.3 Instruksi Komputer – Modul Kontroler NC Drill
37