i
TUGAS AKHIR
SISTEM PENGENDALI DAN MONITORING OTOMASI TAKARAN DOSIS OBAT SERBUK
( PUYER ) BERBASIS PLC
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh :
DANIEL WIKI PRATOMO
NIM : 085114016
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2011
ii
FINAL PROJECT
CONTROLLING AND MONITORING SYSTEM THE AUTOMATION OF DOSE DRUG POWDERS
(PUYER) USING PLC
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
By :
DANIEL WIKI PRATOMO
NIM : 085114016
ELECTRICAL ENGINEERING STUDY PROGRAM
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2011
iii
iv
v
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO :
HIDUP adalah PROSES ....
Manusia wajib berusaha dan berdoa
Biarlah Tuhan yang menentukan
hasil akhirnya…
Skripsi ini kupersembahkan untuk ..............
Tuhan Yesus atas semua berkat dan talenta
yang diberikan – Nya
Bapak, Ibu, kakak, dan adikku tercinta
vii
viii
INTISARI
Pada masa sekarang ini, hampir semua proses penakaran dosis obat serbuk di rumah sakit ataupun apotik menggunakan sendok takar. Hal ini dapat menyebabkan pembagian dosis menjadi tidak sama rata dalam setiap takarannya. Oleh karena itu, dibutuhkan suatu Alat Penakar Obat Serbuk Otomatis dengan suatu sistem yang dapat mengawasi dan mengendalikan proses penakaran dosis obat serbuk secara keseluruhan dengan harga terjangkau. Tugas akhir ini meneliti program pada sistem Alat Penakar Obat Serbuk otomatis tersebut.
Sistem pengendali dan monitoring pada Alat Penakar Obat Serbuk menggunakan sebuah komputer, dan didalamnya terdapat program Visual Basic 6.0 yang bekerjasama dengan program ladder pada PLC OMRON CPM2A. Program Visual Basic berfungsi untuk mengaktifkan program ladder di dalam PLC, menampilkan perubahan berat yang terjadi pada tampungan obat serbuk, serta menyimpan dan mengolah data hasil proses produksi Alat Penakar Obat Serbuk. Program ladder PLC berfungsi untuk mengendalikan keseluruhan hardware dan mengirimkan data hasil pembacaan perubahan berat dari MAD01 kepada komputer. CPM1A-MAD01 merupakan perangkat Analog to Digital Converter dari OMRON yang digunakan untuk mengubah data keluaran load-cell pada tampungan obat serbuk.
Penelitian ini sudah berhasil menghasilkan suatu software pengendali dan monitoring pada hardware Alat Penakar Obat Serbuk, tetapi pembagian dosis secara akurat belum tercapai. Nilai rata-rata akurasi pembagian yang didapatkan sistem adalah sebesar 16,455 %. Hal ini dipengaruhi oleh nilai kesalahan (galat) yang diakibatkan karena keterbatasan MAD01, dan munculnya tegangan ekstrem yang tidak terbaca oleh multimeter digital pada input MAD01. Kecepatan rata-rata sistem dalam memproduksi 1 gelas takar berisi obat serbuk adalah 41,05 detik. Hal ini dipengaruhi oleh waktu pengiriman dari kecepatan meja putar dan lama proses pada setiap station. Didalam proses secara keseluruhan tidak ada kesalahan dalam pengiriman, penerimaan, dan pengubahan data antara PLC dengan komputer. Kata Kunci : obat serbuk (puyer), Visual Basic 6.0, PLC, load-cell
ix
ABSTRACT
At the present time, almost all of the dose drug powder dosing process in the hospital or pharmacies are using TSP medicine spoon. These things can cause the distribution for every dose is not equal in any proportion. Therefore, an Automatic of Dosing Dose Drugs Powder Devices with a system which can controlling and monitoring all of the dosing process for the drugs powder and have a reasonable price is needed. This Final Project is doing research about the program in the Automatic of Dosing Dose Drugs Powder Devices system.
Controlling and monitoring system in the Automatic of Dosing Dose Drugs Powder Devices is using a computer, and there is a Visual Basic 6.0 program which cooperate with ladder program from PLC OMRON CPM2A in it. Visual Basic program is used for activating ladder program in the PLC, displaying the weight changes that occur in drug powder storage tank, also storing and processing data from the production process of the Dosing Drugs Powder Devices. The ladder program in the PLC is used for controlling all of the hardware equipment and sends the weight changes readings data from MAD01 to the computer. CPM1A-MAD01 is an Analog to Digital Converter devices which is used for changing the data from the load-cell output on the drug powder storage tank.
This research has been succeeded in producing a controlling and monitoring software program for the Dosing Drugs Powder Devices hardware, but the accuracy in dose distribution has not been achieved. The average accuracy distribution value of the system is 7,99 %. These thing was influenced by the error value that caused by the limitation of MAD01, and the emerged of extreme voltage that cannot read by the digital multimeter on the MAD01 input terminal. The time that the system needs to produce 1 TSP medicine cup that contains the drug powder is 41,05 seconds. This was influenced by the sending time from the speed of the turn-table and processing time on every station. In the overall process there was no error in sending, receiving, and converting data between PLC with the computer. Keywords: drugs powder (puyer), Visual Basic 6.0, PLC, load-cell
x
KATA PENGANTAR
Puji syukur kepada Bapa di surga atas segala berkat dan kasih karunia-Nya yang
tiada akhir, sehingga penulis dapat menyelesaikan skripsi yang berjudul SISTEM
PENGENDALI DAN MONITORING OTOMASI TAKARAN DOSIS OBAT SERBUK
(PUYER) BERBASIS PLC dengan baik. Tugas Akhir ini disusun sebagai salah satu syarat
untuk memperoleh gelar Sarjana Teknik.
Penulisan tugas akhir ini dapat terselesaikan berkat bantuan dari berbagai pihak
yang telah memberikan dukungan dengan cara tersendiri. Oleh karena itu, pada
kesempatan ini penulis ingin menyampaikan ucapan terima kasih yang sebesar-besarnya
kepada :
1. Ibu B. Wuri Harini, S.T, M.T. sebagai dosen pembimbing yang telah bersedia
memberikan ide, saran, semangat, kesabaran, bimbingan dan waktu bagi penulis
dalam menyelesaikan tugas akhir.
2. Bpk Martanto, S.T, M.T yang telah menyempatkan waktu untuk singgah ke ruang
TA, membagikan pengalamannya, dan memberikan tips-tips yang berguna bagi
penelitian tugas akhir ini.
3. Ibu Wiwien Widyastuti, S.T, M.T dan Dr. Linggo Sumarno, M.T selaku dosen
penguji yang bersedia memberikan pendapat mengenai tugas akhir ini, sehingga
menambah pengetahuan dan memicu penulis agar lebih baik lagi.
4. Bapak dan Ibu dosen pengajar Prodi Teknik Elektro Universitas Sanata Dharma
untuk bimbingan dan pengajarannya selama penulis menuntut ilmu, juga segenap
Staf dan Karyawan Fakultas Sains dan Teknologi yang membantu dalam bidang
administrasi dan akademis.
5. Alm. Theodorus Guntomo dan M.K Widayati selaku orangtua penulis yang telah
membesarkan, mendidik, mendoakan, memberikan cinta kasih, serta memberikan
kesempatan untuk mengenal nilai-nilai kehidupan ini. Mereka merupakan anugerah
terhebat yang diberikan oleh Tuhan.
6. Kakakku terhebat dan adikku tersayang : Mas Wibi dan Wini. Terimakasih atas
semua doa, dukungan, dan tawa-canda yang kita lalui bersama.
7. Om Pur dan bulik Wiji, selaku Wali orangtua yang telah memberikan tempat
tinggal, doa, dukungan, dan kasih sayang kepada penulis selama menuntut ilum di
Yogyakarta.
xi
8. Eko Arianto selaku teman satu tim TA dan Nando teman sependeritaan dalam
proses tugas akhir. Terimakasih atas semua kerjasama, bantuan, hiburan, dan
perdebatan selama proses pembuatan tugas akhir di lab TA.
9. Seluruh Laboran TE : Pak Hardi, Mas Broto, Mas Soer, dan Mas Mardie.
Terimakasih atas semua bantuan dan dukungannya selama di Laboratorium.
10. Seluruh angkatan di program studi Elektro, terutama angkatan 2006 dan 2008.
Terimakasih atas dukungan dan kebersamaannya selama ini.
11. Semua pihak yang tidak dapat disebutkan satu persatu di sini, atas perhatian,
kebaikan dan bantuannya kepada penulis.
Penulis dengan penuh kesadaran memahami bahwa dalam penelitian dan penulisan
tugas akhir ini terdapat banyak kekurangan. Oleh karena itu, sumbang saran yang bersifat
membangun dari pembaca sangat diharapkan demi kebaikan dan kemajuan penelitian tugas
akhir ini. Akhirnya penulis berharap semoga tugas akhir ini dapat bermanfaat bagi
pembaca khususnya dan dunia elektronika umumnya.
Yogyakarta, 26 Januari 2011
(Daniel Wiki Pratomo )
xii
DAFTAR ISI
HALAMAN JUDUL (Bahasa Indonesia)................................................................. i
HALAMAN JUDUL (Bahasa Inggris) ..................................................................... ii
HALAMAN PERSETUJUAN .................................................................................. iii
HALAMAN PENGESAHAN ................................................................................... iv
PERNYATAAN KEASLIAN KARYA .................................................................... v
HALAMAN PERSEMBAHAN ................................................................................ vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIA H .... ix
INTISARI ................................................................................................................. vii
ABSTRACT................................................................................................................ viii
KATA PENGANTAR .............................................................................................. x
DAFTAR ISI ............................................................................................................ xii
DAFTAR GAMBAR ................................................................................................ xv
DAFTAR TABEL ..................................................................................................... xvii
BAB I PENDAHULUAN .......................................................................................... 1
1.1 Latar Belakang ................................................................................................ 1
1.2 Tujuan dan Manfaat Penelitian ....................................................................... 2
1.3 Batasan Masalah.............................................................................................. 3
1.4 Metodologi Penelitian ..................................................................................... 3
1.5 Sistematika Penulisan...................................................................................... 3
BAB II DASAR TEORI ............................................................................................ 4
2.1 Timbangan Digital .......................................................................................... 4
2.2 Port Serial ....................................................................................................... 5
2.3 PLC (Programmable Logic Controller) ........................................................... 7
2.3.1 PLC Omron CPM2A .............................................................................. 8
2.3.2 Komunikasi Host Link (HLC) pada PLC................................................. 11
2.3.3 Memori pada PLC CPM2A..................................................................... 14
2.4 Pemrograman Visual Basic 6.0........................................................................ 15
2.4.1 Mengenal Integrated Development Environment (IDE) VB 6.................. 15
2.4.2 Pengaksesan Port Serial pada Visual Basic ............................................. 16
2.4.3 Pembuatan Aplikasi Database dengan Microsoft Access ........................ 17
2.5 Modul Analog Digital (CPM1A-MAD01) ....................................................... 18
xiii
BAB III RANCANGAN PENELITIAN ................................................................... 21
3.1 Alat Penakar Dosis Obat Serbuk...................................................................... 21
3.2 Sistem Komunikasi Antar Muka (interface)..................................................... 23
3.2.1 Pengolahan Data pada PLC..................................................................... 24
3.2.2 Pengolahan Data pada PC....................................................................... 25
3.3 Pemrograman Visual Basic 6.0........................................................................ 26
3.3.1 Form LOGIN.......................................................................................... 27
3.3.2 Form PROSES Monitoring..................................................................... 28
3.3.3 Form CETAK dan LOGOUT ................................................................. 30
3.3.4 Pemrograman Database.......................................................................... 31
3.4 Pemrograman PLC Omron CPM2A ................................................................ 31
3.4.1 Proses Penurunan Gelas Takar (Station 1)............................................... 32
3.4.2 Proses Pengisian Gelas Takar (Station 2) ................................................33
3.4.3 Proses Pengambilan Gelas Takar (Station 3) ........................................... 35
3.4.4 Proses Penyimpanan Gelas Takar (Station 4) .......................................... 35
BAB IV HASIL DAN PEMBAHASAN .................................................................... 38
4.1 Pembahasan pada Pemrograman Visual Basic 6.0 ........................................... 38
4.1.1 Pengamatan pada SPLASH Form ........................................................... 38
4.1.2 Pengamatan pada Form LOGIN.............................................................. 39
4.1.3 Pengamatan pada Form PROSES ........................................................... 42
4.1.4 Pengamatan pada Form CETAK ............................................................ 47
4.1.5 Pengamatan pada Form Tampilan Laporan (CRViewer).......................... 48
4.2 Analisa pada Pemrograman PLC Omron CPM2A............................................ 49
4.3 Analisa Pengubahan Data pada CPM1A-MAD01............................................ 56
4.4 Pengujian Proses Komunikasi PC dan PLC ..................................................... 57
4.5 Analisa dan Pengamatan Data Pengujian ......................................................... 59
4.5.1 Pengujian Sampel Berat Obat ................................................................ 59
4.5.2 Pengujian Tampilan Tegangan Output Load-cell.................................... 60
4.5.3 Pengujian Software terhadap Hardware.................................................. 62
4.5.4 Pengujian Kinerja Hardware.................................................................. 67
BAB V KESIMPULAN DAN SARAN ..................................................................... 69
5.1 Kesimpulan ..................................................................................................... 69
5.2 Saran............................................................................................................... 69
xiv
DAFTAR PUSTAKA ............................................................................................... 70
LAMPIRAN ............................................................................................................. 71
PENGAMBILAN DATA OUTPUT LOAD-CELL SAAT POWER SUPPLY POSISI
TIDAK AKTIF .................................................................................................... L1
PENGAMBILAN DATA OUTPUT LOAD-CELL SAAT POWER SUPPLY POSISI
AKTIF ................................................................................................................. L2
LISTING PROGRAM PLC.................................................................................. L3
LISTING PROGRAM VB ................................................................................... L4
LAMPIRAN FORM 1.......................................................................................... L4.1
LAMPIRAN FORM 2.......................................................................................... L4.8
LAMPIRAN FORM 3.......................................................................................... L4.62
xv
DAFTAR GAMBAR
Gambar 1.1 Rangkaian Sederhana dari load-cell [2]................................................. 5
Gambar 2.2 Konektor Serial DB-9 pada bagian belakang CPU [5] ........................... 6
Gambar 2.3 PLC Omron CPM2A [8] ....................................................................... 8
Gambar 2.4 Ilustrasi mengenai 1-1 communication [8 & 9]...................................... 11
Gambar 2.5 Pemodelan ”paket data” atau frame pada proses komunikasi 1-1........... 12
Gambar 2.6 Pemodelan ”paket data” atau frame yang dikirimkan oleh PC ............... 12
Gambar 2.7 Pemodelan ”paket data” atau frame yang diterima oleh PLC................. 12
Gambar 2.8 Tampilan IDE Visual Basic 6.0............................................................. 15
Gambar 2.9 Membuka Jendela VisData.................................................................... 17
Gambar 2.10 Lokasi Penyimpanan Database..............................................................18
Gambar 2.11 Ilustrasi masukan / keluaran pada MAD01............................................ 18
Gambar 3.1 Rancangan Alat Penakar Obat Serbuk Otomatis.................................... 22
Gambar 3.2 Blok Diagram Alat Penakar Obat Serbuk Otomatis ............................... 23
Gambar 3.3 Jalur Komunikasi Alat Takar Dosis Obat Serbuk .................................. 24
Gambar 3.4 Diagram Alir Program pada PC ............................................................ 27
Gambar 3.5 Rancangan Tampilan Form LOGIN...................................................... 27
Gambar 3.6 Diagram Alir Subrutin Form LOGIN ................................................... 28
Gambar 3.7 Diagram Alir Subrutin Form PROSES Monitoring ............................... 29
Gambar 3.8 Rancangan Tampilan Form PROSES.................................................... 29
Gambar 3.9 Rancangan Tampilan Form CETAK dan LOGOUT.............................. 30
Gambar 3.10 Diagram alir subrutin Form CETAK dan LOGOUT.............................. 30
Gambar 3.11 Diagram alir proses produksi secara umum ........................................... 32
Gambar 3.12 Diagram alir subrutin proses Station 1................................................... 33
Gambar 3.13 Diagram alir subrutin proses Station 2................................................... 34
Gambar 3.14 Diagram alir subrutin proses Station 3................................................... 35
Gambar 3.15 Diagram alir subrutin proses Station 4................................................... 36
Gambar 4.1 Tampilan awal mulainya program berjalan (SPLASH Form) ................. 39
Gambar 4.2 Tampilan pertama form LOGIN bagi semua pengguna .......................... 40
Gambar 4.3 Tampilan kedua dari form LOGIN bagi administrator............................ 41
Gambar 4.4 Tampilan awal dari Form PROSES....................................................... 42
Gambar 4.5 Tampilan Pembacaan Berat Total dan Lampu Indikator ........................ 43
xvi
Gambar 4.6 Tampilan contoh pengisian data sebelum proses produksi ..................... 44
Gambar 4.7 Tampilan dimulainya proses produksi pada sistem................................ 45
Gambar 4.8 Contoh perubahan tampilan pada frame monitoring obat....................... 46
Gambar 4.9 Contoh perubahan tampilan pada frame indikator.................................. 46
Gambar 4.10 Tampilan berakhirnya proses produksi pada sistem............................... 47
Gambar 4.11 Tampilan akhir dari form CETAK dan LOGOUT.................................. 48
Gambar 4.12 Tampilan print preview laporan hasil proses produksi ........................... 49
Gambar 4.13 Tampilan program ladder sebelum dilakukan pengujian .......................50
Gambar 4.14 Tampilan program ladder saat dilakukan pengujian .............................. 50
Gambar 4.15 Pengujian channel ON_OFF untuk komunikasi sesaat .......................... 51
Gambar 4.16 Pengujian channel ON_OFF untuk komunikasi monitoring.................. 52
Gambar 4.17 Pengujian perpidahan gelas takar menuju tempat pengisian................... 53
Gambar 4.18 Pengujian proses pengisian gelas takar.................................................. 53
Gambar 4.19 Pengujian proses penutupan output solenoid 2 ...................................... 54
Gambar 4.20 Pengujian proses penghentian gelas takar.............................................. 54
Gambar 4.21 Pengujian proses penyimpanan gelas takar............................................ 55
Gambar 4.22 Pengujian input channel untuk me-reset program ladder....................... 55
Gambar 4.23 Tampilan pengamatan port serial monitor ............................................. 57
Gambar 4.24 Pengiriman data pada saat komunikasi sesaat........................................ 58
Gambar 4.25 Pengiriman data pada saat komunikasi monitoring................................ 59
Gambar 4.26 Pembacaan tegangan (a), berat hasil penakaran (b), dan berat pada setiap
gelas takar (c) ...................................................................................... 66
xvii
DAFTAR TABEL
Tabel 2.1 Konfigurasi pin dan nama sinyal konektor serial DB-9 [4]......................... 6
Tabel 2.2 Tabel indikator status pada PLC CPM2A .................................................. 9
Tabel 2.3 Contoh header code PLC CPM2A............................................................. 13
Tabel 2.4 Contoh end code PLC CPM2A.................................................................. 13
Tabel 2.5 Spesifikasi masukan MAD01..................................................................... 19
Table 2.6 Spesifikasi keluaran MAD01..................................................................... 19
Tabel 2.7 Alokasi IR pada MAD01 ........................................................................... 19
Tabel 2.8 Alokasi channel pada MAD01................................................................... 20
Tabel 2.9 Setting range MAD01 ............................................................................... 20
Tabel 3.1 Penyimpanan Data pada Memori Baca / Tulis PLC.................................... 25
Tabel 3.2 Penggunaan memori HR............................................................................ 25
Tabel 3.3 Macam-macam penulisan command frame pada PC .................................. 26
Tabel 3.4 Tabel rancangan Database......................................................................... 31
Tabel 3.5 Tabel pengalamatan Input pada PLC ......................................................... 37
Tabel 3.6 Tabel pengalamatan Output pada PLC....................................................... 37
Tabel 4.1 Daftar identitas pengguna pada saat program pertama kali dijalankan........ 40
Tabel 4.2 Hasil konversi data analog ke dalam tampilan program.............................. 56
Tabel 4.3 Batasan konversi tegangan 0 s/d 10 Volt pada MAD01.............................. 57
Tabel 4.4 Sampel berat obat untuk pengujian load-cell.............................................. 59
Tabel 4.5 Pengujian Tampilan Tegangan Load-cell pada program VB ...................... 60
Tabel 4.6 Tabel tegangan rata-rata pada program VB................................................ 61
Tabel 4.7 Tabel Interpretasi r Product Moment [13] .................................................. 62
Tabel 4.8 Nilai Kesalahan Tampilan Berat di VB terhadap Sampel Obat................... 63
Tabel 4.9 Pembacaan Tegangan Pengujian Software terhadap Hardware.................. 64
Tabel 4.10 Hasil Tampilan Berat Total pada Software terhadap Hardware.................. 64
Tabel 4.11 Nilai Kesalahan dan Akurasi Pembagian Dosis Obat Serbuk ..................... 67
Tabel 4.12 Data Kecepatan Proses Produksi pada Sistem ............................................ 68
1
BAB I PENDAHULUAN
1.1. Latar Belakang
Sampai saat ini, penggunaan obat serbuk atau puyer masih diminati oleh
masyarakat Indonesia karena beberapa faktor, antara lain : harganya relatif lebih murah
daripada jenis obat lainnya, lebih mudah untuk dikonsumsi, serta mempermudah dokter
dalam menyesuaikan dosis obat serbuk tersebut berdasarkan ukuran berat badan sang
pasien. Obat serbuk ( puyer ) disarankan oleh dokter atau sang apoteker, terutama bagi para
pasien yang mengalami kesulitan dalam mengkonsumsi obat tablet atau kapsul, seperti
pasien anak-anak atau pasien lanjut usia.
Dewasa ini, di saat permintaan obat puyer mulai meningkat, kualitas dari obat
puyer tersebut justru mengalami penurunan. Hal ini disebabkan banyaknya apotik maupun
rumah sakit melakukan pembuatan obat puyer secara manual, yaitu dengan menggunakan
sendok takar. Selain memakan banyak waktu dalam proses pembuatannya, cara manual
juga dapat menghasilkan takaran obat yang kurang akurat dalam proses pembagiannya.
Pada beberapa kasus yang terjadi di Indonesia, contohnya di sebuah rumah sakit
terkemuka di Jakarta masih sering sekali dijumpai resep puyer untuk anak. Setiap hari rata-
rata apotek di rumah sakit tersebut membuat 130 resep puyer untuk memenuhi permintaan
resep dokter. Kelemahan yang ada pada peresepan puyer di rumah sakit ini, salah satunya
adalah kesalahan menimbang obat atau membagi puyer dalam porsi–porsi yang tidak sama
besar. Hal ini berarti bahwa kontrol kualitas pembuatan obat puyer sulit sekali untuk dapat
dilaksanakan [1]. Hal ini bisa saja menjadi dampak yang sangat berbahaya, mengingat
bahwa ini mengenai ukuran dosis obat. Sedikit saja kelebihan takaran atau dosis dapat
berakibat fatal bagi para penggunanya.
Berdasarkan uraian di atas, penulis ingin membuat suatu alat penakar atau pembagi
dosis obat puyer yang bekerja secara otomatis. Pada sistem secara keseluruhan, alat ini
bekerja dengan menggunakan komputer dan PLC (Programmable Logic Controller)
sebagai pengontrol perangkat kerasnya (hardware). Alat ini dilengkapi dengan timbangan
digital yang mempunyai tingkat ketelitian sampai dengan 0,1 mg agar dapat melakukan
pembagian dosis secara akurat, juga disertai katup solenoid sebagai pengontrol keluarnya
serbuk obat ke tempat takar berupa gelas plastik. Gelas plastik yang berperan sebagai
tempat takar hasil pembagian dosis, mempermudah apoteker untuk langsung melakukan
2
pengemasan obat puyer karena dapat langsung menuang isi dalam gelas tersebut ke dalam
kertas pembungkus obat atau kertas perkamen.
Pada kesempatan ini, penulis hanya menitikberatkan sistem PLC (Programmable
Logic Controller), sebagai pengontrol hardware alat penakar otomatis dosis obat serbuk
ini. Alasan penulis menggunakan PLC sebagai pengontrol, karena PLC menggunakan
bahasa pemrograman yang lebih mudah dipahami oleh para teknisi pada umumnya, dan
lebih mudah diprogram ulang jika ingin melakukan pengembangan lebih lanjut pada alat
penakar dosis obat serbuk otomatis ini. PLC juga mempunyai kecepatan, keakurasian data,
dan lebih handal ketimbang sistem pengontrol lainnya seperti mikrokontroller.
1.2. Tujuan dan Manfaat Penelitian
Tujuan penelitian ini adalah menghasilkan suatu alat penakar dosis obat serbuk
(puyer) yang bekerja secara otomatis, cepat, dan mempunyai keakuratan tinggi sehingga
dapat meningkatkan kualitas dari proses produksi obat puyer. Manfaat dari penelitian ini
adalah :
1. apoteker dapat terbantu dalam pembagian takaran dosis obat serbuk agar sama rata.
2. mengurangi rasa khawatir pasien mengenai sama atau tidaknya setiap takaran obat
yang akan dikonsumsi.
3. membantu apotik maupun rumah sakit dalam mendapatkan alat takar otomatis
dengan biaya relatif lebih murah.
1.3. Batasan Masalah
Penelitian ini dibatasi pada penggunaan PLC dalam pengontrol katup solenoid,
pengontrol meja berputar dimana gelas takar diletakkan, juga interface antara PLC dan
komputer, dan pembuatan program PLC keseluruhan sistem. Batasan Masalah dalam
penelitian ini :
a. Penggunaan program Visual Basic 6.0 sebagai program komunikasi, monitoring,
serta proses data.
b. Menggunakan PLC CPM2A sebagai pengendali hardware keseluruhan sistem.
c. Komputer pengendali menggunakan sistem operasi Windows XP Profesional.
d. Manajemen database menggunakan Microsoft Access.
e. Menggunakan CPM1A-MAD01 sebagai modul Analog to Digital Converter.
f. Jumlah takaran maksimal pada setiap proses adalah 25 bagian (25 gelas takar).
3
1.4. Metodologi Penelitian
Penulisan skripsi ini menggunakan metode-metode sebagai berikut :
a. Studi kepustakaan dalam mengumpulkan literatur-literatur, gambar-gambar, dan juga
listing program.
b. Mencari berbagai informasi melalui berbagai media lain, termasuk dalam jaringan
internasional dunia maya (internet).
c. Rancangan penelitian meliputi perancangan software termasuk penentuan data-data
yang akan digunakan dalam pemrograman PLC, perancangan tampilan awal sistem
monitoring, serta perancangan diagram alir sistem monitoring keseluruhan
pengolahan data.
d. Teknik pengujian program dilakukan dengan cara pengamatan keakuratan
pengiriman data dalam proses komunikasi antara timbangan digital, PC, dan PLC.
Sedangkan pengumpulan data dilakukan dengan melihat hasil laporan data
monitoring yang dihasilkan oleh Crystal Report.
e. Analisis data dan pengambilan kesimpulan melalui perbandingan antara sistem
keseluruhan secara nyata, dengan latar belakang perancangan sistem yang
diharapkan.
1.5. Sistematika Penulisan
BAB I : PENDAHULUAN
Bab ini berisi latar belakang masalah, tujuan dan manfaat penelitian, batasan
masalah, metodologi penelitian, serta sistematika penulisan.
BAB II : DASAR TEORI
Bab ini berisi studi pustaka mengenai teori-teori yang mendasari penelitian ini.
BAB II I : RANCANGAN PENELITIAN
Bab ini berisi blok diagram sistem, diagram alir perancangan, dan rancangan
tampilan pada software.
BAB IV : HASIL DAN PEMBAHASAN
Bab ini berisi hasil perancangan, data pengujian, analisis data, dan pembahasan
data.
BAB V : KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan akhir dan saran-saran penulis mengenai sistem yang
dibuat.
4
BAB II DASAR TEORI
Dalam bab ini, penulis menguraikan tentang beberapa tinjauan pustaka sebagai
penunjang dalam melakukan penelitian, antara lain mengenai :
• ”Timbangan Digital”, meliputi pengertian mengenai load-cell yang akan digunakan
untuk input sistem ini.
• ”Port Serial”, meliputi spesifikasi standar kabel RS232, saluran sinyal data pada
konektor DB-9, dan keterangan singkat mengenai setiap pinnya.
• ”PLC (Programmable Logic Controller)”, meliputi beberapa bagian penting dalam
PLC Omron CPM2A, penjelasan jenis komunikasi serial yang digunakan (Host
Link Communication), dan sedikit pembahasan mengenai jenis memori yang
dipunyai CPM2A.
• ”Pemrograman Visual Basic 6.0”, meliputi pengenalan secara singkat mengenai
program visual basic, pengenalan Integrated Development Environment dari VB
6.0, cara pengaksesan port serial, dan pemrograman database dengan Microsoft
Access.
• ”Modul Analog Digital (MAD01)”, meliputi pengenalan singkat modul, spesifikasi
masukan dan keluaran modul, serta mengenai alokasi Internal Relay (IR).
2.1. Timbangan Digital
Pada umumnya, suatu timbangan berat digital terdiri atas : load-cell, potensiometer
digital, suatu osillator yang menghasilkan suatu frekuensi tinggi, rangkaian penguat
operasional (operational amplifier), detektor fase, null indikator, penguat beda tegangan
(differensial amplifier). Loadcell adalah sebuah sensor yang berfungsi untuk merubah gaya
tekan atau gaya tarik menjadi besaran tegangan listrik. Sebenarnya loadcell ini dibentuk
dari tranduser atau sensor tekan yang biasa disebut Strain gage. Dibentuk dengan
konfigurasi Bridge (jembatan resistansi), untuk lebih jelasnya lihat gambar 2.1.
Kedua ujung yang pertama diberi tegangan sedangkan kedua ujung lainnya sebagai
keluaran yang nantinya akan digunakan sebagai referensi masukan. Loadcell ini dibentuk
dari 4 buah strain gages dimana tiap strain gage akan mengalami perubahan resistansi bila
diberi gaya tekan. Sesuai dengan teori Bridge maka akan terjadi perubahan atau beda
5
tegangan pada tiap ujung Bridge tadi. Tapi karena perubahan tegangan output yang terjadi
akibat tekanan sangat kecil, maka untuk digunakan dalam sebuah sistem kontrol harus
dimasukkan ke dalam signal amplifier untuk dikuatkan.
Gambar 2.1 Rangkaian sederhana dari Loadcell [2]
2.2. Port Serial
Pada umumnya, standar sinyal komunikasi serial yang banyak digunakan adalah
standar RS232. Standar RS232 dikembangkan oleh Electronic Industry Association and
the Telecommunications Industry Association (EIA/TIA) dan pertama kali dipublikasikan
pada tahun 1962 [4]. Port Serial lebih sulit berkomunikasi secara langsung dengan PC
daripada port paralel, karena kebanyakan setiap alat yang dihubungkan menggunakan port
serial membutuhkan suatu IC UART (Universal Asynchronous Receiver/Transmitter)
sebagai perantara. IC UART dibuat khusus untuk mengubah data serial menjadi data
paralel ataupun sebaliknya, sehingga langsung dapat dibaca oleh PC.
Beberapa spesifikasi standar yang ditetapkan oleh EIA untuk kabel RS232 antara
lain sebagai berikut [4 & 6] :
1. Logika ‘1’ disebut ‘mark’ dengan level tegangan terletak antara -3 Volt hingga -25
Volt.
2. Logika ’0’ disebut ’space’ dengan level tegangan terletak antara +3 Volt hingga +25
Volt.
3. Daerah tegangan antara -3 Volt hingga +3 Volt adalah invalid level, yaitu daerah
tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian
juga, level tegangan lebih dari -25 Volt atau lebih positif dari +25 Volt juga harus
dihindari karena tegangan tersebut harus dihindari karena tegangan tersebut dapat
merusak line driver saluran RS232.
4. Besar arus hubung singkat pada rangkaian tidak boleh melebihi 500 mA.
6
Terdapat 2 buah jenis port serial, yaitu konektor DB 9 dan DB 25, biasanya
keduanya berupa jenis ’male’ dan terdapat pada bagian belakang dari PC. Pada komputer
IBM PC kompatibel biasanya terdapat 2 buah konektor port serial jenis DB-9 seringkali
dinamai COM1 dan COM2.
Gambar 2.2 Konektor serial DB-9 pada bagian belakang CPU [5]
Tabel 2.1 Konfigurasi pin dan nama sinyal konektor serial DB-9 [4]
Nomor
Pin Nama Sinyal Arah Keterangan
1 DCD Masuk Data Carrier Detect /
Received Line Signal Detect
2 RxD Masuk Receive Data
3 TxD Keluar Transmit Data
4 DTR Keluar Data Terminal Ready
5 GND __ Ground
6 DSR Masuk Data Set Ready
7 RST Out Request to Send
8 CTS Masuk Clear to Send
9 RI Masuk Ring Indicator
Penjelasan mengenai fungsi saluran RS232 pada konektor DB-9 adalah sebagai
berikut [4] :
1. Received Line Signal Detect, pada saluran ini DCE (Data Communication
Equipment) memberitahukan ke DTE (Data Terminal Equipment) bahwa pada
terminal masukan terdapat data masuk.
2. Receive Data, digunakan DTE menerima data dari DCE.
3. Transmit Data, digunakan DTE mengirimkan data ke DCE.
4. Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan terminalnya.
7
5. Signal Ground, saluran ground.
6. Ring Indicator, pada saluran ini DCE memberitahu DTE bahwa sebuah stasiun
menghendaki hubungan dengannya.
7. Clear to Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh mulai
mengirimkan data.
8. Request to Send, dengan saluran ini DCE diminta mengirim data oleh DTE.
9. DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap.
2.3. PLC (Programmable Logic Controller)
Richard E. Morley merupakan pendiri Modicon Corporation, sekaligus sebagai
seseorang yang pertama kali memperkenalkan Programmable Logic Controller (PLC)
pada tahun 1969. Menurut National Electrical Manufacturing Assosiation (NEMA), PLC
didefinisikan sebagai suatu perangkat elektronik digital dengan memori yang dapat
diprogram untuk menyimpan instruksi-instruksi yang menjalankan fungsi-fungsi spesifik
seperti: logika, sekuen, timing, counting, dan aritmatika, untuk mengontrol suatu mesin
industri atau proses industri sesuai dengan yang diinginkan [6]. PLC mampu mengerjakan
suatu proses terus menerus, sesuai variabel masukan dan memberikan keputusan sesuai
keinginan pemrograman, sehingga nilai keluaran tetap terkontrol.
PLC juga mampu menggantikan rangkaian sederetan relay, seringkali dijumpai
pada sistem kontrol proses konvensional. Rangkaian kontrol tersebut cukup dibuat
menggunakan software [7]. Pemasangan kabel hanya diperlukan untuk menghubungkan
peralatan input dan output. Selain itu, PLC seringkali dianggap sebagai “komputer
khusus”, yang sangat berguna untuk aplikasi dalam industri, untuk memonitor proses,
untuk menggantikan hard wiring control, serta memiliki bahasa pemrograman sendiri yang
lebih mudah dimengerti oleh teknisi.
Pada umumnya sebuah PLC memiliki 4 komponen dasar, antara lain :
1. Unit CPU (Central Processing Unit) adalah unit yang berisi mikroprosesor yang
menginterpretasikan sinyal-sinyal input dan melaksanakan pengontrolan,
mengambil keputusan dan mengirim sinyal ke antarmuka output.
2. Unit catu daya diperlukan untuk mengkonversikan sumber tegangan AC menjadi
tegangan DC (5 dan 24 volt) yang dibutuhkan CPU dan rangkaian- rangkaian di
dalam modul antarmuka input dan output.
8
3. Unit memori adalah tempat menyimpan program dan data-data dari modul
antarmuka input dan output.
4. Unit input dan output adalah antarmuka di mana prosesor menerima informasi
input dan mengirimkan informasi kontrol ke perangkat-perangkat eksternal.
2.3.1 PLC Omron CPM2A
PLC Omron CPM2A terbagi dalam beberapa tipe sesuai dengan jumlah terminal
masukan dan keluaranya. Tipe PLC OMRON CPM2A antara lain : CPM2A with 20 I/O,
CPM2A with 30 I/O, CPM2A with 40 I/O dan CPM2A with 60 I/O. Gambar 2.3
menunjukkan PLC OMRON CPM2A dengan jumlah terminal masukan dan keluarannya
30 buah.
Gambar 2.3 PLC Omron CPM2A [8]
Bagian-bagian dari PLC Omron CPM2A, antara lain [8 & 9] :
1. Power Supply Input terminal.
Gambar 2.1 diatas menunjukkan jenis PLC Omron CPM2A dengan power supply
AC berkisar antara 100-240 VAC, frekuensi 50/60 Hz. Kabel power dari terminal
R, S, atau T, pada panel kontrol dipilih salah satu, lalu dipasang pada terminal input
power supply PLC. Terminal power supply ini harus diberikan tegangan AC agar
PLC dapat bekerja.
2. Functional ground terminal (AC Power Supply Only).
Sebagai terminal tempat dipasangnya kabel menuju pentanahan (grounding) pada
panel kontrol sehingga tegangan dari sumber dapat bekerja.
3. Protective ground terminal.
9
4. External power supply terminal (AC power supplies only).
5. Input terminal.
Berfungsi sebagai terminal tempat dipasangnya semua input suatu sistem kontrol
yang akan dikontrol menggunakan PLC. Terminal input ini disertai label alamat
mulai dari 0CH00 – 0CH09 dan 1CH00 – 1CH05.
6. Output terminal.
Berfungsi sebagai terminal tempat dipasangnya kabel untuk keluaran sistem kontrol
yang akan dikendalikan oleh PLC. Terminal output ini disertai label alamat mulai
dari 10CH00 – 10CH07 dan 11CH00 – 11CH03
7. PLC status indicator.
Berupa LED berwarna hijau, merah, dan jingga berfungsi untuk menunjukkan
proses yang sedang terjadi di dalam perangkat PLC.
Tabel 2.2 Tabel indikator status pada PLC CPM2A
Indikator Status Keterangan
PWR (hijau) Menyala PLC sudah mendapat tegangan dari
sumber.
Mati PLC belum mendapat tegangan dari
sumber
RUN (hijau) Menyala PLC beroperasi pada mode RUN atau
mode MONITOR.
Mati PLC pada mode PROGRAM atau sedang
terjadi kesalahan fatal pada PLC.
ERR/ALM
(merah)
Menyala Terjadi kesalahan fatal. (PLC berhenti
beroperasi.
Berkedip Terjadi kesalahan ringan. (PLC masih
tetap beroperasi menjalankan proses)
COMM.
(oranye/jingga
Menyala Data sedang dipindahkan ke dalam
memori PLC melalui PORT
PERIPHERAL atau melalui RS-232C.
Mati Tidak ada data yang sedang dipindahkan
ke dalam memori PLC melalui PORT
PERIPHERAL atau melalui RS-232C
10
8. Input indicator.
Indikator input berupa LED berwarna hijau, akan menyala jika input terminal
mendapat sinyal masukan berupa tegangan.
Ketika terjadi suatu kesalahan fatal, maka indikator input ini akan berubah sepert
berikut :
• Terjadi kesalahan pada CPU PLC atau terjadi kesalahan pada bus input/output
PLC, maka indikator LED pada posisi mati.
• Terjadi kesalahan pada memori atau pada sistem didalam perangkat PLC, maka
indikator input tidak berubah sesuai dengan keadaan indikator sebelumnya,
walaupun ketika status input berubah.
9. Output indicator.
Indikator LED ini akan menyala, jika relay didalam PLC sedang aktif meneruskan
sinyal keluaran sesuai dengan program yang dijalankan.
10. Analog control.
11. Peripheral port.
Sebagai jalur komunikasi antara PLC dengan alat pemrogram (termasuk
Programming Console), komputer, ataupun peralatan lainnya.
12. RS-232C port.
Sebagai jalur komunikasi antara PLC dengan alat pemrogram (kecuali
Programming Console), komputer, ataupun peralatan lainnya
13. Communications switch.
Berupa sebuah saklar untuk memilih jalur komunikasi yang akan digunakan dalam
memprogram PLC, komunikasi akan dilakukan melalui port peripheral atau port
RS-232C.
14. Battery compartment.
Tempat baterai sebagai pengganti sumber energi sementara diletakkan. Baterai
tersebut akan beroperasi ketika daya dari sumber terputus, sehingga data terakhir
sudah tersimpan dalam memori.
15. Expansion connector cover.
Sistem otomatisasi di dalam PLC digunakan untuk membaca sinyal dari berbagai
tipe pendeteksi otomatis dari peralatan input maupun output. Peralatan input contohnya
adalah pushbutton, keypad, toggle switch, proximity switch, limit switch, level sensor flow
11
switch dan saklar-saklar lainnya, sedangkan peralatan output contohnya adalah motor,
selenoid valve, heater, kontaktor, lampu, buzzer dan lain sebagainya.
2.3.2 Komunikasi Host Link ( HLC ) pada PLC
Pada umumnya jenis komunikasi serial pada PLC Omron CPM2A digunakan untuk
komunikasi antara PLC dengan komputer, atau komunikasi langsung antara PLC dengan
Omron Programmable Terminal. Protokol komunikasi antara PLC dengan komputer
disebut dengan host link communnication (HLC). HLC dapat digunakan untuk 2 buah
konfigurasi yaitu komunikasi 1-1 dan komunikasi 1-n. Pada Subbab ini hanya dijelaskan
mengenai sistem komunikasi 1-1 yang akan digunakan dalam perancangan sistem.
Gambar 2.4 Ilustrasi mengenai 1-1 communication [8 & 9]
Komunikasi 1-1 merupakan suatu bentuk komunikasi dimana komputer (PC)
berperan sebagai ‘master’ yang dapat memberikan perintah, melakukan operasi baca dan
tulis pada PLC. Sedangkan PLC itu sendiri hanya berperan sebagai ‘slave’, hanya
memberikan respon terhadap perintah dari PC. Sebelumnya agar tidak terjadi overflow
pada saat pengiriman data maka kecepatan transfer data pada PC disesuaikan dengan
kecepatan transfer data pada PLC yaitu: baud rate 9600bps, 1 start bit, 7 bit data, 2 stop
bit, even parity.
Data-data yang terkirim pada proses komunikasi 1-1 berupa suatu “paket data” atau
frame, artinya berupa sekumpulan data yang telah disusun sedemikian rupa dengan
ketentuan tertentu [10]. Keterangan mengenai ketentuan yang harus diperhatikan seperti
diperlihatkan gambar 2.6 dan 2.7, pada saat pengiriman atau penerimaan “paket data”
antara lain sebagai berikut :
12
1. @ : kode awal yang harus diberikan pada awal pengiriman paket data, biasanya
diketikkan pada program komputer.
2. Unit no. : menunjukkan identitas PLC yang dituju, berguna pada saat komunikasi
menggunakan PLC lebih dari 1 buah.
3. Header code : terdapat pada command frame, menunjukkan operasi yang digunakan
atau diperintahkan kepada PLC, selain itu dapat berfungsi juga sebagai penanda area
memori PLC. Macam-macam header code yang sering digunakan ditunjukkan oleh
tabel 2.3.
4. End code : terdapat pada response frame, berisikan suatu kode yang menunjukkan
pengiriman data berjalan dengan baik atau tidak. Tabel 2.4 menunjukkan macam-
macam jenis end code pada PLC CPM2A.
5. Text : pada command frame berisikan tentang alamat memori yang dituju ataupun
data yang dikirimkan kepada PLC, sedangkan pada response frame berisikan data
respon dari PLC tersebut.
6. FCS (Frame Check Sequence) : merupakan suatu urutan prosedur yang digunakan
untuk pengecekan kesalahan frame data.
7. Terminator : kode akhir dari suatu frame, biasanya berupa * dan (ASCII 13).
Gambar 2.5 Pemodelan “paket data” atau frame pada proses komunikasi 1-1 [8]
ID number dari PLC
Kode Khusus yang akanmenentukan jenis operasi danalamat tujuan
Data
Frame Check Sequenceprosedur pengecekan kesalahan
Penanda dari akhir frame data
Unit no.
Header code
Text
FCS
Terminator
Frame (command)
Gambar 2.6 Pemodelan “paket data” atau frame yang dikirimkan oleh PC [10]
13
ID number dari PLC
Header code dari frame command
Data
Frame Check Sequenceprosedur pengecekan kesalahan
Penanda dari akhirframe data
Unit no.
Header code
Text
FCS
Terminator
Frame (response)
End codeKode yang menunjukkanpengiriman berjalan baik atau tidak
Gambar 2.7 Pemodelan “paket data” atau frame yang diterima oleh PLC [10]
Tabel 2.3 Contoh header code PLC CPM2A [9]
Mode PC Header Code
Run Monitor Program Keterangan
RR Valid Valid Valid IR/SR Area Read RL Valid Valid Valid LR Area Read RH Valid Valid Valid HR Area Read RD Valid Valid Valid DM Area Read RJ Valid Valid Valid AR Area Read
WR Not Valid Valid Valid IR/SR Area Write WL Not Valid Valid Valid LR Area Write WH Not Valid Valid Valid HR Area Write WD Not Valid Valid Valid DM Area Write WJ Not Valid Valid Valid AR Area Write MS Valid Valid Valid Status Read SC Valid Valid Valid Status Write
Tabel 2.4 Contoh end code PLC CPM2A [9]
End Code Isi Penyebab Koreksi
00 Normal
Completion ── ──
02 Not executable in RUN mode
Perintah yang dikirimkan tidak dapat dieksekusi karena PLC
berada pada mode RUN
Periksa hubungan antara perintah
dengan mode PLC
0B Not executable in MONITOR
mode
Perintah yang dikirimkan tidak dapat dieksekusi karena PLC berada
pada mode MONITOR
Periksa hubungan antara perintah
dengan mode PLC
13 FCS Error FCS salah Periksa perhitungan
FCS atau ulangi pengiriman
14 Format Error Format perintah salah Periksa format
perintah kemudian kirim kembali
18 Frame Length
Error Melebihi panjang frame
Pisahkan perintah menjadi beberapa
frame.
14
2.3.3 Memori pada PLC CPM2A
Terdapat bermacam-macam struktur memori pada PLC CPM2A [8 & 9]. Struktur
memori di dalam PLC CPM2A terbagi atas beberapa data area antara lain :
1. Internal Relay (IR)
Wilayah memori IR dibagi menjadi 3 yaitu, input area (IR 000 – IR 009),
output area (IR 010 – 019), dan work area (IR 020 – IR 049 & IR 200 – IR231).
Khusus untuk input dan output area, keduanya merupakan suatu jenis memori dalam
PLC dimana setiap bits didalamnya dapat ditujukan ke terminal input/output pada
PLC. Sedangkan work area hanya dapat berfungsi sebagai pengolahan data dalam
program PLC.
2. Special Relay (SR)
SR merupakan suatu jenis memori dimana setiap bits didalamnya mempunyai
fungsi khusus sebagai flags dan control bits. Area memori SR meliputi SR228
sampai SR 255.
3. Temporary Relay (TR)
TR merupakan suatu jenis area memori dimana setiap bits didalamnya dapat
digunakan sebagai tempat penyimpanan status ON atau OFF pada percabangan
program PLC. Hanya mempunyai 1 area memori dimana didalamnya terdapat 8 bits
untuk digunakan (TR 0 – TR 7).
4. Holding Relay (HR)
HR merupakan area memori untuk penyimpanan suatu data tertentu dan
mempertahankan status ON atau OFF walaupun PLC kehilangan sumber daya. Area
memori HR meliputi HR 00 sampai HR 19.
5. Auxiliary Relay (AR)
AR berfungsi sama seperti SR, dimana setiap bits didalamnya mempunyai
fungsi khusus sebagai flags dan control bits. Area memori AR meliputi AR 00
sampai AR 23.
6. Link Relay (LR)
LR berfungsi untuk pengiriman data antara PLC yang satu dengan PLC
lainnnya. Area memori LR meliputi LR 00 sampai LR 15.
7. Timer/Counter Area
Area memori yang digunakan meliputi TC 000 sampai TC 15. Setiap area
memori tersebut dapat digunakan sebagai Counter atau Timer, tetapi satu buah area
15
memori tidak dapat dipakai bersamaan. Dengan kata lain jika TC 000 dipakai sebagai
Timer maka area memori tersebut tidak boleh digunakan lagi sebagai Counter.
8. Data Memory (DM)
DM merupakan area memori yang digunakan hanya untuk menyimpan suatu
data program hexadesimal (words). Data tersebut akan tetap tersimpan walaupun
PLC kehilangan sumber daya. Area memori untuk data yang dapat diubah atau
diakses adalah DM 0000 – DM 1999 dan DM 2022 – DM 2047.
2.4. Pemrograman Visual Basic 6.0.
Visual Basic (atau sering disingkat VB) adalah perangkat lunak untuk menyusun
program aplikasi yang bekerja dalam lingkungan sistem operasi Windows [4]. Bahasa
pemrograman Visual Basic telah dikembangkan oleh Microsoft sejak tahun 1991, bahasa
VB merupakan hasil pengembangan dari bahasa program sebelumnya yaitu BASIC
(Beginner’s All-purpose Symbolic Instruction Code) yang telah dikembangkan pada era
1950-an.
2.4.1 Mengenal Integrated Development Environment (IDE) VB 6.
Lingkungan IDE Visual Basic merupakan suatu wilayah atau lingkungan tempat
dihasilkannya berbagai program alplikasi berbasis windows. Tampilan IDE akan muncul
setelah program Visual Basic dijalankan dan telah dilakukan pemilihan jenis project
program yang akan dibuat.
Gambar 2.8 Tampilan IDE Visual Basic 6.0
16
Keterangan gambar 2.8 adalah sebagai berikut [11] :
1. Menu Bar
Menu Bar berfungsi untuk memilih tugas-tugas tertentu, seperti memulai, membuka,
dan menyimpan project, termasuk mengompilasi project tersebut menjadi file
executable (EXE).
2. Main Toolbar
Toolbar memiliki fungsi sama seperti menu bar dan berperan sebagai jalan pintas,
karena lebih praktis penggunaannya.
3. Jendela Toolbox
Toolbox berisi komponen-komponen berupa icon yang merupakan sarana untuk
membentuk user interface.
4. Jendela Form Designer
Jendela Form Designer merupakan tempat untuk merancang user interface (tampilan
program) dan sebagai tempat diletakkannya komponen-komponen kontrol.
5. Jendela Code
Jendela ini merupakan tempat untuk menuliskan kode-kode bahasa pemrograman
dari objek yang dibuat.
6. Jendela Project Explorer
Merupakan suatu tempat untuk menampilkan semua file yang berhubungan dengan
aplikasi/project yang sedang dijalankan.
7. Jendela Properties
Jendela ini berisi daftar properties untuk objek (form atau kontrol) yang dipilih dan
berfungsi untuk mengatur karakteristiknya, seperti warna, ukuran, dan lain-lain.
2.4.2 Pengaksesan Port Serial pada Visual Basic
Kontrol MSComm menyediakan fasilitas komunikasi antara program aplikasi yang
dibuat dengan port serial untuk mengirim atau menerima data melalui port serial tersebut.
Setiap MSComm hanya menangani satu port serial, atau dengan kata lain dibutuhkan
MSComm sebanyak port serial yang kita pakai. Beberapa property yang sering dipakai
adalah sebagai berikut [4] :
a). CommPort : Digunakan untuk menentukan nomor port serial yang akan dipakai.
b). Setting : Digunakan untuk mengatur nilai baud rate, parity, jumlah bit data, dan
jumlah stop bit.
17
c). PortOpen : Digunakan untuk membuka ataupun menutup port serial yang dihubungkan
dengan MSComm.
d). Input : Digunakan untuk mengambil data string.
e). Output : Digunakan untuk menulis data string.
2.4.3 Pembuatan Aplikasi Database dengan Microsoft Accsess.
Program Visual Basic sudah mempunyai sistem penyimpanan database yang
dinamakan dengan database access. Jenis koneksi yang digunakan berbeda dengan
database SQL Server yaitu Komponen Data. Langkah-langkah pembuatan database Access
adalah sebagai berikut [12] :
1. Pada bagian menu bar dari lingkungan IDE Visual Basic, dipilih Add-Ins – Visual
Data Manager sehingga jendela VisData akan tampil.
Gambar 2.9 Membuka Jendela VisData
2. Pada jendela VisData, pada menu bar dipilih File > New... > Microsoft Access >
Version 7.0 MBD. Setelah itu, akan muncul kotak dialog Select Microsoft Access
Database to Create untuk menentukan lokasi tempat lokasi penyimpanan database
yang diinginkan. Pada kotak dialog ini dapat dilakukan pembuatan folder kerja
beserta nama file database. Nama file database akan mempunyai ekstension *.mdb di
belakangnya setelah dilakukan penyimpanan (klik tombol Save), ini menandakan file
tersebut merupakan tipe file dari Microsoft Access MDBs.
18
Gambar 2.10 Lokasi Penyimpanan Database
2.5. Modul Analog Digital (CPM1A-MAD01)
MAD01 mempunyai dua fungsi, yaitu mengubah sinyal analog menjadi sinyal
digital dan sebaliknya, mengubah sinyal digital menjadi sinyal analog. Dalam MAD01
terdapat 4 masukan analog, masing-masing dua masukan arus dan dua masukan tegangan,
kemudian juga terdapat dua keluaran analog, yaitu tegangan dan arus. Data masukan atau
keluaran delapan bit yang dihubungkan dengan PLC dapat diatur sebagai masukan atau
keluaran, tergantung apakah MAD01 difungsikan sebagai pengubah analog ke digital atau
sebaliknya. Gambar 2.11 memperlihatkan ilustrasi masukan / keluaran pada MAD01.
ADCCPM1AMAD01
V-in1
I-in1
V-in2
I-in2
Data Masukan /Keluaran
Vout I-out
Ke
PLC
Gambar 2.11 Ilustrasi masukan / keluaran pada MAD01
Tabel 2.5 memperlihatkan spesifikasi masukan pada MAD01 dan Tabel 2.6
memperlihatkan spesifikasi keluarannya.
19
Tabel 2.5 Spesifikasi masukan MAD01
Tegangan masukan 0V s/d 10V atau +1V s/d +5V Range sinyal
Masukan Arus masukan 4mA s/d 20mA
Tegangan masukan 1/ 256 Resolusi
Arus masukan 1/ 256
Tegangan masukan 1.0 % max (skala maksimum) Akurasi
Arus masukan 1.0 % max (skala maksimum)
Tegangan masukan ± 15V kontinyu Sinyal masukan
maksimal Arus masukan 30m A kontinyu
Setelah diketahui spesifikasi masukan atau keluaran juga hal-hal yang berkaitan
dengan instalasi, perlu juga mengetahui alokasi bit Internal Relay (IR). Tabel 2.6
memperlihatkan alokasi Internal Relay (IR) pada MAD01.
Tabel 2.6 Spesifikasi keluaran MAD01
Tegangan keluaran 0V s/d 10V atau -10V s/d +10V Range sinyal keluaran Arus keluaran 4mA s/d 20mA
1/ 256 (0V s/d 10V) Tegangan keluaran
1/ 512 (-10V s/d 10V) Resolusi
Arus keluaran 1/ 256
Tegangan keluaran 1.0 % max (skala maksimum) Akurasi
Arus keluaran 1.0 % max (skala maksimum)
Tabel 2.7 Alokasi IR pada MAD01
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
s/b x x x x x x x d d d d d d d d
Keterangan table 2.7 :
• Bit 0 s/d 7 : bit data
• Bit 8 s/d 14 : bit tidak digunakan
• Bit 15 : s adalah sign bit; jika 0 tegangan keluaran positif, kalau 1 keluaran
negatif
: b adalah broken wire bit; jika 0 maka tidak ada kerusakan, kalau 1
ada kerusakan.
20
Untuk dapat membaca tegangan masukan, maka pada MAD01 perlu diketahui
alokasi channel yang akan digunakan. Alokasi channel MAD01 yang diberikan tergantung
dengan jumlah I/O pada PLC yang digunakan, seperti yang ditunjukkan Tabel 2.8 di
bawah ini.
Tabel 2.8 Alokasi channel MAD01
CPU Channel keluaran
MAD01
Channel masukan1
MAD01
Channel masukan2
MAD01
10CDx 11 1 2
20CDx 11 1 2
30CDx 12 2 3
40CDx 12 2 3
Langkah selanjutnya menempatkan MAD01 tersebut pada range yang di
kehendaki. Setting range diberikan saat inisialisasi MAD01. Setting range MAD01
ditunjukkan pada Tabel 2.9
Tabel 2.9 Setting range MAD01
Kode set
range Keluaran Masukan1 Masukan2
FF00 0-10V / 4-20mA 0-10V 0-10V
FF01 -10-10V / 4-20mA 0-10V 0-10V
FF02 0-10V / 4-20mA 1-5V / 4-20mA 0-10V
FF03 -10-10V / 4-20mA 1-5V / 4-20mA 0-10V
FF04 0-10V / 4-20mA 0-10V 1-5V / 4-20mA
FF05 -10-10V / 4-20mA 0-10V 1-5V / 4-20mA
FF06 0-10V / 4-20mA 1-5V / 4-20mA 1-5V / 4-20mA
FF07 -10-10V / 4-20mA 1-5V / 4-20mA 1-5V / 4-20mA
21
BAB III RANCANGAN PENELITIAN
Dalam bab ini, akan diuraikan mengenai rancangan sistem pengendali dan
monitoring pada otomasi dosis obat serbuk (puyer), antara lain :
• “Alat Penakar Dosis Obat Serbuk”, didalamnya terdapat penjelasan mengenai
gambar rancangan alat secara umum, diagram blok alat, dan cara kerja alat secara
umum.
• ”Sistem Komunikasi Antar Muka (interface)”, mengenai jalur komunikasi transfer
data antara timbangan digital, PLC, dan PC (Personal Computer).
• ”Pemrograman Visual Basic 6.0”, di dalam sub bab ini terdapat perancangan
diagram-alir (flowchart) program, bentuk susunan keseluruhan form yang akan
digunakan, dan keterangan singkat pemrograman database.
• ”Pemrograman PLC Omron CPM2A”, di dalam sub bab ini akan dijelaskan
mengenai flowchart program PLC yang digunakan, penentuan alamat input beserta
pengkabelan menuju PLC, dan penentuan alamat output beserta pengkabelan
menuju PLC.
3.1 Alat Penakar Dosis Obat Serbuk.
Pada dasarnya, alat ini mempunyai prinsip kerja membagi berat total obat yang
telah digerus pada timbangan digital menjadi beberapa bagian kemasan kecil sesuai
keinginan sang apoteker. Misalkan : berat total obat terukur adalah sekitar 20 gram dan
sang apoteker ingin membagi gerusan obat tersebut menjadi 20 bagian, maka alat ini akan
menghasilkan 20 buah gelas takar plastik dengan berat masing-masing gelas takar sebesar
1 gram. Jika sang apoteker ingin membagi berat total hasil gerusan obat tersebut menjadi
10 bagian, maka alat ini akan menghasilkan 10 buah gelas takar plastik dengan berat isi
didalam setiap gelasnya masing-masing 2 gram.
Alat penakar dosis obat serbuk pada gambar 3.1, terdiri atas 2 subsistem, yaitu
subsistem hardware dan subsistem software. Subsistem hardware terkontrol terdiri atas :
motor DC power window 12 V, semua input berupa sensor infra red atau limit switch,
solenoid valve penggerak katup, timbangan digital (Load-Cell), MAD01, dan PLC.
Subsistem software menggunakan Visual Basic 6.0 sebagai pusat monitoring dan kontrol.
22
Keseluruhan proses dikendalikan dan di-monitor oleh PC, sedangkan PLC sebagai Direct
Digital Control (DDC) berperan dalam mengatur kerja hardware secara langsung. Bagian
terpenting dari alat penakar dosis otomatis terletak pada timbangan digital dan ADC
(Analog to Digital Converter) seri CPM1A-MAD01 Omron. Hal ini disebabkan karena,
ketelitian pembacaan dari timbangan digital akan mempengaruhi kualitas takaran obat
serbuk, sedangkan MAD01 berperan dalam mengirimkan data berat obat setiap waktu ke
PC untuk di-monitor, sehingga permintaan banyaknya bagian yang diinginkan oleh
apoteker terpenuhi. Berikut ini merupakan gambar konsep rancangan alat secara umum.
Gambar 3.1 Rancangan Alat Penakar Obat Serbuk Otomatis
Pada awalnya sistem akan mendeteksi berat total obat serbuk dan menampilkan
berat terukur pada layar monitor PC. Setelah user memberikan masukan jumlah pembagian
gelas takar yang diinginkan dan menekan tombol eksekusi, maka tampungan gelas takar
akan menjatuhkan 1 buah gelas takar pada meja berputar (sebagai dudukan gelas). Meja
berputar akan berputar berlawanan arah jarum jam kurang lebih sekitar 90 derajat sehingga
posisi gelas takar ke-1 tepat berada di bawah katup tampungan obat serbuk. Pada saat itu
juga, tampungan gelas takar mengeluarkan gelas takar ke-2 pada meja berputar dan katup
pada tampungan obat serbuk akan membuka, sehingga gelas takar ke-1 terisi oleh obat
serbuk. Selama katup terbuka, PC terus membaca perubahan berkurangnya berat total pada
tampungan (berat total – berat takar pada gelas takar) melalui timbangan digital. Setelah
takaran pada gelas takar terpenuhi maka katup akan tertutup kembali, meja berputar 90
23
derajat berlawanan arah jarum jam sehingga gelas takar ke-1 sudah dapat diambil oleh
user, sedangkan gelas takar ke-2 masuk dalam proses pengisian obat, dan tampungan gelas
takar sudah meletakkan gelas takar ke-3 pada meja berputar. Dalam mengantisipasi belum
terambilnya gelas takar ke-1 tadi, alat penakar obat serbuk otomatis ini dilengkapi dengan
laci penyimpanan, untuk menampung gelas takar yang sudah berisi obat tetapi tidak
diambil oleh operator.
Sistem di atas dapat juga digambarkan secara blok diagram, seperti pada gambar
3.2 di bawah ini, untuk mempermudah pengamatan dalam sistem. Bagian pokok sistem
berdasarkan blok diagram tersebut terdiri atas : timbangan digital, PC, PLC, dan hardware
lainnya. Pada sub-bab selanjutnya dalam bab III ini, difokuskan terhadap bagian blok
dalam kotak dengan garis terputus-putus.
Load-Cell Amplifier
PC
MAD01Omron
PLC - OmronSYSMACCPM2A
Output
Input
Gambar 3.2 Blok Diagram Alat Penakar Dosis Obat serbuk
3.2 Sistem Komunikasi Antar Muka (Interface).
PLC CPM2A hanya menyediakan 3 buah koneksi port untuk berkomunikasi
dengan piranti lainnya, yaitu port kabel serial RS-232, port kabel paralel (peripheral port),
port ekspansi/tambahan. Port kabel serial digunakan untuk komunikasi antara komputer
(PC) dengan PLC Omron CPM2A, port ekspansi/tambahan terhubung dengan CPM1A-
MAD01, sedangkan port paralel tidak dipergunakan. Susunan gambar jalur komunikasi
sistem digambarkan seperti pada gambar 3.3 di bawah ini.
24
Gambar 3.3 Jalur Komunikasi Alat Takar Dosis Obat Serbuk
Jalur komunikasi pada sistem ini pertama kali dimulai dari PC, setelah masuk ke
dalam form pembuka, PC akan langsung membaca semua masukan dari load-cell melalui
CPM1A-MAD01. Data tersebut berupa data heksadesimal, hasil perubahan data analog
dari load-cell setelah melalui CPM1A-MAD01. Data hexadesimal tersebut akan disimpan
pada data memori PLC CPM2A, dan dibaca oleh komputer melalui program Visual Basic.
Pengiriman data dapat berlangsung dengan baik jika tidak terjadi proses overflow,
yaitu suatu proses kehilangan data akibat adanya perbedaan kecepatan transfer data antara
pengirim dan penerima. Seperti dijelaskan pada bab sebelumnya, maka kecepatan transfer
data antara PC dengan PLC disesuaikan dengan mengikuti prosedur standar dari PLC,
yaitu baud rate 9600 bps, 1 start bit, 7 bit data, 2 stop bit, even parity.
3.2.1 Pengolahan Data pada PLC
Setiap data yang dibutuhkan pada PLC disimpan dengan menggunakan memori
DM. Data yang tersimpan pada DM sewaktu-waktu dapat digunakan oleh komputer (PC)
untuk memanipulasi sesuatu pada program Visual Basic. Data tersebut dapat dibaca
dengan menggunakan pengiriman frame data tertentu yang akan dijelaskan pada subbab
selanjutnya.
Data tersimpan pada DM sistem alat ini dibagi menjadi 2 jenis, yaitu data digital
(hanya logika ON atau OFF) dan data analog (data berubah terus seiring dengan perubahan
waktu). Pada sistem ini data digital merupakan data yang dihasilkan oleh komponen input
dan output PLC, selain data load-cell yang telah dirubah oleh CPM1A-MAD01. Data load-
cell merupakan data analog.
Kabel RS 232
25
Tabel 3.1 Penyimpanan Data pada Memori Baca / Tulis PLC
Jenis Data Alamat Memori
Kondisi Sensor Station 1 DM 0001
Kondisi Limit Switch Station1 DM 0002
Kondisi Sensor Station 2 DM 0003
Kondisi Limit Switch Station 2 DM 0004
Berat pada Tampungan Obat (data analog) DM 0005
Kondisi Limit Switch Station 3 DM 0006
Kondisi Sensor Station 4 DM 0007
Kondisi Limit Switch Station 4 DM 0008
Pengontrolan PLC melalui komputer (PC) membutuhkan pula suatu memori alamat
kontrol, yaitu dengan menggunakan HR (Holding Relay). Alamat HR tersebut diletakkan
pada awal program PLC. Data yang tersimpan baik pada HR maupun DM tidak akan
hilang walaupun catu daya dimatikan, hal ini dapat menyebabkan kesalahan pembacaan
data. Untuk itu diperlukan juga alamat memori kontrol untuk menghapus data di memori
DM. Kedua memori tersebut terlihat pada tabel di bawah ini.
Tabel 3.2 Penggunaan memori HR
Alamat Kontrol Keterangan
HR 0001 Alamat memori pengatur ON atau OFF program
HR 0002 Alamat memori penghapusan data pada DM
3.2.2 Pengolahan Data pada PC
Paket data perintah atau command frame dari PC dapat digunakan untuk
memerintahkan PLC untuk melakukan jenis mode operasi apa yang akan digunakan,
membaca data dari PLC, maupun menulis data. Ini semua dilakukan dengan menuliskan
header code yang diinginkan. Pada perancangan, PLC akan di-setting pada mode operasi
monitor. Alasan pemilihan mode monitor disebabkan karena pada mode ini semua instuksi
command dapat diproses oleh PLC, kecuali WP (program write). Pada mode monitor, PLC
akan selalu melakukan pembaharuan pada isi memori yang mengalami perubahan.
Pada awal pengetikan suatu command frame atau paket data perintah harus diawali
dengan tanda ‘@’. Sistem ini hanya menggunakan 1 buah PLC maka node number yang
26
digunakan selalu sama yaitu ’00’. Isi dari FCS dan Terminator selalu sama sesuai dengan
sekuensial pengecekan kesalahan melalui software program maka tidak dibahas pada tabel
dibawah ini.
Tabel 3.3 Macam-macam penulisan command frame pada PC
Instruksi Keterangan
@00SC02 ‘SC02’ berfungsi untuk menuliskan data menuju PLC dan
membuat PLC pada mode MONITOR.
@00RD00010008 ‘RD0001’ berfungsi untuk membaca data pada memori PLC
dimulai dari DM 0001 – DM 0008
@00WH00010000 ‘WH0001’ berfungsi untuk menuliskan data 0000 ke memori
HR 0001 sehingga menonaktifkan program (program OFF).
@00WH00010001 ‘WH0001’ berfungsi untuk menuliskan data 0001 ke memori
HR 0001 sehingga mengaktifkan program (program ON).
@00WH00020000 ‘WH0001’ berfungsi untuk menuliskan data 0000 ke memori
HR 0002 sehingga menonaktifkan penghapusan data DM.
@00WH00010001 ‘WH0001’ berfungsi untuk menuliskan data 0001 ke memori
HR 0001 sehingga mengaktifkan penghapusan data DM.
3.3 Pemrograman Visual Basic 6.0.
Program pada sistem ini terdiri atas 3 buah form utama, yaitu form LOGIN, form
PROSES, dan form CETAK. Program secara umum dapat dilihat melalui gambar 3.4
berupa suatu diagram alir tentang pemrograman pada sistem. Pertama kali user akan
diminta memasukkan suatu password yang sudah ditentukan program, setelah berhasil dan
sesuai dengan database pengguna, maka akan masuk ke form selanjutnya yaitu form
PROSES. Pada form ini proses komunikasi antara PC dengan PLC akan berlangsung, user
dapat memerintahkan sistem untuk mulai bekerja, melihat bantuan penggunaan program,
maupun melihat informasi singkat tentang program melalui tombol-tombol pada form
PROSES ini. Setelah sistem selesai bekerja menakar obat serbuk, selanjutnya user dapat
mencetak laporan hasil produksi ataupun langsung melakukan proses logout.
27
Mulai
ProsesLOGIN
Proses monitoring sistem
Proses Cetakdan LOGOUT
Selesai
Gambar 3.4 Diagram Alir Program pada PC
3.3.1 Form LOGIN
Form LOGIN berfungsi untuk memperoleh data user / pengguna sistem ini, antara
lain data mengenai nama, nomor identitas pekerja, termasuk kecocokan password yang
digunakan. User terdiri atas admin, apoteker, dan asisten apoteker. Petugas admin selain
dapat menjalankan sistem juga dapat mengakses database. Password tidak dapat diganti
karena pada program sudah ditentukan sebagai suatu konstanta. Pada form ini terdapat 2
buah tombol eksekusi, yaitu tombol Masuk dan Keluar. Tombol Masuk berguna untuk
mengeksekusi data yang telah dimasukkan oleh pengguna, jika pengguna gagal
memasukkan password sebanyak 3 kali maka akan langsung keluar dari program. Tombol
Keluar berfungsi untuk keluar dari program.
LOGIN X
Nama
No. ID
Password
Masuk Keluar
Jabatan
Gambar 3.5 Rancangan Tampilan Form LOGIN
28
MULAI
Masukkan Nama, No.ID, dan Password
Ya
Tidak
Passwordsesuai
database?
SELESAI
Tekan TombolMASUK
Gambar 3.6 Diagram alir subrutin Form LOGIN
3.3.2 Form PROSES Monitoring
Form PROSES berfungsi untuk me-monitor berat total pada tampungan obat
serbuk serta memberikan perintah pada sistem untuk mulai bekerja. Pada form ini terdapat
4 buah tombol eksekusi yang digambarkan pada gambar 3.8, yaitu :
• Tombol HITUNG berfungsi untuk melakukan perhitungan jumlah berat obat serbuk
dalam setiap gelas takar.
• Tombol START / STOP berfungsi untuk memberikan perintah kepada PLC untuk
menjalankan sistem. Tombol eksekusi ini hanya akan aktif ketika tombol Hitung telah
ditekan, dengan kata lain perhitungan jumlah obat serbuk dalam setiap gelas takar
sudah disetujui oleh user. Label pada tombol akan berupa tulisan Start ketika sistem
belum bekerja, dan label tombol akan berubah menjadi label Stop ketika sistem sedang
bekerja.
• Tombol HELP berfungsi untuk menampilkan secara singkat langkah-langkah
penggunaan program.
• Tombol KELUAR berfungsi untuk menghentikan proses secara tiba-tiba dan langsung
keluar dari program.
Setelah masuk form ini, program akan membaca masukan data dari loadcell dan
menampilkan berat obat serbuk terukur saat itu dalam bentuk angka, pada bagian ’Berat
Total Obat Serbuk’ dengan satuan milligam. Setelah itu user mengisi jumlah pembagian
obat serbuk yang diinginkan, pada bagian ’Jumlah Pembagian Obat Serbuk’. Selanjutnya
29
user menekan tombol eksekusi Hitung, program akan membagi ’Berat Total Obat Serbuk’
dengan ’Jumlah Pembagian Obat Serbuk’. Hasil dari perhitungan tersebut akan
ditampilkan pada bagian ’Berat Obat Serbuk pada @ gelas takar’, dan tombol Start akan
aktif. Sistem mulai berjalan setelah tombol Start ditekan, untuk lebih jelasnya dapat dilihat
pada diagram alir yang ditunjukkan oleh gambar 3.7 di bawah ini.
bMULAI
Tampilkan ID_user padaframe petugas sesuai data
form LOGIN
Isidata_pasien
TekanENTER ?
Tidak
Ya
TekanHitung ?
Tidak
Ya
Baca data berat obat dariPLC dan tampilkan pada'Berat Total Obat Serbuk'
Isi JumlahPembagian
a
Tampilkan hasil pembagianpada 'Berat obat serbuk
pada @ gelas takar'
a
b
TekanStart ?
Tidak
Ya
Selesai
Lakukan Proses Pembagian(Berat total : jumlah bagi)
Kirim 'paket data perintah'ke PLC
Gambar 3.7 Diagram alir subrutin form PROSES MONITORING
Form PROSES
Petugas
Nama
No ID.
Pasien
Nama
No Kartu
Hari, tanggal, tahun Waktu
Berat Total Obat Serbuk
Berat Total Obat Serbuk saat ini
Jumlah Pembagian Obat Serbuk
Berat Obat Serbuk pada @ gelas takar
Monitoring Obat
mg
mg
buah
mg
HITUNG START HELP KELUAR
Gambar 3.8 Rancangan Tampilan Form PROSES
30
3.3.3 Form CETAK dan LOGOUT
Form ini berfungsi untuk mencetak laporan hasil produksi dan kembali pada
tampilan form LOGIN. Pada form ini terdapat 4 buah tombol eksekusi, yaitu tombol Cetak,
tombol Stop, tombol Help, dan tombol Logout seperti pada gambar 3.9 dibawah ini.
CETAK dan LOGOUT
Jenis Printer Ter-install
Jenis Kertas
Banyak Hasil Print
Cetak Stop Help Logout
Gambar 3.9 Rancangan Tampilan Form CETAK dan LOGOUT
MULAI
Pilih jenis Printer, kertas,jumlah copy
TekanCetak ?
TekanStop ?
Cetak DataHasil Laporan
Jumlah Cetak=
Jumlah diinginkan?
Ya
SELESAI
Ya
Tidak
Tidak
Tidak
Ya
Gambar 3.10 Diagram alir subrutin form CETAK dan LOGOUT
Pada bagian menu pilihan ComboBox dalam form ini user dapat memilih jenis
printer yang akan digunakan, jika printer yang ter-install pada komputer tersebut lebih dari
31
satu buah. User juga dapat memilih jenis kertas yang akan digunakan untuk mencetak hasil
laporan produksi tersebut, antara kertas A4, kertas folio ataupun kertas quarto. Pada form
ini user juga dapat mengisi banyaknya jumlah cetakan laporan hasil produksi yang
diinginkan. Setelah semua pemilihan selesai dilakukan, user dapat menekan tombol Cetak
untuk mencetak hasil laporan produksi ke atas kertas. Tombol Stop berfungsi untuk
menghentikan proses mencetak. Tombol Help berfungsi untuk menampilkan petunjuk
penggunaan form secara singkat. Tombol Logout berfungsi untuk kembali pada form
LOGIN, hal ini dimaksudkan agar user lain dapat langsung menggunakan program tanpa
harus menuggu proses loading.
3.3.4 Pemrograman Database
Pembuatan tabel database menggunakan Microsoft Accsess pada program Visual
Basic 6.0 dilakukan pada jendela VisData. Database ini terdiri dari 3 buah jenis tabel,
setiap tabel tersebut berfungsi untuk menyimpan data pengguna program, data monitoring
berat obat selama proses produksi, dan data pasien. Penentuan nama database, tipe
database, beserta ukuran datanya ditabelkan seperti terlihat pada tabel 3.4 di bawah ini.
Tabel 3.4 Tabel Rancangan Database
Nama Control Nama Field Tipe Data Ukuran Data Nama_user Text 30 No_ID Text 10
Data_User
Password Text 10 Berat_mul Text 10 Berat_sek Text 10
Data_Obat
Jml_Bagi Integer 2 byte Nama_pasien Text 30 Data_Pasien Kartu_pasien Integer 2 byte
3.4 Pemrograman PLC Omron CPM2A.
Sistem alat ini menggunakan sistem komunikasi 1-1, dimana telah dijabarkan pada
bab sebelumnya bahwa PLC berfungsi sebagai ‘slave’ dan PC sebagai ’master’. Hal ini
membuat PLC hanya dapat bekerja setelah mendapat perintah dari PC. Perintah dari PC
ditandai dengan ditekannya tombol Start pada form PROSES oleh user. Setelah tombol
Start ditekan dan semua persyaratan dipenuhi maka PLC mulai melakukan proses kerja
sistem secara keseluruhan. Untuk memudahkan pemahaman proses kerja pada sistem,
maka keseluruhan proses dibagi menjadi 4 buah station yaitu station 1, station 2, station 3,
32
dan station 4. Penjelasan mengenai keempat station tersebut akan dijelaskan pada sub-bab
selanjutnya. Sistem akan berhenti bekerja ketika jumlah proses sesuai dengan masukan
user pada ’Jumlah Pembagian Obat Serbuk’ di form PROSES. Setiap proses produksi akan
dihasilkan 1 buah gelas takar berisi obat serbuk sesuai takaran.
Mulai
Proses Station 1(Gbr 3.11)
Tidak
Ya
Tekan Start pdForm Proses ?
Proses Station 2(Gbr 3.12)
Proses Station 3(Gbr. 3.13)
Proses Station 4(Gbr. 3.14)
Jumlah proses =
pembagian obat serbuk padaform proses
?
A1
A1
Tidak
Ya
Selesai
Gambar 3.11 Diagram alir proses produksi secara umum
3.4.1 Proses Penurunan Gelas Takar (Station 1)
Proses ini merupakan awal dimulainya kerja keseluruhan dari sistem. Pada station
ini berlangsung proses penurunan 1 buah gelas takar alumunium dari tampungan gelas ke
atas meja berputar, tepat pada dudukan yang telah disediakan. Proses ini dimulai setelah
PLC mendapat paket data perintah dari PC yang ditandai dengan ditekannya tombol ’Start’
pada form PROSES.
Pada station 1 ini terdapat 2 buah input digital, yaitu sensor infrared 1 (S1) dan
limit switch 1 (LS1). Sensor infrared 1 berfungsi untuk mendeteksi keberadaan gelas takar
kosong di atas dudukan gelas pada meja berputar. Limit switch 1 (LS1) berfungsi sebagai
pendeteksi keberadaan meja berputar yang sudah siap menerima gelas takar, atau dengan
kata lain dudukan gelas pada meja berputar berada tepat dibawah tampungan gelas.
33
Pada station ini terdapat 2 buah output terkendali, yaitu pembuka tutup tampungan
gelas takar yang berupa katup solenoid, dan penggerak meja berputar berupa motor DC
power window. Keseluruhan proses ’penurunan gelas takar’ secara lengkap dapat dilihat
pada gambar 3.12.
D
MULAI
Motor DC OFF
Tidak
Tekan TombolStart pd PC dan
LS1 aktif ?
Solenoid 1 ON
S1 aktif ?
YA
TidakYa
Solenoid 1 OFF danMotor DC ON
LS2 aktif ?
Tidak
Ya
A
Gambar 3.12 Diagram alir subrutin proses Station 1
3.4.2 Proses Pengisian Gelas Takar ( Station 2 )
Station ini merupakan tempat perhentian meja berputar untuk pertama kali. Pada
station ini berlangsung proses pengisian obat serbuk hasil gerusan pada tampungan obat ke
dalam gelas takar. Pada station ini juga terjadi proses monitoring berat obat serbuk dalam
34
tampungan obat selama terjadi proses pengisian ke dalam gelas takar, dan setiap perubahan
berat pada tampungan obat akan tertampil pada PC.
Pada station pengisian ini terdapat 2 buah macam input, yaitu input digital dan
input analog. Input digital berupa sensor infrared 2 (S2) dan limit switch 2 (LS2), keduanya
bekerjasama sebagai pendeteksi keberadaan gelas takar di atas dudukan meja berputar, atau
dengan kata lain gelas takar telah siap pada posisi yang telah ditentukan. Input analog
berupa tegangan keluaran dari load-cell yang berfungsi untuk memantau kondisi terakhir
perubahan berat pada tampungan obat serbuk.
Pada station ini terdapat 2 buah output terkendali yaitu, katup solenoid pembuka
tutup tampungan obat serbuk dan motor DC power window. Katup solenoid akan
membuka dan mengalirkan obat dari tampungan selama berat dalam gelas takar di bawah
tampungan belum terpenuhi, atau dengan kata lain PC mengirimkan perintah penghentian
proses pengisian. Sama seperti station 1, motor DC power window digunakan untuk
mengendalikan meja berputar. Untuk lebih jelasnya keseluruhan proses station 2 dapat
dilihat pada gambar 3.13.
Motor DC OFF
Berat pd gelastakar terpenuhi ?
LS3 aktif ?
Solenoid 2 OFFdan Motor DC ON
Tidak
S2 Aktif ?
Solenoid 2 ON
YA
Tidak
Ya
Tidak
Ya
B
A
Gambar 3.13 Diagram alir subrutin proses Station 2
35
3.4.3 Proses Pengambilan Gelas Takar ( Station 3 )
Station ini merupakan tempat user / apoteker mengambil obat serbuk tertakar
dalam gelas, hasil dari proses station sebelumnya. Obat serbuk tertakar dalam gelas takar
tersebut dapat langsung dituangkan ke dalam kertas perkamen untuk dikemas secara
manual.
Pada Station ini hanya terdapat 1 buah input digital yaitu limit switch (LS 3) untuk
menghentikan meja berputar dan mengaktifkan timer pada PLC selama 5 detik. Setelah
waktu 5 detik terpenuhi, motor DC power window akan menyala dan menjalankan meja
berputar menuju station selanjutnya. Keseluruhan proses pada station 3 ini dapat dilihat
pada gambar 3.14.
Motor DC OFF
Timer 1 =5 detik ?
YA
Tidak
Timer 1 OFF danMotor DC ON
LS4 aktif ?
Tidak
Ya
C
B
Timer 1 ON danberikan inputanpada counter 1
Gambar 3.14 Diagram alir subrutin proses Station 3
3.4.4 Proses Penyimpanan Gelas Takar ( Station 4 )
Station ini merupakan akhir dari proses produksi sistem, dimana terjadi proses
penyimpanan gelas takar yang telah terisi obat serbuk didalamnya. Gelas takar tersebut
36
akan langsung jatuh ke dalam tabung penyimpanan, karena terdapat sebuah lubang tepat di
bawah dudukan gelas pada meja berputar. Tangki penyimpanan ini dimaksudkan untuk
menyimpan gelas takar yang belum terambil oleh apoteker.
Pada station ini terdapat 2 buah input digital, yaitu sensor infrared (S3) dan limit
switch 4. Sensor infrared (S3) berfungsi untuk memberikan sinyal pulsa masukan kepada
counter dalam PLC, dan jumlah gelas takar yang masuk ke dalam tangki penyimpanan
akan ditampilkan pada monitor PC. Seperti pada subbab sebelumnya, limit switch 4 juga
berfungsi untuk menghentikan meja berputar sesuai posisi yang ditentukan. Keseluruhan
proses pada station 4 dapat dilihat pada gambar 3.15.
Motor DC OFF
Tidak
S3 Aktif ?
Masukkan inputanpada counter 2
Counter 1 =jumlah pembagianobat serbuk pada
obat ?
YA
Tidak
Ya
Motor DC ON
LS1 aktif ?
Tidak
Ya
D
C
SELESAI
Gambar 3.15 Diagram alir subrutin proses Station 4
Dalam pemrograman PLC, selain diagram alir jalannya sistem keseluruhan, juga
dibutuhkan penentuan alamat input-output setiap komponen elektrik yang terkandung di
dalam sistem tersebut. Hal ini dimaksudkan agar sistem dapat berjalan sesuai dengan
diagram alir yang telah dibuat dan tidak terjadi kesalahan pengiriman atau penerimaan data
37
dari luar PLC itu sendiri. Penentuan alamat input dan output dapat dilihat pada tabel-tabel
di bawah ini.
Tabel 3.5 Tabel Pengalamatan Input pada PLC
Alamat Input Nama Peralatan 00000 Sensor Infrared 1 ( S1 ) pada Station 1 00001 Limit Switch 1 ( LS1 ) pada Station 1 00002 Sensor Infrared 2 ( S2 ) pada Station 2 00003 Limit Switch 2 ( LS2 ) pada Station 2 00004 Limit Switch 3 ( LS3 ) pada Station 3 00005 Sensor Infrared 3 ( S3 ) pada Station 4 00006 Limit Switch 4 ( LS4 ) pada Station 4
Tabel 3.6 Tabel Pengalamatan Output pada PLC
Alamat Output Nama Peralatan 01001 Solenoid 1 pada tampungan gelas takar 01002 Motor DC power Window 01003 Solenoid 2 pada tampungan obat serbuk
38
BAB IV
HASIL DAN PEMBAHASAN
Dalam bab ini, penulis menguraikan tentang hasil akhir dari rancangan sistem
pengendali dan monitoring pada otomasi dosis obat serbuk (puyer). Pengujian dan
pengamatan yang dilakukan meliputi beberapa hal, antara lain mengenai :
• ”Pembahasan pada Pemrograman Visual Basic 6.0”, di dalam sub bab ini
dijelaskan mengenai keseluruhan form yang digunakan pada sistem, termasuk
penjelasan mengenai setiap bagian penting pada form tersebut.
• ”Analisa pada Pemrograman PLC Omron CPM2A”, di dalam sub bab ini akan
dijelaskan mengenai pengaruh program ladder dalam pengaturan input dan output
pada sistem.
• ”Analisa Pengubahan Data pada CPM1A-MAD01”, di dalam subbab ini akan
dijelaskan mengenai hasil pengubahan data tegangan keluaran dari potensiometer
yang masuk MAD01.
• ”Pengujian Proses Komunikasi PC dengan PLC”, meliputi pengamatan pengiriman
data melalui kabel RS-232 menggunakan free serial port monitor.
• ”Analisa dan Pengamatan Data Pengujian”, meliputi pengamatan proses
pembacaan data keluaran load-cell dan pembacaan pada program VB.
4.1. Pembahasan pada Pemrograman Visual Basic 6.0
Program akhir pada sistem ini terdiri atas 7 buah form utama, dengan perincian 3
buah form utama dan 4 buah form tambahan. Form utama terdiri atas form LOGIN, form
PROSES, dan form CETAK. Sedangkan form tambahan berfungsi sebagai pendukung form
utama yang terdiri atas SPLASH form, form TENTANG, form tampilan laporan
(CRViewer), dan terakhir form HELP. Selanjutnya akan diterangkan tampilan form secara
berurutan mulai dari awal program dijalankan.
4.1.1. Pengamatan pada SPLASH Form
Pada saat program pertama kali dijalankan, splash form merupakan form yang
pertama kali muncul sebagai tanda permulaan untuk meyakinkan pengguna program (user)
39
bahwa program sedang berjalan. Pada form ini terdapat judul dari program, nama pembuat
program, instansi terkait, serta beberapa gambar yang berhubungan dengan obat puyer
seperti terlihat pada gambar 4.1. Form ini akan ditampilkan oleh program selama kurang
lebih 2 detik. Setelah 2 detik terpenuhi, form ini akan menutup dan form LOGIN akan
tertampil.
Gambar 4.1 Tampilan awal mulainya program berjalan (SPLASH FORM)
4.1.2. Pengamatan pada Form LOGIN
Tampilan form LOGIN pada program ini mempunyai 2 buah bentuk tampilan yang
ditunjukkan oleh gambar 4.2 dan gambar 4.3. Pada awalnya form LOGIN hanya
mempunyai 1 buah frame, yaitu frame BIODATA PENGGUNA; dan 2 buah tombol
perintah yang sedang aktif, yaitu tombol MASUK dan tombol KELUAR seperti
ditunjukkan pada gambar 4.2. Hal tersebut sesuai dengan perancangan pada bab
sebelumnya. Tampilan form LOGIN dapat berubah seperti ditunjukkan pada gambar 4.3
ketika jabatan pada frame BIODATA PENGGUNA diisi ”administrator” dan password
diisi ”Adm1n15”. Hal ini merupakan pengembangan dari rancangan sebelumnya, dimana
terdapat penambahan 2 buah frame dan 3 buah tombol perintah. Dua buah frame tersebut
terdiri atas frame DATABASE PENGGUNA dan frame EDIT DATABASE, sedangkan 3
buah tombol perintah tersebut terdiri atas tombol TAMBAH, tombol HAPUS, dan tombol
UBAH . Penjelasan mengenai fungsi frame dan tombol perintah tersebut akan diulas pada
paragraf selanjutnya.
Pada tampilan pertama form LOGIN (Gambar 4.2), pengguna program (user) harus
memberikan identitas pribadi berupa nama, jabatan, no identitas, dan password sebelum
masuk ke dalam form inti yaitu form PROSES. Identitas pribadi semua pengguna program
ini sebelumnya sudah dimasukkan terlebih dahulu oleh seorang administrator, sehingga
40
hanya para user terdaftarlah yang dapat menggunakan program ini. Hal ini dimaksudkan
untuk mempermudah pemantauan penggunaan ”Alat Penakar Obat Serbuk Otomatis” di
kemudian hari.
Gambar 4.2 Tampilan pertama Form LOGIN bagi semua pengguna
Sebagai permulaan, program ini telah menyediakan beberapa nama seperti terlihat
pada tabel 4.1. Nama-nama pada tabel tersebut merupakan beberapa contoh identitas yang
dapat digunakan sebagai identitas pengguna program pada saat program ini dijalankan
untuk pertama kalinya. Pada program, tabel nama tersebut ditampilkan pada frame
DATABASE PENGGUNA seperti terlihat pada gambar 4.3 dan hanya dapat dilihat oleh
administrator. Pengubahan, penambahan, ataupun penghapusan identitas pada tabel
tersebut hanya dapat dilakukan oleh jabatan administrator dengan password yang telah
ditetapkan program yaitu ”Adm1n15”.
Tabel 4.1 Daftar identitas pengguna pada saat program pertama kali dijalankan
NO Nama User Jabatan User No Identitas User
Password (Kata Kunci)
1. Dani administrator 1234 Adm1n15 2. Wiki apoteker 4321 @potik 3. Sulistyawati Manager 0858 ObatSerbuk 4. Paijo administrator 5431 Adm1n15
Pengubahan, penambahan, ataupun penghapusan identitas dilakukan pada frame
EDIT DATABASE. Hal ini dilakukan dengan cara mengisi identitas pengguna satu-persatu
secara lengkap pada textbox yang telah disediakan, atau user dapat memilih identitas yang
tersedia pada tabel didalam frame DATABASE PENGGUNA dengan menggunakan mouse
(pilih dan klik kiri) maka secara otomatis identitas yang dipilih akan tertampil pada frame
EDIT DATABASE. Pengubahan identitas dilakukan dengan menekan tombol UBAH, untuk
41
penambahan dilakukan dengan menekan tombol TAMBAH, dan penghapusan dilakukan
dengan tombol HAPUS. Khusus untuk identitas dengan jabatan ’administrator’, user hanya
dapat mengubah nama dan nomor identitas pengguna bersangkutan. Hal ini dikarenakan
jabatan administrator termasuk password-nya sudah ditetapkan oleh program, sehingga
jika terhapus dapat membuat program tidak berjalan dengan semestinya.
Gambar 4.3 Tampilan kedua dari Form LOGIN bagi Administrator
Pada form LOGIN terdapat 2 buah tombol perintah untuk keluar dari form ini, yaitu
tombol LOGIN, dan tombol KELUAR. Tombol LOGIN ditekan setelah user selesai
mengisi identitas dan ingin melanjutkan ke form selanjutnya. Khusus untuk administrator,
ketika tombol LOGIN ditekan maka caption pada tombol tersebut berubah menjadi
LANJUT seperti pada gambar 4.3. Jika administrator selesai melakukan penyesuaian data
pada database pengguna, maka untuk melanjutkan ke form PROSES dilakukan penekanan
pada tombol LANJUT. Penekanan tombol tersebut selain untuk memanggil form
selanjutnya, juga berfungsi untuk memasukkan data user ke dalam database yaitu
”Data_proses” dan diberikan nomor urut produksi. Tombol KELUAR jika user ingin
keluar dari program dan tidak ingin menjalankan proses otomatisasi ’Alat Penakar Obat
Serbuk’.
42
4.1.3. Pengamatan pada Form PROSES
Hasil akhir tampilan form PROSES terdiri atas 6 buah frame dan 4 buah tombol
perintah. Seperti pada rancangan bab sebelumnya, hasil akhir rancangan program juga
terdapat 3 buah frame sebagai tempat pembacaan data yaitu frame PETUGAS, frame
PASIEN, dan frame MONITORING OBAT. Hasil pengembangan rancangan menghasilkan
3 buah frame tambahan, yaitu frame DOKTER, frame INDIKATOR, dan frame Data Obat
Gelas Takar. Selain itu terdapat 4 buah tombol eksekusi, terdiri atas tombol HITUNG,
tombol START, tombol HELP, dan tombol KELUAR. Penjelasan mengenai setiap bagian
dari form ini akan diulas pada paragraf selanjutnya.
Gambar 4.4 Tampilan Awal dari FORM PROSES
Pada saat form PROSES aktif pertama kali, 3 buah informasi akan ditampilkan
form secara otomatis yaitu informasi mengenai identitas user, informasi mengenai berat
total obat serbuk pada tampungan obat, dan nomor urut produksi. Identitas user yang telah
dimasukkan pada form sebelumnya ditampilkan pada frame PETUGAS. Frame tersebut
berisi data mengenai nama user dan nomor identitas user tersebut. Pembacaan berat total
obat serbuk pada frame MONITORING OBAT, merupakan data berat sebenarnya hasil dari
gerusan apoteker yang akan dibagi oleh mesin ini. Pembacaan berat pada tampungan obat
serbuk berlangsung selama kurang lebih 2 detik, setelah itu rata-rata berat total obat akan
ditampilkan pada textbox berat total dan dikunci oleh program. Hal ini dimaksudkan untuk
43
mendapatkan data berat total obat serbuk yang tepat dan tidak berubah-ubah sehingga tidak
mempengaruhi kinerja program pada sistem. Nomor urut produksi ditampilkan pada frame
’No Faktur Produksi’. Nomor inilah yang nantinya digunakan oleh sistem sebagai penanda
pada database ”Data_proses”, untuk membedakan data pada setiap proses produksi agar
tidak bercampur-aduk. Data yang ditampilkan pada ketiga buah frame ini tidak dapat
diganti maupun dihapus oleh user, karena sudah dikunci oleh program pada sistem. Untuk
lebih jelasnya tampilan form PROSES terlihat pada gambar 4.4 dan frame MONITORING
OBAT pada gambar 4.5. Terlihat pula pada gambar, hanya ada 2 buah tombol eksekusi
yang aktif dan lampu indikator dalam keadaan mati. Hal ini berarti PC (Personal
Computer) belum mengirimkan perintah ke dalam sistem untuk bekerja.
Gambar 4.5 Tampilan pembacaan Berat Total dan Lampu Indikator
Sebelum form PROSES mengirimkan paket data perintah ke dalam sistem untuk
bekerja, user harus mengisi data pada textbox kosong yang diminta oleh sistem secara
berurutan dan lengkap. Hal tersebut ditandai dengan berkedipnya setfocus kursor pada
setiap textbox kosong yang harus diisi. Setiap selesai mengisi data pada textbox dan untuk
memindahkan kursor ke textbox selanjutnya, user hanya cukup menekan ’ENTER’ atau
’TAB’ pada keyboard. Secara berurutan data yang harus diisi pada textbox adalah
Nama_pasien, No_identitas Pasien, Nama_Dokter, dan Jumlah pembagian Obat serbuk
yang dinginkan. Kursor berkedip pertama kali berada pada textbox Nama_Pasien, setelah
user mengisi data dan menekan tombol Enter, lalu kursor akan berpindah ke textbox
selanjutnya yaitu No_identitas Pasien begitupula selanjutnya secara berurutan. Selama
textbox masih kosong, maka kursor akan tetap pada tempatnya semula dan tidak berpindah
ke tempat lain. Terdapat dua buah textbox yang terisi secara otomatis oleh program pada
frame MONITORING OBAT, yaitu textbox Berat Obat Serbuk pada setiap gelas dan Berat
total Obat serbuk saat ini. Hasil tampilan pengisian data terlihat seperti gambar 4.6.
44
Gambar 4.6 Tampilan contoh pengisian data sebelum proses produksi
Setelah data jumlah pembagian obat serbuk selesai diisi oleh user dan tombol
’ENTER’ ditekan, maka tombol eksekusi ’HITUNG’ dan ‘START’ akan aktif. Tombol
’HITUNG’ berfungsi untuk membagi berat total obat serbuk dalam tampungan (tertampil
pada textbox berat total) dengan jumlah pembagian yang diinginkan oleh user (tertampil
pada textbox jumlah bagi), serta mengaktifkan tombol START. Hasil dari pembagian
tersebut akan ditampilkan pada textbox terakhir yang berlabel ’Berat Obat Serbuk Pada @
gelas’. Setelah hasil perhitungan ditampilkan, caption atau label tombol ’HITUNG’ akan
berubah menjadi ’RESET’. Perubahan caption pada tombol ini akan mengakibatkan
perubahan fungsi didalam program. Tombol ’RESET’ berfungsi untuk mengosongkan
textbox jumlah bagi dan textbox berat pada setiap gelas, sehingga user dapat
memperbaharui perhitungan jumlah pembagian yang diinginkan sebelumnya. Jika semua
data sudah sesuai, user dapat memulai jalannya proses produksi dengan menekan tombol
’START’. Hasil tampilan dapat dilihat pada gambar 4.6.
Pada hasil akhir rancangan program seperti pada gambar 4.7, caption atau label
pada tombol eksekusi ’START’ dapat berubah menjadi 3 jenis pelabelan diantaranya adalah
label ’START’ itu sendiri, label ’STOP’, dan terakhir label ’LANJUT’. Setiap perubahan
caption atau label pada tombol ini juga akan mengakibatkan perubahan fungsi di dalam
45
program. Seperti pada bab perancangan sebelumnya, penekanan tombol ’START’ pada
program berfungsi untuk mengirimkan paket data perintah kepada PLC untuk mulai
bekerja dan caption tombol berubah menjadi ’STOP’. Tombol ’STOP’ berfungsi untuk
menghentikan jalannya proses pada sistem. Tombol ’LANJUT’ berfungsi untuk
melanjutkan ke proses selanjutnya yaitu masuk ke form CETAK. Paket data perintah
karena penekanan tombol ’START’, berisi instruksi ’@00WH00010001’ yang akan
mengaktifkan tombol On_Off sistem yaitu HR001, sama seperti pada rancangan bab
sebelumnya. Selanjutnya program akan mengaktifkan timer yang akan mengirimkan
instruksi untuk pembacaan data memori PLC (DM) secara terus-menerus. Aktifnya timer
menandai proses komunikasi antara PLC dengan PC berlangsung.
Gambar 4.7 Tampilan dimulainya proses produksi pada sistem
Berlangsungnya proses komunikasi antara PLC dengan PC pada tampilan program
ditandai dengan terisinya textbox ’Berat Total Obat Serbuk Saat ini’, dan menyalanya
lampu pada frame INDIKATOR, seperti pada gambar 4.7. Textbox dengan label ’Berat
Total Obat Serbuk Saat ini’ berfungsi untuk menampilkan perubahan berat yang terjadi
pada tampungan obat serbuk seperti pada gambar 4.8. Hal ini dimaksudkan agar user dapat
mengawasi (monitoring) berat akhir pada tampungan obat, ketika terjadi proses pengisian
46
obat ke dalam gelas takar. Lampu indikator berfungsi sebagai tanda sampai dimana proses
pada sistem perangkat keras (hardware) ’Alat Penakar Obat Serbuk’ berlangsung.
Sebagian perubahan pada frame INDIKATOR ditunjukkan pada gambar 4.9 secara
berurutan mulai dari sebelah kiri ke arah kanan. Gambar tersebut menunjukkan proses
awal sampai dengan proses pengisian gelas takar. Lampu indikator berwarna biru muda
terang diatas label ’Solenoid 2’ melambangkan berlangsungnya proses pengisian gelas
takar.
Gambar 4.8 Contoh perubahan tampilan pada frame monitoring obat
Gambar 4.9 Contoh perubahan tampilan pada frame Indikator
Proses komunikasi antara PC dengan PLC dapat berakhir melalui 2 cara, yaitu
secara paksa dan secara normal. Penghentian komunikasi secara paksa merupakan suatu
proses berhentinya komunikasi sebelum keseluruhan proses produksi selesai, misalnya;
mematikan power PLC saat komunikasi berlangsung, penekanan tombol KELUAR
sebelum proses selesai, dan lain sebagainya. Penghentian komunikasi secara paksa dapat
mengakibatkan program tidak berfungsi dengan semestinya, atau bahkan dapat
menyebabkan kerusakan pada hardware. Penghentian komunikasi secara normal
merupakan suatu proses dihentikannya komunikasi setelah keseluruhan produksi selesai
terlaksana sesuai sekuensial. Hal ini antara lain ditandai dengan; berubahnya caption
tombol ’STOP’ menjadi ’LANJUT’, lampu indikator dalam keadaan mati, atau jika angka
pada frame JUMLAH PROSES sudah sama dengan angka pada textbox ’JUMLAH
47
PEMBAGIAN OBAT SERBUK’. Tampilan berakhirnya proses produksi secara normal
ditunjukkan pada gambar 4.10 di bawah ini.
Gambar 4.10 Tampilan berakhirnya proses produksi pada sistem
4.1.4. Pengamatan pada Form CETAK
Hasil akhir tampilan dari form CETAK dan LOGOUT seperti pada gambar 4.11,
sedikit berbeda dengan rancangan awal pada bab sebelumnya. Perbedaan tersebut terletak
pada input dari ’JENIS KERTAS’, dimana pada rancangan sebelumnya semua jenis ukuran
kertas yang telah ter-install dalam printer dimasukkan ke dalam ComboBox. Penulis belum
berhasil membuat program tersebut sehingga pemilihan jenis ukuran kertas tidak melalui
ComboBox melainkan melalui menu Option. Perbedaan lainnya terletak pada tombol
eksekusi ’CETAK’ dan ’LIHAT’, dimana pada bab perancangan hanya ada tombol
CETAK dan STOP. Hal ini tidak mempengaruhi fungsi form CETAK dan LOGOUT
secara keseluruhan, karena bagian lain didalam form seperti ComboBox printer, pilihan
banyaknya jumlah copy, dan semua tombol eksekusi perintah berfungsi dengan baik sesuai
dengan rancangan pada bab sebelumnya.
48
Gambar 4.11 Tampilan akhir dari form CETAK dan LOGOUT
Form CETAK dan LOGOUT pada hasil akhir rancangan merupakan hasil
pengembangan dari perancangan sebelumnya. Tombol ’Cetak” dan tombol ’Lihat’, dapat
digunakan oleh pengguna setelah pengguna memilih jenis printer, jenis kertas, dan terakhir
mengisi jumlah cetak yang diinginkan. Tombol ’Cetak’ berfungsi untuk langsung
mencetak laporan hasil proses produksi yang terakhir kali dilakukan oleh sistem, seperti
pada gambar 4.11, sesuai dengan jenis printer dan kertas yang dipilih pengguna
sebelumnya. Tombol ’Lihat’ berfungsi untuk melihat laporan hasil produksi sebelum
dicetak ke atas kertas (print preview). Tombol ’HELP’ digunakan untuk memanggil form
yang berisikan keterangan mengenai cara penggunaan form secara singkat. Tombol
’LOGOUT’ berfungsi untuk menutup form ini dan kembali ke form LOGIN, sehingga lebih
mempersingkat waktu jika ingin melakukan proses produksi lagi.
4.1.5. Pengamatan pada Form Tampilan Laporan (CRViewer)
Pembuatan laporan proses produksi pada sistem menggunakan bantuan software
Crystal Report 8.5. Software tersebut dapat berhubungan secara langsung dengan database
Microsoft Access seperti yang digunakan didalam sistem ini. Program Visual Basic 6.0
dapat menampilkan susunan bentuk laporan yang telah dibuat pada Crystal Report 8.5
dengan menggunakan CRviewer. Kerjasama antara Visual Basic dan Crystal Report 8.5
memungkinkan para pengguna melihat tampilan laporan hasil proses produksi sebelum
dicetak ke atas kertas, atau lebih dikenal dengan print preview.
Hasil tampilan CRviewer atau print preview dari laporan hasil proses produksi
terlihat pada gambar 4.12. Laporan hasil proses produksi dikelompokkan berdasarkan
49
tanggal dilaksanakannya proses produksi tersebut, seperti ditampilkan pada bagian sebelah
kiri dari tampilan laporan (tab preview) pada gambar 4.12. Pengguna juga dapat mencetak
laporan hasil produksi melalui print preview dengan menekan lambang printer pada
toolbar, hanya saja format tampilan yang dihasilkan nantinya akan berbeda tidak sama
seperti melalui penekanan tombol ’Cetak’. Melalui CRviewer pengguna juga dapat melihat
semua laporan hasil proses produksi yang telah dilaksanakan oleh sistem dengan memilih
tanggal produksi pada tab preview. Tampilan CRviewer dapat ditutup menggunakan
tombol ’KELUAR’ atau memilih tanda silang pada bagian pojok kanan atas, selanjutnya
pengguna akan kembali pada tampilan form CETAK dan LOGOUT.
Gambar 4.12 Tampilan print preview laporan hasil proses produksi
4.2. Analisa pada Pemrograman PLC Omron CPM2A
Subbab ini berisi tentang pengujian program ladder yang digunakan untuk
mengatur input-output dan channel-channel fungsi dalam PLC. Perbedaan program ladder
sebelum diuji ditunjukkan oleh gambar 4.13, sedangkan saat dilakukan pengujian
ditunjukkan oleh gambar 4.14. Dari kedua buah gambar tersebut terlihat jelas, warna hijau
hanya muncul saat program ladder sedang dalam proses pengujian atau monitoring. Warna
hijau yang melalui rung ataupun channel fungsi dapat diandaikan seperti suatu aliran
50
listrik, sehingga warna hijau menandakan aktifnya suatu rung atau channel fungsi dalam
diagram ladder.
Gambar 4.13 Tampilan program ladder sebelum dilakukan pengujian
Gambar 4.14 Tampilan program ladder saat dilakukan pengujian
Tahap awal pengujian program ladder adalah menguji channel ON_OFF yang
menghubungkan komunikasi antara PLC dengan PC. Sistem pada alat ini mempunyai 2
jenis komunikasi, yaitu komunikasi sesaat dan komunikasi untuk monitoring. Setiap jenis
komunikasi menggunakan channel ON_OFF yang berbeda, jenis komunikasi sesaat
menggunakan HR 1.00 sedangkan komunikasi monitoring menggunakan HR 0.00. Alamat
200.00 merupakan alamat internal relay didalam PLC sebagai relay pengunci. Aktifnya
51
koil relay 200.00 menyebabkan kontak Normally Open (NO) relay tersebut aktif dan
terjadi pengisian range code ke IR 012 seperti terlihat pada rung 0 dan 1, juga terjadi
pemindahan data dari IR 002 menuju DM 0001. Gambar 4.15 membuktikan bahwa
program bekerja dengan baik sesuai perancangan.
Gambar 4.15 Pengujian channel ON_OFF untuk komunikasi sesaat
Jenis komunikasi monitoring pada PLC menggunakan HR 0.00, dan saat channel
ini aktif akan memutus sinyal dari HR 1.00 sehingga IR 200.00 hanya dikendalikan oleh
satu buah channel ON_OFF saja, yaitu HR 0.00. Channel HR 0.00 juga menjadi salah satu
syarat utama dalam sistem sebelum PLC mengendalikan output secara keseluruhan. Sesuai
perancangan awal output solenoid 1 pada alamat 10.01 akan aktif, jika HR 0.00 dan Limit
Switch 1 aktif pada alamat input 0.01 melalui perantara kontak relay 200.01; hal tersebut
terlihat pada rung 0, rung 3 dan rung 11 dari gambar 4.16 sebagai bukti bahwa program
bekerja dengan baik sesuai rancangan.
52
Gambar 4.16 Pengujian channel ON_OFF untuk komunikasi monitoring
Tahap pengujian selanjutnya adalah proses perpindahan gelas takar menuju tempat
pengisian dibawah tempat penampungan obat serbuk, seperti pada gambar 4.17. Proses
tersebut dilakukan dengan mengaktifkan motor DC power window pada alamat 10.02 dan
menonaktifkan output solenoid 1 pada alamat 10.01, seperti pada rung 14 dan rung 13,
gambar 4.17. Sesuai perancangan, motor ini akan aktif dalam waktu 2 detik setelah
mendapat sinyal dari kontak normally open TIM 004. Channel output TIM 004 pada rung
5 mulai melakukan perhitungan waktu 2 detik (aktif), setelah mendapat sinyal dari kontak
relay 200.02. Syarat agar channel output 200.02 aktif adalah aktifnya sensor infrared (S1)
pada alamat 0.00 dan limit switch 1 pada alamat input 0.01, seperti pada rung 4 gambar
4.17.
53
Gambar 4.17 Pengujian perpindahan gelas takar menuju tempat pengisian
Tahap pengujian keempat adalah proses pengisian obat serbuk sesuai takaran pada
gelas takar. Proses ini dilakukan dengan cara menonaktifkan motor DC power window dan
mengaktifkan output solenoid 2 pada saat gelas takar kosong tepat berada di bawah tempat
tampungan obat. Aktifnya sensor infrared (S2) pada alamat 0.02 dan limit switch 2,
merupakan syarat untuk mengaktifkan channel output 200.04 yang berfungsi untuk
menonaktifkan motor DC power window, sekaligus mengaktifkan output solenoid 2 pada
alamat 10.03, seperti terlihat pada rung 6 dan rung 15 di gambar 4.18.
Gambar 4.18 Pengujian proses pengisian gelas takar
54
Tahap pengujian berikutnya adalah proses penutupan output solenoid 2 yang
menandakan gelas takar sudah terisi obat serbuk sesuai dengan takaran, setelah itu gelas
akan dibawa meja berputar menuju proses selanjutnya. Proses ini terjadi setelah program
VB pada komputer (PC) mengaktifkan channel HR 2.00, sehingga mengakibatkan channel
output 200.05 menjadi aktif. Hal tersebut mengakibatkan kontak normally open channel
200.05 menjadi aktif, sehingga menonaktifkan alamat output 10.03 dan mengaktifkan
kembali motor DC power window. Proses ini dapat dilihat pada Gambar 4.19.
Gambar 4.19 Pengujian proses penutupan output solenoid 2
Tahap pengujian berikutnya adalah proses penghentian gelas takar selama kurang
lebih 5 detik sebelum dilakukan pemindahan ke tabung penyimpanan. Proses ini terjadi
setelah meja putar mengaktifkan LS 3 pada channel 0.04, dan mengakibatkan output
dengan alamat 200.06 menjadi aktif. Seiring dengan kejadian tersebut, maka kontak
channel 200.06 menjadi aktif dan mengaktifkan TIM 005 untuk menghitung waktu selama
5 detik. Setelah waktu 5 detik terpenuhi maka channel normally open TIM 005 akan
mengirimkan sinyal kepada motor DC yang beralamat pada output 10.02 untuk berputar
kembali. Proses ini ditunjukkan oleh gambar 4.20.
Gambar 4.20 Pengujian proses penghentian gelas takar
55
Tahap pengujian selanjutnya adalah pengiriman gelas takar ke dalam tabung
penyimpanan sekaligus menghentikan meja putar kurang lebih selama 3 detik. Pada saat
meja putar mengaktifkan sensor S3 pada alamat 0.05 dan limit switch 4 (LS4) pada alamat
0.06, maka output channel 200.08 akan aktif. Hal tersebut mengakibatkan input channel
200.08 menonaktifkan motor DC dengan alamat 10.02 dan mengaktifkan TIM 006 untuk
menghitung waktu selama 3 detik. Setelah 3 detik terpenuhi, kontak TIM 006 akan
mengaktifkan output channel 10.02, sehingga meja kembali berputar. Pembuktian proses
ini ditampilkan pada gambar 4.21.
Gambar 4.21 Pengujian proses penyimpanan gelas takar
Tahap pengujian terakhir merupakan proses pengembalian semua rung yang
terpengaruh oleh input channel dan mempengaruhi output channel ke posisi semula,
sehingga proses sekuensial dapat terulang lagi sampai hasil proses produksi sesuai dengan
masukan dari pengguna. Proses ini dapat terjadi setelah meja putar menyelesaikan 1
putaran atau 1 sekuensial dengan mengaktifkan kembali limit switch 1 yang beralamat
0.01, dan menyebabkan output channel 200.09 pada rung 12 menjadi aktif seperti pada
gambar 4.21. Hal tersebut mengakibatkan kontak normally closed 200.09 pada rung 3
terbuka sesaat dan me-reset seluruh program ladder mulai dari rung 3 sampai dengan rung
15. Sayangnya proses ini terlalu cepat sehingga penulis tidak bisa memberikan gambar
secara detail.
Gambar 4.22 Pengujian input channel untuk me-reset program ladder
56
4.3. Analisa pengubahan data pada CPM1A - MAD01
Proses pengujian dan analisa dilakukan dengan cara membandingkan antara data
tegangan keluaran yang diukur menggunakan multimeter digital, dengan pemantauan pada
alamat DM0001 pada PLC OMRON CPM2A, dan hasil tampilan tegangan tersebut pada
program VB. Pada tabel 4.2 terlihat sebagian data percobaan yang telah diambil untuk
menguji proses konversi data yang terjadi pada sistem.
Tabel 4.2 Hasil konversi data analog ke dalam tampilan program
Tegangan keluaran pada multimeter (Volt)
Data output dari MAD01
Tampilan pada program Visual Basic
0 – 0,070 0000 0 0,219 0006 0,23532 0,4 000A 0,3922 0,6 000F 0,5883 0,8 0014 0,7844 1 001A 1,01972 1,2 001F 1,21582 1,4 0024 1,41192 1,6 0029 1,60802 1,8 002E 1,80412 2 0033 2,00022 2,2 0038 2,19632 2,4 003D 2,39242 2,6 0043 2,62774 2,8 0048 2,82384 3 004E 3,05916 3,4 0057 3,41214 3,6 005C 3,60824 4 0066 4,00044 5,034 0080 5,02016 6,54 00A7 6,54974 7,57 00C1 7,56946 8,01 00CC 8,00088 9,54 00F3 9,53046 9,81 00FA 9,805 9,93 00FE 9,96188 10,03 00FF 10,0011
Telah dikemukakan pada bab sebelumnya, CPM1A - MAD01 merupakan modul
analog to digital converter dengan 8 bit konversi, dan range code yang dimasukkan ke
dalam MAD01 adalah FF01. Hal tersebut membuat MAD01 hanya mampu mengubah
tegangan input dalam range 0 V sampai dengan 10 V, dan range tegangan tersebut akan
akan terbagi menjadi 256 tingkatan. Oleh karena itu, 0V akan dikonversikan menjadi
57
000016 dan 10V akan dikonversikan menjadi 00FF16. Hasil konversi tersebut membuat
tegangan maksimum yang dapat dihasilkan oleh MAD01 hanya terbatas seperti terlihat
pada tabel 4.3.
Tabel 4.3 Batasan konversi tegangan 0 s/d 10 Volt pada MAD01
Pada saat tegangan 0 Volt Volt0255
256
0 =×
Pada saat tegangan 10 Volt Volt96094.9255
256
10 =×
Data yang ditampilkan program VB pada tabel 4.2 merupakan hasil pengubahan
bilangan heksadesimal ke bilangan desimal, lalu dikalikan dengan besar perubahan
tegangan pada setiap bit data. Perubahan tegangan pada setiap bit data disebut dengan
voltage resolution. Nilai voltage resolution pada sistem ini saat jangkauan tegangan antara
0 – 10 Volt adalah 0,03922 Volt.
4.4. Pengujian Proses Komunikasi PC dan PLC
Seperti dijelaskan pada bab sebelumnya, bahwa proses komunikasi PC dan PLC
berupa pengiriman paket data melalui perantara kabel serial RS-232. Pengiriman paket
data perintah ataupun paket data jawaban tersebut, dapat dilihat menggunakan program
free serial port monitor dari HDD Hardware. Hasil dari pengamatan software tersebut
berupa tampilan seperti pada gambar 4.23 di bawah ini.
Gambar 4.23 Tampilan pengamatan port serial monitor
58
Pada gambar 4.23 terlihat rangkaian tulisan berwarna biru dan merah. Warna merah
melambangkan paket data perintah yang dikirimkan oleh PC menuju PLC. Warna biru
tersebut melambangkan paket data jawaban (response) yang dikirimkan oleh PLC menuju
ke PC. Pengiriman data pada sistem dapat berlangsung baik atau tanpa adanya error, hal
ini terlihat pada end code yang bernilai 00 pada paket data jawaban.
Pada saat terjadi proses komunikasi sesaat, form ’PROSES’ program VB
mengirimkan paket data perintah untuk mengaktifkan mode monitor PLC, mengaktifkan
channel komunikasi sesaat, dan membaca data sementara pada MAD01. Pengiriman ini
dilakukan secara berurutan selama kurang lebih 2 detik. Khusus untuk pembacaan
MAD01, pengiriman data perintah pembacaan dilakukan berulangkali setiap selang waktu
sekitar 150 ms, sehingga data yang didapatkan selalu data terbaru. Berdasarkan hasil
pengamatan pada tampilan program juga susunan paket data pada gambar 4.24, fungsi
pembacaan dan pengiriman data dapat berjalan dengan baik.
Gambar 4.24 Pengiriman data pada saat komunikasi sesaat
Pada saat terjadi proses komunikasi untuk monitoring, penekanan tombol ’START’
pada program VB akan mengirimkan paket data perintah sebanyak 4 macam. Paket data
perintah tersebut terdiri atas perintah untuk mematikan channel ON_OFF komunikasi
sesaat, menghidupkan channel komunikasi monitoring, pembacaan data dari MAD01, dan
juga pembacaan data yang digunakan untuk penentuan status lampu indikator. Pada semua
proses pembacaan pada DM dilakukan pengiriman paket data perintah berulangkali
sehingga PC selalu mendapatkan data terbaru dari PLC, sehingga proses ini dinamakan
59
monitoring. Gambar 4.25 merupakan bukti berlangsungnya proses pengiriman data
berfungsi dengan baik.
Gambar 4.25 Pengiriman data pada saat komunikasi monitoring
4.5. Analisa dan Pengamatan Data Pengujian
4.5.1. Pengujian Sampel Berat Obat
Pengujian sampel berat obat merupakan proses untuk menguji keakuratan sampel
berat obat yang didapat dari seorang apoteker. Berat keseluruhan dari sampel obat yang
didapat sebanyak 50 gram. Setiap sampel berat obat tersebut dikemas dengan
menggunakan plastik klip. Proses pengambilan data pengujian sampel berat obat dilakukan
dengan menggunakan menggunakan timbangan digital dengan ketelitian 0,1 mg. Pengujian
dilakukan dengan menggunakan 5 buah sampel berat obat seperti ditunjukkan tabel 4.4 di
bawah ini.
Tabel 4.4 Sampel berat obat untuk pengujian load-cell
Berat obat
(gram)
Pengujian
I (gram)
Pengujian
II (gram)
Pengujian
III (gram)
Galat Pengujian
(%)
tanpa beban 0,0005 0,0012 0,0008 - 10 10,2849 10,30 10,295 2,93 20 20,59 20,6034 20,296 2,42 30 30,94 30,91 30,93 3,088 40 40,19 40,231 41,19 1,343 50 51,778 51,75 51,775 3,54
60
Pada pengujian penetapan sample berat obat yang digunakan pada tabel 4.4
menggunakan timbangan digital terjadi kesalahan atau galat. Perhitungan galat tersebut
didapatkan melalui persamaan di bawah ini :
3
IIIpengujianIIpengujianIpengujianpengujianrataRata
++=− (4.1)
( )%100×−−=
obatBerat
pengujianratarataobatBeratpengujianGalat (4.2)
Pengujian pada tabel 4.4 bermaksud untuk membuktikan bahwa sampel berat obat yang
digunakan sebagai referensi, terpengaruh oleh berat kemasan plastik yang dipakai sebagai
wadah dari serbuk obat. Berat kemasan plastik setelah ditimbang menggunakan timbangan
digital sebesar 0,2775 gram.
4.5.2. Pengujian Tampilan Tegangan Output Load-cell
Proses pengujian dilakukan dengan mengukur tegangan output load-cell yang
masuk ke dalam MAD01 pada sistem, lalu dibandingkan dengan hasil tampilan berupa
tegangan pada program VB. Proses ini dilakukan dengan menaruh sampel berat obat pada
load-cell dan tegangan keluaran load-cell yang masuk ke dalam MAD01 akan bertambah
besar seiring dengan penambahan berat pada load-cell. Pengukuran tegangan pada MAD01
menggunakan multimeter digital dengan ketelitian 0,1 mV. Hasil data pengujian
ditampilkan pada tabel 4.5 di bawah ini.
Tabel 4.5 Pengujian Tampilan Tegangan Load-cell pada Program VB
Berat Obat
(gram)
Input MAD01
(Volt)
Pembacaan tegangan pada program VB
(Volt)
Tanpa beban 0 – 0,057 0,039; 0; 0; 0,39; 0; 0,39; 0; 0; 0 10,2933 0,182 – 0,665 0,78; 0,196; 0,118; 0,157; 0,235; 0,196;
0,157; 0,118; 0,118 20,4965 0,414 – 0,428 0,471; 0,314; 0,471; 0,353; 0,353; 0,431;
0,431; 0,431; 0,353 30,9267 0,610 – 0,639 0,588; 0,706; 0,549; 0,667; 0,667; 0,628;
0,706; 0,549; 0,667 40,537 0,787 – 0,798 0,863; 0,667; 0,863; 0,745; 0,784; 0,784;
0,706; 0,863; 0,706 51,7677 0,998 – 1,062 1,02; 0,98; 1,059; 0,941; 1,059; 0,941;
0,98; 1,098; 0,941
61
Seperti terlihat pada tabel 4.5, tegangan input yang terbaca oleh MAD01 berupa
range tegangan pada setiap sampel berat obat. Range tegangan tersebut muncul akibat
tegangan output load-cell yang tidak stabil. Hal ini membuat alur perancangan program
VB pada bab sebelumnya tidak berlaku sehingga dilakukan perubahan pada proses
pembacaan sesaat berat total obat. Program pada sistem dibuat untuk menampilkan nilai
rata-rata dari semua perubahan tegangan pada input MAD01 selama 2 detik, dimana pada
perancangan sebelumnya program hanya menampilkan perubahan tegangan yang muncul
terakhir kalinya. Dalam jangka waktu 2 detik tersebut, program mendapatkan 9 buah data
yang berhasil dikonversi seperti pada kolom 3 tabel 4.5. Hasil perhitungan tegangan rata-
rata yang didapatkan program selama 2 detik seperti pada tabel 4.6.
Tabel 4.6 Tabel Tegangan rata-rata pada Program VB
Berat Obat (gram)
Input MAD01 (Volt)
Tegangan rata-rata (Volt)
Berat Total pada VB (gram)
0 0 – 0,057 0,013 -0,5137 10,2933 0,182 – 0,665 0,231 10,9752 20,4965 0,414 – 0,428 0,401 19,935 30,9267 0,610 – 0,639 0,636 32,3194 40,537 0,787 – 0,798 0,776 39,6976 51,7677 0,998 – 1,062 1,002 51,6082
Tegangan rata–rata pada kolom 3 tabel 4.6 dijadikan sebagai acuan untuk
pengubahan tegangan menjadi berat dalam satuan gram pada tampilan VB. Bilangan
pengubah tersebut merupakan gradien (slope) dari grafik linearitas antara sampel berat
obat dengan tegangan rata-rata yang dicari melalui persamaan garis :
bmxy += (4.3)
Keterangan: y = nilai sampel berat obat (gram)
x = nilai tegangan rata-rata pembacaan pada program VB (Volt)
m = nilai gradien pengali (slope)
b = koefisien penambahan konstan
Melalui persamaan tersebut dan dengan menggunakan program Microsoft Excel 2003,
diperoleh nilai gradien (m) = 52,70157 dan koefisien penambahan (b) = -1,19881. Kedua
nilai tersebut selanjutnya dimasukkan ke dalam program VB, sehingga berat sampel obat
pada tampilan VB mengikuti perubahan berat yang terjadi pada load-cell seperti
62
ditunjukkan pada kolom 4 tabel 4.6. Pengubahan tegangan ke dalam berat pada program
VB dengan menggunakan persamaan di bawah ini :
)19881,1(})70157,52({ −+×= − MultimeterVVBpadaTotalBerat ratarata (4.4)
Contoh perhitungan pada program VB saat load-cell menerima sampel berat obat sebesar
10,2933 gram dan 51,7677 gram adalah sebagai berikut :
gram
MultimeterVVBpadaTotalBerat ratarata
9752,10
97525267,10
19881,117406267,12
)19881,1(}231,0)70157,52({
)19881,1(})70157,52({
≈=
−=−+×=
−+×= −
gram
MultimeterVVBpadaTotalBerat ratarata
6082,51
60816314,51
19881,180697314,52
)19881,1(}002,1)70157,52({
)19881,1(})70157,52({
≈=
−=−+×=
−+×= −
Seluruh perhitungan di atas hanya berlaku pada saat range tegangan masukan pada input
MAD01 sesuai dengan tabel 4.5 dan tabel 4.6. Berat obat yang ditampilkan pada program
Visual Basic merupakan pembulatan 4 angka di belakang koma. Perubahan range tegangan
pada input MAD01 yang terjadi diluar data tabel 4.5 dan tabel 4.6, akan mempengaruhi
nilai gradien (m) dan nilai koefisien penambahan (b) pada program VB. Oleh karena itu,
kestabilan output load-cell dalam memberikan tegangan masukan kedalam MAD01 saat
menerima sampel berat obat, sangat dibutuhkan untuk menghindari kesalahan pembacaan
program.
Tabel 4.7 Tabel Interpretasi r Product Moment [13]
r Tingkat Hubungan
Antara 0,800 sampai dengan 1,000 Tinggi
Antara 0,600 sampai dengan 0,800 Cukup
Antara 0,400 sampai dengan 0,600 Agak rendah
Antara 0,200 sampai dengan 0,400 Rendah
Antara 0,000 sampai dengan 0,200 Sangat rendah / tak berkolerasi
Tingkat hubungan antara perubahan antara berat obat dengan tegangan rata-rata,
dapat diuji dengan menggunakan analisis statistika Karl’s Pearson Product Moment yang
63
sudah tersedia pada aplikasi program Microsoft Excel 2003. Nilai koefisien relasi yang
dihasilkan dari perhitungan tersebut adalah sebesar (r) = 0,99794 dan grafik linearitas
dapat dilihat pada lampiran L1. Interpretasi mengenai tingkat hubungan dari nilai koefisien
tersebut dapat dilihat melalui tabel 4.7. Berdasarkan tabel 4.7, tingkat hubungan antara
berat sampel obat dengan pembacaan tegangan rata-rata pada program VB adalah tinggi,
sehingga nilai gradien dan koefisien dapat digunakan sebagai nilai pengubah.
Pada pengujian tampilan pembacaan berat total dengan menggunakan load-cell
terjadi kesalahan atau galat. Hasil dari perhitungan galat pada tabel 4.8, didapatkan melalui
perbandingan antara data berat sampel obat dan tampilan Berat Total di VB pada tabel 4.6
dengan menggunakan persamaan di bawah ini :
( )%100×−=
obatsampelBerat
VBpdTotalBeratTampilanobatsampelBeratpengujianGalat (4.5)
Pengujian pada tabel 4.8 dimaksudkan untuk membuktikan bahwa software bekerja dengan
baik dalam pembacaan dan pengubahan tegangan output load-cell. Pengujian ini belum
menyatukan keseluruhan proses dalam sistem, atau dengan kata lain program belum
digunakan untuk mengendalikan hardware sepenuhnya.
Tabel 4.8 Nilai Kesalahan Tampilan Berat di VB terhadap sampel Obat
Berat Obat
(gram)
Tampilan Berat
Total pada VB
Galat Pengujian
(%)
0 -0,5137 -
10,2933 10,9752 6,625
20,4965 19,935 2,739
30,9267 32,3194 4,50
40,537 39,6976 2,07
51,7677 51,6082 0,308
Seperti telah dijelaskan melalui perhitungan pada paragraf-paragraf sebelumnya,
maka dapat disimpulkan bahwa data pada tabel 4.5, tabel 4.6, dan tabel 4.8 saling
berhubungan satu sama lain. Keseluruhan data tersebut dipengaruhi oleh perubahan
tegangan pada input MAD01 yang berasal dari perubahan tegangan output load-cell
terhadap sampel berat obat. Dengan kata lain, program tidak dapat menampilkan berat
pada tampungan obat tanpa adanya load-cell.
64
4.5.3. Pengujian Software terhadap Hardware
Proses pengujian dilakukan dengan menggabungkan program yang telah dibuat
terhadap Alat Penakar Obat Serbuk. Oleh karena itu, seluruh pemasangan kabel input
maupun output, termasuk menghubungkan MAD01 dengan load-cell, disesuaikan dengan
alamat pada bab sebelumnya. Proses pengujian dilakukan dengan cara melihat keseluruhan
proses, membandingkan tegangan masukan MAD01 dengan tampilan pada program VB,
dan terakhir membandingkan hasil penakaran pada setiap gelas takar dengan timbangan
digital. Pengukuran tegangan pada input MAD01 menggunakan multimeter digital. Sampel
obat yang digunakan dalam pengujian ini adalah bubuk kristal. Hasil pengukuran berat
bubuk kristal dengan menggunakan timbangan digital sebesar 10,2933 gram, dan
selanjutnya akan dilakukan pembagian berat sebanyak 2 bagian. Hasil data pengujian
ditunjukkan pada tabel 4.9 dan tabel 4.10.
Tabel 4.9 Pembacaan Tegangan Pengujian Software terhadap Hardware
Berat Obat (gram)
Input MAD01 (Volt)
Pembacaan tegangan pada program VB (Volt)
0 0,02 – 0,012 0; 2,196; 0; 0; 0,392; 0; 2,549; 0; 0 (Tanpa beban) 0,038 - 0,068 0; 0; 0; 0; 0; 2,314; 0; 0; 0
10,2933 0,150 – 0,172 0,392; 0; 0; 0; 0; 0,628; 0; 0; 0 0,113 – 0,125 0; 0; 0; 0,941; 0; 0; 0; 0; 0,51 0,228 – 0,235 0,392; 0; 0; 0; 0; 3,02; 0; 0; 0
Tabel 4.10 Hasil Tampilan Berat Total pada Software terhadap Hardware
Berat Obat (gram)
Input MAD01 (Volt)
Tegangan rata-rata (Volt)
Berat Total pada VB (gram)
0 0,02 – 0,012 0,571 28,8938 (Tanpa beban) 0,038 - 0,068 *) 0,257*) 12,3455 *)
10,2933 0,150 – 0,172 0,113 4,7565 0,113 – 0,125 0,161 7,2861 0,228 – 0,235 *) 0,379*) 18,780 *)
Catatan : Tanda *) melambangkan hasil pembacaan terakhir yang ditampilkan oleh
program.
Pada tabel 4.9, terlihat perbedaan signifikan antara range tegangan pada input
MAD01 yang terbaca oleh multimeter pada kolom 2 dengan hasil pembacaan tegangan
oleh program VB. Perbedaan tegangan pada pembacaan program VB yang terbilang
ekstrem ditandai dengan angka yang dicetak tebal, seperti pada kolom 3 tabel 4.9.
65
Tegangan ekstrem tersebut menyebabkan pembacaan tegangan rata-rata pada program VB
berada di luar range tegangan yang terbaca pada multimeter digital, seperti terlihat pada
kolom 3 tabel 4.10. Hal ini terjadi setelah power supply utama pada Alat Penakar Obat
Serbuk dinyalakan. Sampai dengan laporan ini dibuat, penulis belum menemukan hal yang
menyebabkan tegangan ekstrem tersebut terbaca oleh MAD01.
Pada tabel 4.10, terlihat perbedaan signifikan antara berat obat sesungguhnya
(kolom 1) dengan tampilan berat total pada program VB (kolom 4). Seperti diulas pada
subbab sebelumnya, tampilan berat total pada program VB didapatkan dengan cara
memasukkan nilai tegangan rata-rata kedalam persamaan 4.4. Contoh perhitungan pada
program VB saat load-cell menerima sampel berat obat sebesar 0 gram adalah sebagai
berikut :
• Pembacaan selama 2 detik pertama saat 0 gram
gram
MultimeterVVBpadaTotalBerat ratarata
8938,28
89378647,28
19881,109259647,30
)19881,1(}571,0)70157,52({
)19881,1(})70157,52({
≈=
−=−+×=
−+×= −
• Pembacaan selama 2 detik berikutnya saat 0 gram
gram
MultimeterVVBpadaTotalBerat ratarata
3455,12
34549349,12
19881,154430349,13
)19881,1(}257,0)70157,52({
)19881,1(})70157,52({
≈=
−=−+×=
−+×= −
Perhitungan di atas membuktikan bahwa tegangan ekstrem mempengaruhi perhitungan
program yang telah ditetapkan sebelumnya. Perhitungan tersebut juga membuktikan bahwa
ketidakstabilan (osilasi) tegangan masukan yang terjadi pada input MAD01 memperbesar
tingkat kesalahan pembacaan berat pada tampungan obat serbuk oleh program. Program
tidak dapat berjalan dengan baik sesuai dengan perancangan.
Pengujian software terhadap hardware secara keseluruhan menyebabkan sistem
tidak bekerja secara presisi dalam pembagian, hal ini terlihat pada gambar 4.26. Hasil
pembacaan tegangan input MAD01 pada program VB selama 2 detik ditunjukkan oleh
gambar 4.26a, dimana terdapat tegangan ekstrem sebesar 3,02 Volt yang terbaca oleh
MAD01. Tegangan rata-rata pembacaan selama 2 detik tersebut lalu diolah oleh program
dan ditampilkan pada frame MONITORING OBAT, seperti pada gambar 4.26b. Berat obat
66
pada setiap gelas takar yang dihasilkan oleh sistem, ditunjukkan oleh kotak merah dengan
garis putus-putus pada gambar 4.26c. Berat obat menurut pembacaan software dari hasil
pembagian program pada gelas takar pertama adalah sebesar 19,98 gram, sedangkan pada
gelas takar kedua adalah sebesar 0 gram. Hasil penimbangan dengan menggunakan
timbangan digital untuk gelas takar pertama sebesar 1,05 gram, sedangkan gelas takar
kedua sebesar 0,45 gram.
(a)
(b) (c)
Gambar 4.26 Pembacaan tegangan (a), berat hasil penakaran (b), dan
berat pada setiap gelas takar(c)
Program pembagian tidak berjalan sesuai dengan perancangan, dikarenakan terjadi
osilasi tegangan dari output load-cell. Osilasi tegangan pada saat proses monitoring
menghasilkan berat terukur bubuk kristal pada saat itu sebesar -1,199 gram. Besar
tegangan terukur saat proses monitoring dapat dicari melalui persamaan berikut di bawah
ini :
19881,170157,52 −= xy (4.5)
0
70157,52109,1
70157,5219881,1199,1
19881,170157,52199,1
4
≈=×
=+−−=−
−
x
x
x
x
Keterangan : y = Berat Total Obat Serbuk Saat ini (gram)
x = Tegangan hasil pembacaan pada MAD01 (Volt)
Perhitungan mengenai pembacaan software berat gelas takar pertama, gelas takar kedua,
dan seterusnya, dapat dicari dengan persamaan di bawah ini :
67
)1(inisaatTotalBeratSerbukObatTotalBeratITakarGelas −= (4.6)
gram
ITakarGelas
98,19
)199,1(871,18
=−−=
)2()1( inisaatTotalBeratiniSaatTotalBeratIITakarGelas −= (4.7)
gram
IITakarGelas
0
)199,1(199,1
=−−−=
Hasil dari perhitungan galat pada tabel 4.11, didapatkan dari perbandingan dosis yang
diharapkan dengan berat dosis terukur hasil penimbangan kembali menggunakan
timbangan digital. Nilai kesalahan atau galat pembagian pada setiap gelas takar dicari
dengan menggunakan persamaan di bawah ini :
( )%100×−=
diharapkanyangDosis
terukurDosisdiharapkanyangDosispembagianGalat (4.8)
Nilai akurasi pembagian pada sistem ini dicari dengan memasukkan nilai kesalahan yang
didapat dari persamaan 4.8 ke dalam persamaan di bawah ini :
pembagianGalatPembagianAkurasi −= %100 (4.9)
Hasil pengujian pada tabel 4.11 dimaksudkan untuk membuktikan bahwa proses
monitoring tampungan obat serbuk sangat tergantung pada kestabilan output load-cell saat
terjadi proses pengisian gelas takar. Ketidakstabilan output penguat load-cell
mengakibatkan solenoid katup pada tampungan obat serbuk menutup sebelum dosis pada
setiap gelas takar terpenuhi. Hal ini menyebabkan dosis obat dalam setiap gelas takar tidak
sesuai dengan dosis yang diharapkan maupun dengan hasil pembacaan berat oleh program
VB, dan sistem mempunyai keakuratan rendah dalam proses produksi.
Tabel 4.11 Nilai Kesalahan dan Akurasi Pembagian Dosis Obat Serbuk
Gelas Takar
(gram )
Dosis yang diharapkan
(gram )
Dosis Terukur ( gram )
Galat Pembagian
(%)
Akurasi Pembagian
(%) I 9,39 2,34 75,08 24,92 II 9,39 0,75 92,01 7,99
Pada kolom 4 tabel 4.11, nilai rata-rata akurasi pembagian saat proses produksi
dapat dicari dengan cara menjumlahkan seluruh nilai akurasi pembagian, setelah itu
membaginya dengan banyaknya gelas takar yang dihasilkan. Nilai rata-rata akurasi
pembagian yang didapatkan sistem adalah 16,455 %. Nilai akurasi pembagian akan
semakin menurun pada saat menjelang akhir proses produksi.
68
4.5.4. Pengujian Kinerja Hardware
Proses pengujian ini dilakukan untuk mengetahui waktu yang dibutuhkan sistem,
dalam memproduksi setiap gelas takar berisi dosis obat serbuk yang diinginkan. Proses
pengujian dilakukan dengan menggunakan sebuah potensiometer sebagai pengganti load-
cell. Hal ini dimaksudkan untuk menjaga kestabilan pembacaan tegangan pada input
MAD01 pada saat pengisian gelas takar. Pengukuran kecepatan proses produksi pada
setiap station-nya dilakukan dengan menggunakan stop-watch. Pertama kali tegangan
output potensiometer di-set sehingga menghasilkan tegangan 1 volt dan tampilan berat
total pada program VB sebesar 52,542 gram. Proses pembagian dilakukan sebanyak 2 buah
gelas takar, dengan harapan setiap gelas takar menghasilkan tampilan berat obat sebesar
26,271 gram (0,5212 Volt). Hasil pengujian ditunjukkan oleh tabel 4.12.
Tabel 4.12 Data Kecepatan Proses Produksi pada Sistem
Gelas Takar
Station I (detik)
Station 2 (detik)
Station 3 (detik)
Station 4 (detik)
Total Waktu (detik)
1 8,5 11,2 12,2 10,2 42,1 2 7,8 10,6 11,8 9,8 40
Total waktu keseluruhan proses produksi = 62,2
Data pengujian kecepatan pada tabel 4.12 dimaksudkan untuk memberikan
perkiraan waktu selama proses produksi. Data pada setiap kolom station merupakan
keseluruhan waktu yang dibutuhkan setiap station dalam menjalankan proses, dan
ditambah dengan waktu pengiriman ke station selanjutnya. Waktu pengiriman gelas takar
dari satu station ke station selanjutnya yaitu sekitar 6 detik. Berdasarkan kolom 6 tabel
4.12, kecepatan rata-rata sistem ini dalam memproduksi 1 buah gelas takar adalah sebesar
41,05 detik. Oleh karena itu, semakin banyak jumlah pembagian yang diinginkan oleh user
akan menyebabkan peningkatan waktu proses produksi.
69
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
1. Program Sistem Pengendali dan Monitoring menggunakan program komunikasi
antara Visual Basic 6.0 dan PLC OMRON CPM2A, belum dapat mengendalikan
proses pembagian pada Alat Penakar Obat Serbuk secara akurat diakibatkan osilasi
yang terjadi pada input MAD01.
2. Program VB dapat membaca dan mengendalikan hardware sesuai perancangan saat
menggunakan rangkaian potensiometer sebagai pengganti input load-cell.
3. Secara keseluruhan tidak ada kesalahan dalam pengiriman dan penerimaan data
antara komputer (PC) sebagai master dengan PLC sebagai slave.
4. Program VB dapat berfungsi dengan baik dalam mengontrol, me-monitor
perubahan pada input MAD01, mengawasi proses kerja melalui tampilan lampu
indikator, dan dalam penyimpanan data.
5. Kecepatan rata-rata sistem dalam memproduksi 1 gelas takar adalah sebesar 41,05
detik. Hal ini dipengaruhi oleh waktu pengiriman dari kecepatan meja putar dan
lama proses pada setiap station.
6. Nilai rata-rata akurasi pembagian yang didapatkan sistem adalah 16,455 %. Hal ini
dipengaruhi oleh nilai kesalahan (galat) karena keterbatasan MAD01, dan
munculnya tegangan ekstrem pada input MAD01 yang tidak terbaca oleh
multimeter digital.
5.1. Saran
1. PLC OMRON CPM2A beserta modul ADC CPM1A-MAD01 mungkin kurang
tepat dalam menangani keluaran tegangan yang tidak stabil dengan arus kecil. Oleh
karena itu perbaikan rangkaian pengondisi sinyal pada output load-cell wajib
dilakukan atau mengganti pengontrol hardware keseluruhan dengan menggunakan
mikrokontroller.
2. Penambahan berupa suatu gambar bergerak yang dapat mensimulasikan
keseluruhan proses akan membuat tampilan program semakin menarik bagi para
pengguna.
70
DAFTAR PUSTAKA
[ 1 ] Purnamawati. 2008. Obat Puyer Berbahaya.
http://hisfarma.blogspot.com/2009/02/obat-puyer-berbahaya.html. [29 Maret 2009]
[ 2 ] Loadcell. http://electricomatic.com/?p=17, diakses tanggal 11 Desember 2009.
[ 3 ] _____, ”Interfacing the Serial / RS232 Port”,
www.beyondlogic.org/serial/serial1.htm, tanggal akses : 17 Maret 2010.
[ 4 ] Retna Prasetia dan Catur Edi Widodo. Interfacing Port Paralel dan Port Serial
Komputer dengan Visual Basic 6.0, Yogyakarta: Andi. 2004.
[ 5 ] ______, ”RS 232 Data Interface”, http://www.arcelect.com/X21_interface.htm. [ 17
Maret 2010 ]
[ 6 ] Skuler.2007. Pengenalan PLC. http://www.forumsains.com/index.php?page=36. [ 27
Oktober 2007]
[ 7 ] Eko Putra, Agfianto. PLC: Konsep Pemrograman dan Aplikasi ( Omron CPM1A /
CPM2A dan ZEN Programmable Relay ). Yogyakarta: Gava Media. 2004.
[ 8 ] D11CPM2A0304.pdf,
www.omron247.com/doc/pdfcatal.nsf/.../D11CPM2A0304.pdf, tanggal akses : 6
Desember 2009.
[ 9 ] Omron, Sysmac CPM1 / CPM1A / CPM2A / CPM2C / SRM1 (-V2) Programmable
Controller: Programming Manual. Japan: Omron Corporation. 2001,
www.omron.com, tanggal akses 6 Mei 2008.
[10] Handy, “Bagaimana PC bisa ngobrol dengan PLC ? (Seri 1)”,
http://learnautomation.wordpress.com /2009/06/29/. [17 Maret 2010]
[11] Tjandra Kurniawan. Tip Trik Unik Visual Basic Buku Ketiga. Jakarta : PT. Elex
Media Komputindo. 2005.
[12] Muhammad Sadeli. Aplikasi Database dengan Visual Basic 6.0 untuk Orang Awam.
Palembang : Maxikom. 2008.
[13] Sugiyono. Metode Penelitian Bisnis. Bandung : Alfabeta. 2000.
71
LAMPIRAN
L1
LAMPIRAN PENGAMBILAN DATA OUTPUT LOAD-CELL SAAT POWER SUPPLY POSISI TIDAK AKTIF
Berat Obat
(gram)
Input MAD01 (Volt)
Pembacaan tegangan pada program VB (Volt) Vrata-rata
(Volt)
0 0 –
0,057 0,039 0 0 0,39 0 0,39 0 0 0 0,091
10,2933 0,182 – 0,665
0,78 0,196 0,118 0,157 0,235 0,196 0,157 0,118 0,118 0,231
20,4965 0,414 – 0,428 0,471 0,314 0,471 0,353 0,353 0,431 0,431 0,431 0,353 0,401
30,9267 0,610 – 0,639
0,588 0,706 0,549 0,667 0,667 0,628 0,706 0,549 0,667 0,636
51,7677 0,998 – 1,062 1,02 0,98 1,059 0,941 1,059 0,941 0,98 1,098 0,941 1,002
Berat Obat (gram) Input MAD01 (Volt) Tegangan rata-rata (Volt)
0 0 – 0,057 0,013 10,2933 0,182 – 0,665 0,231 20,4965 0,414 – 0,428 0,401 30,9267 0,610 – 0,639 0,636 40,537 0,787 – 0,798 0,776 51,7677 0,998 – 1,062 1,002
Sampel Berat Vs Tegangan rata-rata
0,013
0,231
0,401
0,6360,776
1,002
0
10
2030
40
50
60
0,013 0,231 0,401 0,636 0,776 1,002
Tegangan Rata-rata
Sam
pel B
erat
Series1
L2
LAMPIRAN PENGAMBILAN DATA OUTPUT LOAD-CELL
SAAT POWER SUPPLY POSISI AKTIF
Berat Obat
(gram)
Input MAD01 (Volt)
Pembacaan tegangan pada program VB (Volt) Vrata-rata (Volt)
0 0,02 – 0,012
0
2,196 0 0 0,392 0 2,549 0 0 0,570778 (Tanpa beban)
0,038 – 0,068
0
0 0 0 0 2,314 0 0 0 0,257 10,2933 0,150 –
0,172 0,392
0 0 0 0 0,628 0 0 0 0,113 0,228 –
0,235 0,392
0 0 0 0 3,02 0 0 0 0,379
Berat Obat (gram)
Input MAD01 (Volt)
Tegangan rata-rata (Volt)
Berat Total pada VB (gram)
0 0,02 – 0,012 0,571 28,8938 0 0,038 - 0,068 0,257 12,3455
10,2933 0,150 – 0,172
0,113 4,7565
10,2933 0,113 – 0,125
0,161 7,2861
10,2933 0,228 – 0,235
0,379 18,7751
Berat Sampel Vs Tegangan Rata-rata
0,571 0,257
0,113 0,161 0,379
02
468
1012
0,571 0,257 0,113 0,161 0,379
Tegangan rata-rata
Berat Sampel
L3
LAMPIRAN
LISTING PROGRAM PLC
L 3.1
LISTING PROGRAM PLC OMRON CPM2A ALAT PENAKAR OBAT SERBUK
L 3.2
L 3.3
L 3.4
L 3.5
L 3.6
L4
LAMPIRAN
LISTING PROGRAM VB
L4.1
LAMPIRAN FORM 1 Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim Text, cell As String Dim a, b As Integer Sub koneksi() On Error GoTo pesan Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\WIKI\TA_WIKI_GBM\ Lat2\Database_password\dt_password.mdb" Exit Sub pesan: MsgBox "Tentukan dan pastikan koneksi database anda!", vbCritical, "Teknik Elektro Sanata Dharma" End End Sub Private Sub Command6_Click() WIKIHelp.Show End Sub Private Sub DataGrid1_Click() On Error GoTo lanjut Text6.Text = DataGrid1.Columns(0) Text7.Text = DataGrid1.Columns(1) Text8.Text = DataGrid1.Columns(2) Text9.Text = DataGrid1.Columns(3) lanjut: Text9.SetFocus End Sub Private Sub DataGrid1_DblClick() Call kosongkan2 End Sub Private Sub Form_Activate() Call No_produksi Call koneksi Text1.ToolTipText = "Isi nama sesuai daftar dari administrator....... PERHATIKAN BESAR KECILNYA HURUF" Text2.ToolTipText = "Isi nama sesuai daftar dari administrator....... PERHATIKAN BESAR KECILNYA HURUF" Text3.ToolTipText = "Hanya bisa diisi dengan angka...."
L4.2
Text4.ToolTipText = "Isi nama sesuai daftar dari administrator....... PERHATIKAN BESAR KECILNYA HURUF" Command1.ToolTipText = " Tombol untuk masuk Form PROSES" Command2.ToolTipText = "Tombol untuk keluar dari program" Command3.ToolTipText = "Tombol untuk TAMBAH nama ke dalam database" Command4.ToolTipText = "Tombol untuk mengHAPUS nama dari database" Command5.ToolTipText = "Tombol untuk mengUPDATE database" End Sub Private Sub Form_Load() 'menengahkan form ditengah-tengah layar Form1.Top = (Screen.Height - 10335) / 2 Form1.Left = (Screen.Width - Width) / 2 Text = " Automation of Dose Drugs Powder " Call kosongkan Frame1.Caption = "BIODATA PENGGUNA" Frame2.Caption = "EDIT DATABASE" Frame3.Caption = "DATABASE PENGGUNA" Me.Width = 7965 Me.Height = 5490 Label10 = Format(Date, "dd - mmmm - yyyy") End Sub Sub tambah() Call koneksi cell = " select * from Data_user where Nama_user = '" & Text6.Text & "' and ID_user = '" & Text8.Text & "'" rs.Open cell, db Adodc1.Refresh If rs.EOF = False Then MsgBox "Data Pengguna Sudah Ada !", vbCritical, "Teknik Elektro SADHAR" Exit Sub Else cell = " insert into Data_user (Nama_user,jabatan_user,ID_user,Pass_user) " & _ " values ('" & Text6 & "', '" & Text7 & "', '" & Text8 & "', '" & Text9 & "')" db.Execute (cell) Adodc1.Refresh DataGrid1.Refresh End If End Sub Sub hapus() Call koneksi If Text9.Text = "Adm1n15" And Text7.Text = "administrator" Then
L4.3
MsgBox ("Maaf khusus jabatan administrator, user tidak dapat dihapus!") Exit Sub Else cell = "delete from Data_user where Nama_user = '" & Text6.Text & "' and jabatan_user = '" & Text7.Text & "'" db.Execute (cell) Adodc1.Refresh DataGrid1.Refresh End If End Sub Sub ubah() Call koneksi If Text9.Text = "Adm1n15" And Text7.Text = "administrator" Then MsgBox ("Maaf khusus jabatan administrator, password tidak dapat diubah!") Exit Sub Else Text8.Locked = True cell = "update Data_user set jabatan_user = '" & Text7 & "', Nama_user ='" & Text6 & _ "', Pass_user = '" & Text9 & "' where ID_user = '" & Text8 & "'" db.Execute (cell) MsgBox ("Data dengan anggota bernama " & Text6 & " berhasil dirubah! ") Adodc1.Refresh DataGrid1.Refresh End If End Sub Private Sub kosongkan() Dim Ctl As Control For Each Ctl In Me If TypeName(Ctl) = "TextBox" Then Ctl.Text = "" End If a = 0 Next End Sub Sub No_produksi() Dim urutan As String * 20 Dim Hit_produksi As Byte Call koneksi cell = "select * from Laporan_produksi" rs.Open db.Execute(cell) If rs.EOF = True Then urutan = "0001" Else Hit_produksi = Val(Right(rs.Fields("No_produksi"), 20)) + 1 urutan = Right("000" & Hit_produksi, 20)
L4.4
End If Label11.Caption = urutan End Sub Private Sub persiapan() Call koneksi cell = " insert into Data_proses (Nama_petugas,ID_petugas,Tgl_produksi,No_produksi) " & _ " values ('" & Text1 & "', '" & Text3 & "', '" & Label10 & "', '" & Label11 & "')" db.Execute (cell) Call koneksi Adodc1.Refresh Call koneksi cell = "select * from Laporan_produksi" rs.Open cell, db If rs.EOF = False Then cell = "update Laporan_produksi set No_produksi = '" & Label11.Caption & "'" db.Execute (cell) Else cell = "insert into Laporan_produksi (No_produksi) values ('" & Label11.Caption & "')" db.Execute (cell) End If Call No_produksi Exit Sub End Sub Private Sub kosongkan2() Text6.Text = Empty Text7.Text = Empty Text8.Text = Empty Text9.Text = Empty Call koneksi Adodc1.Refresh DataGrid1.Refresh Text6.SetFocus End Sub Private Sub siap_isi() Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False If Text6.Text = "" Then Text6.SetFocus: Exit Sub If Text7.Text = "" Then Text7.SetFocus: Exit Sub If Text8.Text = "" Then Text8.SetFocus: Exit Sub If Text9.Text = "" Then Text8.SetFocus: Exit Sub Command3.Enabled = True Command4.Enabled = True Command5.Enabled = True
L4.5
End Sub Private Sub Command1_Click() If Text1.Text = "" Then Text1.SetFocus: Exit Sub If Text2.Text = "" Then Text2.SetFocus: Exit Sub If Text3.Text = "" Then Text3.SetFocus: Exit Sub If Text4.Text = "" Then Text4.SetFocus: Exit Sub Call cek_password If a = 1 Then Command1.Caption = "&Lanjut" Timer1.Enabled = True Call siap_isi ElseIf (a = 2 And b = 1) Or Command1.Caption = "&Lanjut" Then Call persiapan 'Unload Me Form2.Show Else Call kosongkan Text1.SetFocus a = 0 End If End Sub Private Sub Command2_Click() pesan = MsgBox("Apakah anda ingin keluar dari Program ?", vbYesNo + vbCritical, "EXIT >>> DAB....!") If pesan = vbYes Then Unload Me End End If End Sub Private Sub Command3_Click() Call siap_isi Call tambah Call kosongkan2 End Sub Private Sub Command4_Click() 'buat pertanyaan sebelum dihapus Call siap_isi pesan = MsgBox("Benar " & Text6.Text & "data ini mau dihapus?", vbYesNo + vbCritical, "Hapus") If pesan = vbYes Then Call hapus Call kosongkan2 End If End Sub
L4.6
Private Sub Command5_Click() Call siap_isi Call ubah Call kosongkan2 Text8.Locked = False End Sub Sub cek_password() Call koneksi cell = "select * from Data_user where Nama_user = '" & Text1.Text & "'" rs.Open cell, db Adodc1.Refresh If rs.EOF = True Then MsgBox "Anda Belum terdaftar" MsgBox "Silahkan Hubungi Admin" Else Adodc1.Refresh If rs.Fields("Nama_user") = Text1.Text And rs.Fields("jabatan_user") = Text2.Text And rs.Fields("Pass_user") = "Adm1n15" Then Label5.Caption = "lulus" DataGrid1.Visible = True a = a + 1 b = 1 ElseIf rs.Fields("Pass_user") = Text4.Text And rs.Fields("ID_user") = Text3.Text And rs.Fields("Nama_user") = Text1.Text Then Label5.Caption = "Tidak Lulus" b = 1 a = 2 Else Call kosongkan MsgBox "Try again" Text1.SetFocus a = 0 End If Exit Sub End If End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text2.SetFocus End Sub Private Sub text2_Keypress(KeyAscii As Integer) If KeyAscii = 13 Or KeyAscii = 9 Then Text3.SetFocus End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Or KeyAscii = 9 Then Text4.SetFocus
L4.7
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack Or KeyAscii = Asc("-")) Then KeyAscii = 0 End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Or KeyAscii = 9 Then Command1.SetFocus End Sub Private Sub text6_KeyPress(KeyAscii As Integer) If Text6.Text = "" Then Text6.SetFocus: Exit Sub If KeyAscii = 13 Or KeyAscii = 9 Then Text7.SetFocus End Sub Private Sub Text7_KeyPress(KeyAscii As Integer) If Text7.Text = "" Then Text7.SetFocus: Exit Sub If KeyAscii = 13 Or KeyAscii = 9 Then Text8.SetFocus End Sub Private Sub text8_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Or KeyAscii = 9 Then Text9.SetFocus If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack Or KeyAscii = Asc("-")) Then KeyAscii = 0 If Text8.Text = "" Then Text8.SetFocus: Exit Sub End Sub Private Sub text9_KeyPress(KeyAscii As Integer) If Text9.Text = "" Then Text9.SetFocus: Exit Sub If KeyAscii = 13 Or KeyAscii = 9 Then Call siap_isi Command3.SetFocus End If End Sub Private Sub Timer1_Timer() If Form1.Height > 10830 Then Timer1.Enabled = False Else animasi2 = Form1.Height + 50 Form1.Height = animasi2 End If End Sub Private Sub Timer2_Timer() On Error Resume Next e = Left(Text, 1) g = Len(Text) f = Right(Text, g - 1) Text = f + e LblAnimasi = Text End Sub
L4.8
LAMPIRAN FORM2
Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim Text, cell As String Dim data 'General declaration Dim b, n, w, x, y, z As Integer 'buat timer Dim c, d, g, h, I, J, k, m As Integer 'deklarasi buat pembagian Sub koneksi() On Error GoTo pesan Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=D:\WIKI\TA_WIKI_GBM\Lat2\Database_password\dt_password.mdb" Exit Sub pesan: MsgBox "Tentukan dan pastikan koneksi database anda!", vbCritical, "Teknik Elektro Sanata Dharma" End End Sub Private Sub kosongkan() Dim Ctl As Control For Each Ctl In Me If TypeName(Ctl) = "TextBox" Then Ctl.Text = "" End If Next End Sub Sub siap_isi() Text1.Locked = True Text2.Locked = True If Text3.Text = "" Then Text3.SetFocus: Exit Sub If Text4.Text = "" Then Text4.SetFocus: Exit Sub If Text7.Text = "" Then Text7.SetFocus: Exit Sub Command3.Enabled = True Command4.Enabled = True Command5.Enabled = True End Sub Sub No_produksi() Dim urutan As String * 20 Dim Hit_produksi As Byte Call koneksi cell = "select * from Laporan_produksi" rs.Open db.Execute(cell) If rs.EOF = True Then urutan = "0001"
L4.9
Else Hit_produksi = Val(Right(rs.Fields("No_produksi"), 20)) urutan = Right("000" & Hit_produksi, 20) End If Label15.Caption = urutan End Sub Private Sub Command1_Click() If Command1.Caption = "&HITUNG" Then g = Round(Text5.Text, 3) h = Round(Text7.Text, 3) I = Abs(g) / Abs(h) Text8.Text = Round(I, 3) For J = g To 0 Step -Round(I, 3) List1.AddItem (Round(J, 3)) Next J List1.Refresh Command1.Caption = "&RESET" Command2.Enabled = True ElseIf Command1.Caption = "&RESET" Then List1.Clear List2.Clear Text7.Text = Empty Text8.Text = Empty Text7.SetFocus Command1.Caption = "&HITUNG" Command2.Enabled = False End If End Sub Private Sub Command2_Click() If Command2.Caption = "&START" Then Command1.Enabled = False Command4.Enabled = False Command5.Enabled = False Call koneksi cell = "select * from Data_proses " rs.Open cell, db Adodc1.Refresh Call koneksi cell = "update Data_proses set Berat_pdgelas ='" & Text8 & "' where No_produksi ='" & Label15 & "'" db.Execute (cell) Adodc1.Refresh Adodc1.Refresh List2.AddItem (List1.List(k))
L4.10
k = k + 1 data = "@00WH00010000" kirim Timer3.Enabled = False data = "@00WH00000001" kirim Command2.Caption = "&STOP" Timer6.Enabled = True Command5.Enabled = False Label16.Caption = c ElseIf Command2.Caption = "&STOP" Then data = "@00WH00000000" kirim Command4.Enabled = True Timer6.Enabled = False Timer1.Enabled = False Timer2.Enabled = False x = 0: y = 0 Command2.Caption = "&START" ElseIf Command2.Caption = "&LANJUT" Then data = "@00WH00000000" kirim data = "@00WH00010000" kirim data = "@00WH00020000" kirim MSComm1.PortOpen = False Form3.Show Unload Me End If End Sub Private Sub Command3_Click() frmAbout.Show End Sub Private Sub Command4_Click() data = "@00WH00000000" kirim data = "@00WH00010000" kirim data = "@00WH00020000" kirim
L4.11
Form1.Show MSComm1.PortOpen = False Unload Me End Sub Private Sub Command5_Click() List4.Clear List4.Refresh Text5.Text = Empty Timer3.Enabled = True End Sub Private Sub Form_Activate() Timer5.Enabled = True Text1.Text = Form1.Text1.Text Text2.Text = Form1.Text3.Text Unload Form1 readdat = MSComm1.Input dataRX$ = readdat Text11.Text = dataRX$ cekah$ = Mid(dataRX$, 4, 4) If cekah$ = "SC00" Then MsgBox "PLC telah terhubung", vbOKOnly + vbInformation, "PESAN INFORMASI" Else data = "@00WH00000000" kirim data = "@00WH00010000" kirim pesan = MsgBox("MAAF PLC BELUM TERHUBUNG.. Mohon Cek Kembali Koneksi Komputer -> PLC", vbCritical, "PESAN INFORMASI") pesan = MsgBox("Program ini akan ditutup...", vbOKOnly, "TERIMAKASIH") Call koneksi cell = "delete from Data_proses where Nama_petugas = '" & Text1.Text & "' and ID_petugas = '" & Text2.Text & "' and No_produksi = '" & Label15.Caption & "'" db.Execute (cell) Adodc1.Refresh Adodc1.Refresh Call koneksi cell = "update Laporan_produksi set No_produksi = '" & Val(Right(Label15.Caption, 20) - 1) & "'" db.Execute (cell) Unload Me
L4.12
End End If Text3.ToolTipText = "Tempat mengisi nama Pasien maksimum 20 karakter.." Text4.ToolTipText = "Tempat mengisi no identitas pada Kartu Pasien.." Text13.ToolTipText = "Isilah nama Dokter dengan jabatan profesi.." Text5.ToolTipText = "Textbox ini akan terisi secara otomatis" Text6.ToolTipText = "Textbox ini akan terisi secara otomatis" Text7.ToolTipText = "Tempat mengisi jumlah bagi takaran sesuai resep dokter.." Text8.ToolTipText = "Textbox ini akan terisi secara otomatis oleh program" Command1.ToolTipText = "Tekan tombol ini sesudah mengisi textbox jumlah pembagian.." Command2.ToolTipText = "Tombol untuk menjalankan sistem" Command3.ToolTipText = "Tombol untuk informasi singkat mengenai program ini" Command4.ToolTipText = "Tombol untuk kembali ke form LOGIN" 'Call koneksi 'rs.Open ("Data_proses"), db 'Text1.Text = rs.Fields("Nama_petugas") 'Text2.Text = rs.Fields("ID_petugas") 'Call No_produksi 'Call koneksi 'Adodc1.Refresh 'Adodc1.Refresh Label16.Caption = c End Sub Private Sub Form_Load() Call kosongkan 'Call No_produksi Text1.Locked = True Text2.Locked = True Text5.Locked = True Text6.Locked = True Text8.Locked = True Me.Height = 11385 '9690 Me.Width = 15360 '10170 Label5 = Format(Date, "dd - mmmm - yyyy") Label6.Caption = 0 Call Sambungkan Call No_produksi End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If Text3.Text = "" Then Text3.SetFocus: Exit Sub If KeyAscii = 13 Or KeyAscii = 9 Then Text4.SetFocus End If End Sub Private Sub Text4_KeyPress(KeyAscii As Integer)
L4.13
If Text4.Text = "" Then Text4.SetFocus: Exit Sub If KeyAscii = 13 Or KeyAscii = 9 Then Text13.SetFocus End Sub Private Sub Text13_KeyPress(KeyAscii As Integer) If Text13.Text = "" Then Text13.SetFocus: Exit Sub If KeyAscii = 13 Or KeyAscii = 9 Then Text7.SetFocus End Sub Private Sub Text7_KeyPress(KeyAscii As Integer) If Text7.Text = "" Then Text7.SetFocus: Exit Sub If KeyAscii = 13 Or KeyAscii = 9 Then Command1.Enabled = True Command1.SetFocus Call koneksi cell = "select * from Data_proses " rs.Open cell, db Adodc1.Refresh Call koneksi cell = "update Data_proses set Nama_pasien ='" & Text3 & "', ID_pasien ='" & Text4 & _ "', Berat_total ='" & Text5 & "', Jumlah_bagi ='" & Text7 & "', Dokter = '" & Text13 & "' where No_produksi ='" & Label15 & "'" db.Execute (cell) Adodc1.Refresh Adodc1.Refresh If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack Or KeyAscii = Asc("-")) Then KeyAscii = 0 End If End Sub 'Mulai dari sini program pembacaan MAD01 Private Sub kirim() Dat$ = data l = Len(Dat$) a = 0 For I = 1 To l Opo$ = Mid$(Dat$, I, 1) a = Asc(Opo$) Xor a Next I FCS$ = Hex$(a) If Len(FCS$) = 1 Then FCS$ = "0" + FCS$ End If DatTX$ = Dat$ + FCS$ + "*" + Chr$(13) MSComm1.Output = DatTX$ End Sub Sub Sambungkan() MSComm1.CommPort = 1
L4.14
MSComm1.Settings = "9600, e, 7, 2" MSComm1.PortOpen = True data = "@00SC02" kirim data = "@00WH00010001" kirim x = 0: y = 0: z = 0 Timer3.Enabled = True End Sub Public Function HextoDec(ByVal Nilai As String) As Long Dim Pos As Integer Dim Dec As Long If Len(Nilai) = 1 Then Nilai = "0" & Nilai End If HextoDec = 0 For Pos = 1 To 4 Select Case UCase(Mid(Nilai, Pos, 1)) Case "A": Dec = 10 Case "B": Dec = 11 Case "C": Dec = 12 Case "D": Dec = 13 Case "E": Dec = 14 Case "F": Dec = 15 Case "1": Dec = 1 Case "2": Dec = 2 Case "3": Dec = 3 Case "4": Dec = 4 Case "5": Dec = 5 Case "6": Dec = 6 Case "7": Dec = 7 Case "8": Dec = 8 Case "9": Dec = 9 Case "0": Dec = 0 End Select If Pos = 1 Then HextoDec = HextoDec + Dec * 16 ^ 3 ElseIf Pos = 2 Then HextoDec = HextoDec + Dec * 16 ^ 2 ElseIf Pos = 3 Then HextoDec = HextoDec + Dec * 16 ^ 1 ElseIf Pos = 4 Then HextoDec = HextoDec + Dec * 16 ^ 0 End If Next End Function
L4.15
'Timer1 dan Timer2 digunakan untuk pembacaan MAD01 secara kontinyu Private Sub Timer6_Timer() n = n + 1 'Text10.Text = n 'm = Text6.Text 'Text9.Text = m & " < " & List1.List(k) If c = h Then data = "@00WH00000000" kirim data = "@00WH00010000" kirim data = "@00WH00020000" kirim For d = 0 To h walah$ = walah$ & " ; " & List3.List(d) Next Text12.Text = walah$ Call koneksi cell = "select * from Data_proses " rs.Open cell, db Adodc1.Refresh Call koneksi cell = "update Data_proses set Berat_takar ='" & Text12 & "' where No_produksi ='" & Label15 & "'" db.Execute (cell) Adodc1.Refresh Adodc1.Refresh data = "@00WH00000000" kirim data = "@00WH00010000" kirim data = "@00WH00020000" kirim Command2.Caption = "&LANJUT" Shape8.FillColor = &HC0C000 Timer6.Enabled = False ElseIf n >= 20 And (Text6.Text = List1.List(k) Or Text6.Text < List1.List(k)) Then 'data = "@00WH00000000" 'kirim Timer1.Enabled = False Timer2.Enabled = False Timer6.Enabled = False
L4.16
'Command2.Caption = "&START" data = "@00WH00020001" kirim x = 0: y = 0: l = 0 List2.AddItem (Text6.Text) gelas_takar = (List2.List(k - 1)) - (List2.List(k)) List3.AddItem (gelas_takar) Timer7.Enabled = True Timer8.Enabled = False ElseIf n >= 1 Then Timer1.Enabled = True Timer6.Enabled = True End If End Sub Private Sub Timer1_Timer() x = x + 1 'Text5.Text = x If x <= 1 Then data = "@00RD00010011" kirim 'Timer8.Enabled = True Timer2.Enabled = True readdat = MSComm1.Input dataRX$ = readdat Text11.Text = dataRX$ ElseIf x > 2 Then Timer1.Enabled = False Timer8.Enabled = False End If End Sub 'Timer3 dan Timer4 digunakan untuk pembacaan sesaat pada BERAT TOTAL Private Sub Timer3_Timer() Dim AB As Integer Dim CD As Long Dim rata As Double z = z + 1 'Text5.Text = x Command5.Enabled = False
L4.17
If z >= 1 Then data = "@00RD00010005" kirim Timer4.Enabled = True readdat = MSComm1.Input dataRX$ = readdat 'Text11.Text = dataRX$ 'hasil = @00RD00 0000 0059 0000 0001 0004 5F* (kl pake @00RD00000005) 'hasil = @00RD00 0059 0000 0001 0004 0005 5A* (kl pake @00RD00010005) nilai_pot$ = Mid(dataRX$, 8, 4) Nilai = nilai_pot$ nilai_pot$ = (HextoDec(Nilai) * 0.03922) Text5.Text = Round(nilai_pot$, 3) 'List4.AddItem (str(Text5.Text)) List4.AddItem (str(Round(nilai_pot$, 3))) List4.Refresh Text10.Text = List4.ListCount For AB = 1 To List4.ListCount rata = rata + Val(List4.List(AB)) Next 'abc = Text14.Text 'def = (List4.ListCount) - 1 'Text5.Tag = Val(Text5.Text) ElseIf z > 2 Then Timer3.Enabled = False End If Text14.Text = rata End Sub Private Sub Timer4_Timer() w = w + 1 'Text6.Text = w If w > 2 Then Timer4.Enabled = False y = 0 Timer3.Enabled = False w = 0: z = 0 Text5.Text = (((Text14.Text / (List4.ListCount - 1)) * 52.70157) - 1.19881) Command5.Enabled = True End If End Sub '803,0208 'Call koneksi ' cell = "select * from Data_proses "
L4.18
' rs.Open cell, db ' Adodc1.Refresh ' Call koneksi 'cell = "update Data_proses set Berat_total ='" & Text5.Tag & "' where No_produksi ='" & Label15 & "'" 'Adodc1.Refresh 'Adodc1.Refresh Private Sub Timer5_Timer() Label6 = Format(Time, "HH:MM:SS"" Wib") End Sub Private Sub Timer7_Timer() b = b + 1 If b >= 3 Then data = "@00RD00010011" kirim Timer4.Enabled = True readdat = MSComm1.Input dataRX$ = readdat Text11.Text = dataRX$ sensor_Ls3$ = Mid(dataRX$, 28, 4) 'DM6 If sensor_Ls3$ = "FFFF" Then Shape3.FillColor = &HC000& Shape4.FillColor = &HC000& Shape5.FillColor = &H80FF80 'hijau ElseIf sensor_Ls3$ = "0000" Then Shape5.FillColor = &HC000& 'krem End If sensor_S3$ = Mid(dataRX$, 32, 4) 'DM7 If sensor_S3$ = "FFFF" Then Shape6.FillColor = &H80FF80 'hijau ElseIf sensor_S3$ = "0000" Then Shape6.FillColor = &HC000& 'krem End If sensor_Ls4$ = Mid(dataRX$, 36, 4) 'DM8 If sensor_Ls4$ = "FFFF" Then Shape7.FillColor = &H80FF80 'hijau ElseIf sensor_Ls4$ = "0000" Then Shape7.FillColor = &HC000& 'krem End If sensor_S1$ = Mid(dataRX$, 24, 4) 'DM5 If sensor_S1$ = "FFFF" Then
L4.19
Shape1.FillColor = &H80FF80 'hijau ElseIf sensor_S1$ = "0000" Then Shape1.FillColor = &HC000& 'krem End If keluaran_1$ = Mid(dataRX$, 40, 4) 'DM5 If keluaran_1$ = "FFFF" Then Shape8.FillColor = &HFFFF80 'biru muda ElseIf keluaran_1$ = "0000" Then Shape8.FillColor = &HC0C000 'biru End If keluaran_2$ = Mid(dataRX$, 44, 4) 'DM5 If keluaran_2$ = "FFFF" Then Shape9.FillColor = &HFFFF80 'biru muda ElseIf keluaran_2$ = "0000" Then Shape9.FillColor = &HC0C000 'biru End If keluaran_3$ = Mid(dataRX$, 48, 4) 'DM5 If keluaran_3$ = "FFFF" Then Shape10.FillColor = &HFFFF80 'biru muda ElseIf keluaran_3$ = "0000" Then Shape10.FillColor = &HC0C000 'biru End If proses_akhir$ = Mid(dataRX$, 12, 4) If proses_akhir$ = "FFFF" Then Timer7.Enabled = False c = c + 1 Label16.Caption = c k = k + 1 Timer6.Enabled = True b = 0: n = 0 End If End If End Sub Private Sub Timer8_Timer() bacadat = MSComm1.Input bacaRX$ = bacadat 'Text11.Text = bacaRX$ sensor_S1$ = Mid(bacaRX$, 24, 4) 'DM5 If sensor_S1$ = "FFFF" Then Shape1.FillColor = &H80FF80 'hijau ElseIf sensor_S1$ = "0000" Then
L4.20
Shape1.FillColor = &HC000& 'krem End If sensor_Ls1$ = Mid(bacaRX$, 12, 4) 'DM5 If sensor_Ls1$ = "FFFF" Then Shape2.FillColor = &H80FF80 'hijau ElseIf sensor_Ls1$ = "0000" Then Shape2.FillColor = &HC000& 'krem End If End Sub
L4.21
LAMPIRAN FORM 3
Dim P As Printer Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim str As String Sub koneksi() On Error GoTo pesan Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\WIKI\TA_WIKI_GBM\Lat2\Database_password\dt_password.mdb" Exit Sub pesan: MsgBox "Tentukan dan pastikan koneksi database anda!", vbCritical, "Teknik Elektro Sanata Dharma" End End Sub Private Sub Form_Activate() Combo1.Text = Printer.DeviceName If Combo1.ListCount = 0 Then For Each P In Printers Combo1.AddItem P.DeviceName Next End If Label4.Caption = Form2.Label15.Caption Unload Form2 Combo1.ToolTipText = "Pilih printer sesuai default komputer anda.." Option1.ToolTipText = "Click untuk kertas A4" Option2.ToolTipText = "Click untuk kertas Folio" Text1.ToolTipText = "Gunakan arah naik dan turun untuk memilih jumlah copy" Command1.ToolTipText = "Tombol Perintah langsung cetak ke printer" Command2.ToolTipText = "Tombol perintah melihat hasil cetak sebelum di-print" Command3.ToolTipText = "Tombol untuk kembali ke form awal" End Sub Private Sub Combo1_Click() 'Printer.FontName = Combo2.Text For Each P In Printers If P.DeviceName = Combo1.Text Then Set Printer = P Exit For End If
L4.22
Next End Sub Private Sub Command1_Click() 'Form5.Show Call koneksi Call koneksi str = "select * from Data_proses where No_produksi ='" & Label4.Caption & "'" rs.Open db.Execute(str) If rs.EOF = False Then CrystalReport3.Reset 'CrystalReport3.ReportFileName = App.Path & "D:\WIKI\TA_WIKI_GBM\Lat2\Laporan\Laporan1.rpt" CrystalReport3.ReportFileName = direktoriEXE$ & "D:\WIKI\TA_WIKI_GBM\Lat2\Laporan\Laporan1.rpt" CrystalReport3.WindowState = crptMaximized CrystalReport3.PrinterCopies = Text1.Text CrystalReport3.CopiesToPrinter = Text1.Text CrystalReport3.PrinterName = Combo1.Text CrystalReport3.Destination = crptToPrinter CrystalReport3.SelectionFormula = "{Data_proses.No_produksi} = '" & Label4.Caption & "'" CrystalReport3.RetrieveDataFiles CrystalReport3.PrintReport End If End Sub Private Sub Command2_Click() Form4.Show End Sub Private Sub Command3_Click() Unload Me Form1.Show End Sub 'For i = 0 To printDoc.PrinterSettings.PaperSizes.Count - 1 'pksize = printDoc.PrinterSettings.PaperSizes.Item(i) 'Combo2.AddItem (pksize) 'Next 'Combo2.Text = Printer.FontName 'If Combo2.ListCount = 0 Then 'For i = 0 To Printer.FontCount - 1 'Combo2.AddItem Printer.Fonts(i) 'If i > 20 Then 'Exit For
L4.23
'End If 'Next 'End If Private Sub Option1_Click() Printer.PaperSize = vbPRPSA4 End Sub Private Sub Option2_Click() Printer.PaperSize = vbPRPSLegal End Sub Private Sub Text1_LostFocus() If Val(Text1.Text) < 1 Or Val(Text1.Text) > 10 Then Beep Text1.SetFocus End If End Sub Private Sub UpDown1_Change() Text1.Text = UpDown1.Value End Sub FORM 4 Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim cell As String Dim Report As New CrystalReport1 Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=D:\WIKI\TA_WIKI_GBM\Lat2\Database_password\dt_password.mdb" End Sub Private Sub Command1_Click() Form3.Show Unload Me End Sub Private Sub Form_Load() 'lapor = InputBox("Masukkan No_produksi yang ingin dicetak !") Call koneksi cell = "select * from Data_proses where No_produksi ='" & Form3.Label4.Caption & "'"
L4.24
rs.Open cell, db If rs.EOF = False Then CrystalReport1.ReadRecords CrystalReport1.RecordSelectionFormula = "{Data_proses.No_produksi}='" & Form3.Label4.Caption & "'" Screen.MousePointer = vbHourglass CRViewer1.ReportSource = Report CRViewer1.ViewReport Screen.MousePointer = vbDefault End If Unload Form3 End Sub Private Sub Form_Resize() CRViewer1.Top = 0 CRViewer1.Left = 0 CRViewer1.Height = ScaleHeight CRViewer1.Width = ScaleWidth End Sub FORM5 Dim Report As New CrystalReport2 Dim db As ADODB.Connection Dim rs As ADODB.Recordset Dim cell As String Sub koneksi() Set db = New ADODB.Connection Set rs = New ADODB.Recordset db.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=D:\WIKI\TA_WIKI_GBM\Lat2\Database_password\dt_password.mdb" End Sub Private Sub Command1_Click() Unload Me End Sub Private Sub Form_Load() 'lapor = InputBox("Masukkan No_produksi yang ingin dicetak !") Call koneksi cell = "select * from Data_proses where No_produksi ='" & Form3.Label4.Caption & "'" rs.Open cell, db If rs.EOF = False Then CrystalReport2.ReadRecords CrystalReport2.RecordSelectionFormula = "{Data_proses.No_produksi}='" & lapor & "'"
L4.25
Screen.MousePointer = vbHourglass CRViewer1.ReportSource = Report CRViewer1.ViewReport Screen.MousePointer = vbDefault End If End Sub Private Sub Form_Resize() CRViewer1.Top = 0 CRViewer1.Left = 0 CRViewer1.Height = ScaleHeight CRViewer1.Width = ScaleWidth End Sub FORM SPASH Option Explicit Private Sub Form_KeyPress(KeyAscii As Integer) Unload Me End Sub Private Sub Form_Load() lblLicenseTo.Caption = " Daniel Wiki Pratomo (085114016) " lblCompanyProduct.Caption = " Teknik Elektro Sanata Dharma " lblProductName.Caption = " SISTEM PENGENDALI DAN MONITORING " & Chr(13) & _ " OTOMASI TAKARAN DOSIS OBAT SERBUK (PUYER) " & Chr(13) & _ " BERBASIS PLC " lblProductName.FontSize = 18 lblPlatform.Caption = " For Windows 9x or XP " lblVersion.Caption = " Versi 1.0" 'lblVersion.Caption = "Versi " & App.Major & "." & App.Minor & "." & App.Revision lblCopyright.Caption = "Copyright, Teknik Elektro, 2010" lblCompany.Caption = "Universitas Sanata Dharma" lblWarning.Caption = " *) Hanya untuk kalangan sendiri " Timer1.Interval = 3000 End Sub Private Sub Frame1_Click() Form1.Show Unload Me End Sub
L4.26
Private Sub Timer1_Timer() Unload Me Form1.Show End Sub FORMabout Private Sub cmdOK_Click() Unload Me End Sub Private Sub Form_Load() Me.Caption = "About Program Alat Penakar Obat Serbuk" lblVersion.Caption = "Version " & App.Major & "." & App.Minor & "." & App.Revision lblTitle.Caption = "Program Otomasi Penakar Obat Serbuk Otomatis " & Chr(13) & _ "For Windows XP and 9x" lblDescription.Caption = "This product is licensed to" & Chr(13) & _ "Teknik Elekro SANATA DHARMA UNIVERSITY" & Chr(13) & Chr(13) & _ "Made by Daniel Wiki P." lblDisclaimer.Caption = "WARNING : " & Chr(13) & _ "This computer program are protected by copyright law and international treaties" End Sub FORM WIKIHELP Option Explicit Private HelpSpace() As Byte 'Open File Array Private Sub Form_Load() Dim Node1 As Node, Node2 As Node Dim Fnum As Integer Dim HelpFileName As String Dim sText As String Dim FL As Long, I As Long, J As Long Dim SC As Byte, FC As Byte 'Content Beginning and End Identifier Dim SS As Byte, FS As Byte 'Subject Beginning and End Identifier Dim ST As Byte, FT As Byte 'Text Beginning and End Identifier Dim FZ As Byte Dim S1 As Long Fnum = FreeFile HelpFileName = App.Path & "\WIKIHelp.txt" Open HelpFileName For Binary Access Read As Fnum FL = FileLen(HelpFileName) ReDim HelpSpace(1 To FL)
L4.27
Get Fnum, , HelpSpace Close Fnum TreeView1.Nodes.Clear FZ = 241 'Start position of Identifiers SC = HelpSpace(FZ + 0): FC = HelpSpace(FZ + 1) SS = HelpSpace(FZ + 2): FS = HelpSpace(FZ + 3) ST = HelpSpace(FZ + 4): FT = HelpSpace(FZ + 5) For I = FZ + 48 To FL Select Case HelpSpace(I) Case SC: S1 = I + 1 Case FC sText = "" For J = S1 To I - 1: sText = sText & Chr(HelpSpace(J)): Next J Set Node1 = TreeView1.Nodes.Add(, , , sText, 1, 1) Case SS: S1 = I + 1 Case FS sText = "" For J = S1 To I - 1: sText = sText & Chr(HelpSpace(J)): Next J Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , sText, 2, 2) Case ST: S1 = I + 1 Case FT: Node2.Tag = str(S1) & "," & str(I - 1) End Select Next I End Sub Private Sub OKbut_Click() Unload Me End Sub Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) If Node.Tag <> "" Then Dim I As Long Dim mTag() As String Text1.Text = "" mTag = Split(Node.Tag, ",") For I = Val(mTag(0)) To Val(mTag(1)) Text1.SelText = Chr(HelpSpace(I)) Next I Else Text1.Text = "" End If End Sub