Langsung saja pada contoh sistem sederhana. Sebuah putaran motor steper dikendalikan oleh PLC maupun PC (komputer) menggunakan aplikasi Visual Basic (versi 6.0 atau .NET)
Cerita ini lanjutan dari artikel ini http://madajimmy.com/artikel/tutorial/30-pengendalian-motor-steper-menggunakan-plc-keyence-kv-40atp.html
Diasumsikan sistem berjalan normal yaitu motor berputar jika START ditekan dan berhenti setelah 1 putaran atau STOP ditekan. Arah putaran tergantung dari input FORWARD / REVERSE.
Nah.. kita akan coba melakukan koneksi serial antara PLC dan PC sehingga relay yang berperan bisa kita FORCE ON/FORCE OFF menggunakan Button pada Visual Basic, supaya kita bisa mengendalikan putaran dengan mengeklik tombol pada layar monitor.
Begini caranya… <lanjut>
PLC Keyence KV dapat membentuk komunikasi serial dengan devais dari luar seperti komputer, devais berbasis mikrokontroler atau peralatan lain sepanjang alat tersebut memiliki serial port. (untuk laptop jaman sekarang, perlu tambahan USB-Serial Port Converter).
Persiapan yang perlu dilakukan adalah menyiapkan kabel. Kabel yang digunakan sama dengan kabel untuk pemprogram PLC, jadi tinggal ditiru saja. Jika tidak mau repot, untuk sementara gunakan saja kabel untuk program, dan tinggal mengganti nomor COM nya. Hubungkan kabel dari PLC ke konektor RS232 PC, lalu buka aplikasi Hyperterminal atau sejenisnya.
Set parameter hyperterminal sebagai berikut:
Parameter | Nilai |
Baud rate | 9600bps |
Data length | 8 bit |
Parity check | Even (E) |
Stop bit length | 1 |
Flow Control | None |
Buat koneksi baru sesuai COM port yang dihubungkan
Persiapan berikutnya adalah membaca daftar Command/Response pada buku manual programming (Chapter 7). Tidak banyak perintahnya, hanya sekitar 12 perintah.
Untuk memulai komunikasi, perintah yang kita kirim adalah:
CR
PLC akan merespon dengan:
CC
- Jika tidak merespon, maka cek sambungan, atau parameter.
- Jika responnya E0, E1, … atau E5, maka ada kesalahan perintah.
- Jika respon CC, maka komunikasi sudah terbentuk dan PLC siap menerima perintah.
Untuk mengakhiri komunikasi, gunakan perintah
CQ
PLC akan merespon dengan:
CF
Contoh program Visual Basic 6.0 untuk mengubah status RUN atau STOP pada PLC:
Private Sub CommandRUN_Click()
MSComm1.Output = "CR" & vbCrLf
MSComm1.Output = "M1" & vbCrLf
MSComm1.Output = "CQ" & vbCrLf
End Sub
Private Sub CommandSTOP_Click()
MSComm1.Output = "CR" & vbCrLf
MSComm1.Output = "M0" & vbCrLf
MSComm1.Output = "CQ" & vbCrLf
End Sub
Ringkasan tabel perintah/respons :
catatan: Setiap perintah harus diakhiri dengan karakter cr(carriage return) dan lf (line feed) atau cr saja. Tanda “_” artinya spasi.
Fungsi | Perintah | Respons | Deskripsi |
Starts communication | CR | CC | mengawali komunikasi |
Ends communication | CQ | CF | mengakhiri komunikasi |
Changes mode | Mn | OK | n=0 –> Program n=1 –> RUN |
Clears error | ER | OK | |
Checks PLC error | ?E | dd | dd=Error code, 00 artinya no error |
Checks curent PLC mode | ?M | n | n=0 –> Program n=1 –> RUN |
Reads Counter | RD_Cnnn | f, , | |
Reads Timer | RD_Tnnn | f, , | |
Reads Contact | RD_nnnnn | f | f=0—> OFF f=1—> ON |
Writes Counter Value | WR_Cnnn_ddddd | OK | n/nnn : Timer/Counter ddddd: 0..65535 |
Write Data Memory | WE_DMnnnn_dddd | OK | n: DM no. d: desimal |
Force ON Relay | ST_nnnn | OK | nnn: Relay No. |
Force OFF Relay | RS_nnnn | OK | nnn: Relay No. |
Catatan: tabel ini belum lengkap, untuk lebih lengkapnya, silakan buka buku manual programming Keyence KV40
Perlu diketahui bahwa perintah Force ON dan Force OFF tidak berlaku untuk input, seperti input 0000,0001, dst… Untuk itu perlu kita modifikasi program laddernya jika kita hendak memberi nilai pada input, yaitu dengan cara menambah temporary contact 100x secara paralel.
Modifikasi program ladder seperti berikut:
Contoh Program Visual Basic (.NET)
Download KV40-MotorStepperControl-VB-NET.zip
Contoh Program Visual Basic (6.0)
Download KV40-MotorStepperControl-VB6.zip
Demikian tutorial ini, selamat mencoba.