Categories
Mikrokontroler PLC/SCADA

Antarmuka Port Serial-2: Membaca ID Alat

Catatan: Bagian-2 (klik disini untuk membaca Bagian-1) ini ditulis dengan asumsi Anda sudah pernah minimal membuat program sederhana menggunakan Visual Basic 6.0. Jika belum, disarankan untuk belajar dengan tingkat dasar dulu, buku2 atau tutorialnya sudah banyak sekali.

Menggunakan Simulator port Serial yang telah dibahas sebelumnya, akan kita gunakan untuk belajar membuat program dalam Visual Basic 6.0 untuk membaca ID dari board, dalam hal ini simulator port serial yang telah dibahas sebelumnya. Jika Anda belum mengetahui protokol simulator ini silahkan baca kembali artikel sebelumnya. Klik disini untuk mengunduh simulator port serial.

Baiklah…

Yang harus dilakukan pertama adalah instalasi Visual Basic 6.0 terlebih dulu (kecuali sudah ada di komputer Anda). Selain itu tidak dibutuhkan fasilitas port apapun di komputer Anda, karena ini adalah simulator port serial dan bahkan, boleh percaya atau tidak, saat Anda mengaktifkan simulator serial pada software ini, komputer akan memberikan indikator bunyi seakan-akan ada alat USB yang ditancapkan, demikian juga pada saat dinon-aktifkan. Sebagaimana telah dicoba pada artikel/tutorial Bagian-1.

Aktifkan VB6 dan buatlah proyek baru (EXE), perhatikan Gambar 1.

Gambar 1. Perhatikan kotak merah (Standard EXE)

Sertakan juga komponen Microsoft COMM Control 6.0 (perhatikan Gambar 2). Untuk mengaktifkan jendela ini (Gambar 2), gunakan menu Project -> Components.. (atau tekan Ctrl+T), sehingga ditampilkan jendela seperti pada Gambar 2.

Gambar 2

Centang pada komponen Microsoft COMM Control 6.0 (Gambar 2) kemudian klik Ok, sehingga pada bagian koponen VB6.0 akan ditambahkan komponen tersebut (Gambar 3).

Gambar 3

Ok… selanjutnya kita buat GUI-nya atau Form-nya mengikuti Gambar 4, masing-masing objek nama-namanya sudah ada di Gambar 4 tersebut, ingat juga untuk menempatkan komponen COMM-nya juga (saya beri tanda kotak merah dan dengan nama MSComm1).

Gambar 4

Inti dari program VB ini adalah mengirimkan id alat saja, artinya saat tombol Open ditekan, maka program VB akan langsung mengirimkan perintah “id” pada simulator port serial (dalam hal ini menggantikan board yang terpasang di lapangan, misalnya).

Untuk itu disiapkan sebuah subrutin yang nantiya digunakan untuk melakukan hal tersebut, namanya subrutin kirim_id(), sebagai berikut…

Private Sub kirim_id()
Dim pj As Byte
On Error GoTo salah
  MSComm1.Output = "id" & vbCr
  buffer = ""
  Do
    DoEvents
    buffer = buffer & MSComm1.Input
  Loop Until InStr(buffer, vbCr)
  pj = Len(buffer)
  Text1.Text = Mid(buffer, 1, pj - 2)
  Exit Sub
salah:
  MsgBox "Ada kesalahan kirim data", vbOKOnly, "Peringatan"
End Sub

Sedangkan variabel buffer sebaiknya dituliskan di baris paling atas dari listing VB..

Dim buffer As Variant

Artinya panjang buffer-nya menyesuaikan.

Subrutin kirim_id() diawali dengan pendefinisian variabel pj sebagai byte, yang digunakan untuk menyimpan panjang data yang diterima dari port serial. Informasi panjang string inilah yang akan digunakan untuk memotong string agar dapat ditampilkan melalui objek Text1.Text dengan tepat (tanpa adanya karakter Cr (carriage return) dan Lf (line feed) alias ENTER, perhatikan instruksi Mid(buffer,1,pj-2) yang digunakan untuk memotong dua karakter terakhir yaitu Cr dan Lf).

Dengan asumsi port serial sudah dibuka (open), diawali dengan jebakan jika terjadi kesalahan selama berkomunikiasi dengan port serial (perhatikan pernyataan On Error), maka dialihkan ke label “salah:”, yaitu menampilkan pesan kesalahan “Ada kesalahan kirim data”. Langkah selanjutnya adalah mengirimkan perintah “id” yang diikuti dengan karakter Cr ke port serial (perhatikan instruksi MSComm1.Output).

Instruksi yang ada di dalam Do..Loop merupakan serangkaian instruksi yang digunakan untuk menangkap data dari port serial yang kemudian disimpan kedalam variabel buffer hingga diterima karakter Cr (saja). Baru kemudian dilakukan penghitungan panjang string yang diterima (instruksi pj=Len(buffer)) dan pemotongan string seperti dijelaskan sebelumnya.

Pada saat pertama kali dijalankan program dijalankan, VB akan mengisi pilihan COM terlebih dahulu melalui subrutin…

Private Sub Form_Load()
Dim i As Byte
  For i = 1 To 16
    Combo1.AddItem (i)
  Next i
  cmdTutup.Enabled = False
End Sub

Untuk tombol “Buka COM” dituliskan subrutin…

Private Sub cmdBuka_Click()
Dim pj As Byte
On Error GoTo salah
  MSComm1.CommPort = Combo1.ListIndex + 1
  MSComm1.Settings = "9600,N,8,1"
  MSComm1.PortOpen = True
  Call kirim_id
  cmdTutup.Enabled = True
  cmdBuka.Enabled = False
  Exit Sub
salah:
  MsgBox "Ada yang salah di COM" & Combo1.ListIndex + 1, _
  vbOKOnly, "Peringatan!"
End Sub

Anda perhatikan cara pengaturan port serial, port berapa yang akan dibuka (MSComm1.CommPort), kecepatan dan seting bitnya apa saja (MSComm1.Settings), kemudian proses membuka port (MSComm1.PortOpen). Dilanjutkan mengirim perintah “id” dan mengaktifkan tombol Close dan mematikan tombol Open.

Sedangkan untuk tombol “Tutup COM” menggunakan subrutin…

Private Sub cmdTutup_Click()
On Error GoTo salah
  MSComm1.PortOpen = False
  cmdTutup.Enabled = False
  cmdBuka.Enabled = True
  Text1.Text = "id Alat"
  Exit Sub
salah:
  MsgBox "Tidak bisa menutup COM", vbOKOnly, "Peringatan!"
End Sub

Cukup sederhana bukan? Silahkan mencoba dan silahkan berdiskusi melalui komentar di artikel ini, terima kasih!