Anda di halaman 1dari 3

Berikut ini saya berikan contoh sederhana program komunikasi menggunakan VB.

Pro
gram kecil ini sudah cukup
untuk bisa menangkap data dari serial device. Jika anda mengalami kesulitan keti
ka mengetes program ini
dengan serial device, silahkan posting masalah2 anda ke milis ini.
Hal yang saya perlu ingatkan, anda tidak perlu memperhatikan banyaknya method da
n property dari MSCOMM control,
karena yang digunakan dalam aplikasi umumnya, hanya sedikit sekali. Kecuali doku
mentasi serial device anda
menerangkan lain.
Ikuti langkah2 berikut:
1. Buka VB dan buat proyek EXE baru.
2. Pasang reference ke MSCOMM Control dengan mengklik menu Project-Components at
au Ctrl-T, beri tanda cek
Microsoft Comm Control 6
3. Letakkan MSComm ke Form dari toolbox.
4. Letakkan Textbox ke Form dari toolbox, pasang property Multiline=True, Scroll
Bar=Both.
5. Copy bagian berikut ke kode form:
Option Explicit
'-- Contoh program komunikasi ini adalah contoh sederhana, bagaimana
' menggunakan VB untuk berkomunikasi dengan serial device, seperti
' timbangan digital, printer label/barcode/epson LX300/LX800, display,
' , card reader, barcode scanner dan lain-lain. Program seperti ini sudah dapat
menangkap data,
' Method atau property yang tidak diterangkan disini kemungkinan
' akan jarang digunakan. Jadi tidak usah pusing, melihatnya banyaknya
' method dan property dari MSCOMM control.
' Bagaimana cabling dan pinout, serta transmit data ke serial device,
' akan saya jelaskan pada contoh program berikutnya, Insya Allah.
'-- lihat juga dokumentasi MSCOMM Control!!!
Private Sub Form_Load()
With MSComm1
.CommPort = 1 '->Penjelasan #1
.Settings = "9600,n,8,1" '->Penjelasan #2
.Handshaking = comNone '->Penjelasan #3
.PortOpen = True '->Penjelasan #4
End With
Text1.Text = ""
'-- Penjelasan:
' 1. Standar COMM yang tersedia pada PC umumnya satu atau dua saja
' (onboard, biasa disebut COM1, COM2) tetapi
' PC sekarang kemungkinan besar hanya tersedia satu saja seiring makin berkurang
nya
' penggunaan komunikasi serial pada PC dan keterbatasan2 lain dan tren USB yang
akan
' menggantikan komunikasi serial. Jika 1 PC membutuhkan
' lebih dari COM yang tersedia pada PC tsb, maka harus ditambahkan add-in, seper
ti
' USB to Serial Converter atau PCI Serial card.
' 2. Angka 9600 menunjukkan berapa cepat data dikirim dalam hitungan detik, satu
annya
' adalah bps (byte (atau bit?) per second), biasa disebut Baud Rate. Besarnya ba

ud rate
' tergantung jarak, spesifikasi device yang akan dikoneksi, seberapa cepat data
' harus diterima. Semakin besar angka baud rate, semakin cepat data diterima. Se
cara
' teori, semakin besar baud rate semakin pendek jarak komunikasi antara PC denga
n
' serial device. Tetapi saya pernah memasang kabel RS232 dengan panjang mendekat
i
' 100 meter dengan baud rate 9600. Angka ideal adalah antara 1200, 2400, 4800, a
tau
' 9600, tetapi bukan berarti baud rate dibawah atau di atas itu tidak ideal,
' silahkan anda coba sendiri.
' Posisi kedua dari property Settings adalah Parity dengan diwakili huruf 'n'.
' 'n' disini menunjukkan None. Anda bisa memasang e (Even), o (Odd), (space).
' Parity menunjukkan banyaknya bit yang akan dikirim dari serial device ke PC
' atau sebaliknya. Selama kita tidak berurusan bagian low level dari komunikasi
' serial, kita bisa hiraukan hal ini. Parity yang dipasang umumnya odd, even,
' atau none.
' Posisi ketiga dari property Settings adalah Data Bits. Hiraukan hal ini jika
' tidak berurusan dengan low-level dari komunikasi serial. Nilainya dipasang
' umumnya 8 atau 7.
' Posisi keempat dari property Settings adalah Stop Bits. Hiraukan hal ini jika
' tidak berurusan dengan low-level dari komunikasi serial. Nilainya dipasang
' umumnya 1, nilai lainnya sudah sangat jarang digunakan.
' 3. Handshake, property ini digunakan untuk mendefinisikan bagaimana
' komunikasi antara PC dengan serial device dilakukan. Pasang saja property
' Handshake ini ke comNone, kecuali dokumentasi serial device anda meminta lain.
' Saya akan jelaskan lebih lanjut pada contoh program berikutnya untuk masalah
' Handshake ini.
' 5. Portopen, anda mesti buka komunikasinya agar PC dan serial device dapat
' komunikasi.
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
'-- Walaupun VB secara otomatis akan menutup serial komunikasi yang terbuka
' ketika program berakhir, tapi anda mesti 'sopan dikit dong' (good
' programming practice, maksud saya)
If MSComm1.PortOpen Then
MSComm1.PortOpen = False
End If
End Sub
Private Sub MSComm1_OnComm()
'-- Saya tidak pernah menggunakan event ini untuk menangkap/mengirim data dari/k
e
' serial device. Jadi saya tidak menjamin bagian ini berjalan baik.
' Saya pernah mengalami event ini tidak muncul padahal data ada yang masuk,
' ketika saya periksa, ada bagian program lain dalam program saya yang ternyata
' secara tidak langsung mempengaruhi tidak munculnya event ini pada saat runtime
.
' Saya menggunakan timer, do .. loop, untuk menangkap data, nanti akan saya
' terangkan pada contoh berikutnya.
Select Case MSComm1.CommEvent
Case comEvReceive
'-- Pastikan bahwa data yang masuk memang benar2 ada dengan mengecek property
' InBufferCount
If MSComm1.InBufferCount > 0 Then

'-- Begitu program mengeksekusi prosedur Input ini, data yang masuk
' pada serial buffer akan dihapus oleh Windows. Jadi pastikan anda
' jangan membuat program seperti ini:
' If MSComm1.Input = "1500 kg" Then
' Dim sInBuffer as String
' sInBuffer = MSComm1.Input
' MsgBox sInBuffer
' End if
' Karena begitu baris kode 'If MSComm1.Input = "1500 kg" Then' di
' eksekusi maka Input berikutnya data sudah tidak ada. Seharusnya
' program tersebut seperti ini:
' Dim sInBuffer as String
' sInBuffer = MSComm1.Input
' If sInBuffer = "1500 kg" Then
' MsgBox sInBuffer
' End if
Text1.Text = Text1.Text & MSComm1.Input
'-- Pastikan bahwa data dapat terlihat pada Textbox, karena jika
' serial device secara terus menerus mengirim data, walaupun
' sudah masuk ke dalam Text1 tetapi tidak akan ditampilkan
' dengan baik akibat cepatnya data masuk dari serial device.
Text1.Refresh
End If
End Select
End Sub

Anda mungkin juga menyukai