Read more
PANGAKSESAN PORT SERIAL PADA VISUAL
BASIC MENGGUNAKAN MSCOMM
Untuk pengaksesan port
serial, kita dapat menggunakan kotnrol MSComm yang telah disediakan Visual
Basic.
Kontrol MSComm
menyediakan fasilitas komunikasi antara program aplikasi yang kita buat dengan
port serial untuk mengirim atau menerima data melalui port serial. Setiap
MSComm hanya menangani satu port serial sehingga jika kita ingin menggunakan lebih
dari satu port serial maka kita juga harus menggunakan MSComm sebanyak port
serial yang kita pakai.
Properti MSComm
Jumlah properti pada
MSComm sangat banyak sehingga kita tidak akan membahas seluruhnya. Kita hanya
akan membahas beberapa property yang mana property ini perlu kita ketahui
sebelum menggunakan MSComm. Properti-properti yang sering dipakai antara lain:
CommPort
: Digunakan
untuk menentukan nomor port serial yang akan dipakai.
Setting
: Digunakan untuk mengeset nilai baud rate, parity, jumlah bit data,
dan jumlah bit stop.
PortOpen : Digunakan
untuk membuka atau menutup port serial yang dihubungkan dengan MSComm.
Input : Digunakan
untuk mengambil data string yang ada pada buffer penerima.
Output : Digunakan
untuk menulis data string pada buffer kirim.
Berikut adalah contoh
penggunaan property di atas untuk komunikasi menggunakan modem:
Private Sub Form_Load ()
MSComm1.CommPort = 1
MSComm1.Settings = “9600,N,8,1”
MSComm1.PortOpen = True
MSComm1.Output = “ATV1Q0” &
Chr$(13)
Do
DoEvents
Buffer$ = Buffer$ &
MSComm1.Input
Loop Until InStr(Buffer $, “OK”
& vbCRLF)
MSComm1.PortOpen = False
End Sub
Kode-kode program pada
prosedur di atas akan melakukan aksi sebagai berikut:
·
Port serial yang digunakan adalah COM1.
·
Setting MSComm adalah baud rate 9600,
tanpa paritas, jumlah data 8 bit, dan jumlah bit stop adalah 1 bit.
·
Memerintahkan control MSComm membaca
seluruh isi buffer ketika penggunaan perintah Input (MSComm1.InputLen
= 0)
·
Membuka port serial.
·
Mengirim perintah “ATV1Q0” diikuti ASCII
13 (enter) ke modem.
·
Menunggu modem mengirimkan jawaban “OK”
ke komputer.
·
Menutup port serial.
Event pada MSComm
MSComm hanya mempunyai
satu event saja, yaitu event OnComm. Even Oncomm dibangkitkan jika nilai
property dari CommEvent berubah, yang mengindikasikan telah terjadi event pada
port serial, baik event komunikasi maupun event error. TABEL 3.10 dan TABEL
3.11 berikut adalah nilai-nilai dari property CommEvent di mana nilai property
ini tidak tersedia pada saat design time tetapi hanya dapat dibaca pada saat
run time.
TABEL
3.10 Nilai-nilai property event error pada CommEvent
Konstanta
|
Keterangan
|
comEventFrame
|
Hardware
mendeteksi adanya kesalahan framing.
|
comEventRxParity
|
Hardware
mendeteksi adanya kesalahan pariti.
|
comEventRxOver
|
Buffer
penerima mengalami over flow, tidak ada ruang kosong lagi pada buffer
penerima.
|
comEventTxFull
|
Buffer kirim
penuh.
|
comEventBreak
|
Sinyal break
diterima
|
ComEventDCB
|
Mendapatkan
kembali Device Control Block (DCB) dari port serial.
|
TABEL
3.11 Nilai-nilai properti event komunikasi pada CommEvent
Konstanta
|
Keterangan
|
comEvSend
|
Jumlah
karakter pada buffer kirim lebih sedikit daripada nilai properti Sthreshold.
Even ini akan dibangkitkan jika nilai pada property Sthreshold tidak diisi
‘0’.
|
comEvReceive
|
Telah diterima
karakter sebanyak nilai property Rthreshold. Even ini akan dibangkitkan
terus-menerus sampai data diambil dari buffer penerima dengan menggunakan
perintah Input. Even ini akan dibangkitkan jika nilai pada property
Rthreshold tidak diisi ‘0’.
|
comEvCTS
|
Terjadi
perubahan pada saluran Clear to Send.
|
comEvDSR
|
Terjadi perubahan
pada saluran Data Set Ready.
|
comEvCD
|
Terjadi
perubahan pada saluran Carier Detect.
|
comEvRing
|
Terdeteksi
adanya sinyal ring.
|
comEvEOF
|
Karakter End
of File diterima.
|
Berikut adalah contoh
penggunaan event OnComm untuk komunikasi menggunakan mikrokontroler. Akan
dibaca hanya event comEvReceive saja, event yang lain diabaikan.
Private Static Sub MSComm1_OnComm()
Dim Buffer As Variant
Select Case MSComm1.CommEvent
Case comEvReceive
If MSComm1.InBufferCount >= 3
then
Buffer = CStr (MSComm1.Input)
If Mid(Buffer, 1, 1) = “0” Then
If Mid(Buffer, 2, 1) = “K” T then
StatusBarl.Panels(“Value”).Text =
“Value : “ & Asc (Mid(Buffer,
3, 1))
StatusBarl.Panels (“Status”).Text =
“Status : Conect”
End If
End If
End If
End Select
End Sub
Kode-kode program pada
prosedur di atas akan melakukan aksi
sebagai berikut:
·
Mendeteksi event comEvReceive, kemudian
menentukan apakah sudah diterima tiga buah karakter pada buffer penerima.
·
Menentukan apakah karakter yang diterima
adalah karakter ‘OK’, jika nilai karakter yang diterima adalah karakter
‘OK’ maka akan diubah nilai ‘Value’ dan
nilai ‘Status’ pada propergi panel control StatusBar1.
Contact Person : Taufik Adi Sanjaya
No HP / Whats App : 0823 2613 3990
PIN BBM 5983E244
PIN BBM 5983E244
Alamat : Jalan Imogiri Timur KM 11,
Blawong 1 , RT 01, Trimulyo, Jetis, Bantul 55781.
Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di www.kedaiarduino.com




1 Reviews
link download an project nya dong
ReplyDeleteSilakan dikomentari