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
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.
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.
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.
Dataflow Control Protocol yang dikembangkan merupakan turunan dari UDP. Hubungan tersebut dapat digambarkan sebagai berikut:
Gambar 4. Hirarki DCP
Sedangkan format header DCP adalah sebagai berikut:
Request Type
Connection
Type Ack. Data
Gambar 5. Format Header DCP
• 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
DCP
UDP
I P
Datalink
Physical
Data
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
6. Hasil
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)
No. 7)
Host berusaha menutup hubungan
dengan mengirim RforTC (‘1’), Ack
(‘0’). Dibalas oleh minimum sistem
dengan RforTC (‘1’), Ack (‘1’)
No. 8)
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
Tabel 1. Hasil Dataflow
No. Receive 1 0 0 0 0 0 0 0 0 0 0 1 202 43 254 107 0 2 0 0 62 0 0 0 2 62 0 0 0 0 3 0 0 0 0 3 1 0 0 0 4 4 0 0 0 0 0 1 67 0 0 5 0 0 0 0 0 0 4 68 0 0 0 0 6 0 4 0 0 0 0 0 0 0 4 1 69 0 0 0 0 7 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 8 0 2 0 20 0 0 0 0 1 0 0 0 0 0 0 0 9 0 3 0 0 0 0 0 0 0 3 1 62 0 0 0 0 10 0 4 0 0 0 0 0 0 0 4 1 82 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
Initiate a connection
RforC, OC, Request, ~
OK, I'm free RforC, OC, Reply, ~
Status: not controlled SP: ~ PV: A Status: controlled SP: ~ PV: B Change SP value to Z
RforC, SP.val, Request, Z
RforC, SP.val, Reply, Z
OK, I'll change SP value to 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, ~
Ooo, you've bored with me, let's break RforTC, ~ , Reply, ~
Status: not controlled SP: Z PV: Q
Host with IP = IP_A Minimum System
Gambar 6. Normal Condition Dataflow
Initiate a connection
RforC, OC, Request, ~
No, I've already controlled with IP_A
Status: controlled with IP_A SP: S
PV: A
Host with IP = IP_B Minimum System
RforTC, AC, Request, IP_A Try to Change
SP value
RforC, SP.val, Request, Z
No way, you don't have an authority to change my SP RforTC, ~, Request, ~
Try to read PV
RforC, PV.val, Request, ~
OK, here is my PV RforC, PV.val, Reply, A