Proceeding, Industrial Electronic Seminar 2000 (IES 2000) Graha Institut Teknologi Sepuluh Nopember, Surabaya, October 18th-19th,2000
THE DEVELOPMENT OF DATAFLOW CONTROL PROTOCOL (DCP) ON THE ETHERNET NETWORK TO MONITOR PLANT Andre Christanto, Lauw Lim Un Tung, Hany Ferdinando Department of Electrical Engineering Petra Christian University Siwalankerto 121-131 Surabaya – 60236 Phone. (031)8439040, fax. (031)8436418
{tung,hanyf}@petra.ac.id Abstract Penggunaan jaringan ethernet untuk komunikasi data merupakan hal yang umum. Untuk itu dalam jaringan ethernet terdapat berbagai macam protocol yang disediakan untuk keperluan tersebut. Misalnya, TCP (Transfer Control Protocol), UDP (User Datagram Protocol), ICMP (Internet Control Message Protocol), dll. Proses komunikasi data yang dilakukan dalam jaringan ethernet mensyaratkan adanya protokol tersebut. Jika data yang akan dikomunikasikan merupakan data yang sederhana tetapi penting, maka pengguna sulit untuk memilih antara TCP (terlalu rumit jika diimplementasikan pada microcontroler) atau UDP (data mungkin bisa hilang). Oleh karena itu perlu dikembangkan protokol baru yang dapat diimplementasikan pada microcontroller dimana data tidak akan hilang. Karena lebih diaplikasikan untuk pengendalian plant, maka diberi nama DCP (Dataflow Control Protocol). Prinsip dasarnya adalah UDP yang dikembangkan sehingga dapat melakukan acknowledge dan pemindahan data dengan mudah. Protokol ini memberikan hasil pengujian yang memuaskan untuk proses pertukaran data antara PC dan minimum sistem via jaringan ethernet. KEYWORDS: UDP, Protocol, Ethernet
1. Pendahuluan TCP/IP telah menjadi standard pada banyak perangkat yang memanfaatkan teknologi internet sebagai media komunikasi data. Bentuk protocol TCP/IP yang fleksibel dan mudah menjadikan protocol ini populer pada banyak platform jaringan komputer. Pada keadaan normal, TCP/IP membutuhkan work load tinggi. Untuk mengirimkan sebuah data, protocol ini membutuhkan header yang besar dan proses acknowledgement yang rumit. Hal ini dimaksudkan untuk mempertahankan reliability dari protocol. Work load yang tinggi dapat ditangani dengan mudah oleh platform dengan CPU yang cepat seperti pada personal computer. Tetapi untuk menerapkan TCP/IP pada sebuah controller device dengan lebar bus yang terbatas dan frekuensi kerja yang kecil, work load TCP/IP yang besar ini perlu dipertimbangkan. Dari gambaran tersebut dikembangkan protokol dengan basis TCP/IP yang mampu menangani masalah tersebut. Protocol yang dikembangkan diberi nama Dataflow Control Protocol atau disingkat DCP. DCP dikembangkan untuk proses pengiriman data dalam jumlah kecil tetapi
membutuhkan reliability yang tinggi. Aplikasi yang cocok untuk DCP ini adalah aplikasi sistem kendali menggunakan microcontroller.
2. TCP/IP Struktur dasar TCP/IP dapat dilihat pada gambar 1.
Gambar 1. Model TCP/IP Datalink dan Physical layer berperan pada transfer data antar terminal. Datalink menentukan physical address (MAC Address) hardware ethernet, sedang Physical layer mengubah data tersebut menjadi sinyal listrik untuk ditransmisikan. IP layer bertanggung jawab pada
Proceeding, Industrial Electronic Seminar 2000 (IES 2000) Graha Institut Teknologi Sepuluh Nopember, Surabaya, October 18th-19th,2000
pengiriman data antar terminal, di dalamnya termasuk ICMP, ARP, dan RARP. Transport layer terdiri dari UDP dan TCP. Bagian inilah yang akan menjadi inti dari makalah ini.
Dataflow Control Protocol yang dikembangkan merupakan turunan dari UDP. Hubungan tersebut dapat digambarkan sebagai berikut:
Data DCP UDP
3. Peer Communication Model komunikasi TCP/IP disebut peer communication, dimana masing-masing layer seakan-akan berkomunikasi dengan layer yang sama pada terminal lain. Ilustrasi komunikasi ini sebagaimana terlihat pada gambar 2. Prinsip dasar pada pengiriman data ada penambahan header-header untuk melengkapi data yang akan ditransmisikan. Sehingga data tersebut akan memuat header sesuai dengan layer yang dilewatinya, mulai dari application layer sampai dengan physical layer. Pada saat data diterima oleh physical layer, maka header-header itu akan dibaca dan dikenali oleh setiap layer, sampai ke application layer yang kemudian membuka message tersebut dan menggunakannya untuk aplikasi yang bersangkutan.
IP Datalink Physical Gambar 4. Hirarki DCP Sedangkan format header DCP adalah sebagai berikut: Request Type
Ack.
Data
Gambar 5. Format Header DCP •
4. DCP (Dataflow Control Protocol) Perencanaan protocol memperhatikan beberapa hal sebagai berikut: • Spesifikasi dari processor sistem, terkait dengan tipe microcontroller yang dipergunakan dan kapasitas penyimpanan data • Spesifikasi media komunikasi, dalam percobaan ini dilakukan pada 10BaseT • Kebutuhan sistem komunikasi aplikasi, karena sistem harus dapat diakses dari jarak jauh melalui jaringan komputer secara real time dan multi user accessable Melihat hal-hal tersebut di atas maka protocol yang dikembangkan harus memiliki spesifikasi sebagai berikut: • Mampu bekerja dengan work load yang tidak terlalu tinggi sehingga tidak mengganggu kinerja sistem kendali. • Mampu bekerja pada lebar data bus 8 bit dan frekuensi kerja yang kecil • Memiliki dataflow yang teratur. • Memiliki fasilitas acknowledge yang lengkap sehingga data yang dibawa terjamin.
Connection Type
•
Request Type, terdiri dari dua bentuk data yaitu: Request for Connection (RforC=0) dan Request for Terminate Connection (RforTC=1). RforC digunakan pada koneksi normal yang bahwa server atau minimum system akan melakukan data yang tipenya pada field Connection Type. digunakan untuk sebuah hubungan normal permintaan dari untuk koneksi karena seperti di ini: o Client (data requestor) berusaha mengubah nilai SP sebelum membuka hubungan dengan server. o Client hendak membuka koneksi dengan server yang telah terhubung dengan client lain o Client hendak memutuskan sebuah hubungan yang belum pernah terbentuk sebelumnya atau telah terputus sebelumnya Connection Type, menunjukan tipe dari hubungan yang diinginkan oleh client. Ada lima tipe koneksi yang disediakan oleh DCP pada aplikasi ini: o Open Connection (OC=0) digunakan untuk membuka sebuah koneksi. o Already Controlled (AC=1) digunakan oleh server atau minimum system untuk memberitahukan
Proceeding, Industrial Electronic Seminar 2000 (IES 2000) Graha Institut Teknologi Sepuluh Nopember, Surabaya, October 18th-19th,2000
•
kepada client yang mengaksesnya dan ingin membuka sebuah hubungan baru, bahwa minimum system telah dikontrol oleh client lain yang nomor IP-nya diberikan pada field data. o Change SP Value (SP.CHG=2) digunakan untuk meminta perubahan nilai SP dari sistem kontrol yang nilainya diberikan pada field data. Type ini juga digunakan oleh minimum system untuk memberikan respon kepada client yang memintanya bahwa ia telah mengganti nilai SP dengan nilai yang sebelumnya telah diberikan. o Request for SP Value (SP.VAL=3) digunakan untuk meminta nilai SP pada sistem kontrol dan untuk memberikan jawaban atas permintaan nilai SP dari client. Nilai SP yang diminta diletakkan pada field data. o Request for PV Value (PV.VAL=4) digunakan untuk meminta nilai PV dari sistem kontrol dan untuk memberikan jawaban atas permintaan nilai PV dari client. Nilai PV yang diminta diletakkan pada field data. Acknowledge Acknowlegde field memiliki dua fungsi. Selain sebagai acknowledgement terhadap data yang dibawanya, field ini juga digunakan untuk membedakan DCP data yang dibawanya. Apabila field ini bernilai genap maka data yang dibawanya adalah request, tetapi apabila bernilai ganjil maka data yang dibawanya adalah reply atau jawaban dari request yang diminta.
5. Dataflow Dataflow untuk hubungan normal dapat dilihat pada gambar 6. Penjelasan mengenai dataflow ini dimulai dari pembukaan hubungan yang dilakukan oleh client terhadap server. Jika server dalam kondisi tidak dikontrol oleh client manapun (status: not controlled) maka server akan menanggapi request client dengan memberikan reply setuju. Status server berubah menjadi controlled oleh client tersebut. Nomor IP client yang mengakses
dicatat dan dijadikan acuan pada proses access authority. Client yang telah membuka koneksi memiliki wewenang untuk mengubah nilai Setting Point (SP). Client dapat melakukan pengubahan terhadap nilai SP dengan mengirimkan request untuk mengubah SP. Request dibalas oleh server dengan mengirimkan reply yang disertai nilai SP yang diminta untuk proses acknowledgement oleh client. Proses monitoring dilakukan baik oleh client yang telah mengontrol atau client yang tidak terkoneksi. Permintaan terhadap nilai PV dilakukan dengan mengirimkan request yang berisi permintaan nilai PV pada server. Client dapat memutuskan koneksi yang telah dibuat terhadap server dengan mengirimkan Request for Terminate Connection (RforTC). Server akan melihat nomor IP client yang mengirimkan request tersebut dan mencocokkannya dengan nomor IP client yang dimilikinya. Bila cocok maka server akan mengirimkan reply balik sebagai pertanda server setuju untuk memutuskan hubungan. Saat ini server dalam status not controlled dan dapat membuka koneksi dengan client manapun. Terdapat beberapa kemungkinan server menolak pembukaan koneksi atau pengubahan terhadap nilai SP. Ilustrasi penolakan akses tersebut dapat digambarkan dengan gambar 7. Pada gambar tersebut server dalam status terkontrol oleh client dengan nomor IP IP_A. Apabila terdapat client dengan nomor IP IP_B hendak membuka koneksi terhadap server maka server akan menolak dengan mengirimkan Request for Terminate Connection. Alasan penolakan ini diberikan pada field connection type yaitu bahwa server telah terkoneksi pada client lain dengan nomor IP IP_A (AC: Already Controlled with IP number IP_A). Bila client ini mencoba untuk melakukan pengubahan terhadap nilai SP maka server menolak permintaan ini dengan mengirimkan Request for Terminate Connection tanpa alasan apapun.
Sepuluh Nopember, Surabaya, October 18 -19th
Graha Institut
6. Hasil
No. 8)
No. 1)
berusaha membuka dengan mengirim dan Ack (‘0’). Target keadaan tidak dengan host lain menjawab mengirim RforC (‘0’), OC (‘0’), dan Ack (‘1’) No. 2) Host berusaha mengubah SP menjadi 62. Maka dikirimkan RforC (‘0’), SP.CHG (‘2’), Ack (‘0’) dan data (’62’). Dibalas dengan RforC (‘0’), SP.CHG (‘2’), Ack (‘1’), dan data (‘62’) No. 3) Host membaca SP dari minimum sistem, maka dikirimkan RforC (‘0’), SP.VAL (‘3’), Ack (‘0’). Dibalas dengan RforC (‘0’), SP.VAL (‘3’), Ack (‘1’), dan data (‘62’) No. 4) Host melakukan pemantauan pada plant dengan PV.VAL (‘4’). Proses ini diulang pada (5) dan (6)
telah memutus mencoba mengubah dibalas dengan dan Ack (‘1’), permintaan ditolak tidak terjadi No. 9) Host yang memutus hubungan membaca SP, dibalas mengirimkan nilai SP host No. 10) telah memutus mencoba membaca dibalas dengan nilai PV ke 7. Kesimpulan DCP salah satu dalam pengembangan data jaringan ethernet. DCP dapat dikembangkan sistem yang lebih dengan menambah field-field misalnya masalah lebih baik (security) DCP untuk diaplikasikan, masih tergantung dibuat secara
No. 7) Host berusaha menutup hubungan dengan mengirim RforTC (‘1’), Ack (‘0’). Dibalas oleh minimum sistem dengan RforTC (‘1’), Ack (‘1’) Tabel 1. Hasil No. 1 2 4 5 6 7 8 9 10
0 0 0 0 0 1 0 0 0
0 3 4 4 0 2 3 4
0 0 0 0 0 0 0 0 0
0 62 0 0 0 0 20 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Dataflow
0 0 0 0 0 1 1 0 0
0 2 3 4 4 0 0 3 4
1 1 1 1 1 0 1 1
Receive 202 43 62 0 0 67 68 0 69 0 0 0 0 0 62 0 82 0
254 0 0 0 0 0 0 0 0
107 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Referensi: 1. _______, Cirrus Logic CS8900A Crystal LANTM ISA Ethernet Controller Data Sheet, Texas: Cirrus Logic Inc., [http://www.crystal.com]. 2. _______, MCS®51 Microcontroller Family User’s Manual, USA: Intel Corportion, 1993. 3. Washburn, K. and JT. Evans. TCP/IP Running A Successful Network. Padstow, Cornwall, Great Britain: Addison-Wesley Publishing Company, 1994.
Proceeding, Industrial Electronic Seminar 2000 (IES 2000) Graha Institut Teknologi Sepuluh Nopember, Surabaya, October 18th-19th,2000
Host with IP = IP_A
Minimum System Status: not controlled SP: ~ PV: A
Initiate a connection RforC, OC, Request, ~
OK, I'm free RforC, OC, Reply, ~
Status: controlled SP: ~ PV: B
Change SP value to Z RforC, SP.val, Request, Z
OK, I'll change SP value to Z RforC, SP.val, Reply, Z
Status: controlled SP: Z PV: C
Read PV RforC, PV.val, Request, ~
OK, here is my PV RforC, PV.val, Reply, C
Terminate connection RforTC, ~ , Request, ~
RforTC, ~ , Reply, ~
Ooo, you've bored with me, let's break Status: not controlled SP: Z PV: Q
Gambar 6. Normal Condition Dataflow Host with IP = IP_B
Minimum System Status: controlled with IP_A SP: S PV: A
Initiate a connection RforC, OC, Request, ~
RforTC, AC, Request, IP_A Try to Change SP value
No, I've already controlled with IP_A
RforC, SP.val, Request, Z
RforTC, ~, Request, ~
No way, you don't have an authority to change my SP
Try to read PV RforC, PV.val, Request, ~ OK, here is my PV RforC, PV.val, Reply, A
Gambar 7. Abnormal Condition Dataflow