Antarmuka IED dengan PC melalui MsComm VB6.0
Pada artikel kali ini saya akan coba mengulas teknik dasar komunikasi peralatan IED (Intelligent Electronic Device) seperti PLC, Digital Meter, Protective Relay, dengan komputer (PC) menggunakan Visual Basic 6.0. Dalam ulasan ini saya hanya membahas penggunaan dan fungsi MSComm yang terdapat dalam Visual Basic 6.0 agar dapat dipakai sebagai fasilitas komunikasi data serial. Untuk protokol komunikasi data akan diulas pada artikel berikutnya karena cakupan bahasan akan menjadi terlalu lebar untuk dibahas.
Pendahuluan
Microsoft Visual Basic 6.0, biasa dikenal dengan VB6.0, merupakan sebuah bahasa pemrograman berbahasa tingkat tinggi yang disertai visualisasi tampilan windows di dalamnya. Sesuai dengan namanya, aplikasi ini hanya bekerja di dalam sistem operasi keluaran Microsoft saja. VB6.0 mulai dikenal banyak orang karena bahasa pemrograman dan GUI (Graphical User Interface) yang disediakan cukup memudahkan seorang pemula dalam membuat sebuah program berbasis Windows.
Meskipun ringan dan sederhana, aplikasi perangkat lunak ini sudah cukup mumpuni untuk digunakan sebagai sebuah antarmuka antara komputer dengan perangkat kontrol elektronik seperti PLC dlsb. Untuk dapat berkomunikasi dengan dunia luar, VB6.0 sudah dilengkapi dengan fasilitas MS Comm Control 6.0. MS Comm Control ini berfungsi untuk mengakomodir jalanya komunikasi dan transfer data dari komputer ke peralatan elektronik berprosesor ataupun sebaliknya.
Aplikasi
Apabila di dalam komputer anda saat ini sudah terinstal VB6.0 ada dapat langsung mencoba bereksperimen dengan fasilitas ini. Caranya, pertama-tama buatlah File >> “New Project”. Kemudian pergi ke Menu “Project” >> “Components”. Sesaat setelah itu seharusnya ada menemui layar seperti dibawah ini.
Gulung (scroll) slidebar ke bawah sampai anda menjumpai “Microsoft Comm Control 6.0” dan centang (check) kotak yang ada disampingnya.
Microsoft Comm Control 6.0 ini berfungsi untuk :
- Mengadakan hubungan dengan serial port PC
- Berhubungan dengan alat komunikasi lain (contoh : modem)
- Melakukan pertukaran data
- Memonitor dan merespon event dan error yang terjadi pada hubungan serial
Untuk melakukan sebuah sambungan komunikasi serial antara 2 peralatan (PC-IED atau PC-PC), harus dilakukan langkah – langkah sebagai berikut :
- Membuka serial port
- Mengatur serial device
- Setting Receive and Transmit Buffer Properties
- Managing Receive and Transmit Buffer
Penjelasan masing – masing langkah akan diberikan di bawah.
1. Membuka Serial Port
Pada komunikasi serial, bit – bit data yang masuk dari dunia luar ke dalam komputer melalui serial port akan ditampung dulu di receive buffer sebelum akan dieksekusi oleh main controller. Demikian pula sebelum dikirim ke luar, data akan ditampung dulu di transmit buffer. Skema lengkapnya dapat di lihat pada gambar di bawah.
Sebelum membuka serial port, dilakukan pengaturan protokol komunikasi serial dengan property MSComm berikut :
- CommPort : menentukan nomor port komunikasi
- Setting : menentukan baud rate, parity, data bits, stop bits dalam string
Untuk membuka serial port cukup dengan property :
- PortOpen : membuka dan menutup port
Sehingga kode program akan tertulis sebagai berikut :
MSComm1.ComPort = 2 MSComm1.Settings = “9600,N,8,1” MSComm1.PortOpen = True
2. Mengatur Serial Device
Pada tahap ini kita perlu memastikan bahwa pengaturan protokol komunikasi serial yang digunakan pada peralatan lain yang kita akses (misal : PLC, modem, mikrokontroler) sesuai dengan pengaturan pada komputer yang kita pakai.
3. Setting Receive and Transmit Buffer Properties
Ada beberapa property dari receive buffer dan transmit buffer (property dari MS Comm) yang perlu kita atur.
- InBufferSize : mengatur ukuran receive buffer
- OutBufferSize : mengatur ukuran transmit buffer
- Rthreshold : menentukan jumlah karakter yang diterima oleh receive buffer sebelum OnComm event dipicu
- Sthreshold : menentukan jumlah karakter yang diterima oleh transmit buffer sebelum OnComm event dipicu
- Jika bernilai 0 berarti tidak pernah dipicu
- Jika bernilai 1 berarti dipicu setiap satu karakter
- InputLen : menentukan jumlah karakter yang dibaca CPU dari receive buffer
- Jika bernilai “ 0 “, maka seluruh isi receive buffer akan dibaca CPU
- InputMode : menentukan tipe data input yang akan dibaca CPU
- comInputModeText : untuk data string/teks
- comInputModeBinary : untuk data biner
4. Managing Receive and Transmit Buffer
Untuk menampilkan data dari peralatan lain ke dalam aplikasi VB, digunakan properti : Input. Sehingga kode akan berbentuk :
TxtDisplay.Text = MSComm1.Input
Untuk mengirim data dari aplikasi VB ke peralatan lain digunakn properti : Output. Sehingga kode akan berbentuk :
MSComm1.Output = “Ini nilai string”
Untuk mengawasi jumlah bit yang ada di transmit buffer dan receive buffer, property berikut dapat ditampilkan.
- InBufferCount
- OutBufferCount
MSComm hanya memiliki 1 event, yaitu OnComm. Event ini akan terjadi jika properti dari CommEvent berubah, yaitu saat terjadi :
- Event komunikasi
- Error
Contoh dari event komunikasi OnComm :
- comEvSend : mengirim sejumlah karakter ke transmit buffer
- comEvReceive : menerima sejumlah karater di receive buffer
- etc
Sedang contoh dari error pada OnComm :
- comEventBreak : sinyal break diterima
- comEventFrame : ada kesalahan framing
- comEventRxOver : receive buffer mengalami overflow
- comEventTXFull : transmit buffer penuh
- etc
Test Comment
BalasHapusRi ada cnth programnya ga,gw lg mo coba2 lg...
BalasHapusOh, ada day..
BalasHapusNtar gw posting di blog sama link downloadnya juga.
Tapi gw cari dulu di HDD lama, daripada ngetik program baru :D
Mohon kalau ada contoh source nya dikirimkan ke email donk Boss..
BalasHapussaya lagi belajar membuat program dengan menggunakan interface serial comm
Trims
Sobat @Adenko, waduh link email agan tidak terdeteksi oleh saya. :D
BalasHapusAnyway, nanti saya akan posting sample Commport (RS232) usage + souce codenya deh. Please be patient ya.. ;)
Udah ada di artikel Modbus day.. heppy reading :D
BalasHapusAlow mas Ari..
BalasHapusPernah gak membuat Aplikasi VB yang tersambung ke Indikator Timbangan ???
Boleh Minta YM gak mas ??
mas kalo bisal dari data yang dibaca satu per satu bacanya bagaimana? contoh data yand dikirim * 2DC*A5B. yang dibaca * dulu lalu tampil kemudian D tampil dst.
BalasHapussob bisa kasih contohnya pakai bahasa c, untuk on/off led antara pc dengan mikro dengan menggunakan aplikasi vb
BalasHapusnama saya yudi
BalasHapussob bisa kasih contohnya pakai bahasa c, untuk on/off
led sederhana antara pc dengan mikro dengan menggunakan aplikasi vb
(yudi_themaster@yahoo.com)
Di Split pake MID(char,hurufpertama,hurufdipenggal) kalau pake VB6
BalasHapusIndikator timbangan nya pake interface apa? Kalau interface timbangannya ready protokol Modbus, DNP, IEC tinggal baca register address nya aja. Kalo ga ada ya harus bikin ADC-Micro-Serial-PC
BalasHapusContohnya belum bisa posting sementara karena kesibukan di site, maaf ya. Untuk bisa mengintrol On/Off micro lewat PC serial port (pake VB/C/dll). Si komputer harus kirim karakter tertentu, misal huruf "A" dikirim ke mikro terus si Mikro kalo itu "A" bit lampu jadi 0/nyala. Terus kirim "B" lampu jadi 1/mati. Seperti itu seterusnya. Ini adalah contoh awal dari framing protokol.
BalasHapusMohon minta contoh source code donk, sy lagi belajar buat tugas akhir. Terimakasih pak.
BalasHapusKalo memindahkan sms dengan mscomm, dipindahkan ke database ada contoh source code nya ? soalnya di mscomm hanya ada onComm, itu berfungsi ketika ada sms masuk saja
BalasHapusgma ya klu LCD n VB.6 ??
BalasHapus