BB III PERNCNGN DN IMPLEMENTSI Pada tugas akhir ini akan dibuat sebuah perangkat keras PLC dengan fasilitas minimun beserta perangkat lunak sistem operasinya yang ditanamkan pada mikrokontroler sehingga memfungsikan mikrokontroler tersebut sebagai PLC. Selain itu juga dibuat program konversi dari diagram ladder menjadi suatu format data yang dapat dimengerti oleh sistem operasi tersebut. Pembuatan perangkat lunak diagram Ladder untuk memprogram PLC dibuat sendiri dengan menggunakan bahasa pemrograman Visual Basic 6. Diagram blok sistem PLC yang akan dibangun dapat dilihat pada Gambar 3.1 berikut 12. Gambar 3.1 Rancangan sistem PLC 12 OMRON. Programmable Controllers Operation Manual 22
Spesifikasi sistem minimum PLC yang dibuat adalah 1. PLC dapat diprogram dengan diagram ladder. Program yang akan ditanamkan ke PLC tersebut selanjutya disebut dengan program aplikasi kendali. Program aplikasi ini nantinya dapat di upload ke PLC dan juga dapat di download dari PLC ke komputer melalui komunikasi serial RS232 secara asinkron URT (Universal synchronous Receiver /Transmitter). 2. Selama PLC diaktifkan atau dalam keadaan RUN komputer dapat mengakses data-data masukan atau keluaran dan variabel proses melalui komunikasi URT. 3. PLC ini terdiri dari 8 masukan digital, 8 keluaran digital, 1 saluran masukan analog, tampilan LCD dan 1 port komunikasi serial RS232. 3.1 Rancang Bangun Perangkat Keras Seperti yang telah disebutkan pada bab sebelumnya mikrokontroler yang digunakan untuk difungsikan sebagai PLC adalah mikrokontroler TMEL T89S52. lasan yang mendasari penggunaan mikrokontroler ini adalah adanya downloadable flash memory 8 KB sehingga tidak diperlukan lagi memori luar untuk menampung program sistem operasi PLC. Selain itu kapasitasnya yang 8 KB relatif lebih besar daripada yang terdapat pada sebagian besar keluarga MCS-51 yang lain. Memori ini juga dapat diprogram ulang sampai 1000 kali. Paling utama dari semua itu, pemakaian memori ini memungkinkan sistem pemrograman mikrokontroler menjadi lebih sederhana tidak memerlukan rangkaian yang rumit seperti pada T89C51. 23
3.1.1 Rangkaian pembangkit clock Rangkaian ini berfungsi untuk membangkitkan sinyal clock untuk menjalankan mikrokontroler. Pada dasarnya mikrokontroler mempunyai internal clock generator yang berfungsi sebagai sumber clock, tetapi masih diperlukan rangkaian tambahan untuk membangkitkan clock yaitu berupa osilator kristal dan kapasitor. Nilai frekuensi osilator kristal (foc) yang dipakai dalam tugas akhir ini adalah 11,059 MHZ. Rangkaian lengkap dapat dilihat pada Gambar 3.2 berikut 13. Gambar 3.2 Rangkaian pembangkit clock 3.1.2 Rangkaian reset Rangkaian reset yang diberikan pada Gambar 3.3 adalah rangkaian yang berfungsi untuk memberikan pulsa masukan selama selang waktu 2 siklus mesin pada saat sistem mendapatkan catu daya pertama kali. Masukan reset (pin 9) sendiri adalah active high. Ketika pin reset diset tinggi akan mereset mikrokontroler kembali ke power-on state 14. 13 Sumber : Pari Vallal Kannan, Micrprocessor Design Project Training 14 Sumber : Pari Vallal Kannan, Micrprocessor Design Project Training 24
Gambar 3.3 Rangkaian reset 3.1.3 Komunikasi serial RS232 Untuk berkomunikasi dengan divais luar melalui komunikasi RS232, digunakan port 3.0 sebagai penerima data (RXD) dan port 3.1 sebagai pengirim data (TXD) seperti yang terlihat pada Gambar 3.4. Tegangan pada mikrokontroler untuk standar digitalnya adalah +5V dan 0V dan ini bukan level TTL yang menjadi standar komunikasi serial RS232, maka Integrated Circuit (IC) Maxim 232 digunakan untuk mengubahnya menjadi level TTL RS232. Port serial pada mikrokontroler T89S52 bersifat full duplex artinya pengiriman dan penerimaan data dapat dilakukan secara bersamaan. Gambar 3.4 Rangkaian komunikasi serial 25
Untuk berkomunikasi dengan divais luar baudrate mikrokontroler dengan baudrate divais luar haruslah sama. Baudrate adalah jumlah simbol yang dikirim dalam satu detik atau dalam sistem ini sama dengan jumlah bit yang dikirim dalam satu detik. Untuk mendapatkan baudrate yang sesuai dapat dilakukan dengan mengkonfigurasi SFR TH1 dan bit SMOD pada SFR PCON (Power Control). Pada tugas akhir ini diinginkan baudrate sebesar 19200 bps dengan frekuensi osilator 11,059 MHZ, maka cara mengkonfigurasinya adalah : maka dengan SMOD =1 didapat : Sehingga kita dapat, TH1 = 253 = FDH. 3.1.4 Port masukan digital Semua saluran masukan dan keluaran PLC pada Tugas khir ini menggunakan port 0 pada mikrokontroler T89S52. Pada port masukan digital, karakteristik yang dimilikinya adalah masukan digital dengan tegangan masukan kurang dari 5VDC adalah logika 0 dan lebih dari 5VDC berlogika 1. Rangkaian untuk masukan digital ditunjukkan pada Gambar 3.5. 26
Pengalamatan port masukan mengunakan standar yang didapat pada buku Programmable Logic Controller karya Frank D. Petruzella, seperti dapat dilihat pada tabel 3.1. Karekteristik dari port masukan ini adalah masukan digital dengan tegangan masukan kurang dari 5VDC adalah logika 0 dan lebih dari 5VDC berlogika 1 15. Gambar 3.5 Rangkaian masukan digital Tabel 3.1 Pengalamatan port masukan 3.1.5 Port keluaran digital Port keluaran digital PLC menggunakan port 2 pada mikrokontroler T89S52. Pada port keluaran ini digunakan IC 74HC573 sebagai latch yang berfungsi untuk 15 Sumber : Frank D Petruzella, Programmable Logic Controller 27
mengatur keluaran dari PLC. Pengaturan latch ini dilakukan melalui port 3.3 dari mikrokontroler, apabila dikirimkan sinyal high maka data dari port 2 akan masuk ke port keluaran, ketika dikirimkan sinyal low maka IC tersebut akan menyimpan data terakhir yang masuk ke port keluaran (latch). Gambar rangkaian keluaran digital ditunjukkan pada Gambar 3.6. Gambar 3.6 Rangkaian keluaran digital Pengalamatan port keluaran dapat dilihat pada Tabel 3.2. Karakteristik dari port keluaran adalah keluaran tegangan 5 VDC 16 Tabel 3.2 Pengalamatan port keluaran 16 Sumber : Frank D Petruzella, Programmable Logic Controller 28
3.1.7 Tampilan LCD Pada PLC ini terdapat port yang digunakan untuk menampilkan data melalui LCD. Rangkaian tampilan LCD ditunjukkan pada Gambar 3.7. Port yang digunakan adalah port 2 dari mikrokontroler, yang pengaturan penggunaannya diatur melalui port 3.7. Pada sistem tampilan LCD ini digunakan IC 74LS245 sebagai buffer yang mengatur arah data yang masuk dan keluar ke LCD. Tampilan LCD ini bisa dipergunakan untuk menampilkan berbagai parameter yang sedang dioperasikan oleh PLC dengan cara memprogramnya, sehingga bisa diketahui berbagai variabel yang diinginkan. Gambar 3.7 Rangkaian tampilan LCD 3.2 Rancang Bangun Perangkat Lunak Sistem operasi yang dibuat dan ditanam ke mikrokontroler T89S52 ini berfungsi untuk mengatur cara kerja PLC atau dengan kata lain memfungsikan mikrokontroler T89S52 sebagai PLC. Pemrograman sistem operasi ini akan ditulis dengan bahasa 29
ssembler. Secara umum algoritma sistem operasi yang akan dibuat dapat dilihat pada Gambar 3.8. 3.2.1 Prosedur Utama Prosedur ini adalah prosedur yang dijalankan oleh mikrokontroler pertama kali. Prosedur ini dinamakan program utama yang akan menjalankan fungsi utama sistem operasi. Prosedur ini akan menjalankan satu persatu instruksi dari program aplikasi. Berikut prosedur utama untuk masing-masing instruksinya. o LOD (Normally Open) Instruksi ini akan membaca data register I/O sesuai dengan parameternya dan menyimpannya dalam stack. Format data untuk instruksi ini adalah 00 diikuti dengan alamat I/O yang akan diakses, contoh 001001. o LODNOT (Normally Close) Instruksi ini akan membaca data register I/O sesuai dengan parameternya, di-xor dengan 1 dan menyimpannya dalam stack. Format data untuk instruksi ini adalah 01 diikuti dengan alamat I/O yang akan diakses, contoh 011002. o ND Instruksi ini akan membaca isi stack dan di-nd-kan dengan data register I/O sesuai dengan parameternya kemudian disimpan ke stack kembali. Format data untuk instruksi ini adalah 02 diikuti dengan alamat I/O yang akan diakses, contoh 021002. 30
o NDNOT Instruksi ini akan membaca isi stack, isi stack ini di-nd-kan dengan hasil data register I/O di-xor dengan 1, kemudian disimpan ke stack kembali. Format data untuk instruksi ini adalah 03 diikuti dengan alamat I/O yang akan diakses, contoh 031002. o OR Instruksi ini akan membaca isi stack dan di-or-kan dengan data register I/O sesuai dengan parameternya kemudian disimpan ke stack kembali. Format data untuk instruksi ini adalah 04 diikuti dengan alamat I/O yang akan diakses, contoh 041002 o ORNOT Instruksi ini akan membaca isi stack, isi stack ini di-or-kan dengan hasil dari data register I/O di-xor dengan 1, kemudian disimpan ke stack kembali. Format data untuk instruksi ini adalah 05 diikuti dengan alamat I/O yang akan diakses, contoh 051002. o OUT Instruksi ini akan membaca data dari stack dan diberikan ke register output sesuai dengan parameternya. Format data untuk instruksi ini adalah 08 diikuti dengan alamat I/O yang akan diakses, contoh 081002. 31
o OUTNOT Instruksi ini akan membaca data dari stack dan di-xor-kan dengan 1 kemudian diberikan ke register output sesuai dengan parameternya. Format data untuk instruksi ini adalah 09 diikuti dengan alamat I/O yang akan diakses, contoh 091002. Gambar 3.8 lgoritma Power-ON Ready (POR) PLC 32
3.2.2 Prosedur inisiasi serial Prosedur ini untuk mengkonfigurasi mode operasi dan baudrate komunikasi port serial. Prosedur ini tidak memiliki nilai balikan maupun argumen. INIT: SETB SETB SCON,#50H,PCON CC.7 PCON, TMOD,#20H TH1,#0FDH TR1 Baris pertama instruksi tersebut merupakan bentuk pengaktifan mode serial, sehingga proses pengiriman data antara hardware dengan komputer bisa dilakukan. Baudrate yang digunakan untuk komunikasi ini adalah sebesar 19200 bps. 3.2.3 Prosedur menerima karakter Prosedur ini untuk mendapatkan karakter dari port serial. Prosedur ini memiliki nilai balikan karakter yang diterima. TERIM: JNB RI,$ ;cek masukan CLR RI ;Ri di nolkan supaya bisa menerima karakter baru,sbuf ;pindahkan karakter ke akumulator 33
JNB RI,$; adalah perintah agar menunggu bit RI di set oleh hardware, jika sudah diset maka kembali dinolkan dengan perintah CLR RI; agar dapat digunakan kembali sebagai tanda suatu byte data telah selesai diterima. RI adalah bit pada register SCON sebagai tanda data telah selesai diterima. Selanjutnya data pada SBUF yang merupakan data / karakter yang diterima melalui port serial ditampung pada accumulator. Baris perintah ; untuk memberikan nilai balikan berupa karakter yang telah diterima. 3.2.4 Prosedur mengirimkan karakter Prosedur ini untuk mengirim karakter melalui port serial. Prosedur ini memiliki nilai balikan karakter yang telah terkirim dan memiliki argumen karakter yang ingin dikirim. KIRIM: JNB CLR SBUF, TI,$ TI Karakter yang akan dikirimkan disimpan dalam ccumulator, yang selanjutnya karakter tersebut dipindahkan ke dalam SBUF melalui instruksi SBUF,;. JNB TI,$; adalah perintah agar menunggu bit TI di set oleh perangkat keras, jika sudah diset maka kembali dinolkan dengan perintah CLR TI; agar dapat digunakan kembali sebagai tanda suatu byte data telah selesai dikirim. TI adalah bit pada register SCON sebagai tanda pengiriman telah selesai dilakukan. 34
3.2.5 Prosedur pemilihan port Prosedur ini untuk mengetahui data dari port yang sesuai dengan alamat yang ada pada parameter instruksi program aplikasi. Prosedur ini memiliki nilai balikan data port yang diinginkan. PILIH_PORT: CLR,@R0,#'@',TERUS_IN TERUS_IN: INC,#'1',PORT_OUT R0 PORT_IN: CLR INC DJNZ,@R0 R0 R3,PORT_IN PORT_IN0:,#'0',PORT_IN1 C,P0.0 PORT_IN1:,#'1',PORT_IN2 C,P0.1 35
PORT_IN2:,#'2',PORT_IN3 C,P0.2 PORT_IN3:,#'3',PORT_IN4 C,P0.3 PORT_IN4:,#'4',PORT_IN5 C,P0.4 PORT_IN5:,#'5',PORT_IN6 C,P0.5 PORT_IN6:,#'6',PORT_IN7 C,P0.6 PORT_IN7: C,P0.7 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PORT_OUT: 36
INC R0 TERUS_OUT: CLR INC,@R0 R0,#'@',TERUS_OUT0 TERUS_OUT0:,#'0',TERUS_OUT1 TERUS_OUT2: CLR INC DJNZ,@R0 R0 R3,TERUS_OUT2 PORT_OUT0: RRC,#'0',PORT_OUT1,@R1 P2.0,C PORT_OUT1: RRC,#'1',PORT_OUT2,@R1 P2.1,C 37
PORT_OUT2: RRC,#'2',PORT_OUT3,@R1 P2.2,C PORT_OUT3: RRC,#'3',PORT_OUT4,@R1 P2.3,C PORT_OUT4: RRC,#'4',PORT_OUT5,@R1 P2.4,C PORT_OUT5: RRC,#'5',PORT_OUT6,@R1 P2.5,C PORT_OUT6:,#'6',PORT_OUT7 38
,@R1 RRC P2.6,C PORT_OUT7: RRC,@R1 P2.7,C Prosedur tersebut adalah perintah untuk membaca alamat port yang terdapat di flash memori dan ditampung pada register R1. Register R1 inilah yang akan digunakan untuk mengetahui port mana yang ingin di-assign. 3.3 Pemrograman Diagram Ladder Pemrograman untuk Ladder Diagram (diagram tangga) dibuat sendiri dengan menggunakan bahasa pemrograman Visual Basic versi 6. Visual dari pemrograman ini berupa sel-sel berjumlah 97 (batas antar sel dihilangkan, sehingga tidak terlihat jumlah sel yang terdapat pada program) seperti dapat dilihat pada Gambar 3.9. Terdapat 4 jenis sel yang dibagi berdasar isi sel tersebut, yaitu : 1. Sel yang diisi oleh salah satu komponen input berupa load dan loadnot yang terdapat pada sel bernomor genap. 39
Gambar 3.9 Visual Ladder Programmer 2. Sel yang diisi oleh salah satu komponen output berupa OUT dan OUTNOT yang berada di nomor 12, 26, 40, 54, 68, 82, 96 (sel paling kanan dari semua rung/baris). 3. Sel yang diisi oleh penghubung antar komponen yaitu garis horizontal dan vertikal di semua nomor ganjil. Pada sel ini dapat berisi kedua penghubung vertikal dan horizontal atau salah satunya saja. 4. Sel yang diisi oleh penamaan komponen masukan atau keluaran yang terdapat di bagian atas dari setiap rung. logritma ini dibagi dalam 3 tahap yaitu : 1. Pengisian jenis dan nama komponen beserta parameter. 2. Pencarian jenis komponen di sel bernomor genap dan hubungan antar komponen di sel bernomor ganjil. Pencarian dilakukan berdasarkan rung (baris), dimulai dari 40
sel bernomor 0, 1 sampai 13 ; 14 sampai 27 dst, seperti dapat dilihat pada Gambar 3.10 berikut. Gambar 3.10 Pencarian penghubung antar komponen 3. Lakukan perubahan nama komponen sesuai dengan hubungan antar komponen yang didapat. Perubahan ini bisa mengganti karakter dari string sel, seperti yang terjadi pada logika ND, NDNOT, OR dan ORNOT, Contoh : Pada diagram Ladder diatas, instruksinya adalah Load 1000, Load 1001, Load 1002 dan OUT 0000. Dalam format hexa yang disimpan pada tiap sel adalah Sel 1 Sel 2 Sel 3 Sel 4 001000 001002 001001 080000 Format hexa masing-masing sel diatas harus diubah, karena pada diagram ditemukan logika ND dan OR. Format hexa masing-masing sel menjadi 41
Sel 1 Sel 2 Sel 3 Sel 4 001000 021002 041001 080000 Terlihat sel 2 yang awalnya memiliki instruksi 00 (LOD) berubah menjadi 02 (ND) begitu juga pada sel 3 yang awalnya memiliki instruksi 00 (LOD) berubah menjadi 04 (OR). Pada alogritma format hexa pada tiap sel input akan dibaca dari kiri ke kanan dan atas ke bawah dilanjutkan dengan format hexa selsel outpuutnya. Sehingga format hexa yang akan dikirim pada diagram ladder diatas adalah 001000021002041001080000 42