Tutorial Elektronika

Saat ini penggunaan bahasa pemrograman berbasis objek sedang menjadi trend yang tak terhindarkan. Vendor perangkat lunak menawarkan bahasa dengan karakter tersebut dengan sebuah kosa kata yang cantik, yakni Visual, sehingga kita kenal Delphi milik Borland, Visual C++, Visual Basic, atau Oracle, PowerBuilder, Visual dBase, Visual Foxpro, untuk aplikasi database. Tak terkecuali dalam aplikasi sistem kontrol industri, perangkat yang ditawarkan para vendornya juga semakin mendukung penggunaan pemrograman visual. Seperti Visual Basic, misalnya, kalangan industri sistem kontrol memberikan peluang untuk pengembangan sistem mereka dengan bahasa ini, terutama di kalangan pengguna sistem berbasis Windows. Yokogawa, ABB, Wonderware, adalah nama yang bisa disebutkan untuk hal ini.

Dalam artikel ini, kita akan mengetengahkan bagaimana Visual Basic digunakan mengakses data yang terdapat dalam memori sebuah PLC. Bahasa yang kita gunakan ialah Visual Basic 6.0 dan PLC-nya dari keluarga Omron. Komunikasi dilakukan melalui port serial. Aplikasi ini dibangun sebagai

implementasi konsep dasar pertukaran data antara PLC dengan PC, dan membuka jalan bagi eksplorasi permasalahan komunikasi data lebih jauh dalam sistem kontrol industri. Pengesetan nilai setpoint parameter proses merupakan contoh utama penerapan program ini.

Rancangan Aplikasi

Pada aplikasi ini, kita mengisikan sebuah data diskret ke PLC. Masukan yang kita berikan dari antarmuka Visual Basic ini akan ditunjukkan dalam bit indicator pada card I/O PLC . Apabila data adalah bit 1, maka indicator akan menyala. Apabila data nol indicator-nya tidak menyala.



Persiapan Setting Sistem

* Pengesetan Host Link Units

Host link Unit berfungsi untuk menjembatani PC dalam memonitor status pengoperasian dan lokasi data dari PLC. Dalam hal ini kita menggunakan OMRON CQM1-CIF02. Parameter komunikasinya sudah ter-setting standar yaitu :

1. Kecepatan Transmisi.
Baud-rate = 9.600 bps

2. Format data untuk sebuah karakter.
Nomor start bits = 1
Panjang data = 7 bits
Event (vertical) parity = 1 bits
Nomor stop bits = 2

* Pengesetan PC/Komputer

PC diset melalui pemrograman / penulisan kode, yaitu dengan men-set properti kontrol komunikasi. Pengesetan parameter kecepatan transmisi dan format data pada properti harus benar-benar sama dengan pengesetan pada Host link Unit.

Pemaketan Data
Agar dapat membaca ataupun menulis, satu rangkaian data harus dikirim dengan bentuk paket terstruktur yang disebut frame. Masing-masing lokasi data atau memori data mempunyai bentuk frame yang berbeda. Dalam contoh disini kita menuliskan data pada lokasi data IR (Internal Relay). Frame penulisannya:



Pemrograman Visual Basic
Berdasarkan data resource dan rancangan sistem kita, maka kita bisa memulai pembuatan program yang kita butuhkan. Dalam aplikasi ini window yang kita buat sebagai antarmuka aplikasi merupakan window sederhana dengan jumlah objek minimum yang mencukupi. Objek ini kita butuhkan sebagai bagian dari perangkat komunikasi serial dalam perangkat lunak. Untuk ini kita buat ambil sebuah objek komunikasi dengan nama default Comm1, dan tiga buah text box dan label yang sesuai.

Algoritma program meliputi pengaktifan port, pembacaan isi port, pembuatan frame data yang memenuhi syarat bisa dibaca PLC, yakni dengan frame yang telah kita sebutkan di atas, pengiriman data, dan pembacaan respon dari PLC. Pengecekan isi buffer merupakan opsional (tambahan saja).
Kode Program
Pengaktifan Port
Private Sub Form_Load()
Comm1.CommPort = 2
Comm1.Settings = "9600,E,7,2"
Comm1.PortOpen = True
End Sub
Properti CommPort bertugas men-set nomor serial port yang digunakan oleh PC. Karena kita menggunakan port COM 2 dan nama kontrol komunikasinya adalah Comm1, maka kodenya Comm1.CommPort = 2.

Properti Settings bertugas men-set baud rate, parity, data bits dan stop bits COM2. Dalam hal ini baud-rate = 9.600 bps, nilai parity = even, panjang data 7 bits dan stop bit =2.

Properti PortOpen bertugas men-set keadaan COM 2, terbuka atau tertutup. Karena kelompok kode di atas dieksekusi pada saat awal program komunikasi di run, maka isinya Comm1.PortOpen = True.

Perhitungan FCS dan Pengiriman data.

FCS (Frame Check Sequence) adalah hasil konversi 8-bit data ke 2 digit karakter ASCII. Ke 8-bit data merupakan hasil dari exclusive OR secara berurut (sequence) karakter pertama hingga karakter terakhir pada sebuah frame. Perhitungan FCS ini kita letakkan dalam event kotak perintah (command box).

