MEMBANGUN SISTEM FAULT TOLERANT PADA FIELDBUS UNTUK APLIKASI SISTEM TERDISTRIBUSI Hany Ferdinando Jurusan Teknik Elektro Fakultas Teknologi Industri, Universitas Kristen Petra Jl. Siwalanlerto 121-131, Surabaya 60236, Indonesia email :
[email protected]
ABSTRAK Fault tolerant merupakan bagian yang penting yang saat ini terus dikembangkan untuk meningkatkan reliabilitas system. Secara umum terdapat dua metode fault tolerant, yaitu hardware dan software fault tolerant. Sistem dengan fault tolerant merupakan system dengan kemampuan untuk tetap beroperasi walaupun kondisi saat itu tidak mendukung (terjadi fault pada sistem). Makalah ini membahas software fault tolerant yang diaplikasikan pada system terdistribusi. Fault tolerant ini diaplikasikan pada fieldbus yang dipergunakan dalam system terdistribusi. Saat ini sudah banyak fieldbus yang dipergunakan di industri, di antaranya Control Area Network (CAN), Profibus, I2C, dll. Makalah ini menggunakan CAN dan SPORT (Serial PORT) untuk membangun system terdistribusi dengan fault tolerant. Pada node system terdistribusi dipergunakan ADSP21992 dari Analog Devices, Inc. Implementasi dilakukan dengan bantuan pustaka CT (CT Library yang dikembangkan oleh University of Twente, Belanda. Sistem diuji dengan mengirimkan data dari satu node ke node yang lain. Pada saat pengiriman terjadi, dilakukan pemutusan pada fieldbus yang aktif. Percobaan menunjukkan bahwa fault tolerant dapat dibangun sebagai layer di atas fieldbus yang ada. Penelitian ini dapat dikembangkan dengan mengembangkan jumlah node yang dipergunakan.
Node terhubung ke suatu jaringan yang dibangun menggunakan CAN dan SPORT. Implementasi dilakukan dengan bantuan pustaka CT (CT library) yang dikembangkan University of Twente, Belanda. Secara khusus, pustaka dalam bahasa C yang dipergunakan. Bagian tentang system terdistribusi akan mengawali makalah ini, diikuti dengan penjelasan singkat tentang fault tolerant. CAN bus dan SPORT yang dipergunakan dalam percobaan dibahas pada bagian berikut . Pustaka CT sebagai inti dari pembangunan fault tolerant dijelaskan secara singkat karena [2] sudah menjelaskan hal ini. Percobaan dilakukan dengan program sederhana dan dibicarakan dalam bagian 7, disusul dengan diskusi hasil percobaan dan kesimpulan.
2. SISTEM TERDISTRIBUSI Sistem terdistribusi saat ini banyak dipergunakan di industri. Dalam system ini, setiap titik yang memiliki pengendali atau terhubung ke jaringan diberi nama node. Biasanya, jaringan yang dipakai dibangun dengan menggunakan fieldbus, misalnya I2C. gambar 1 menunjukkan suatu system terdistribusi yang mengendalikan suatu robot. Command and control
Kata kunci : fault tolerant, fieldbus, system terdistribusi
Embedded Computer Systems Field bus
1. PENDAHULUAN Node #1
Fault tolerant merupakan bagian yang semakin hari semakin penting. Berbagai macam teknik dikembangkan untuk mendapatkan system dengan kemampuan ini. Ada dua metode fault tolerant yang ada, yaitu hardware dan software fault tolerant. Makalah ini menggunakan software fault tolerant yang diaplikasikan pada system terdistribusi. Sistem dibangun dengan dua node, pada masingmasing node terdapat ADSP -21992 yang mensimulasikan suatu mesin yang mengirim dan menerima data tertentu.
Node #2
…
Node #n
Gambar 1. Sistem terdistribusi [1]
Sebagai pengendali, biasanya dipergunakan sebuah industrial PC atau Programmable Logic Controller (PLC).
Bahkan beberapa system menggunakan microcontroller. Dalam system terdistribusi ini, terjadi pertukaran data antar node. Selain itu, yang biasanya dilakukan dalam system ini adalah proses pengendalikan jarak jauh. Hal ini memungkinkan sensor dan aktuator diletakkan secara terpisah. Sistem terdistribusi juga memudahkan proses pembuatan MMI (Man-Machine Interface) pada SCADA (Supervisory Control and Data Acquisition). Dengan berkembangnya dunia internet, orang menggunakan jaringan TCP/IP sebagai media komunikasi data. Hal ini membuat system menjadi lebih luas lagi. Sehingga jarak bukan menjadi masalah lagi. Masalah utamanya pada reliabilitas jaringan yang dipregunakan.
3. FAULT TOLERANT Fault tolerant adalah pendekatan untuk meningkatkan reliabilitas suatu system komputer [3]. Melihat definisi tersebut, maka peran fault tolerant dalam system terdistribusi sangatlah penting. Proses terjadinya fault tolerant digambarkan dalam [4]. Sebuah fault dan rentetannya akan menimbulkan fault berikutnya. Oleh karena itu, dipakai pendekatan fault tolerant yang membuat system menjadi kurang sensitif terhadap fault yang ada. Hal ini akan membuat fault yang terjadi tidak akan mengakibatkan sistem berhenti beroperasi. Secara umum, ada dua jenis fault tolerant, yaitu fault tolerant secara hardware dan secara software. Fault tolerant secara hardware dilakukan pada integrated circuit (IC). Hal ini karena setelah IC dipasarkan, tidak ada kemungkinan lagi untuk memperbaiki kesalahan yang terjadi. Fault tolerant secara software dilakukan pada berbagai macam program yang dijual di pasaran. Berbagai macam system operasi yang saat ini banyak digunakan pasti menggunakan metode ini. Sehingga kesalahan-kesalahan yang terjadi pada program sudah dapat diantisipasi oleh system. Implementasi fault tolerant secara software dilakukan dengan menambahkan program lain untuk mengatasi masalah yang terjadi pada suatu bagian program. Berbagai macam teknik sudah dikembangkan untuk mendapat hasil yang terbaik.
4. FIELDBUS Fieldbus merupakan media yang dipergunakan dalam jaringan di industri. Jaringan ini memungkinkan terjadinya pertukaran data antar titik pada system terdistribusi. SCADA juga dapat dibangun dengan mudah jika fieldbus sudah terpasang pada system.
Percobaan dalam makalah ini menggunakan Control Area Network (CAN) bus dan Serial PORT (SPORT). CAN bus merupakan sebuah fieldbus yang dibuat oleh Bosch [5]. CAN bus dapat dipergunakan sampai dengan 1 Mbps untuk kecepatan pengiriman data. CAN menggunakan 2-3 kabel biasa sebagai media komunikasi. Kabel ini tidak perlu kabel yang terlindungi (shielded) karena CAN bus adalah differential bus [6]. Kabel-kabel ini menghubungkan dataH dan dataL pada CAN. Kabel ketiga biasanya dipergunakan sebagai ground. SPORT sebenarnya bukanlah fieldbus, sebab hanya dapat menghubungkan dua titik (point to point). Penggunaannya dalam percobaan ini hanya sebagai alternatif fieldbus karena ADSP-21992 tidak memiliki fieldbus selain CAN. Kecepatan pengiriman data pada SPORT tergantung dari clock yang dipergunakan dalam processor. Penggunakan kabel pada SPORT juga tidak cocok untuk aplikasi fieldbus. Hal ini karena jumlah kabel yang dipergunakan terlalu banyak.
5. PUSTAKA CT Pustaka CT dikembangkan dari konsep pemrograman berbasis Communicating Sequential Process (CSP). Pustaka yang dikembangkan oleh University of Twente ini dibuat dalam tiga bahasa, yaitu Java, C dan C++. Konsep penting yang diajukan dalam pustaka ini adalah pemisahan antara bagian program yang tergantung dan tidak tergantung perangkat keras. Pemisahan ini membuat program dapat berpindah dengan mudah dari satu processor ke processor yang lain. Programmer tinggal mengubah bagian yang tergantung perangkat keras saja. Bagian yang lain dibiarkan tetap sama [2]
6. IMPLEMENTASI 6.1. Sistem Secara Umum Fault tolerant yang diaplikasikan dalam percobaan ini difokuskan pada reliabilitas fieldbus yang dipergunakan. Apapun yang terjadi pada fieldbus, komunikasi data tetap harus terlaksana. Sehingga jika fieldbus yang sedang dipergunakan mengalami masalah, system akan beralih menggunakan fieldbus yang lain. Sistem diatur sedemikian rupa sehingga akan selalu menggunakan fieldbus dengan prioritas tertinggi. CAN bus ditempatkan sebagai fieldbus dengan prioritas tertinggi, sehingga SPORT ditempatkan sebagai fieldbus alternatif. Jika CAN bus yang sedang dipakai tiba-tiba putus, maka system akan menggunakan SPORT secara otomatis. Namun, jika CAN bus sudah diperbaiki dan dapat dipakai lagi, maka system akan kembali menggunakan CAN bus.
Get echo and set the flag master
Send data
Get echo and set the flag
Wait for an echo
Send data
Time out Read data
slave
Time out Read data
Send echo Set the flag
Wait for an echo
Send echo Wait for regular data Time out
Set the flag
Wait for regular data
Gambar 2. Diagram waktu master dan slave pada fault tolerant
Implementasi dilakukan pada ADSP-21992 dari Analog Devices, Inc., pada evaluation board yang diberi naman EZ -KIT LITE. Pemrograman dilakukan lewat VisualDSP++ 3.0. EZ-KIT LITE dan PC terhubung via kabel USB. Melalui kabel inilah dilakukan proses download data dan debug.
6.2. Link Driver Pustaka CT mensyaratkan penggunaan pemrograman berorientasi obyek (PBO). Akan tetapi, C, bahasa yang dipakai dipakai dalam pembuatan program tidak mendukung PBO. Untuk itu, Hilderink meniru proses yang terjadi dalam PBO [7]. Implementasi fault tolerant menggunakan CANLinkDriver dan SPORTLinkDriver yang sudah dibuat sebelumnya [1]. Implementasi diawali dengan membuat sebuah layer di atas komunikasi fieldbus yang sudah ada. Untuk itu diperlukan suatu link driver untuk fieldbus yang bersifat umum, dimana system dapat dengan mudah mengganti link driver pada saat system beroperasi. Bagian ini dinamakan RemoteLinkDriver. Prosedur pembuatan link driver dapat dilihat pada [1]. CANLinkDriver dan SPORTLinkDriver harus sedikit dimodifikasi untuk disesuaikan dengan format yang ada. Channel hanya tahu RemoteLinkDriver, sedang RemoteLinkDriver menggunakan link driver untuk CAN dan SPORT yang diberi nama CANDeviceDriver dan SPORTDeviceDriver [1] agar tidak membingungkan. CANDeviceDriver dan SPORTDeviceDriver dimasukkan dalam sebuah array yang dapat diakses
dengan mudah. Penggantian dari CAN bus ke SPORT dilakukan dengan mengakses array ini. Pada percobaan ini dipergunakan kecepatan pengiriman data yang rendah untuk CAN bus, yaitu 100 kbps. Hal ini dikarenakan EZ-KIT LITE menggunakan clock 16 MHz. Sebenarnya dengan pengali frekuensi, nilai clock maksimum EZ -KIT LITE (160 MHz) dapat diperoleh. Namun, hal ini berarti mencari kombinasi parameter untuk inisialisasi CAN bus. Padahal, tidak semua calon parameter yang didapat dari rumus dapat dipergunakan. Hal ini tergantung dari panjang, kapasitansi dan resistansi kabel.
6.3. Fault Tolerant Fault tolerant pada makalah ini, sebagaimana tercantum pada bagian 6.1 diaplikasikan untuk menjaga reliabilitas jaringan. Oleh karena itu diperlukan suatu mekanisme untuk memeriksa reliabilitas jaringan tersebut. Reliabilitas jaringan diperiksa dengan mengirimkan data secara berkala dan menunggu balasan dari titik yang lain. Untuk itu dibuat sebuah master dan sebuah slave, karena dalam penelitian ini dipergunakan dua titik. Master bertindak sebagai pengendali utama yang mengirim data secara berkala kepada slave. Setelah mengirim data, master menunggu balas an dari slave. Jika setelah lewat waktu tertentu tidak ada balasan dari slave, maka master mengetahui bahwa fieldbus sedang bermasalah. Rentang waktu untuk mengirim data tentu saja lebih besar daripada rentang waktu untuk menunggu balasan. Slave sebagai bagian yang pasif akan membalas data yang diterima segera setelah data tersebut dibaca. Selain
itu, slave juga mengetahui rentang waktu pengiriman data tersebut. Sehingga jika dalam rentang waktu yang sudah ditentukan slave tidak menerima data sama sekali, berarti ada masalah pada fieldbus tersebut. Gambar 2 menunjukkan diagram waktu proses ini [1]. Konsep master dan slave ini diaplikasikan bukan saja pada fieldbus utama (CAN bus), tetapi juga pada fieldbus alternatif (SPORT). Dengan pengaturan seperti ini, master akan dapat mengetahui apabila fieldbus dengan prioritas lebih tinggi sudah dapat dipergunakan lagi atau tidak.
6.4. Producer dan Consumer Pemrograman berbasis CSP menggunakan konsep proses. Proses -proses berkomunikasi satu sama lain lewat kanal. Dalam kanal ini dipergunakan link driver [8]. Producer dan Consumer merupakan dua proses yang dibuat untuk mensimulasikan proses komunikasi data antar titik-titik dalam system terdistribusi. Penjelasan lengkap tentang Producer dan Consumer dapat dibaca di [8] Producer dan Consumer ditempatkan di tempat yang berbeda. Kedua proses berkomunikasi lewat fieldbus yang dipergunakan oleh system. Producer dan Consumer merupakan bagian program yang tidak tergantung perangkat keras. Sebab, keduanya dapat beroperasi dengan menggunakan CAN bus maupun SPORT tanpa perlu diubah lagi.
7. HASIL PERCOBAAN Percobaan awal dilakukan pada [8]. Hasilnya ditampilkan pada tabel 1. Sedang untuk SPORT, dapat dilihat pada tabel 2. Tabel 1. Percobaan dengan CAN bus
CAN speed (kbps) 8.00 12.50 25.00 50.00 80.00 100.00
Time consumed (ms) 20.4413 13.0220 6.5775 3.3906 2.1974 1.7986
Tabel 2. Percobaan dengan SPORT
SPORT speed (kbps) 8.00 80.00 800.00
Time consumed (ms) 18.7963 2.0880 0.4728
Hasil tabel 1 dan 2 tidak banyak berbeda. Karena system menggunakan CAN bus sebagai fieldbus dengan prioritas tertinggi, maka perhitungan rentang waktu untuk
pengiriman data secara berkala oleh master juga waktu time out dilakukan berdasarkan tabel 1. Perhitungan rentang waktu ini harus dipikirkan dengan baik. Jika master terlalu sering mengirimkan data berkala ini, fieldbus akan terbebani dengan data-data ini. Sebab data-data ini memiliki prioritas yang tertinggi (pada CAN bus data dapat diatur prioritasnya – lihat [5]). Jika fieldbus dibebani dengan data-data ini, maka efisiensi fieldbus untuk mengirim data yang sebenarnya menjadi turun. Jika master mengirim data berkala tidak terlalu sering akan berakibat pada keterlambatan system dalam merespon permasalahan pada fieldbus. Hal ini dikarenakan system harus menunggu sampai waktu tunggu habis untuk mengambil keputusan. Dalam implementasi, rentang waktu data berkala ditetapkan empat kali nilai pada tabel 1. Sedangkan waktu tunggu dipilih tiga kali nilai pada tabel 1. Dengan demikian, untuk kecepatan 100 kbps, waktu reaksi jika ada masalah pada fieldbus adalah sekitar 5,4 ms. Diterima atau tidaknya nilai ini tergantung dari aplikasi yang dipergunakan dalam system. Hasil selengkapnya ditampilkan pada tabel 3. Tabel 3. Time out dan cycle time pada mekanisme fault tolerant
CAN speed (kbps) 8.00 12.50 25.00 50.00 80.00 100.00
Time out (ms) 61.3239 39.0660 19.7325 10.1718 6.5922 5.3958
Cycle time (ms) 81.7652 52.0880 26.3100 13.5624 8.7896 7.1944
Untuk aplikasi yang jarang menggunakan fieldbus, nilai 5,4 ms merupakan nilai yang sangat bagus. Akan tetapi, untuk aplikasi yang sering menggunakan fieldbus, nilai cukup buruk, karena respon system untuk mengantisipasi fault yang ada dinilai lambat. Percobaan dengan menggunakan Producer dan Consumer menunjukkan hasil yang memuaskan. Kedua proses tetap dapat berkomunikasi walaupun fieldbus utama sempat terputus. Pada pemeriksaan data, didapati bahwa tidak ada data yang hilang saat fieldbus putus, demikian juga saat fieldbus tersambung kembali. Untuk aplikasi Producer dan Consumer, waktu respon ini dianggap sangat lambat.
8. KESIMPULAN Respon system dipengaruhi oleh kecepatan transfer data yang dipergunakan. Pada CAN bus, dengan kecepatan tertinggi, waktu respon hanya sekitar 5,4 ms. Akan tetapi nilai ini menjadi sangat relatif jika dilihat dari
sisi aplikasi yang dipergunakan dalam system terdistribusi. Apabila dalam percobaan dapat dipergunakan CAN bus dengan kecepatan yang lebih tinggi, maka hasilnya mungkin akan sangat menarik. Oleh karena itu sangat direkomendasikan untuk mengulang percobaan ini dengan menggunakan kecepatan yang lebih tinggi lagi. Mekanisme yang dipergunakan untuk memeriksa reliabilitas fieldbus ternyata masih kurang sempurna. Hal ini dikarenakan kurang fleksibelnya metode ini jika jumlah titik yang terlibat dalam percobaan lebih dari 2. Untuk itu perlu dipikirkan suatu alternatif untuk hal ini. Salah satu ide yang dapat dipergunakan adalah dengan menggunakan system token, yaitu tidak semua slave dapat membalas data yang dikirim master. Tetapi setiap slave memiliki alokasi waktu untuk dapat mengirim balasan ke master. Mekanisme ini tidak hanya dapat dipakai untuk memeriksa reliabilitas fieldbus, tetapi juga memeriksa apakah titik yang dituju masih aktif atau tidak. Sistem dapat diaplikasikan pada system terdistribusi dengan plant tertentu. Sehingga fieldbus juga dipergunakan untuk melakukan pengendalian, bukan sekedar mengirimkan data. Terlibat dalam pengendalian, berarti berhubungan dengan frekuensi sampling system kendali loop tertutup.
REFERENSI [1] Ferdinando, H., Fault Tolerance in Real-time Distributed System Using the CT Library, Electrical Engineering, University of Twente, Enschede. 2004. [2] Hilderink, G.H., A.W. Bakker and J. F. Broenink, A Distributed Real-time Java Based on CSP , Proc. The Third IEEE International Symposium on Object-Oriented Real-Time Distributed Computing ISORC 2000, March 15-17, 2000, Newport Beach, California, (Ed.). 2000. [3] Jalote, P., Fault Tolerance in Distributed System, Prentice-Hall, Englewood Cliffs, NJ. 1994. [4] Avizienis, A., J.-C. Laprie and B. Randell Fundamental Concepts of Dependability [5] Robert Bosch GmBH, CAN Specification version 2.0, Robert Bosch GmBH. 1991. [6] Kvaser Advanced CAN solutions for hardware, software, consulting and education, [http://www.kvaser.com] [7] Hilderink, G. H., Communicating Threads for C Portability Guide. A White Paper. 2000. [8] Ferdinando, H., The Implementation of Link Driver of the CT Library on the ADSP -21992, Proc of Seminar Nasional Informatika 2004 (SNI2004), Universitas Ahmad Dahlan, Jogjakarta, 2004