PERANCANGAN PLC MENGGUNAKAN FPGA Satrio Dewanto1; Hadi Yoshua2; Bambang3; Muhammad Nabil4 1
Jurusan Sistem Komputer, Fakultas Ilmu Komputer, Universitas Bina Nusantara, Jalan K.H. Syahdan No. 9, Palmerah, Jakarta Barat 11480
[email protected]
ABSTRACT
PLC is an electronic relay that operated digitally using a memory that can be programmed as an instruction storage device used to implement various functions such as: logical operations, sequential operations, timer and counter operations. The objective of this research is to design a simple PLC using an FPGA. The designed PLC have four inputs, eight outputs, two flags, and also it could perform basic switching operation, basic logical gate operation (AND, OR, XOR, and NOT), counter and timer functions. The design methodology is divided into two main categories which are software and hardware design. The research methodology is done through literature study which is taken from the reference books and internet. The research shows that a simple PLC could be designed using FPGA Xilinx® Spartan-3 XC3S200. Keywords: PLC, FPGA
ABSTRAK
PLC adalah sebuah relay elektronik yang dioperasikan secara digital menggunakan memori yang dapat diprogram sebagai tempat penyimpanan instruksi-instruksi untuk mengimplementasikan fungsi-fungsi seperti operasi logika, operasi sekuensial, operasi timer dan counter. Tujuan penelitian adalah merancang PLC sederhana menggunakan FPGA. PLC yang dirancang memiliki empat buah input, delapan buah output, dua buah flag, serta dapat melakukan operasi switching dasar, operasi gerbang logika dasar (AND, OR, XOR, dan NOT), dan fungsi counter dan timer. Metodologi perancangan dibagi dalam dua bagian utama yaitu perancangan perangkat lunak dan perangkat keras. Metode penelitian yang dilakukan berupa studi literatur melalui buku-buku dan internet. Hasil perancangan yang telah dilakukan menunjukan bahwa sebuah PLC sederhana dapat dibangun menggunakan FPGA Xilinx® Spartan-3 XC3S200. Kata kunci: PLC, FPGA
Perancangan PLC menggunakan FPGA (Satrio Dewanto; dkk)
163
PENDAHULUAN Dalam bidang industri pada akhir tahun 60-an diperkenalkan Programmable Logic Controller (PLC). PLC digunakan untuk menggantikan fungsi rangkaian relai yang diperlukan pada kontrol mesin industri. PLC bekerja dengan cara melihat input dan tergantung pada kondisi input akan membuat output ON atau OFF. Pemakai PLC akan memasukan program melalui perangkat lunak atau perangkat programmer dan mendapatkan hasil keluaran yang diinginkan. Bagian utama dari PLC adalah CPU, memori, dan rangkaian untuk menerima input dan output. PLC dapat dianggap sebagai kotak yang penuh berisi ratusan atau ribuan relai, counter, timer, dan lokasi penyimpanan data tetapi mereka tidak berbentuk fisik melainkan dibuat menggunakan perangkat lunak untuk mensimulasikannya. Di sisi lain teknologi Field Programmable Gate Array (FPGA) dapat terbilang masih baru, kelebihan yang dimiliki FPGA sebagai Programmable Logic Device (PLD) dapat digunakan sebagai pendekatan dalam merancang suatu Application Specific Integrated Circuit (ASIC). Pada saat ini FPGA akan di implementasikan untuk merancang sebuah PLC sederhana. Lingkup penelitian yang dilakukan meliputi antara lain pengiriman data menggunakan serial port, operasi yang dilakukan FPGA sebagai Central Control Unit (CCU) dari PLC dan penggunaan Visual Basic untuk memprogram CCU; operasi yang bisa dilakukan oleh PLC yang dirancang masih sebatas operasi gerbang logika dasar, counter dan timer; serta pembuatan modul untuk menerima input dan mengeluarkan output di luar board FPGA tidak termasuk dalam penelitian.
Tujuan penelitian ini adalah merancang dan membuat CCU PLC sederhana, kemudian rancangan tersebut akan di implementasikan menggunakan FPGA. Selain itu ditujukan untuk membuat sebuah simulator PLC. Manfaat penelitian ini adalah untuk meningkatkan pemahaman FPGA dan juga untuk meningkatkan penggunaan FPGA dalam otomasi industri. Manfaat lainnya adalah hasil perancangan CCU PLC menggunakan FPGA dapat digunakan sebagai modul pelatihan PLC.
METODE PLC umumnya terdiri dari empat bagian utama yaitu pusat pemrosesan data (data process center), modul masukan/keluaran (input/output module), pemrogram (programmer), dan catu daya (power supply), seperti yang ditunjukkan pada gambar.
Gambar 1
Arsitektur FPGA spartan 3 family terdiri dari 5 “fundamental programmable functional elements” yaitu (1) Configurable Logic Block (CLB), mengandung suatu tabel look-up yang
164
Jurnal Teknik Komputer Vol. 17 No. 2 Agustus 2009: 163 - 169
berbasiskan RAM untuk mengimplementasikan logika dan penyimpanan (flip-flop atau latch) yang bisa diprogram; (2) Input Output Block (IOB) mengatur aliran data antara pin I/O dan alat yang digunakan. Setiap IOB mendukung aliran data dua arah dan 3-state operation; (3) Block Ram menyediakan tempat penyimpanan data dalam bentuk 18-Kbit dual-port block; (4) Multiplier block dapat menerima dua data 18-bit biner sebagai input dan menghitung hasil perkaliannya; (5) Digital Clock Manager Block (DCM) berfungsi untuk mengatur distribusi, delay, perkalian, pembagian, dan penggeseran fase dari sinyal clock. Perancangan PLC menggunakan FPGA ini akan dibangun dengan cara menggantikan CCU dari PLC dengan FPGA. Semua batasan perangkat keras (hardware) dari modul FPGA tersebut akan menjadi batasan dari PLC yang akan dirancang. Sistem yang akan dibangun memiliki skema seperti dijelaskan Gambar 2:
Gambar 2
Sesuai skema pada Gambar 2, sistem ini menggunakan program Microsoft® Visual Basic untuk merancang pemrogram PLC yang merupakan adaptasi metode statement list milik FESTO®. Pemrogram PLC yang dirancang tersebut kemudian dinamakan LineList. Tampilan antar-muka pemrogram PLC tersebut dapat dilihat pada gambar. Selanjutnya instruksi-instruksi yang ditulis pada LineList kemudian akan diolah lalu dikirim ke dalam FPGA melalui serial port. Pada prosesnya LineList akan membentuk sebuah truth table yang akan disimpan dalam RAM. Sistem akan menerima input (sensor, switch) lalu berdasarkan truth table yang ada dalam RAM maka output yang ditentukan akan dihasilkan. Tabel 1 Truth Table
Truth Table
RAM
Input
Output
Address
Data
ABC
o0 o1 o2
i0 i1 i2
o0 o1 o2
0 0 0
x x x
0 0 0
x x x
0 0 1
x x x
0 0 1
x x x
:
:
:
:
1 1 1
x x x
1 1 1
x x x
Perancangan PLC menggunakan FPGA (Satrio Dewanto; dkk)
165
Sesuai dengan tabel diatas input berfungsi sebagai address dan outputnya adalah yang ditentukan pada LineList. Jadi bila i0 dan i1 aktif maka address yang dituju adalah 110. Bila isi dari datanya adalah 011 maka output yang aktif adalah o1 dan o2. Diagram alir LineList dapat dilihat pada gambar 4. Input yang dimiliki oleh PLC yang dirancang berjumlah empat buah yaitu input(0), input(1), input(2) dan input(3). Sedangkan output yang dimiliki berjumlah delapan buah yaitu output(0), output(1), output(2), output(3), output(4), output(5), output(6), dan output(7). Selain itu PLC yang dirancang juga dilengkapi oleh dua buah flag yakni flag(0) dan flag(1).
Gambar 3 Tampilan Program
Agar FPGA dapat bekerja sebagai CCU PLC maka dirancang beberapa modul pada FPGA yaitu: • • • • •
166
Modul UART Control untuk menerima data dari serial port. Modul untuk membuat gabungan data 8 bit dari serial port menjadi 16 bit. Modul Memori Control untuk menyimpan data yang sudah menjadi 16 bit. Modul untuk mengatur pengeluaran data dan pemakaian timer, counter & flag. Modul Upper-Control yang berfungsi untuk mengatur seluruh modul diatas.
Jurnal Teknik Komputer Vol. 17 No. 2 Agustus 2009: 163 - 169
Mulai
X
Pemeriksaan sintaks dari ekspresi yang diberikan
Program inisialisasi
Terjadi kesalahan? Iya Program dalam keadaan siap menerima input
Tidak Data diperoleh dan siap kirim
User memasukan ekspresi
Data dikirim ke FPGA melalui port serial
X
Selesai
Gambar 4 Diagram Alur LineList
Agar FPGA dapat bekerja sebagai CCU PLC maka dirancang beberapa modul pada FPGA yaitu: • • • • •
Modul UART Control untuk menerima data dari serial port. Modul untuk membuat gabungan data 8 bit dari serial port menjadi 16 bit. Modul Memori Control untuk menyimpan data yang sudah menjadi 16 bit. Modul untuk mengatur pengeluaran data dan pemakaian timer, counter & flag. Modul Upper-Control yang berfungsi untuk mengatur seluruh modul diatas.
Modul Upper-Control merupakan modul yang berhubungan dengan user yaitu dengan menerima input yang berupa saklar atau switch dan mengeluarkan output ke lampu/LED sesuai keinginan dari user. Karena sistem yang dirancang merupakan suatu look-up table yang berbasiskan sebuah RAM sebesar 256x16 bit. Dari RAM delapan bit address yang digunakan empat buah diambil dari input, satu buah dari counter, satu buah dari timer dan dua buah dari flag. Sedangkan isi data pada RAM yang sebesar 16 bit akan digunakan untuk delapan buah output, tiga buah untuk pengaktifan counter, tiga buah untuk pengaktifan timer dan dua buah untuk flag.
Gambar 5 Modul Upper Control
Perancangan PLC menggunakan FPGA (Satrio Dewanto; dkk)
167
Gambar 6 Diagram Alur Upper Control
Modul akan memeriksa nilai Baca, bila nilainya 1 maka data yang terdapat dalam RAM akan digunakan sebagai output sesuai dengan kondisi input. Bila nilainya 0 maka modul akan memeriksa apakah nilai output16_ok sama dengan 1. Bila nilai output16_ok sama dengan 0 maka modul akan kembali memeriksa kembali nilai Baca. Bila output16_ok sama dengan 1 maka data input 16 bit akan ditulis ke dalam RAM.
HASIL DAN PEMBAHASAN Spesifikasi sistem memiliki 4 buah input/masukan, memiliki 8 buah output/keluaran, memiliki 2 buah flag, memiliki counter, dan memiliki timer. Pengujian dilakukan dengan cara memberikan sejumlah instruksi pada pemrogram dan melihat apakah instruksi tersebut dapat dijalankan dengan baik. Instruksi diberikan secara bertahap mulai dari bentuk sederhana sampai dengan kompleks. Hasil pengujian lengkap dapat dilihat pada tabel 2: Tabel 2 Tabel hasil pengujian Jenis Instruksi Switching Dasar Gerbang Logika
168
Penjelasan Penggunaan sejumlah input dan output beserta flag Penggunaan sejumlah input dan output disertai operasi
Keterangan Berhasil dilakukan Berhasil dilakukan
Jurnal Teknik Komputer Vol. 17 No. 2 Agustus 2009: 163 - 169
Counter Timer Kombinasi
logika Penggunaan sebuah input dan output disertai fungsi counter terhadap output Penggunaan sebuah input dan output disertai fungsi timer terhadap output Penggunaan seluruh fungsi dan operasi yang terdapat pada PLC yang dirancang dalam kondisi maksimal
Berhasil dilakukan Berhasil dilakukan Dapat dilakukan namun belum sempurna
PLC sederhana yang dirancang dapat melakukan operasi switching dasar dan operasi gerbang logika yang sederhana seperti and, or, xor dan not. Untuk operasi counter dan timer juga bisa dilakukan dengan baik. Pada pengujian ditemukan kekurangan yaitu pada saat dilakukan operasi kombinasi antara timer dan counter misalnya ingin dinyalakan lampu sebanyak 5 kali setelah 5 detik. Hal ini tidak sempurna dilakukan karena PLC yang dirancang tidak dapat melakukan operasi secara sekuensial secara sempurna.
SIMPULAN Dari hasil penelitian yang dilakukan dapat disimpulkan bahwa sebuah PLC sederhana berhasil dirancang menggunakan FPGA Spartan-3 XC3S200. PLC yang dirancang dapat bekerja secara paralel dengan baik, namun untuk proses sekuensial yang melibatkan counter belum dapat dilakukan dengan sempurna.
DAFTAR PUSTAKA Ackermann, R. et al. 1994. Programmable Logic Controllers: Basic Level. Festo Didactic KG. Esslingen. Mano, M. Moris, Kime, Charles R. 2001. Logic and Computer Design Fundamentals. 2nd Edition. Prentice Hall. New Jersey. Matic, Nebojsa. Introduction to PLC Controllers. mikroelektronika.co.yu/english/product/books/PLCbooks/plcbook.htm Web, John W. dan Ronald A. Reis. 1995. Programmable Logic Controllers: Principles and applications. 3rd Edition. Prentice Hall. New Jersey.
Perancangan PLC menggunakan FPGA (Satrio Dewanto; dkk)
169