Membangun Sistem Fault Tolerant Pada Fie
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
Time out
Read data
slave
Read data
Send
echo
Set the flag
Wait for
an echo
Send
echo
Wait for
regular data
Set the flag
Wait for
regular data
Time out
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
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
Time out
Read data
slave
Read data
Send
echo
Set the flag
Wait for
an echo
Send
echo
Wait for
regular data
Set the flag
Wait for
regular data
Time out
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