Perancangan Sistem Kendali Terdistribusi Berbasis Mikrokontroler dan Embedded Web Server (Iman Firmansyah) Akreditasi LIPI Nomor: 377/E/2013 Tanggal 16 April 2013
Perancangan Sistem Kendali Terdistribusi Berbasis Mikrokontroler dan Embedded Web Server IMAN FIRMANSYAH Pusat Penelitian Fisika – LIPI, Komplek PUSPIPTEK Tangerang Selatan, Indonesia E-mail:
[email protected] Diterima: 5 April 2013
Revisi: 1 Mei 2013
Disetujui: 15 Mei 2013
INTISARI: Pada tulisan ini dibahas mengenai perancangan sistem kendali terdistribusi yang dapat dikendalikan melalui jaringan internet. Sistem ini terdiri dari sebuah unit utama dan beberapa unit distribusi yang terhubung dengan saluran komunikasi serial RS-485. Pada perancangan ini, mikrokontroler RCM3000 yang sudah terintegrasi dengan 10Base-T Ethernet berfungsi sebagai unit utama sedangkan mikrokontroler AT89S51 befungsi sebagai unit distribusi atau bisa juga disebut sebagai slave. Sistem ini memungkinkan proses pengendalian melalui jaringan internet dikarenakan kemampuan unit utama yang bisa berfungsi sebagai embedded web server. Tiap unit distribusi terdiri dari input DIP switch yang berfungsi sebagai input alamat. Di samping itu, unit distribusi terdiri dari sebuah SSR (solid state relay) sehingga mampu melakukan kendali dua keadaan atau on/off. Untuk melakukan proses pengendalian melalui jaringan internet, request yang diterima unit utama melalui web browser akan mengakibatkan pemanggilan program aplikasi CGI (Common Gateway Interface). Unit utama yang dalam hal ini berfungsi juga sebagai server, akan mengirimkan perintah ke semua unit distribusi melalui saluran komunikasi serial RS-485. Tiap perintah merupakan bilangan desimal 8-bit yang terdiri dari alamat unit distribusi atau slave ditambah tipe pengendalian (on atau off). Unit distribusi atau slave yang mempunyai alamat yang sesuai dengan perintah akan merespon dengan mengaktifkan atau menonaktifkan relay. Sistem ini mempunyai kemampuan untuk mengendalikan beberapa alat melalui jaringan internet, sehingga memungkinkan dalam proses pengendalian secara jarak jauh. KATA K UNCI: mikrokontroler RCM3000, embedded server, sitem kendali, RS-485 ABSTRACT: The paper discussed the distributed control system which can be controlled over internet network. The system consisting of main unit and several distributed unit connected through RS-485 serial communication. RCM3000 microcontroller which is integrated with a 10Base-T Ethernet is a main unit, meanwhile AT89S51 microcontroller is used as distributed unit or a slave. This system can be operated over the internet connection since the main unit is an embedded web server as well. Each distributed unit consists of DIP switch as input for addressing. On top of that, each distributed unit or slave has SSR (solid state relay) for on/off controlling. To perform the operation remotely via the internet connection, the received request from web browser will activate the CGI (Common Gateway Interface) applications. The main unit which serve as a web server server will send commands to all distributed units via RS-485 communication bus. Each command is 8-bit decimal number consisting of distributed unit addreess and the type of control (on or off). The appropriate distributed unit or slave which has the same address with the command will respond by activating or deactivating the relay. This system has the abbility to control several devices using internet connection, making it possible to control devices remotely. KEYWORDS: RCM3000 microcontroller, embedded server, control system, RS-485
1 PENDAHULUAN Penggunaan mikrokontroler pada berbagai bidang aplikasi tidak hanya sebatas pada aplikasi embedded system yang membutuhkan daya yang rendah serta ukuran yang relatif kecil, tapi bahkan juga dapat diterapkan pada bidang kendali di industri. Mikrokontroler dapat diaplikasikan untuk mengganti beberapa komponen kendali yang biasanya digunakan dalam aplikasi industri. Sebagai contohnya yaitu PLC yang sudah secara luas digunakan sebagai pengendali dalam berbagai aplikasi di bidang industri, untuk kasus tertentu dapat juga diganti dengan menggunakan sebuah mikrokontroler [1]. Hal ini mempunyai keuntungan seperti pengurangan biaya selama proses perancangan alat, juga memberikan keleluasaan dalam proses perancangan sistem yang dikarenakan penggunaan bahasa tingkat tinggi (high level language) pada pemograman mikrokontroler. Untuk sistem kendali yang terdiri dari beberapa alat yang letaknya berjauhan satu sama lainnya, tiap-tiap mikrokontroler dapat berkomunikasi dalam proses pengiriman maupun penerimaan data melalui beberapa jaringan seperti : RS-232, RS-485, TCP/IP, CAN dan sebagainya. Pada tulisan ini, saluran komunikasi RS-485 dipilih sebagai jalur komunikasi antar mikrokontroler sehingga tercipta suatu sistem kendali yang terdistribusi. Untuk kasus tertentu dimana proses pengendalian perlu diintegrasikan dengan PC atau juga melalui jaringan internet, maka diperlukan suatu interface yang mampu menghubungkan sistem tersebut ke jaringan internet. Sebuah PC dapat digunakan sebagai server yang terhubung dengan beberapa mikrokontroler, sehingga proses pengendalian dapat dilakukan melalui jarak jauh dengan menggunakan suatu aplikasi web browser. Untuk menghemat daya yang diperlukan dan untuk mengurangi ukuran fisik, sebuah mikrokontroler
67
TELAAH Jurnal Ilmu Pengetahuan dan Teknologi
Volume 31 (1) 2013: 67-74 ISSN: 0125-9121
yang terintegrasi dengan ethernet difungsikan tidak hanya sebagai alternatif pengganti server tetapi juga sebagai unit utama yang akan mengendalikan beberapa mikrokontroler yang saling terhubung secara terdistribusi. Pada tulisan ini akan dibahas perancangan sistem kendali on/off terdistribusi yang terdiri dari mikrokontroler RCM3000 yang berfungsi sebagai embedded web server atau unit utama dan beberapa mikrokontroler yang berfungsi sebagai unit distribusi atau slave. 2. METODOLOGI PENELITIAN Diagram blok sistem kendali terdistribusi diperlihatkan seperti pada Gambar.1. Secara garis besar, sistem ini dikategorikan menjadi dua bagian utama yaitu [2] pertama Unit utama unit ini tidak hanya berfungsi untuk mengatur kerja semua unit distribusi tetapi juga berfungsi sebagai embedded web server yang akan menerima perintah atau request dari pengguna melalui halaman web dan mengeksekusi dengan meneruskan perintah ke semua unit distribusi. Unit utama terdiri dari sebuah mikrokontroler RCM3000 yang bekerja pada clock 30 MHz dan terintegrasi dengan 10Base-T Ethernet [3]. Selain itu, mikrokontroler ini mempunyai 512K Flash untuk menyimpan kode program dan 512K SRAM. Untuk melakukan komunikasi data dan interaksi dengan perangkat lainnya, komponen ini terdiri atas 52 digital I/O dan 6 port serial (IrDA, HDLC, asynch, SPI). Dan yang kedua Unit distribusi atau bisa juga disebut sebagai slave, unit ini terdiri dari beberapa mikrokontroler yang terhubung dengan saluran komunikasi serial RS-485 satu sama lain. Tiap unit distribusi terdiri atas mikrokontroler AT89S51 yang bekerja pada clock 11.592 MHz, SN75176 sebagai transeiver pada saluran komunikasi diferensial multipoint. Pada unit ini juga terdapat input DIP switch yang berfungsi untuk memberi alamat ke tiap-tiap unit distribusi atau slave, sehingga tiap-tiap unit distribusi mempunyai alamat yang berbeda. Alamat ini juga ditampilkan pada tampilan seven segment untuk memudahkan dalam pengalamatan tiap unit distribusi. Seperti uraian diatas, semua mikrokontroler saling terhubung dengan saluran komunikasi serial RS485 yang membentuk topologi master dan slave. Unit utama berfungsi untuk menerima request dari pengguna melalui aplikasi web browser, akan mengirimkan perintah ke semua unit distribusi atau slave. Tiap-tiap unit distribusi mempunyai alamat yang berbeda sehingga perintah yang dikirim oleh unit utama hanya akan diproses oleh unit distribusi yang mempunyai alamat yang sesuai. Tiap perintah atau command terdiri dari alamat yang dituju beserta kendali yang harus dilakukan oleh mikrokontroler apakah untuk menyalakan relay atau mematikan relay. Pada tulisan ini hanya difokuskan mengenai sistem kendali dua keadaan yaitu kendali on/off, dimana sebelumnya sistem ini telah digunakan sebagai sistem kendali komputer cluster secara online. Komputer cluster atau komputer parallel tersusun atas beberapa komputer yang terhubung melalui jaringan TCP/IP, dimana tiap-tiap komputer atau biasa disebut sebagai node melakukan kalkulasi secara paralel. Sistem ini digunakan untuk mengendalikan sumber tegangan AC ke tiap-tiap node dalam keadaan nyala atau mati. Meskipun demikian, sistem ini dapat digunakan secara luas untuk berbagai aplikasi lainnya seperti pada aplikasi sistem kendali lampu penerangan dan sistem kendali di industri yang berfungsi untuk menyalakan atau mematikan mesin-mesin dari sumber tegangan AC.
Gambar 1. Diagram blok sistem kendali terdistribusi.
68
Perancangan Sistem Kendali Terdistribusi Berbasis Mikrokontroler dan Embedded Web Server (Iman Firmansyah)
Untuk melakukan proses pengendalian melalui jaringan internet, maka unit utama yang berfungsi juga sebagai web server harus mampu mengesekusi layanan program lainnya ketika user mengirim request. Salah satu aplikasi yang biasa digunakan oleh server ketika akan memanggil suatu layanan program eksternal yaitu program aplikasi CGI [3]. CGI atau Common Gateway Interface merupakan bagian aplikasi yang terdapat dalam sebuah web server yang mampu berkomunikasi dengan program lain yang sedang berjalan dalam server tersebut. Dengan kata lain, suatu aplikasi CGI mendefinisikan tentang protokol yang memungkinkan pengguna untuk menunjuk sebuah tautan atau tombol dalam suatu halaman web untuk meminta server mengeksekusi program tertentu. Sehingga dengan menggunakan aplikasi CGI, maka sebuah server mampu memanggil layanan program lainnya. Pada aplikasi ini, sebuah aplikasi CGI akan memanggil layanan subprogram komunikasi serial UART yang terdapat dalam mikrokontroler RCM3000 ketika user menekan sebuah tombol pada halaman web. Layanan program ini kemudian akan mengirim perintah kepada semua unit distribusi atau slave melalui port serial yang sudah terhubung melalui saluran komunikasi RS-485. Dengan kata lain dapat disebutkan bahwa sebuah server akan menerima request dari client melalui halaman web browser, memanggil program lain, memproses data dan kemudian mengirim response kembali kepada client seperti terlihat pada Gambar 2 Aplikasi CGI ini bukan merupakan satu-satunya solusi dalam aplikasi perancangan web dinamis, salah satu alternatif lainnya yaitu Java Servlet dalam pengembangan aplikasi web berbasis bahasa pemograman Java. Pogram berikut merupakan potongan program dimana client meminta server untuk mengeksekusi program CGI bernama send_serial.cgi yang berfungsi untuk mengirim data serial UART ketika tombol ditekan.
| Bagian unit yang berhubungan langsung dengan objek yang akan dikendalikan yaitu beberapa unit distribusi atau slave yang terhubung dengan saluran komunikasi serial RS-485. Pada dasarnya hampir semua jenis mikrokontroler dapat digunakan dalam perancangan ini, akan tetapi dikarenakan pada aplikasi ini hanya diperlukan feature standar berupa digital I/O dan tidak diperlukannya internal ADC untuk proses pengukuran besaran analog, maka jenis mikrokontroler AT89S51 buatan Atmel dipilih sebagai unit distribusi. Tiap unit distribusi terdiri dari input DIP switch yang berfungsi sebagai masukan untuk pengaturan alamat tiap-tiap mikrokontroler sehingga setiap unit distribusi yang terhubung dengan saluran komunikasi RS-485 mempunyai alamat yang berbeda [4].
Gambar 2. Common Gateway Interface (CGI).
Gambar 3. Unit distribusi atau slave.
69
TELAAH Jurnal Ilmu Pengetahuan dan Teknologi
Volume 31 (1) 2013: 67-74 ISSN: 0125-9121
Pengalamatan tiap-tiap slave ini sangat penting dan mutlak mengingat terdapatnya beberapa unit distribusi atau slave yang terhubung melalui saluran komunikasi RS-485 secara terdistribusi. Penggunaan DIP switch juga mempunyai kelebihan dibandingkan dengan pengalamatan secara permanen melalui ROM pada tiap mikrokontroler, sehingga proses pengalamatan tiap unit distribusi lebih fleksibel dan mudah. Disamping kelebihan tersebut, setiap adanya perubahan pada input switch maka alamat tersebut secara otomatis akan ditampilkan pada tampilan seven segment. Baik unit utama dan unit distribusi terintegrasi dengan IC SN75176 sebagai RS-485 transceiver yang akan mengubah format data serial UART dari mikrokontroler menjadi format data serial RS-485 dan sebaliknya. Skema rangkaian untuk unit distribusi atau slave dapat dilihat pada Gambar 3, dimana rangkaian tersebut terhubung dengan solid state relay yang akan mengendalikan tegangan AC yang mengalir melalui beban yang akan dikendalikan. Prinsip kerja mikrokontroler AT89S51 pada tiap unit distribusi atau slave dapat dijelaskan dengan menggunakan diagram keadaan seperti terlihat pada Gambar 4. Pada kondisi awal mikrokontroler akan mengatur beberapa port yang berfungsi sebagai input maupun output seperti dalam hal pengaturan beberapa register untuk interupsi serial dan pengaturan kecepatan baud rate port serial dengan nilai 9600 bps, pengaturan PORT.1 sebagai input masukan dari DIP switch, pengaturan PORT.0 sebagai output untuk tampilan seven segment, dan pengaturan salah satu pin dari PORT.2 sebagai output untuk mengendalikan solid state relay. Kemudian sistem akan berada dalam keadaan standby atau idle, hal ini dilakukan untuk menghemat sumber tegangan. Sistem sesekali akan membaca input alamat dari switch dan menampilkannya pada tampilan seven segment sehingga dapat terlihat dengan jelas alamat dari tiap-tiap unit distribusi atau slave.
Gambar 4. Diagram keadaan mikrokontroler.
Gambar 4 juga menjelaskan mengenai keadaan ketika unit utama atau server mengirim sebuah perintah kepada semua unit distribusi. Ketika data diterima oleh unit distribusi melalui port serial, maka terjadi interupsi serial yang akan membuat mikrokontroler pada unit distribusi akan beralih ke keadaan rutin interupsi serial. Pada keadaan ini, perintah yang telah diterima melalui port serial UART akan diproses dengan membagi data menjadi dua bagian. Bagian perintah atau command yang mempunyai nilai on (1) atau off (0) disimpan pada bit ke-7, sedangkan data alamat untuk unit distribusi yang akan dituju dapat dibaca pada bit ke-0 sampai bit ke-6 seperti terlihat pada Gambar 5. Dengan metode tersebut, maka jumlah maksimum semua unit distribusi atau slave berjumlah 128 alamat yang berbeda. Dikarenakan kesederhanaan sistem komunikasi, pada sistem ini tidak digunakan protokol komunikasi yang mengatur pertukaran data yang lebih kompleks. Untuk aplikasi tertentu dimana diperlukannya proses pertukaran dan komunikasi data dua arah antara unit utama dan unit distribusi, maka penggunaan protokol tertentu dapat dipergunakan untuk mengefisienkan proses komunikasi data antara unit utama dan unit distribusi. Akhirnya, apabila perintah atau command dari unit utama yang diterima oleh unit distribusi tersebut mengandung data alamat yang sesuai dengan alamat unit distribusi tertentu, maka mikrokontroler pada unit distribusi akan mengaktifkan solid state relay sesuai dengan data perintah, pada sistem ini nilai logika (1) akan mengaktifkan SSR dan sebaliknya nilai logika (0) akan menonkatifkan SSR.
70
Perancangan Sistem Kendali Terdistribusi Berbasis Mikrokontroler dan Embedded Web Server (Iman Firmansyah)
Gambar 5. Protokol komunikasi data.
3. HASIL DAN PEMBAHASAN Prototipe rangkaian untuk tiap unit distribusi atau slave dapat dilihat pada Gambar 6. Seperti telah dijelaskan sebelumnya bahwa tiap unit distribusi terdiri dari mikrokontroler AT89S51 yang terhubung dengan saluran komunikasi serial RS-485 menggunakan IC SN75176.
Gambar 6. Prototipe rangkaian.
Untuk melakukan pengendalian melalui jaringan internet, user pertama-tama mengakses server tersebut dengan menunjuk kepada IP address dari server tersebut. Gambar.6 memperlihatkan tampilan antarmuka sistem kendali yang diakses menggunakan sebuah halaman web browser. Pada aplikasi ini, unit utama yang berfungsi juga sebagai web server mempunyai IP address 10.10.6.100. Dengan menunjuk ke alamat IP tersebut, maka akan dihasilkan tampilan utama berupa halaman web beserta gambar tombol switch dan indikator led. Tombol tersebut berfungsi dalam proses pengendalian kontrol on/off untuk tiap unit distribusi. Tiap tombol merujuk kepada satu unit distribusi atau slave yang dalam contoh ini merujuk kepada slave ke-1 sampai dengan slave ke-4, indikator LED akan menyala yang menandakan bahwa slave tersebut berada dalam posisi ON dan begitu juga sebaliknya [5].
Gambar 7. Tampilan antarmuka pengendalian melalui web browser.
71
TELAAH Jurnal Ilmu Pengetahuan dan Teknologi
Volume 31 (1) 2013: 67-74 ISSN: 0125-9121
Dengan menekan salah satu tombol switch pada halaman web browser, maka proses selanjutnya yaitu server akan memanggil layanan CGI yang kemudian akan mengirim data serial UART melalui saluran komunikasi RS-485. Data input dan output keadaan pada sistem terdistribusi dapat dilihat pada Tabel.1. Data serial UART yang dikirim oleh unit utama dapat dilihat pada Gambar.8, data tersebut sebagai contoh ketika tombol switch 2 berada pada posisi off. Unit utama akan mengirim data serial kepada semua unit distribusi atau slave seperti yang tercantum pada Tabel.1, data serial yang dikirim bernilai desimal 2 atau 00000010 dalam format data biner [6]. Tabel 1. Input dan output data pada sistem terdistribusi. Input On Switch 1
Off Switch 1
Switch 2 Switch 2 Switch 3 Switch 3 Switch 4 Switch 4
Data Serial Terkirim biner desimal 10000001 129 1 1 10000010 130
Slave 1 = on Slave 1 = off Slave 2 = on
10 10000011 11 10000100 100
Slave 2 = off Slave 3 = on Slave 3 = off Slave 4 = on Slave 4 = off
2 131 3 132 4
Output
Gambar 8. Format data serial UART.
4. KESIMPULAN DAN SARAN 4.1 KESIMPULAN Telah dikembangkan prototipe sistem kendali terdistribusi yang terdiri dari satu unit utama dan empat buah unit distribusi atau slave beserta antarmuka sistem kendali berbasis web menggunakan aplikasi CGI. Sistem ini terhubung dengan web server sehingga user atau client dapat melakukan sistem kendali melalui halaman web browser. Kelebihan lainnya yaitu dimungkinkannya proses pengendalian secara jarak jauh selama sistem masih terhubung dengan jaringan internet. Sistem ini hanya dapat melakukan proses kendali on/off tetapi dapat dikembangkan lebih lanjut untuk aplikasi yang tidak hanya untuk melakukan pengendalian tetapi juga pembacaan dan pengolahan data menggunakan berbagai sensor. 4.2 SARAN Untuk aplikasi dimana diperlukan pembacaan dan analisis data dari besaran analog, maka mikokontroler AVR dapat digunakan sebagai alternatif lain dikarenakan mikrokontroler tersebut sudah terintegrasi dengan 8 channel internal ADC 10-bit, PWM dan beberapa feature internal lainnya.
72
Perancangan Sistem Kendali Terdistribusi Berbasis Mikrokontroler dan Embedded Web Server (Iman Firmansyah)
UCAPAN TERIMA KASIH Penulis mengucapkan terima kasih kepada Lembaga Ilmu Pengetahuan Indonesia (LIPI) atas dukungan dan pembiayaan selama proses penelitian di Pusat Penelitian Fisika. Selain itu juga, dalam kesempatan ini penulis mengucapkan rasa terima kasih yang sebesar-besarnya atas diskusi kepada Bapak Dr. L.T.Handoko, Bapak Dr. Bambang Prihandoko dan Bapak Dr. Agus Sukarto.
DAFTAR PUSTAKA [1] K.B. Lee, R.D. Schneeman, Distributed Measurement and Control Based on the IEEE 1451 Smart Transducer Interface Standards, IEEE Trans. Instrum. Meas., 49 (3) (2000), pp. 621–627. [2] Miodrag Bolic, Vujo Drndarevic, Branco Samardzic, Distributed Measurement and Control System Based on Microcontrollers with Automatic Program Generation, Journal of Sensors and Actuators A 90 (2001) 215 – 221. [3] Jan Axelson, Embedded Ethernet and Internet Complete – Designing and Programming Small Devices for Networking, Published by Lakeview Research LLC, 2003. [4] R. Bayindir, H. Ates, Low-Cost and High Sensitively Microcontroller Based Control Unit for a Friction Welding Machine, Journal of Materials Processing Technology 189 (2007) 126–131. [5] Wei-Fu Chang, Yu-Chi Wu, Chui-Wen Chiu, Development of a Web-Based Remote Load Supervision and Control System, International Journal of Electrical Power & Energy Systems Volume 28, Issue 6, July 2006, Pages 401–407. [6] Mhd. Farukh Hashmi et al, An Effective Implementation of Embedded Rabbit Web Server with HTTP Protocol, IJCST Vol. 2, Issue 2, June 2011 [7] Rabbit Core RCM3000 series datasheet, www.digi.com
73