SEMINAR NASIONAL II SDM TEKNOLOGI NUKLIR YOGYAKARTA, 21-22 DESEMBER 2006 ISSN 1978-0176
Daftar Isi
KOMUNIKASI PERANGKAT KERAS MENGGUNAKAN PERANGKAT LUNAK MATLAB SUKARMAN Sekolah Tinggi Teknologi Nuklir - BATAN Jl. Babarsari KotakPos 6101 YKBB Yogyakarta 55281 Telepon 0274-484085,489716, Faksimili 0274-489715
[email protected] Abstrak KOMUNIKASI PERANGKAT KERAS MENGGUNAKAN PERANGKAT LUNAK MATLAB. Telah dilakukan komunikasi perangkat keras menggunakan mikrokontroler dengan perangkat lunak Matlab 6.x. Komunikasi ini terdiri dari PC/personal computer, modul mikrokontroler DT51, konektor serial dan penampil. Jalur komunikasi menggunakan komunikasi seriallRS232 antara PC dan perangkat keras, sedangkan untuk penampil/keluaran menggunakan Jalur paralellPIO yang dihubungkan dengan LED. Antarmuka/inteifacing ini diharapkan mempermudahlpengolahan data untuk keperluan komputasi yang berasal dari luar PC dengan perangkat lunak Matlab, bahkan untuk keperluan simulasi sistem kendali sangat cocok. Berdasarkan percobaan yang dilakukan perangkat lunak Matlab dapat mengambil data dari mikrokontroler dan PC dapat mengirim data k~ perangkat keras modul DT51, dengan baudrate sebesar 2400,4800,9600 Bps. Kata-kata kunci : PIO, RS232, antarmuka
Abstract THE HARDWARE COMMUNICATION USING MATLAB. The hardware communication using microcontrol/er and Matlab versi 6.x has been done. This communication system consist of PC, DT51 microcontrol/er modul, serial connector and display. The communication line uses serial (RS232) through PC and the hardware. The display or the output uses paral/elline (PIO) which is connected by LED. This interfacing system is expected to eliminate the difficulties of the data processing for the computation needed which comes from the outside of the PC by Matlab. Base on the experiment using Matlab which has been done the system can take data from the microcontrol/er and the PC ca transmit the data to the DT51 hardware modul with baudrate upto 19200 bps. Keyword: PIO, RS232, Inteiface
PENDAHULUAN Teknik antarmuka antara komputer dengan instrumen tidak akan terlepas dari peran perangkat lunak pada komputer untuk menerima dan mengirim data antar komputer dengan instrumen tersebut agar dapat terjadi komunikasi. Komunikasi yang sering dipakai adalah komunikasi data serial dan data paralel. Metode komunikasi paralel tidak mengenal perubahan waktu dalam pengirimannya. Data yang yang dikirimkan sebanyak n-bit dilakukan
Sukarman
secara bersamaan. Pada komunikasi serial pengiriman data dilakukan berdasarkan waktu, artinya pengiriman data n-bit dilakukan secara sekuansial per bit sehingga membentuk satu data yang berupa informasi. Pada program Matlab terdapat fasilitas pemrograman untuk melakukan teknik antarmuka ini, diantaranya komunikasi GPIB, VISA standar, Serial dan Interfacing melalui media soundcard pada PC.[1] Oleh karena itu para pengguna perangkat lunak Matlab saat ini
373
Selwlah Tinggi Teknologi Nuklir - BATAN
SEMINARNASIONALII SDMTEKNOLOGINUKLIR YOGYAKARTA,21-22DESEMBER2006 ISSN 1978-0176 sudah dapat melakukan akses langsung dengan perangkat keras yang ada di luar komputer. Tujuan akses ke perangkat keras di luar komputer dimaksudkan untuk mengambil data dan mengirimkan data dari atau keluar komputer menggunakan DT51. [5] Dalam makalah ini akan dibahas komunikasi serial standar RS 232 antara komputer dengan instrumen (interfacing). Dengan demikian diharapkan data-data yang berasal dari luar PC dapat diambil untuk diolah lebih lanjut dengan perangkat lunak Matlab untuk keperluan simulasi, akuisisi data, pengendalian dan sebagainya.
instrumentasi elektronika terbagi dalam dua kelompok besar yaitu : 1 Sistem instrumentasi analog. 2 Sistem instrumentasi digital. Ditinjau dari cara kerja dan tujuannya sistem instrumentasi terbagi menjadi dua bagian yaitu : 1 Sistem Pengukuran 2 Sistem Kendali Diagram blok dari sistem intrumentasi ditunjukkan pada Gambar 1. secara umum blok diagram sistem instrumentasi memiliki komponen sensor yang berfungsi sebagai pengubah besaran fisis menjadi besaran listrik, misalnya vet). pengkondisi sinyal (sinyal Conditioning) untuk mendapatkan paket sinyal informasi yang diharapkan, ADC (optional) dan layar tampilan untuk menginformasikan setiap perubahan yang terjadi/terdeteksi oleh sensor. jika sensor tersebut berupa sistem kontrol maka akan ada umpan balik dan perangkat pemberi aksi yang mengendalikan perubahan fisis di luar sistem.
DASAR TEOR! Sistem Instrumentasi
Elektronika
lnstrumentasi elektronika merupakan perangkat elektronika yang digunakan untuk tujuan tertentu seperti halnya pengukuran, pengendalian dan sebagainya. Sistem
Pengkondisi Sinval
Transmisi Data
Controller
Tujuan
SistemlPlantlProses
Pengkondisi Sinval
Transmisi Perintah
GambaI'1. DiagramBlok SistemPengukurandanKontro1
Sistem Instrumentasi
Sistem Instrumentasi
Analog.
Sistem instrumentasi analog disusun oleh perangkat elektronik analog yang menghasilkan tegangan sebagai sinyal-sinyal analog. sinyal analog disebut sebagai sinyal waktu kontinu artinya sebagai sinyal untuk setiap nilai waktu dan diambil pada nilai-nilai dalam selang kontinu (- - , - ). secara matematis sinyal waktu kontinu dapat dituliskan sebagai berikut ; sinyal eksponensial = x(t) =e(-t), - - < t <sinyal sinusoidal x(t)=sin (n t), - - < t <-
Sekolah Tinggi Teknologi Nuklir-BATAN
Digital
Sistem instrumentasi digital disusun oleh perangkat elektronika digital yang menghasilkan tegangan digital logika "1" dengan level 5 volt dan logika "0" dengan level tegangan 0 volt. Sinyal digital ini dikatakan sebagai sinyal waktu diskrit.jika digunakan indeks n sebagai penanda waktu diskrit, maka sinyal menjadi suatu fungsi variabel integer berupa deretan angka.
374
Sukarman
SEMINAR NASIONAL II SDM TEKNOLOGI NUKLIR YOGYAKARTA, 21-22 DESEMBER 2006 ISSN 1978-0176
Sistem Kontrol Salah satu tujuan sistem kontrol adalah mendapatkan keluaran proses yang sarna dengan perintah/referensi yang diberikan. Untuk mencapai tujuan tersebut digunakan suatu strategi pengendalian yang tepat sehingga diperoleh sinyal keluaran proses yang sesuai dengan masukan yang diberikan. [2]. Secara umum sistem kendali dapat dibedakan menjadi beberapa macam yaitu : 1 Berdasarkan prinsip kerjanya • Kendali umpan maju yaitu kendali yang menggunakan hasil pengukuran salah satu variabel masukan untuk menentukan variabel masukan yang lain • Kendali umpan balik yaitu sistem kendali yang menggunakan hasil pengukuran keluaran proses untuk memulai ketja pengendalian. 2 Berdasarkan bebannya • Kendali servo yaitu sistem kendali yang perintahnya berubah-ubah yang perubahan tersebut merupakan beban bagi proses pengendalian • Kendali proses yaitu sistem kendali dengan perintah tetap sehingga sebagai beban adalah gangguan terhadap proses yang dikendalikan. 3 Berdasarkan isyarat yang dikendalikan • Kendali kontinyu
• Kendali diskrit Kendali kontinyu maupun diskrit yang umum digunakan adalah kendali On/Off dan PID. Sistem Kontrol merupakan perangkat elektronik yang berfungsi mengatur kondisi tertentu. Sistem kontrol ditinjau dari perangkat kerasnya dibagi menjadi 2 macam yaitu yang dibangun dengan perangkat analog dan digital. Sistem kontrol yang dibangun dengan perangkat digital seperti PC memerlukan pengaturan konfigurasi terhadap sistem instrumen yang digunakan, sehingga proses kontrol pada sistem tidak terganggu. Konversi Data Komunikasi data yang berhubungan dengan komputer tidak terlepas dari komunikasi data digital, artinya seluruh data yang dikirimkan harus sudah dalam kondisi logika "0" dan "I ". komunikasi serial yang terjadi pada komputer menggunakan 8-bit data digital. Oleh karena itu data desimal yang akan dikirim menggunakan komunikasi serial harus dikonversi menjadi data biner 8-bit. Cara mengkonversi data pada program matlab dapat dilakukan dengan beberapa cara seperti ditunjukkan dalam Tabell [4] [6]
Tabel. 1 InstruksiKonversiData Instruksi Konversi
Keterangan
Dec2bin(D,N)
Konversikan dari decimal ke biner D=value, N=bit yang dipakai
Bin2dec('B')
Konversikan nilai biner ke decimal dengan B= value string
Dec2hex(D,N)
Konversikan bilangan heksa ke decimal dengan D=value , N= digit yang dipakai
Hex2dec(H)
Konversikan dari decimal ke heksa dengan H=value string
Dec2base(D)
Konversikan dari decimal ke basis
Base2dec(B)
Konversikan dari basis ke desimal
Dec2basei0,
Konversikan dari decimal ke basis
Contoh : dec2bin(35), berarti bahwa mengkonversi data desimal ke biner dengan default digital dan akan dihasilkan nilai digital 1000ll.setelah data yang akan digunakan pada proses komunikasi berada pada format data digital, selanjutnya komunikasi dapat dilakukan dengan lebih mudah
Sukarman
375
Interfacing Menggunakan Komunikasi Serial Standar RS-232 Interfacing dengan perangkat lunak Matlab dapat dilakukan minimal versi 6.0 dan dengan sistem operasi windows 98, XP, 2000, NT, Linux dan Sun Solaris. secara umum blok diagram instrumentasi berbasis PC
Sekolah Tinggi Teknologi Nuklir - BATAN
SEMINARNASIONALII SDMTEKNOLOGINUKLIR YOGYAKARTA,21-22 DESEMBER 2006 ISSN 1978-0176 menggunakan program Matlab ditunjukkan pada Gambar 2. Komunikasi serial RS-232 yang ada pada PC menggunakan pin konektor DB 9 dengan mikrokontroler diperlihatkan pada Gambar 3.
Pada komunikasi serial yang sederhana hanya diperlukan 3 pin serial Com saja, yaitu pin 2 untuk penghubung kabel penerima(receiver) dan pin 3 (transmiter) dan pin 5 untuk sinyal Ground.
[3].
MATLAB
T Instrument Control Toolbox I M File functions Interface Driver Adaptor
Serial Driver
Serial Kontroler
Masukan / Keluaran
Gambar2. AntarmukaSerialMenggunakanMatlab
Personal Komputer (PC)
Komunikasi serial
Kom puter
Modul DT51
Gambar3. hubunganPC denganMikrokontroler Perangkat Lunak Matlab
Matlab berasal dari kata Matrix Laboratory, yang artinya perangkat lunak yang berbasis pada matrik, yang dimulai dikembangkan pada tahun 1970-an di Universitas Mexico dan universitas Standford USA. Perangkat Lunak Matlab adalah pernrograman yang bersifat interaktif untuk Sekolah Tinggi Teknologi Nuklir-BATAN
keperluan saintifik dan komputasi teknis. Sebagai elemen data dasarnya adalah matriks. Hal ini memungkinkan penyelesaian masalah komputasi numeris yang ditulis secara matematik. Matematik adalah bahasa yang digunakan oleh para insinyur dan saintis. Misalnya matriks dan operasinya, persamaan diferensial, data array, plot grafik, blok diagram bahkan dilengkapi dengan tools, yang
376
Sukarman
SEMINAR NASIONAL II SDM TEKNOLOGI NUKLIR YOGYAKARTA, 21-22 DESEMBER 2006 ISSN 1978-0176
digunakan untuk pemrosesan sinyal, sistem kontrol, identifikasi sinyal, simulink dan sebagainya. Dalam perkembangannya saat ini Matlab sudah dapat berkomunikasi dengan dunia luar (interfacing). Dengan demikian Matlab sangat baik digunakan untuk keperluan simulasi dan komputasi. METODE Alat dan Bahan Percobaan ini menggunakan perangkat keras mikrokontroler (Modul DT51) dan catu daya sebesar 5 voltJ9 volt AC. Dalam modul Dt51 terdapat fasilitas port serial dan Led Penampil (8 bit). Kabel serial digunakan untuk menghubungkan Modul Dt51 dengan PC, Komputer pribadi (PC) dan perangkat lunak Matlab versi 6.x. Pelaksanaan 1 2
3
Alat dirangkai seperti Gambar 3 di atas. Dibuat program untuk komunikasi pada mikrokontroler, program dapat menggunakan bahasa C, asembler, basic atau apa saja. Program disimpan pada mikrokontroler (download).
4 5 6
Mikrokontroler diberikan catu daya. Kabel serial dihubungkan dari Modul Dt51 ke port serial pada PC. Program Matlab dibuka dengan menggunakan instruksi pada Lampiran 1 untuk melakukan pengiriman dan pengambilan data dari dan ke PClMikrokontroler.
HASIL DAN PEMBAHASAN Dalam membuat program yang dapat berkomunikasi antara PC dengan instrument di luar PC pada perangkat lunak Matlab, ada tahapan yang hams diperhatikan yaitu : 1. Membuat objek instrumen.
Sukarman
377
untuk membuat objek instrumen pada Matlab dapat dilakukan dengan perintah SERIAL, dengan SYNTAX » Object=serial('port _aktif); » object=serial('port_aktif ,'baudrate' ,nilai); 2. Menghubungkan PC dengan instrumen untuk menghubungkan instrumen dengan PC digunakan perintah fopen, dengan SYNTAX » fopen(objecUnstrumen); 3 Menentukan sifat (property object) untuk menentukan property objek dilakukan dengan instruksi set dan diikuti dengan tanda dot. » set (object,'properti,nilai); » object.properti=nilai; 4 Membaca/menulis data untuk membaca/menulis data dari PC ke instrumen dengan metode komunikasi serial. pembacaan dan penulisan dapat dilakukan dengan beberapa perintah : fread,fwrite,fprintf dan sebagainya. 5 Memutuskan dan menghapus objek. Setelah proses baca/tulis dilakukakan program harns menutup dan membersihkan objek instrumen yang aktif di memori, hal ini dilakukan karena agar pada saat membuat koneksi barn pada matlab tidak terjadi error program. Untuk memutuskan dan menghapus objek dilakukan dengan menggunakan perintah fclose dan delete, dengan SYNTAX » fclose (object); » delete(object); >>instrreset( object); hasil eksekusi nampak pada Gambar 4. Pada Gambar 4. nampak bahwa komunikasi data dengan peralatan/perangkat keras di luar PC tetjadi setelah perintah data=fopen(s,5). Hal ini menunjukkan bahwa data dari perangkat keras ditampilkan ke layar Matlab dengan s adalah nama objek dan angka 5 adalah banyaknya data yang akan dibaca.
Sekolah Tinggi Teknologi Nuklir - BATAN
SEMINAR
NASIONAL
II
SDM TEKNOLOGI NUKLIR YOGYAKARTA, 21-22 DESEMBER 2006 ISSN 1978-0176
»
data=Eread(s,l)
data
=
24
»
data=fread(s,l)
data
=
152
»
data=fread(s,l)
data
=
30 » Ready
Gambar 4. Basil Eksekusi Program dengan Matlab
ans
=
10000000 10011000
»
data=fread(s,l)
data
=
128
»
dec2bin(data,8)
10000000
»
Gambar 5. Hasil Konversi dari Desimal ke Biner
••••,,_
J.on Settings Port: BaudRate: Terminator: ••••••••••••• O' ••••
COIlLlll.W1ication
cmu 9600 'LF'
State
Status:
closed
RecordStatu3: Read/Write State TrW'l3!eJ:Status: BytesAvailable: ValuesReceived: ValuesSent:
"n
idle 512 o 21
» fopen(3) » f1Jrite(s,2) » » fw!:ite(s,ll) »
f1on::ite(s,O)
Ready
Gambar 6. Eksekusi Pengiriman
Sekolah Tinggi Teknologi Nuklir - BATAN
378
Data
Sukarman
SEMINARNASIONALII SDMTEKNOLOGINUKLIR YOGYAKARTA,21-22 DESEMBER2006 ISSN 1978-0176
Pada Gambar 5, nampak bahwa nilai yang dikeluarkan dan dibaca oleh Matlab melalui RS232 sebesar 128 dapat diubah dengan perintah dec2bin(data,8). Perintah tersebut dimaksudkan untuk mengubah nilai variabel data, dalam bentuk desimal menjadi bentuk biner dengan lebar satu byte (8 bit). Pada Gambar 6, nampak bahwa pengiriman data dari PC ke Modul Dt51 dapat digunakan perintah fwrite, yang sebelumnya hams dilakukan pembukaan jalur komunikasi serial port dengan perintah fopen(s). Data yang dikirimkan mernpakan data-data ASCI. Karena modul DT51 hanya dapat menerima data ASCI pada komunikasi serialnya. Pada penampil Led akan diperoleh pernbahan nyala lampu. Konfigurasi Property pada Objek
Objek instrumen yang telah dibangun pada Matlab mempunyai property yang hams diset sehingga proses komunikasi tidak terhambat. beberapa property yang hams diset antara lain kecepatan pengiriman data (baudrate), format data yang digunakan, waktu yang digunakan untuk menunggu komunikasi data barn dan sebagainya. pada Tabel 2. ditunjukkan setting property serial. Tabe12. Property Serial Nama
Keterangan
Baudrate Data bit
Kecepatan transfer data dalam bit Jumlah data bit dalam satu kali transfer
paritas
Penanda paritas
StoE bit
Bit penanda sebagai akhir data
Setelah jalur komunikasi terbuka dengan perintah fopen, dapat dilakukan pembacaan/penulisan data dari dan ke instrumen. untuk membaca data digunakan SYNTAX. »var =fread(objectjumlahdata) Jumlahdata menunjukkan banyaknya data yang diambil dalam satu kali kerja fungsi fread. jumlah data tidak boleh melebihi kapasitas buffer yang ditentukan. untuk mengirimkan data ke instrumen dituliskan dengan bentuk databyte, karenanya hanya menuliskan bilangan desimalnya saja dengan SYNTAX » fread(object,databyte) KESIMPULAN 1
2 3
Perangkat lunak MatIab dapat digunakan untuk berkomunikasi dengan peralatan di luar komputer menggunakan modul DT51 mikrokontroler. Pengolahan data untuk keperluan kontrol dan akuisisi data dapat dilakukan. Kecepatan transfer data (baud rate) sampai 115200 bps.
DAFTAR PUSTAKA http://www.pitchuP.com/matlab/showarticle .a spx?article= 157, diakses 1Desember2006
2 RAYMOND, GJ, "Modem Digital Control Systems",MarcelDekkerInc, New York.
Untuk melihat semua property yang terpasang pada objek instrumen dapat dilihat menggunakan perintah : » get (S,{'baudrate','databits','parity','stopbits'}) Setiap property yang terpasang pada objek dapat diubah sesuai dengan kebutuhan komunikasi, misalkan digunakan 19200 atau komunikasi dengan COM-2 pada PC. untuk mengubahnya digunakan perintah » set(S,'baudrate',19200) » s.port='com2' Komunikasi serial tidak akan terlepas dari kebutuhan buffer, sehingga data dapat diambil dalam sati kali kerja program. kapasitas buffer secara default sebesar 512 kB, namun dapat diatur oleh program.
Sukarman
Baca dan Tulis Data
379
3 SUKARMANdkk, 2003, "Petunjuk Praktikum Antarmuka",STTN-BAT AN. Moler,Cleve, the student edition of matlah, Prentice hall Englewoodcliffs,USA, 1992 4 CHRISTANTO,dan DANNY, 2004 ,"Panduan DasarMikrokontroler",keluargaMCS51. 5 http://www.pitchuP.com/matlab/content. aspx,
, diakses 1 Desember2006 LAMPIRAN I Listing program baca data dari instrumen % bersihkan
semua
data
dimemori
dan
bersihkan layar » instrreset
»
clc
Sekolah Tinggi Teknologi Nuklir - BATAN
SEMINAR NASIONAL
II
SDM TEKNOLOGI NUKLIR YOGY AKARTA, 21-22 DESEMBER 2006 ISSN 1978-0176
Jawaban :
Listing program mengirim data ke instrumen » clear all
1. Belum, rantang diketahui.
% masukan banyaknya data array % inisialisasi serial com.
linieritasnya
belum
2 .. Belum pemah dilakukan. 3. Barn akan mengarah ke USB.
» s=serial('coml', 'baudrate',9600); » s.timeout=l;
Saran:
»
fopen(s); % ambil data serial »
data=fread (s,50) ; putuskan hubungan instrumen
%
Perlu pengembangan lebihjauh. serial
dengan
» »
fclose(s); delete(s) » clear s % bersihkan semua data dimemori dan bersihkan layar » instrreset » clc » clear all % masukan banyaknya data array % inisialisasi serial com.
» s=serial('coml', 'baudrate',9600); s.timeout=l;
» »
fopen(s);
% tulis data ke serial
»
fread(s,50); putuskan hubungan instrumen
%
» » »
serial
dengan
fclose(s); delete(s) clear s
dapat juga Intstrreset
digunakan
instruksi
lain
yaitu
TANYAJAWAB Pertanyaan : 1. Apa sudah dikalibrasi, rentang linieritasnya berapa ? (Joko) 2. Apakah sudah diuji kestabilannya ? 3. Ketinggalan jaman sistem DT-51, hams diganti USB? (Joko)
sudah
Daftar Isi Sekolah Tinggi Teknologi Nuklir-BATAN
380
Sukarman