BAB 2 LANDASAN TEORI 2.1. Teori Umum Bab ini akan menjelaskan beberapa teori secara umum yang secara mendasar digunakan dalam kaitannya dengan Analisis dan Perancangan Aplikasi Manajemen Controller-Area Network Berbasis Modbus Pada Multi Genset Controller Melalui Jaringan Lokal dan Internet. 2.1.1. Model OSI Menurut sumber dari internet http://id.wikipedia.org, model referensi jaringan terbuka OSI adalah sebuah model arsitektural jaringan yang dikembangkan oleh badan International Organization for Standardization (ISO) di Eropa pada tahun 1977. OSI merupakan singkatan dari Open System Interconnection. Model ini disebut juga dengan "Model tujuh lapis OSI" (OSI seven layer model). Sebelum munculnya model referensi OSI, sistem jaringan komputer sangat tergantung kepada vendor. OSI berupaya membentuk standar umum jaringan komputer untuk menunjang interoperatibilitas antar pemasok yang berbeda. Dalam suatu jaringan yang besar biasanya terdapat banyak protokol jaringan yang berbeda. Tidak adanya suatu protokol yang sama, membuat banyak perangkat tidak bisa saling berkomunikasi. 6 7 Disebutkan dalam sumber di http://en.wikipedia.org/wiki/OSI_model, model OSI ini terbagi secara besar menjadi 2 grup. Grup yang pertama, yaitu 4 layer teratas, biasa disebut sebagai host layer. Kemudian grup yang kedua, yaitu 3 layer berikutnya disebut dengan media layer. Host layer mendefinisikan komunikasi antara user dengan aplikasi. Sedangkan media layer mendefinisikan bagaimana data yang ada bisa dipindahkan melalui antar media. Gambar 2.1. OSI Model 8 2.1.1.1. Layer Application Layer ini berfungsi sebagai antarmuka dengan aplikasi dengan fungsionalitas jaringan, mengatur bagaimana aplikasi dapat mengakses jaringan, dan kemudian membuat pesan-pesan kesalahan. Layer ini menyediakan akses ke lingkungan OSI untuk pemakai dan hanya menyediakan pelayanan distribusi informasi. Protokol yang berada dalam layer ini adalah HTTP, FTP, SMTP, dan NFS. Sementara layanan-layanan yang disediakan diantaranya adalah World Wide Web (WWW), email gateway, electronic data interchange, layanan transaksi finansial, dan lain sebagainya. 2.1.1.2. Layer Presentation Menyediakan kebutuhan pada proses aplikasi serta memberi layanan keamanan data serta proses penyimpanan file. Pada layer ini terjadi pembuatan struktur data yang didapat dari layer application ke sebuah format yang dapat ditransmisikan melalui jaringan. Layer ini juga bertanggungjawab untuk melakukan enkripsi data, kompresi data, konversi set karakter (ASCII, Unicode, EBCDIC, atau set karakter lainnya), interpretasi perintah-perintah grafis, dan beberapa lainnya. 9 2.1.1.3. Layer Session Layer ini menyediakan struktur kontrol bagi hubungan antara aplikasi yaitu membangun, mengatur, dan mengakhiri koneksi antara hubungan aplikasi. Beberapa fungsi utama dari layer session adalah mengatur pertukaran data, menjaga hubungan dua user aplikasi, mengendalikan dialog antar user, memberikan identifikasi/pemberian nama (address) menurut aturan yang berlaku, dan berfungsi sebagai layer manajemen. Layer session dapat menjamin bahwa pengorganisasian transfer data secara sinkronisasi. 2.1.1.4. Layer Transport Berfungsi untuk memecah data ke dalam paket-paket data serta memberikan nomor urut ke paket-paket tersebut sehingga dapat disusun kembali pada sisi tujuan setelah diterima. Selain itu, pada level ini juga membuat sebuah tanda bahwa paket diterima dengan sukses (acknowledgement), dan mentransmisikan ulang terhadap paket-paket yang hilang di tengah jalan. Setiap aplikasi dapat membuat program untuk langsung mengakses layer transport untuk menghasilkan komunikasi end to end antar user. Protokol TCP dan UDP terdapat pada layer ini. 10 2.1.1.5. Layer Network Layer network menyediakan fasilitas pada transport, agar data dapat sampai ke tujuan. Untuk itu proses penyambungan dilakukan dan juga proses pengendalian jaringan dilakukan. Lebih jelasnya layer ini mendefinisikan alamat-alamat IP, membuat header untuk paket-paket, dan kemudian melakukan routing melalui internetworking dengan menggunakan router dan switch layer-3. 2.1.1.6. Layer Data Link Layer ini berfungsi untuk menentukan bagaimana bit-bit data dikelompokkan menjadi format yang disebut sebagai frame. Selain itu, pada level ini terjadi koreksi kesalahan, flow control, pengalamatan perangkat keras (seperti halnya Media Access Control Address (MAC Address)), dan menentukan bagaimana perangkat-perangkat jaringan seperti hub, bridge, repeater, dan switch layer 2 beroperasi. Spesifikasi IEEE 802, membagi level ini menjadi dua level anak, yaitu lapisan Logical Link Control (LLC) dan lapisan Media Access Control (MAC). 2.1.1.7. Layer Physical Layer physical pada intinya berfungsi untuk melakukan komunikasi langsung dengan berbagai jenis media komunikasi. Jika dijelaskan lebih lanjut, maka layer ini memiliki fungsi 11 untuk mendefinisikan media transmisi jaringan, metode pensinyalan, sinkronisasi bit, arsitektur jaringan (seperti halnya Ethernet atau Token Ring), topologi jaringan dan pengkabelan. Selain itu, juga mendefinisikan bagaimana Network Interface Card (NIC) dapat berinteraksi dengan media kabel atau radio. Layer ini juga mengidentifikasi interface antara DCE (Data Communication Equipment) and DTE (Data Terminal Equipment). 2.1.2. TCP and UDP Dua protokol ini, TCP (Transmission Control Protocol) dan UDP (User Data Protocol), terletak pada model OSI di layer ke-4 yaitu layer transport. Perbedaan yang paling mendasar antara TCP dan UDP adalah pada reliability. TCP lebih bersifat connection oriented, sedangkan UDP lebih bersifat connectionless. UDP digunakan untuk pengiriman data secara cepat tanpa memperhatikan ketepatan pengiriman data, ini mengurangi keakuratan data yang dikirimkan. Sedangkan TCP memiliki kelebihan pada error recovery dan flow control, hanya saja terbatas karena TCP bersifat connection oriented. 12 Gambar 2.2. Protokol TCP dan UDP 2.1.3. Standar Komunikasi Serial Menurut sumber http://en.wikipedia.org, komunikasi serial adalah proses pengiriman dari data satu bit pada satu waktu secara berurutan/berentetan. Komunikasi ini dilakukan melalui sebuah jalur komunikasi atau computer bus. Komunikasi serial lebih banyak digunakan dalam komunikasi jarak jauh dan hampir semua jaringan komputer, hal ini dikarenakan harga dari kabel serta kesulitan dalam sinkronisasi yang membuat komunikasi paralel menjadi jarang digunakan. Ada 2 macam metode komunikasi data serial yaitu synchronous dan asynchronous. Kedua metode ini merupakan dua buah metode transmisi sinkronisasi yang berbeda. Metode transmisi synchronous merupakan sinkronisasi menggunakan external clock, sedangkan metode 13 transmisi asynchronous, sinkronisasinya oleh sinyal khusus melalui media transmisi. Dijelaskan oleh William Stallings (2004, p172), bahwa pada transmisi asynchronous, setiap karakter dari data diperlakukan secara independen. Setiap karakter dimulai dengan sebuah start bit yang memberikan tanda kepada receiver bahwa sebuah karakter sedang tiba. Receiver mencoba beberapa bit dalam karakter dan kemudian mencari awal dari karakter selanjutnya. Teknik ini tidak akan bekerja dengan baik pada data yang mempunyai blok panjang karena clock dari receiver mungkin akhirnya keluar dari sinkronisasi dengan clock pada transmitter. Sedangkan untuk transmisi synchronous, justru digunakan untuk blok yang besar. Setiap blok dari data di format sebagai sebuah frame yang termasuk di dalamnya sebuah starting dan ending flag. Blok yang ada memungkinkan mempunyai bit yang panjang. Untuk mencegah penyimpangan waktu antara transmitter dan receiver, clock mereka harus disinkronisasikan. 2.1.3.1. Standar RS-232 Standar sinyal komunikasi serial yang banyak digunakan adalah Standar RS-232 yang dikembangkan oleh Electronic Industries Association (EIA/TIA) yang pertama kali dipublikasikan pada tahun 1962. Standar ini hanya menyangkut komunikasi antara (Data Terminal Equipment – DTE) dengan 14 alat-alat pelengkap komputer (Data Circuit Terminating Equipment – DCE). RS-232 adalah sebuah komunikasi data serial yang menggunakan mode operasi single end. Single end adalah standar komunikasi data dari satu transmitter ke satu receiver. Menurut macamnya, RS-232 termasuk dalam jenis komunikasi data serial asinkron. Karakteristik sinyal RS-232 memiliki ketentuan level tegangan sebagai berikut : 1. Logika ‘1’ disebut ‘mark’ terletak antara -3 volt sampai 25 volt 2. Logika ‘0’ disebut ‘space’ terletak antara +3 volt sampai +25 volt 3. Daerah tegangan antara -3 volt sampai +3 volt adalah invalid level, yaitu daerah tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian juga level tegangan di bawah -25 volt dan diatas +25 volt juga harus dihindari karena bisa merusak line driver pada saluran RS-232 RS-232 memiliki kecepatan transfer maksimum sebesar 20Kbps, dan jarak transmisi maksimum sejauh 15 meter. 15 Gambar 2.3. Kabel RS-232 2.1.3.2. Standar RS-485 Standar RS-485 ditetapkan oleh Electronic Industries Association dan Telecomunications Industry Association (EIA/TIA) pada tahun 1983. Nama lengkapnya adalah EIA/TIA485 Standard for Electrical Characteristics of Generators and Receivers for use in a Balanced Digital Multipoint System. RS485 ini merupakan perkembangan dari RS-422, dimana RS-422 merupakan perkembangan dari RS-232. Standar RS-485 hanya membicarakan karakteristik sinyal dalam transmisi data secara Balanced Digital Multipoint System, jadi jauh lebih sederhana dibanding dengan standar RS-232 yang mencakup ketentuan tentang karakteristik sinyal, macam-macam sinyal dan konektor yang dipakai, serta konfigurasi sinyal pada kaki-kaki di 16 konektor dan juga penentuan tata cara pertukaran informasi antara komputer dan alat-alat pelengkapnya. RS-485 merupakan standar untuk mengirimkan data serial. RS-485 ini menggunakan sepasang kabel untuk mentransmisikan sebuah sinyal yang berbeda dengan jarak lebih dari 1200 meter tanpa repeater. Sinyal yang berbeda itulah yang membuatnya sangat kuat. RS-485 adalah salah satu metode komunikasi yang paling populer digunakan dalam aplikasi-aplikasi di dunia industri karena kekebalannya terhadap noise dan long-distance capability-nya yang cukup sempurna. RS-485 dapat dikonfigurasi sebagai half duplex atau full duplex. Half duplex biasanya menggunakan sepasang kabel, sedangkan full duplex menggunakan dua pasang kabel. Gambar 2.4. Kabel RS-485 17 2.1.3.3. Spesifikasi RS-485 dan RS-232 Tabel spesifikasi dari RS-485 dan RS-232 ini berdasarkan sumber http://www.lammertbies.nl: Tabel 2.1. Spesifikasi RS-232 dan RS-485 Specifications RS-485 RS-232 Differential yes no Max number of drivers 32 1 Max number of receivers 32 1 Modes of operation half duplex half duplex full duplex Network topology multipoint point-to-point Max distance (acc. standard) 1200 m 15 m Max speed at 12 m 35 Mbs 20 kbs Max speed at 1200 m 100 kbs (1 kbs) Max slew rate n/a 30 V/µs Receiver input resistance ≥12 kΩ 3..7 kΩ Driver load impedance 54 kΩ 3..7 kΩ Receiver input sensitivity ± 200 mV ±3V Receiver input range -7..12 V ± 15 V Max driver output voltage -7..12 V ± 25 V Max driver output voltage (with load) ± 1.5 V ± 5V 18 Dari spesifikasi yang bisa dilihat pada tabel di atas, RS485 memiliki lebih banyak keunggulan jika dibandingkan dengan RS-232, diantaranya bisa disebutkan seperti di bawah ini: - RS-485 dapat menghubungkan antar DTE secara langsung, tanpa menggunakan modem - RS-485 dapat menghubungkan beberapa DTE sampai 256 DTE dalam sebuah jaringan - RS-485 dapat berkomunikasi dalam jarak yang lebih jauh (4000 kaki / 1200 meter) - RS-485 memiliki kemampuan bit-rate yang cepat yang dapat mencapai 35 Mbps. Bit-rate ini tergantung pada panjang kabelnya. Semakin panjang kabel, maka semakin lambat bit-rate yang dapat digunakan. - RS-485 memiliki ketahanan noise yang lebih baik bila dibandingkan dengan RS-232. 2.1.4. Diagram Sitemap Menurut sumber dari http://en.wikipedia.org, sitemap adalah representasi dari arsitektur suatu website. Sitemap dapat digunakan sebagai bentuk dokumen dalam perencanaan desain website sebab sitemap ini berupa daftar halaman-halaman yang ada dalam website. Biasanya sitemap dibuat dalam bentuk daftar. Sitemap ini sangat 19 membantu pengunjung sebuah website untuk menemukan halaman tertentu dalam web. Diagram sitemap merupakan representasi hirarkikal dari halamanhalaman web yang saling berhubungan. Diagram dapat dibuat dalam bentuk hirarkikal vertikal atau horizontal. 2.1.5. State Transition Diagram Menurut Whitten, Bentley, dan Dittman (2004, p636), State Transition Diagram (STD) adalah alat yang digunakan untuk menggambarkan urutan dan variasi screen yang dapat muncul ketika pengguna sistem mengunjungi terminal. Dapat dianggap juga sebagai peta jalan (road map). Urutan-urutan kondisi yang ada dijelaskan dengan arah tanda panah dari setiap bujur sangkar. Anak panah menggambarkan aliran kontrol dan menggerakkan kejadian yang menyebabkan screen menjadi aktif atau menerima fokus. Bujur sangkar menggambarkan setiap kondisi dari rancangan layar. Sebuah anak panah yang terpisah, masingmasing memiliki nama, digambar untuk setiap arah karena tindakan yang berbeda akan menggerakkan aliran kontrol dari dan aliran kontrol ke screen yang ada. Menurut sumber http://www.nikhef.nl/id/, membuat STD adalah: - identifikasi setiap state dari sistem - pilih state dengan normal behaviour - spesifikasikan kondisi yang menandai sebuah transisi langkah-langkah 20 - spesifikasikan action untuk menghasilkan observable behaviour pada state tujuan untuk setiap transisi - jika sistem kompleks, maka bagi diagram yang ada dalam STD yang berbeda 2.1.6. Sistem Real Time Menurut Nimal Nissanke (1997, pp1-2), perhitungan dalam sistem real time berbeda-beda, dari perhitungan numerik yang kompleks, seperti pada radar dan partikel fisik, hingga perhitungan yang relatif sederhana terhadap jumlah data yang besar, misalnya pada pemrosesan gambar. Skala waktunya juga berbeda-beda pada aplikasi-aplikasi. Bagaimanapun karakteristik sistem real time bukanlah pada skala waktu operasionalnya, melainkan ditekankan pada kebutuhan sistemnya. Oleh karena itu perhitungan yang real time tidak selalu berhubungan dengan kecepatan perhitungan, tetapi lebih pada jaminan respon sistem yang tidak terlambat terhadap respon eksternal. Sebuah real time system adalah sistem yang kebenarannya secara logis didasarkan pada kebenaran hasil-hasil keluaran sistem dan ketepatan waktu hasil-hasil tersebut dikeluarkan. 2.2. Teori Khusus Bab ini akan menjelaskan beberapa teori secara khusus yang digunakan dalam kaitannya dengan Analisis dan Perancangan Aplikasi Manajemen Controller-Area Network Berbasis Modbus Pada Multi Genset Controller Melalui Jaringan Lokal dan Internet. 21 2.2.1. Protokol Modbus Menurut Forouzan, Behrouz A. (2007,p19), protokol adalah sekumpulan aturan yang mengatur komunikasi data. Sebuah protokol menjelaskan apa yang dikomunikasikan, bagaimana komunikasi terjadi, dan kapan terjadinya komunikasi. Elemen kunci dari sebuah protokol adalah syntax, semantic, dan timing. Menurut sumber dari internet http://www.intellicom.se, Modbus adalah sebuah protokol pengiriman pesan pada layer application yang menyediakan komunikasi client-server antar device yang terhubung dalam bus dan network dengan tipe yang berbeda. Sedangkan dari sumber lain http://en.wikipedia.org, Modbus merupakan protokol komunikasi serial yang diperkenalkan oleh Modicon pada tahun 1979 untuk digunakan bersamaan dengan PLC (Programming Logic Controllers) nya. Modbus terus mengembangkan kemungkinan untuk jutaan device di dunia ini untuk berkomunikasi dan melanjutkannya untuk terus berkembang dalam mayoritas dunia perindustrian. Modbus melakukan komunikasi melalui sebuah protokol reply dan request serta memberikan service berupa function code. Function code ini merupakan elemenelemen request/reply PDU (Protocol Data Units) dari Modbus. Hal yang menarik dari standar Modbus adalah fleksibilitas dan juga kemudahan implementasinya. Tidak hanya intelligent device seperti microcontroller, PLC dll yang memungkinkan untuk berkomunikasi dengan Modbus, beberapa intelligent sensor juga dilengkapi dengan Modbus interface untuk mengirimkan data mereka kepada host system. 22 Protokol Modbus menterjemahkan sebuah Protocol Data Unit (PDU) yang secara independen pada layer komunikasi. Namun, dalam suatu jaringan tertentu frame dari Modbus bertambah 2 field, tambahan 2 field dari PDU sehingga disebut sebagai Application Data Unit (ADU). Application Data Unit (ADU) ini dihasilkan oleh client yang mengirim sebuah Modbus transaction ke server, kemudian server akan menerima Modbus transaction dan membaca data tersebut sehingga server mengetahui perintah apa yang harus dijalankan. Gambar 2.5. Modbus Frame 2.2.1.1. Kategori Modbus Dari sumber http://www.fieldserver.com, dijelaskan ada 3 kategori dalam Modbus : - Modbus Serial 1) Modbus ASCII Setiap byte (8-bit) dalam sebuah pesan dikirimkan sebagai 2 karakter ASCII, tujuan utamanya adalah memberikan interval waktu di atas 1 detik antara menimbulkan error. tiap karakter tanpa 23 2) Modbus RTU Setiap byte (8-bit) dalam sebuah pesan berisi 2 karakter 4-bit heksadesimal, tujuan utamanya adalah kerapatan karakter yang lebih besar memungkinkan data throughput yang lebih baik daripada ASCII. Ini berlaku dalam baud rate yang sama. 3) Modbus Serial lainnya Beberapa pabrik telah membuat modifikasi pada protokol Modbus untuk menemukan kebutuhan yang lebih spesifik dari aplikasi mereka, ini termasuk Modbus Daniels, Modbus Onmiflow, Modbus Tek Air, dan yang lainnya. - Modbus Plus Jaringan industri peer-to-peer yang mana tiap kontrollernya bisa memulai transaksi dengan kontroller yang lainnya. - Modbus TCP Modbus yang melalui jaringan Ethernet TCP/IP 24 Gambar 2.6. Komunikasi Modbus 2.2.1.2. Struktur Message Modbus Komunikasi pada Modbus terjadi dengan menggunakan variabel message. Pada interface yang sederhana seperti RS-485 atau RS-232, message Modbus dikirimkan dengan format yang jelas melalui jaringan. Kemudian, jika menggunakan sistem jaringan yang lebih serbaguna seperti TCP/IP melalui ethernet, Message Modbus ditanam pada paket dengan format yang diperlukan untuk physical interface. Tiap message Modbus mempunyai struktur yang sama. Susunan dari elemen ini sama pada semua pesan. Komunikasi selalu dimulai oleh master dalam jaringan Modbus. Master dari Modbus mengirimkan pesan dan sebuah slave melakukan action dan meresponnya. Pengalamatan pada header pesan digunakan untuk mendefinisikan device yang seharusnya merespon 25 message tersebut. Semua node yang lainnya akan mengabaikan pesan jika field pada address tidak sesuai dengan address mereka. Struktur pesan pada protokol Modbus terbagi atas 4 blok. Blok pertama merupakan header yang berisikan alamat/slave address yang dituju. Blok kedua berisi function code yang menyatakan tipe pesan, apakah merupakan perintah membaca atau menulis. Blok ketiga merupakan isi pesan. Blok ini yang akan diberikan pesan exceptional bila terjadi error. Kemudian blok terakhir diisi dengan CRC untuk melakukan fungsi pengecekan dan koreksi bila ada kerusakan data selama pengiriman. Tabel 2.2. Struktur Message Modbus 2.2.1.3. Mode Transmisi Serial pada Modbus Koneksi serial Modbus dapat menggunakan dua mode transmisi dasar, ASCII atau RTU (Remote Terminal Unit). Mode transmisi dalam komunikasi serial menjelaskan cara Modbus pesan dikodekan. Dengan Modbus/ASCII, pesan dapat 26 dibaca dalam format ASCII. Sedangkan pada format Modbus/RTU, digunakan pengkodean biner yang membuat pesan tidak dapat dibaca ketika monitoring, tetapi mengurangi ukuran dari setiap pesan yang mengijinkan untuk pertukaran data yang lebih pada jangka waktu yang sama. Node-node dalam satu segmen jaringan Modbus harus menggunakan mode transmisi serial yang sama. Dalam penggunaannya, Modbus/ASCIII akan mentranslasikan semua pesan ke dalam nilai heksadesimal yang diwakilkan dalam karakter-karakter ASCII. Hanya karakter 0-9 dan A-F yang digunakan dalam pentranslasian. Untuk setiap byte informasi, dua communication-bytes dibutuhkan, karena setiap communication-bytes hanya dapat memuat 4 bit dalam format heksadesimal. Melalui Modbus/RTU, data di ubah ke dalam format binary, karena setiap byte informasi ditranslasikan ke dalam satu communication-byte. 2.2.1.4. Pengalamatan pada Modbus Informasi awal/pertama dalam setiap message Modbus adalah alamat dari penerima. Parameternya berisi satu byte informasi. Alamat yang valid berada dalam range 0 sampai 247. Nilai 1 sampai 247 ditandai untuk device Modbus secara individu dan 0 ditandai sebagai alamat broadcast. Pesan yang dikirimkan ke alamat selanjutnya akan diterima oleh semua 27 slave. Sebuah slave selalu merespon Message Modbus. Ketika merespon, slave menggunakan alamat yang sama seperti master pada saat request. Dengan cara ini, master dapat melihat bahwa device tersebut merespon request yang ada. 2.2.1.5. Function code pada Modbus Parameter kedua pada setiap Message Modbus adalah function code. Parameter ini menjelaskan tipe pesan dan tipe action yang diperlukan oleh slave. Parameter ini berisi satu byte informasi. Function code yang valid berada pada range 1 sampai 255 dalam bentuk desimal. Pada saat paket data dikirim dari client ke server, function code akan memberitahu isi dari kode desimal tersebut pada server perintah apa yang akan dijalankan. Bila function code bernilai “0”, maka nilai tersebut tidak valid. Jika function code menterjemahkan lebih dari satu perintah, maka sub-function code yang akan membantu function code dalam menterjemahkan perintah-perintah tersebut. Field data berisi informasi tambahan untuk server dalam mengartikan function code. Data ini dapat berisi alamat register, berapa banyak device yang harus di kontrol, dan besarnya data tersebut. Field data dapat tidak ada isinya atau kosong, dalam kasus ini berarti server tidak memperlukan informasi tambahan dalam mengartikan function code tersebut. 28 Apabila tidak ada error pada saat mengartikan function code, maka server akan mengirim kembali paket data yang berisikan function code dan respon data ke client sebagai indikator bahwa paket tersebut sudah diartikan oleh server. Apabila terjadi error pada saat mengartikan function code, maka server akan mengirim paket data yang berisikan field exception function code dan field exception code ke client untuk memberitahukan bahwa error terjadi dan server akan menentukan sendiri langkah apa yang akan diambil berikutnya dalam exception code. Gambar 2.7. Modbus Transaction Error Free Gambar 2.8. Modbus Transaction Exception Response 29 Function code yang umum digunakan adalah function code 03 yaitu baca (read) dan function code 16 (write) Tabel 2.3. Function code yang digunakan pada Modbus Beberapa penjelasan dari function code yang umum digunakan: Function 03: Read holding registers Nilai internal dalam sebuah device Modbus disimpan di dalam holding register. Register ini berkapasitas dua byte dan dapat digunakan untuk berbagai tujuan. Beberapa register berisi parameter konfigurasi dimana yang lainnya digunakan untuk mengembalikan nilai yang dapat diukur (seperti temperatur dan sejenisnya) kepada host. Register ini dialamatkan di dalam struktur message Modbus dengan alamat mulai dari 0. Modbus function 03 digunakan untuk meminta satu atau lebih nilai holding register dari sebuah device. Hanya satu slave device 30 dapat dialamatkan dalam sebuah single query. Function 03 ini tidak mendukung untuk broadcast query. Tabel 2.4. Struktur Query Function 03 Setelah memproses query, slave Modbus mengembalikan nilai 16 bit dari holding register yang diminta. Setiap register dikodekan dengan dua byte dalam pesan penjawab. Byte data pertama berisi high byte, dan yang kedua berisi low byte dari register. Penjawab Modbus pesan mulai dengan alamat slave device dan function code 03. Byte berikutnya adalah jumlah dari data byte yang mengikuti di belakangnya. Nilai ini dua kali jumlah register yang kembali. Pengecekan error ditambahkan pada host untuk mengecek jika error komunikasi terjadi. Function 16: Write multiple registers Function code ini digunakan untuk menuliskan sebuah blok register yang kontinu (antara 1 sampai 120 register) pada device. 31 Nilai permintaan yang ditulis, dikhususkan pada permintaan data. Data dipaketkan menjadi 2 byte tiap register. 2.2.1.6. Query Message, Normal Response Message dan Exception Response Message dari Device Genset 2.2.1.6.1. Function Code 03 Tabel 2.5. Format Query Message Function Code 03 Query Message Byte ke- Keterangan 0 Slave address 1 Function code (03) 2 First register address (high byte) 3 First register address (low byte) 4 Number of register to read (high byte) 5 Number of register to read (low byte) 6 CRC 7 CRC Tabel 2.6. Format Normal Response Message Function Code 03 Normal Response Message Byte ke- Keterangan 0 Slave address 1 Function code (03) 2 Byte count (n) 3 First register address (high byte) 4 First register address (low byte) 5 . 32 . . 1+n Last register (high byte) 2+n Last register (low byte) 3+n CRC 4+n CRC Tabel 2.7. Format Exception Response Message Function Code 03 Exception Response Message Byte ke- Keterangan 0 Slave address 1 Function code + 128 (Top bit is set) 2 Exception code 1 – Illegal function code 2 – Illegal data address 3 – Slave device busy 3 Error check CRC 4 Error check CRC Perkecualian untuk respon pada saat data yang akan dibaca tidak ada di modul yang digunakan, maka semua bit pada data tipe biner yang terbaca akan diberi nilai 1 (sentinel values). Tabel 2.8. Format Sentinel Values Size of Register Value in Hexadecimal 16 bit unsigned, any scale 0xFFFF 16 bit signed, any scale 0x7FFF 32 bit unsigned, any scale 0xFFFFFFFF 32 bit signed, any scale 0x7FFFFFFF 33 Berikut merupakan beberapa contoh perintah dan respon dari device (genset) serta cara baca baik perintah dari program maupun respon device (dalam heksadesimal): 1. Untuk membaca control mode dari genset Query message: 0a 03 03 04 00 01 C4 F4 • 0a Æ slave address • 03 Æ function code (03) • 03 Æ first register address (high byte) • 04 Æ first register address (low byte) • 00 Æ number of register (high byte) • 01 Æ number of register (low byte) • C4 F4 Æ error check (CRC) Normal Response Message: 0a 03 02 00 02 9c 44 • 0a Æ slave address • 03 Æ function code (03) • 02 Æ byte count • 00 Æ first register address (high byte) • 02 Æ first register address (low byte) • 9c 44 Æ error check (CRC) 34 2. Untuk menanyakan string model dari genset Query message: 0a 03 14 20 00 20 41 53 • 0a Æ slave address • 03 Æ function code (03) • 14 Æ first register address (high byte) • 20 Æ first register address (low byte) • 00 Æ number of register (high byte) • 20 Æ number of register (low byte) • 41 53 Æ error check (CRC) Normal Response Message: 0a 03 40 00 4d 00 6f 00 ec f9 7f ff 77 ff 21 ff 9c 34 4d 05 4d 05 fc 01 1e 2e 65 f5 07 fd 0c a3 35 15 35 15 f1 05 9c b9 95 f5 95 f5 1d f5 1c 1a aa 2a aa 2a 8a 15 1c cb ab bb eb d5 1c 69 2b ff • 0a Æ slave address • 03 Æ function code (03) • 40 Æ byte count • 00 Æ first register address (high byte) • 4d Æ first register address (low byte) • 00 Æ second register address (high byte) • 6f Æ second register address (low byte) 35 • ... • ... • 1c Æ last register address (high byte) • 69 Æ last register address (low byte) • 9c 44 Æ error check (CRC) 3. Untuk response yang tidak berhasil Query message: 0a 03 14 20 00 20 41 53 Exception Response Message: 10 83 06 dc 76 • 10 Æ slave address • 83 Æ function code + 128 (dalam heksadesimal, 131 adalah 83) • 06 Æ exception code (slave device busy) • dc 76 Æ error check CRC 2.2.1.6.2. Function Code 16 Tabel 2.9. Format Query Message Function Code 16 Query Message Byte ke- Keterangan 0 Slave address 1 Function code (16) 2 First register address (high byte) 3 First register address (low byte) 36 4 Number of register to read (high byte) 5 Number of register to read (low byte) 6 Byte count (n) 7 First register (high byte) 8 First register (low byte) . . 5+n Last register (high byte) 6+n Last register (low byte) 7+n CRC 8+n CRC Tabel 2.10. Format Normal Response Message Function Code 16 Normal Response Message Byte ke- Keterangan 0 Slave address 1 Function code (16) 2 First register address (high byte) 3 First register address (low byte) 4 Number of registers written (high byte) 5 Number of registers written (low byte) 6 CRC 7 CRC Tabel 2.11. Format Exception Response Message Function Code 16 Exception Response Message Byte ke- Keterangan 0 Slave address 1 Function code + 128 (Top bit is set) 2 Exception code 37 1 – Illegal function code 2 – Illegal data address 3 – Slave device busy 3 Error check CRC 4 Error check CRC 2.2.2. Controller Area Network (CAN) CAN merupakan serial bus network yang terdiri atas microcontroller yang saling terkoneksi. Standar CAN bekerja dengan metode broadcast pada serial bus dan ini merupakan standar untuk interkoneksi Electronic Control Unit (ECU) Perangkat yang biasanya terkoneksi dengan CAN biasanya adalah sensor, actuator dan control devices. Sesungguhnya perangkat tidak terhubung langsung dengan bus melainkan melalui host processor yang ada pada setiap perangkat. 2.2.3. Manajemen Jaringan Manajemen jaringan memiliki arti yang berbeda-beda pada setiap orang. Secara umum manajemen jaringan berhubungan dengan control dan monitoring suatu instansi dalam jaringan menggunakan berbagai macam perangkat atau aplikasi. Lebih lanjut lagi manajemen jaringan juga menginjak ranah administrasi dan maintenance agar segala yang ada dalam jaringan tersebut berada di bawah kontrol sehingga dapat mencegah berbagai masalah yang mungkin terjadi. 38 2.2.4. Daemon Daemon adalah program komputer yang berjalan di background, bukan melalui perintah langsung dari user. Sistem biasanya menjalankan daemon pada saat booting. Daemon umumnya berfungsi sebagai respon atas aktivitas hardware, program lain, request, melakukan aktivitas yang dijadwalkan dan juga dapat melakukan konfigurasi tertentu dan sebagainya. 2.2.5. Microcontroller Microcontroller adalah sebuah komputer kecil pada single integrated circuit yang merupakan CPU sederhana dengan tambahan komponen pendukung seperti crystal osciliator, timers, watch dog, serial dan analog input/output. Memory program tersimpan dalam NOR flash atau OTP Rom sebagai read/write memory yang biasanya kecil. Microcontroller digunakan pada produk/devices yang memerlukan otomatisasi seperti remote control, peralatan kantor, power tools dan lain-lain. Microcontroller merupakan solusi yang lebih ekonomis untuk pengontrolan berbagai devices karena penggabungan komponen-komponennya pada circuit terintegrasi, tidak seperti desain yang menggunakan microprocessor secara terpisah Komponen pada microcontroller antara lain adalah CPU, discrete input dan output, serial port untuk input/output, timer, volatile memory, flash memory, clock generator, analog to digital converter, dan lain-lain 39 2.2.6. Sejarah Deep Sea Electronics DSE adalah perusahaan yang spesialis dalam merancang, memproduksi dan menyalurkan modul pengontrol alat elektronik dan sistem monitoring untuk diesel dan generating set (genset) DSE mulai dikembangkan pada tahun 1975 dan memiliki pusat di United Kingdom. Perusahaan ini sudah memiliki pengalaman hampir 30 tahun dalam membuat solusi pengontrolan market leading. Perusahaan ini memiliki jangkauan yang luas pada produk-produknya dan mempunyai spesialisasi pada Automatic Start Controllers, Automatic Mains Failure Controllers dan Auto Transfer Switch Controllers serta memiliki kumpulan load share yang berbasiskan teknologi yang lebih maju/terdepan dan solusi yang dapat digunakan pada electronic engine. Semua produk diproduksi di kantor kepala yang berada di United Kingdom, hal ini memungkinkan perusahaan untuk dapat tetap mengontrol secara lengkap proses produksi serta memastikan pengiriman yang kontinu dari solusi tingkat tinggi. Sebagai bukti nyata, jangkauan modul telah mengembangkan reputasi yang patut untuk dicontoh dalam hal kualitasnya, tingkat kepercayaan pada produk, serta fungsionalitas user-friendly di pasaran. Perusahaan ini memiliki kantor cabang di Amerika Utara dimana sekarang telah menjadi pusat dari penjualan dan pembuatan produk Deep Sea Electronics di Amerika dan Kanada. 40 Perusahaan ini terus secara kontinu mengikuti perkembangan teknologi baru untuk meningkatkan jangkauan produk dan keunggulan dalam memberikan kontribusi pembuatan solusi di dunia industri. 2.2.6.1. Modul 5510 Deep Sea Electronics Gambar 2.9. Modul 5510 DSE Modul 5510 berfungsi untuk mengatur dan membaca status dari genset. Modul 5510 juga dapat mengirim status dari genset tersebut ke komputer melewati komunikasi serial RS-232 dan RS-485. Namun, pada penelitian, digunakan RS-485 untuk mengirim status genset ke komputer. Modul 5510 ini merupakan kontroller genset dengan memiliki kemampuan sebagai berikut : • Memiliki kemampuan remote start controller. 41 • Comprehensive instrumentation and monitoring of the engine and genset. • Dapat dikonfigurasikan dengan menggunakan program komputer pada OS Windows. • Dapat melakukan komunikasi serial (RS-232 dan RS-485) dan P810 serta dapat dihubungkan dengan modem untuk dikontrol melewati internet. • Kompatibel dengan banyak tipe mesin elektronik (seperti Volvo, Scania, Perkins, dan lain sebagainya) • Kapasitas load sharing sampai 16 set dan tidak diperlukan modul interface tambahan 5510 dan AVR. • Integral Loss of mains detection ketika di parallel dengan utility supply • Integral Loss of Excitation detection