Pembuatan dan Menjalankan Program PLC-VB
Urutan-urutan cara membuat dan menjalankan
program adalah sebagai berikut :
a.
Rencanakan
Program Syswin 3.4 dan Visual Basic 6.0
·
Siapkan
dahulu PC yang mempunyai program Syswin 3.4 dan Visual Basic 6.0. Kemudian buat
dahulu program Syswin 3.4 untuk menentukan input dan output yang akan
digunakan. Meskipun syswin
adalah PLC jadul tapi masih banyak digunakan. Berikut contoh program syswinnya
:
·
Setelah
jadi, maka buat program Visual Basic-nya sesuai dengan rancangan menu utama
yang telah dibuat sebelumnya (tombol on/off lampu, tombol merubah mode PLC,
tombol exit, serta komponen-komponen lainya). Berikut contoh rancangan Menu utamanya :
·
Kemudian
buatlah EXE atau SETUP Visual Basic-nya agar dapat dijalankan pada PC yang tidak
ada program Visual Basic-nya.
b.
Cara
Menjalankan Program
·
Download
dahulu program Syswin yang telah dibuat ke dalam PLC. Kemudian tutup program
Syswin-nya agar program Visual Basic-nya bisa dijalankan. Kemudian jalankan
program Visual Basic-nya, tekan tombol monitor agar PLC mampu diperintah oleh
PC. Jika dirubah ke mode Program atau Run maka PLC tidak mampu diperintah PC.
c.
Sistem
Kerja Program
·
Ketika
tombol mode Monitor atau Run ditekan, maka lampu RUN pada PLC akan hidup. Namun
jika diubah ke mode program, maka lampu akan mati.
·
Ketika
tombol ON lampu ditekan, maka lampu akan menyala, kemudian indikator lampu akan
berubah warna menjadi kuning, muncul tulisan lampu benar-benar menyala dan
muncul form animasi. Jika OFF maka lampu mati, kemudian indikator lampu akan
berubah warna menjadi hitam dan muncul tulisan lampu benar-benar mati.
·
Namun
ketika lampu dinyalakan, belum tentu lampu benar-benar hidup. Hal itu bisa
terjadi jika lampu putus atau kabel putus, untuk menanggulangi hal tersebut
maka dipasanglah sensor. Namun sensor disini peran kerjanya akan digantikan
oleh saklar dan sensor atau saklar akan mendeteksi lampu mati atau hidup.
Pengiriman Data Dari PC-PLC
Pengiriman data dari PC ke PLC seperti
contohnya ditunjukkan pada tombol on/off
lampu. Berikut di bawah ini akan ditampilkan tabel data yang akan dikirim saat
lampu on/off.
Data yang dikirim
Output
|
Kondisi Lampu
|
Data Yang Dikirim
|
Perubahan Yang terjadi
|
00
|
ON 1
|
"@00WH00010001"
|
HR0100
hidup
|
Shape4.FillColor = vbYellow
|
Kotak
yang mewakili ruangan berwana kuning
|
||
OFF 1
|
"@00WH00010000"
|
HR0100
mati
|
|
Shape4.FillColor = vbBlack
|
Kotak yang mewakili ruangan berwana hitam.
|
||
01
|
ON 2
|
"@00WH00020001"
|
HR0200 hidup
|
Shape1.FillColor = vbYellow
|
Kotak
yang mewakili ruangan berwana kuning.
|
||
OFF 2
|
"@00WH00020000"
|
HR0200
mati
|
|
Shape1.FillColor = vbBlack
|
Kotak
yang mewakili ruangan berwana hitam.
|
||
02
|
ON 3
|
"@00WH00030001"
|
HR0300
hidup
|
Shape2.FillColor = vbYellow
|
Kotak
yang mewakili ruangan berwana kuning.
|
||
OFF 3
|
"@00WH00030000"
|
HR0300
mati
|
|
Shape2.FillColor = vbBlack
|
Kotak
yang mewakili ruangan berwana hitam.
|
||
03
|
ON 4
|
"@00WH00050001"
|
HR0500
hidup
|
Shape3.FillColor = vbYellow
|
Kotak
yang mewakili ruangan berwana kuning.
|
||
OFF 4
|
"@00WH00050000"
|
HR0500
mati
|
|
Shape3.FillColor = vbBlack
|
Kotak
yang mewakili ruangan berwana hitam.
|
Tombol On/Off lampu berfungsi memberi
perintah PC untuk mematikan serta menyalakan lampu atau output PLC. Berikut di
bawah ini adalah gambar tombol On/Off lampu
:
Tombol ON/OFF lampu
Di
bawah ini adalah contoh listing program dari tombol ON/OFF Lampu :
·
Tombol
ON
Private Sub Command1_Click()
data =
"@00WH00010001"
Call kirim
Shape4.FillColor =
vbYellow
Form2.Visible = True
End Sub
Ketika
tombol ON ditekan, maka data "@00WH00010001" akan dikirim
dengan menggunakan kode program call
kirim. Berikut di bawah ini adalah listing program dari call kirim :
Private Sub kirim()
Dat$ = data ‘(data yang akan
dikirim, misal "@00WH00010001")
l = Len(Dat$) ‘(untuk menghitung
jumlah karakter dari data)
A = 0
For I = 1 To l
Opo$ = Mid$(Dat$, I, 1) ‘(mengambil
n (jumlah) karakter dari suatu posisi yang telah ditetapkan)
A = Asc(Opo$) Xor A ‘(Pengubahan
ke ASCII dengan di XOR kan)
Next I
FCS$ = Hex$(A)
If Len(FCS$) = 1 Then ‘(jika
hasil penghitungan karakter dari FCS$ = 1)
FCS$ = "0" + FCS$
End If
DatTX$ = Dat$ + FCS$ + "*" + Chr$(13)
MSComm1.Output = DatTX$
End Sub
Agar Program Visual Basic dapat membaca
ataupun menulis data PLC, maka data yang harus kirim dalam bentuk paket
tersetruktur yang disebut frame melalui commport.
Frame yang digunakan untuk PLC yaitu
FCS. 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
berturut (sequence) karakter pertama
hingga karakter terakhir pada sebuah
frame. Jika ternyata ASCII yang dihasilkan adalah 1 digit, maka perlu
ditambahkan ASCII ”0” di depan ASCII yang kedua. Lalu setelah data digabung
dengan FCS dan ASCII lainya, kemudian dimasukkan dalam variabel DatTX$. Setelah itu, variabel DatTx$ dikirim ke port menggunakan
perintah ”MSComm.Output”.
Program
akan membaca kondisi output pada PLC pada setiap 100 ms dengan memanfaatkan
komponen timer, sehingga bila output menyala, kotak yang mewakili ruangan akan
berubah warnanya dan pada label akan berubah tulisanya. Ini berarti setiap 100
ms sekali PC akan berkomunikasi langsung dengan PLC dengan mengirimkan 1 frame
untuk untuk membaca kondisi output. Di bawah ini adalah tabel untuk menjelaskan
dari listing program string Private
Sub kirim() di atas.
Tabel Fungsi String Pada Listing
Program Private Sub kirim()
Fungsi
|
Keterangan
|
Dat$
|
Data
yang akan dikirim.
|
Len
(l)
|
Untuk
menghitung jumlah karakter dari data.
|
Opo$ = Mid$(Dat$, I, 1) atau Mid$(Dat$, n,
m)
|
Untuk
mengambil 1 karakter pada dari karakter ke I yang telah ditetapkan. Atau
mengambil m karakter dari karakter ke n terhadap variabel
string.
|
Chr$(13)
|
Menspesifikasikan
nilai dalam ASCII, dan penambahan Chr$(13)
agar PLC mampu dibaca oleh VB.
|
Asc$
|
Menghasilkan
angka ASCII dari suatu karakter tunggal
|
FCS$ (Frame Check Sequence)
|
Hasil konversi 8-bit data ke 2 digit
karakter ASCII
|
Ketika tombol On/Off ditekan, jika lampu menyala atau mati, maka gambar tampilan
dari indikator On/Off lampu akan
berubah sebagai berikut :
Indikator On/Off Lampu
Keterangan :
·
Ketika tombol ON 1 ditekan dan sakelar dalam
keadaan ON, maka data yang akan dikirim adalah "@00WH00010001". Data "@00WH00010001"
ini akan mengaktifkan HR0100 pada program PLC untuk menyalakan output 1000.
Sedangkan data Shape4.FillColor = vbYellow, berfungsi untuk merubah warna pada
kotak ruangan menjadi kuning.
·
Ketika tombol OFF 1 ditekan atau sakelar dalam
keadaan OFF, maka data yang akan dikirim adalah "@00WH00010000". Data
"@00WH00010000" ini akan tidak mengaktifkan HR0100 pada program PLC sehingga
output 1000 mati. Sedangkan data Shape4.FillColor = vbBlack, berfungsi untuk
merubah warna pada kotak ruangan menjadi hitam.
·
Begitu juga sistem kerja tombol ON/OFF 2, ON/OFF
3, ON/OFF 4 sama dengan sistem kerja tombol ON/OFF 1.
Pengiriman Data Dari PLC ke PC
Ketika sakelar/sensor sebagai input PLC
dihidupkan, maka kotak yang mewakili ruang akan berubah menjadi kuning dan
label akan memunculkan tulisan lampu benar-benar hidup dan begitu juga
sebaliknya saat sakelar sebagai input PLC mati. Hal itu menunjukkan adanya
komunikasi atau pengiriman data dari PLC ke PC. Komunikasi atau pengiriman data
dari input PLC ke PC memanfaatkan komponen timer pada program. Berikut adalah listing
program timer :
Private Sub Timer1_Timer()
Label15.Caption
= Time ‘(membuat jam pada form)
Label16.Caption
= Format(Date, "dd mmm yyyy")
‘(membuat tanggal pada form)
data
= "@00RH00040002"‘(isi data
akan dibaca oleh VB dan diletakkan pada Text3.Text)
Call
kirim
Text3.Text
= MSComm1.Input
cek$
= Mid(Text3.Text, 8, 4) ‘(data diambil
sebanyak 4 karakter dari karakter ke 8 pada text3.text)
Text1.Text
= cek$
Select
Case cek$
Case
"0001" '+Chr$(13)
Shape1.FillColor
= vbYellow ‘(warna menjadi kuning)
Shape2.FillColor
= vbBlack ‘(warna menjadi hitam)
Shape3.FillColor
= vbBlack ‘(warna menjadi hitam)
Shape4.FillColor
= vbBlack ‘(warna menjadi hitam)
Label1.Caption
= "lampu 1 Benar2 ON " ‘(tulisan
menjadi lampu 1 benar2 ON)
Label2.Caption
= "lampu 2 Benar2 OFF" ‘(tulisan
menjadi lampu 2 benar2 OFF)
Label3.Caption
= "lampu 3 Benar2 OFF"‘(tulisan
menjadi lampu 2 benar2 OFF)
Label4.Caption
= "lampu 4 Benar2 OFF"‘(tulisan
menjadi lampu 2 benar2 OFF)
Form2.Visible
= True ‘(form2 “animasi” muncul)
Form3.Visible
= False ‘(form3 “animasi” sembunyi)
Form4.Visible
= False ‘(form4 “animasi” sembunyi)
Form5.Visible
= False ‘(form5 “animasi” sembunyi)
dst sampai ……
Case
"000F" '+Chr$(13) ‘(kasus 000F
)
Kode program di atas ditujukan untuk
melakukan pengecekkan pada alamat PLC HR0400, pengecekkan dilakukan setiap 100
ms. Kemudian data yang telah dibaca oleh VB akan diletakkan pada Text3.text.
Perintah Text3.Text =
MSComm1.Input berguna agar variabel Text3.Text
berisi data yang telah diambil per 100 ms dari PLC. Pada perintah cek$
diambil data dari Text3.Text
sebanyak 4 karakter yang kemudian diletakkan pada Text1.text.
Contoh pada kasus (case) 0001 itu
menunjukkan bahwa input 0000 dihidupkan dan tombol ON 1 dihidupkan, maka kotak
yang mewakili ruang 1 akan berubah menjadi kuning dan label akan muncul tulisan lampu 1
benar-benar ON. Begitu juga pada kasus (case) lainnya atau input-input yang
lainnya. Sebenarnya komponen timer ini juga dimanfaatkan sebagai komunikasi
data dari PLC ke PC ataupun dari PC ke PLC. Berikut di bawah ini adalah tabel
keterangan dari Case
"0001" '+Chr$(13).
Tabel Keterangan Listing Program Private
Sub Timer1_Timer()
Case
|
Data Yang
Dikirim
|
Perubahan Yang
Terjadi
|
Case “0001”
|
Shape1.FillColor = vbYellow
|
Kotak
1 yang mewakili ruangan berwana kuning.
|
Shape2.FillColor = vbBlack
|
Kotak
2 yang mewakili ruangan berwana hitam.
|
|
Shape3.FillColor = vbBlack
|
Kotak
3 yang mewakili ruangan berwana hitam.
|
|
Shape4.FillColor = vbBlack
|
Kotak
4 yang mewakili ruangan berwana hitam.
|
|
Label1.Caption = "lampu 1 Benar2 ON
"
|
Muncul tulisan lampu 1 Benar2 ON pada label 1
|
|
Label2.Caption = "lampu 2 Benar2
OFF"
|
Muncul tulisan lampu 1 Benar2 OFF pada label 2.
|
|
Label3.Caption = "lampu 3 Benar2
OFF"
|
Muncul tulisan lampu 1 Benar2 OFF pada label 3.
|
|
Label4.Caption = "lampu 4 Benar2
OFF"
|
Muncul tulisan lampu 1 Benar2 OFF pada label 4.
|
|
Form2.Visible = True
|
Form2
(animasi) muncul
|
|
Form3.Visible = False
|
Form3
(animasi) sembunyi
|
|
Form4.Visible = False
|
Form4
(animasi) sembunyi
|
|
Form5.Visible = False
|
Form5
(animasi) sembunyi
|
|
Case ”0002”
dst.....
case ”000F”
|
…………………………………….dst…………………………………………………………
|
............................................dst................................................
|