Private Sub Command1_Click()
Dat$ = Text1.Text
L = Len(Dat$)
A = 0
For I = 1 Sd L
Opo$ = Mid$(Dat$, I, 1)
A = Asc(Opo$) Xor A
Next I
FCS$ = Hex$(A)
If Len(FCS$) = 1 Then
FCS$ = "0" + FCS$
End If
DatTX$ = Dat$ + FCS$ + "*" + Chr$(13)
Comm1.Output = DatTX$
End Sub

Paket data akan yang dikirim diletakan dalam variabel DatTX$.

Pengambilan Respons PLC dari Buffer

Setiap kejadian pembacaan data ataupun penulisan harus melibatkan 2 perintah, yaitu kirim data dan terima respon. Perintah terima respon bertujuan agar buffer tetap bersih/kosong pada saat awal dan akhir kejadian, sehingga data yang terbaca tidak tercampur oleh sisa data (respon) dari kejadian sebelumnya.
Private Sub Command2_Click()
Text2.Text = Comm1.Input
End Sub
Hasil pembacaan diletakkan pada Text2.

Pengecekan isi buffer
Private Sub Command3_Click()
Text3.Text = Comm1.InBufferCount
End Sub
Properti InBuffercount bertugas untuk mengetahui jumlah karakter di dalam buffer. Jadi dalam hal ini Text3 berguna untuk memonitor jumlah karakter dalam buffer.



Eksekusi Program
Sebelum program dijalankan, kita pastikan dulu bahwa semua peralatan telah dihubungkan secara benar, dan masing-masing telah di-set sesuai dengan ketentuan di atas. CPU dan I/O Card kita tempatkan pada panelnya dan koneksi kabel Host Link pada port serial dihubungkan dengan benar. Setelah dipastikan siap, barulah program kita jalankan. Dalam hal ini kita bisa melakukannya melalui lingkungan dalam Visual Basic, maupun program kompilasi .EXE.



Antarmuka aplikasi akan tampak seperti window pada gambar 2. Pada antarmuka ini, data yang kita kirim harus sudah diketik oleh pengguna dalam bentuk frame tanpa "*" dan "|" (karena keduanya sudah kita tuliskan dalam kode program). Setelah diketikkan isi datanya, baru kita tekan tombol Transmit.

Tampak bahwa isiannya ialah @00WR0110FFFF, yang berarti:
Channel : 110 atau 0110 dalam 4 digit desimal
Data: FFFF dalam heksa
Setelah kita tekan Transmit kita tekan Response, untuk mendapatkan data respon dari PLC (yang merupakan pengecekan apakah data yang kita kirim telah diterima PLC). Dengan method Input PLC akan memberi respon dengan frame @00WR0045*|, yang berarti data telah diterima PLC.

Dengan menekan tombol Buffer, isi buffer diketahui kosong, karena telah didahului proses pengambilan isinya melalui penekanan tombol Response.

Dengan proses di atas kita telah berhasil membuat sebuah antarmuka komunikasi dasar antara komputer dengan mesin PLC kita. Dengan kemudahan pemrograman visual, aplikasi ini tentu amat potensial dikembangkan agar semakin baik dan memudahkan pengguna. Fasilitas penulisan data dalam desimal (misalnya setpoin suhu pada boiler), atau pengesetan alamat secara otomatis dari database yang memuat alokasi memori PLC merupakan contoh pengembangan dalam hal ini.

8 comments

  1. Anonim // 27 Juni 2009 09.19  

    saat ini saya sedang skripsi ttg akuisisi data antara Sensor water level (input) dan Heater (output) - PLC - VB.
    bagaimana cara ketika sensor mencapai suhu tertentu maka akan berlogika "1" (input) dan ketika heater aktif berlogika "1" (output)maka akan ada alamat yang tertampil pada VB.jadi alamat tersebut akan terbaca pada VB.mohon bantuan
    thanx...

  2. Anonim // 28 Juni 2009 04.12  

    to anonim silahkan lihat di blog saya www.hmiplcomronvb.blogspot.com..atau email saya di mhdyasseen@yahoo.com

  3. endar // 2 Agustus 2009 03.34  

    terima kasih tutorialnya saya baru mau mulai belajar vb untuk plc.
    thanks

  4. iam // 21 September 2009 08.04  

    Good

  5. Anonim // 16 Oktober 2010 01.27  

    bagaimana y cara agar keluaran dari sensor ping (ultrasonik) dapat menjadi masukan PLC? perlu rangkaian tambahan bagaimana?

  6. Yusron My Blog // 19 April 2011 06.51  

    bingung dah sama VB.
    baru kelas X gw jurusan rekayasa perangkat lunak
    baru aja di ajarin VB..
    gk mudeng oi

  7. andiero // 11 Agustus 2011 18.54  

    untuk coding di sisi plcnya gimana mas. apakah ada pengalamatan khusus untuk mendeteksi komunikasi dengan rs232 pc.
    apakah cukup kita gunakan leader diagram atau butuh gunaian software scada seperti intouch dsbnya... untuk wago mohon juga ya

  8. Aris Uahyu // 8 Maret 2012 22.54  

    trims,, cukup berguna.....

    jangan lupa gan feedback lagi,..
    http://www.punya-magna.blogspot.com

Poskan Komentar

Mau Tukeran Link disini tempatnya :

Setelah memasukkan link anda silahkan tinggalkan komentar anda di salah satu artikel yang anda baca dan pasang link blog ini di blog/website anda, jika tidak meninggalkan komentar maka link anda akan kami hapus.

Bagi anda yang sudah pasang link blog ini dan belum saya linkback, harap tinggalkan pesan pada shoutbox.