Implementasi Protokol Modbus Pada Mikrokontroler Atmega16 untuk Pengembangan Level Transmitter dan Gas Transmitter Teguh Arifianto W. Suwito Pujiono Jurusan Teknik Elektro FTI – ITS email :
[email protected] Protokol Modbus diperkenalkan oleh Modicon pada tahun 1979 untuk diterapkan di PLC-PLC yang diproduksinya. Saat ini Protokol Modbus merupakan protokol yang paling umum tersedia pada peralatan-peralatan kontrol di industri. Beberapa hal yang menyebabkan Protokol Modbus diterima secara luas sebagai standar protokol komunikasi di industri, antara lain : 1. Dipublikasikan secara terbuka dan bebas royalti. 2. Relatif mudah diterapkan pada jaringan industri. 3. Menggunakan data raw bits atau words tanpa memberikan banyak larangan dan batasan kepada para pengembang. Dalam perkembangannya muncul banyak varian Protokol Modbus, salah satunya adalah Modbus RTU. Modbus RTU merupakan varian Protokol Modbus yang paling umum digunakan. Dalam Tugas Akhir ini diimplementasikan Protokol Modbus RTU pada sebuah level transmitter dan sebuah gas transmitter berbasis Mikrokontroller ATMega16.
Abstrak—Otomasi
industri meliputi penggunaan teknologi informasi dan sistem kontrol. Sistem kontrol terdiri dari peralatan-peralatan yang terhubung dalam satu jaringan. Sehingga peralatan-peralatan tersebut dapat saling berkomunikasi. Protokol komunikasi diperlukan untuk menjamin validitas data. Modbus merupakan protokol yang umum digunakan di industri. Modbus diimplementasikan pada transmitter. Transmitter berharga mahal karena ditujukan untuk industri skala besar. Hal ini menghambat penerapan otomasi pada industri skala kecil. Mikrokontroler merupakan programmable device yang harganya murah. Mikrokontroler dapat dikembangkan menjadi transmitter. Hal ini dilakukan dengan mengimplementasikan Modbus pada mikrokontroler. Dalam Tugas Akhir ini Modbus berhasil diimplementasikan pada mikrokontroler ATMega16. Kemudian ditambahkan level transducer SRF04, sehingga diperoleh sebuah level transmitter. Ditambahkan pula sensor gas TGS 2620 sehingga diperoleh gas transmitter. Function code 03 dan Function code 04 diimplementasikan pada kedua transmitters. Kedua transmitters diintegrasikan dalam suatu jaringan Modbus sebagai slaves. Sebuah HMI digunakan sebagai master dalam jaringan tersebut. Pengujian pada baud rate 19200 bps dan scan rate 2 detik diperoleh keberhasilan komunikasi data 100%. Selama pengujian tidak pernah terjadi data collision. Hal ini menunjukkan bahwa kedua transmitters yang dibuat dapat diintegrasikan pada jaringan Modbus. Pengembangan lebih lanjut dapat dilakukan dengan menambahkan function code yang lain serta meningkatkan baud rate.
II. TEORI PENUNJANG 2.1 MODBUS APPLICATION LAYER Modbus Application Layer menyediakan komunikasi client/server di antara peralatan-peralatan yang terhubung dalam sebuah jaringan Modbus. Protocol Data Unit (PDU) Modbus terdiri atas 2 fields, yaitu : function code fields dan data fields. Ketika diimplementasikan dalam sebuah jaringan, perlu ditambahkan addres field dan error check field pada Application Data Unit (ADU) Modbus. ADU dibuat oleh client yang menginisiasi transaksi data. Function code mengindikasikan aksi yang dikehendaki client untuk dijalankan oleh server. Function Code field pada sebuah unit data Modbus dikodekan dalam satu byte. Kode yang valid berada dalam rentang nilai decimal 1 s.d. 255 (rentang nilai 128 s.d. 255 digunakan untuk exception response). Pada data field terdapat informasi yang digunakan oleh server untuk menjalankan aksi sesuai dengan function code. Informasi ini dapat meliputi discrete addres, register addres, kuantitas discrete dan register yang harus ditangani, dan jumlah data bytes actual yang terdapat pada fields. Pada Gambar 1 ditunjukkan struktur ADU dan PDU Modbus.
Kata kunci —Modbus, Protokol Komunikasi, ATMega16, Transmitter. I. PENDAHULUAN ISTEM kontrol di industri terdiri atas peralatan-peralatan yang saling bekerjasama untuk memperoleh hasil yang optimal. Salah satu hal yang penting dalam sistem kontrol di industri adalah komunikasi di antara peralatan-peralatan tersebut. Untuk menjamin validitas data maka dibuatlah protokol komunikasi dalam sistem kontrol di industri. Salah satu protokol komunikasi yang digunakan secara luas dalam sistem kontrol di industri adalah protokol komunikasi Modbus.
S
1
2.2.1 MODBUS DATA LINK LAYER Modbus over Serial Line merupakan protokol master/slave. Dalam satu jaringan Modbus terdapat satu node master dan maksimum 247 node slaves. Masing-masing slave harus mempunyai alamat yang unik, sedangkan master tidak perlu dialamati. Ada dua mode transmisi pada Modbus over Serial Line yaitu mode RTU dan mode ASCII. Dalam makalah ini hanya akan dijelaskan tentang mode RTU. Pada mode RTU 1 frame data terdiri atas beberapa karakter. Satu karakter terdiri atas 11 bits dengan rincian sebagai berikut : - 1 start bit. - 8 data bits, LSB dikirim pertama. - 1 parity bit. - 1 stop bit atau 2 stop bits jika tidak menggunakan parity check. Ukuran maksimum Modbus RTU frame adalah 256 karakter (256 bytes). Gambar. 4 memberikan deskripsi untuk Modbus RTU Frame.
Gambar 1 PDU dan ADU Modbus
2.1.1 FUNCTION CODE Pada Tugas Akhir ini function code yang diimplementasikan adalah function code 03, read holding register. Ketentuan mengenai struktur PDU function code 03 ditunjukkan pada Gambar 2.
Gambar 2 Struktur Function Code 03
2.1.2 EXCEPTION RESPONSE Setelah master (client) mengirim request, ada 4 kemungkinan yang terjadi, yaitu : 1. Request sukses diproses oleh slave dan sebuah response yang valid dikirim. 2. Request tidak diterima oleh slave sehingga tidak ada response yang dikirim. 3. Request diterima oleh slave namun terdapat error pada parity, CRC atau LRC. Slave mengabaikan request dan tidak mengirimkan response. 4. Request diterima tanpa error, namun tidak dapat diproses oleh slave karena alas an lain. Slave mengirim exception response. Pada sebuah normal response, slave mengembalikan function code. Sedangkan pada exception response bit tertinggi dalam kondisi set. Semua function code mempunyai MSB bernilai 0. Sehingga MSB function code yang bernilai 1 menandakan bahwa slave tidak dapat memroses request. Pada Gambar 3 ditunjukkan contoh PDU dari sebuah request dan exception response terhadap request tersebut..
Gambar 4 Struktur Modbus Frame Untuk menjaga validitas data, pada mode RTU ditambahkan pula 2 bytes CRC pada akhir message. 2.2.2 MODBUS PHYSICAL LAYER Standar electrical interface yang digunakan dalam MODBUS over serial line adalah RS485 half duplex. Topologi yang digunakan dapat berupa topologi daisy chain atau sebuah jalur trunk cable di mana masing-masing node dihubungkan dengan kabel tambahan pada trunk cable tersebut. Konektor yang digunakan dapat berupa pin screw terminal, DB9 Female, atau RJ45 Female. 2.3 MIKROKONTROLER ATMEGA16 Mikrokontroler ATMega16 merupakan mikrokontroler 8 bit produksi ATMEL. Beberapa fitur yang terdapat pada ATMega16 antara lain : 1. Kecepatan eksekusi hingga 16 MIPS dengan menggunakan clock 16 MHz. 2. Programmable flash program memory berukuran 16 Kbytes. 3. EEPROM berukuran 512 bytes. 4. Internal SRAM sebesar 1 Kbyte. 5. Dua buah 8-bit Timer/Counter dengan fasilitas prescaler terpisah, compare mode dan capture mode, yaitu Timer/Counter0 dan Timer/Counter2. 6. Satu buah 16-bit Timer/Counter dengan fasilitas prescaler terpisah, compare mode dan capture mode, yaitu Timer/Counter1. 7. Programmable USART. 8. ADC 8-channel dengan resolusi maksimal 10-bit. 9. I/O Port sebanyak 4x8 buah. 10. Tegangan operasi 4.5 V s.d. 5.5 V.
Gambar 3 Contoh Exception Response
2.2 MODBUS OVER SERIAL LINE Modbus Application layer dapat diimplementasikan dalam beberapa cara. Salah satunya adalah melalui transmisi serial asinkron.
2
Timer/Counter0 merupakan timer/counter yang dapat mencacah clock baik dari dalam chip maupun luar chip dengan kapasitas cacahan 8-bit atau 256 cacahan. Register-register yang berkaitan dengan operasi Timer/Counter0 yaitu TCCR0, TCNT0, OCR0, TIMSK, dan TIFR. Timer/Counter1 merupakan timer/counter yang dapat mencacah clock baik dari dalam chip maupun luar chip dengan kapasitas cacahan 16-bit atau 65536 cacahan. Register-register yang berkaitan dengan operasi Timer/Counter1 yaitu TCCR1A, TCCR1B, TCNT1H, TCNT1L, OCR1AH, OCR1AL, OCR1BH, OCR1BL, ICR1H, ICR1L, TIMSK, dan TIFR. Timer/Counter2 merupakan timer/counter yang dapat mencacah clock baik dari dalam chip maupun luar chip dengan kapasitas cacahan 8-bit atau 256 cacahan. Register-register yang berkaitan dengan operasi Timer/Counter2 yaitu TCCR2, TCNT2, OCR2, TIMSK, dan TIFR. USART dapat difungsikan sebagai transmisi data sinkron, maupun asinkron. Sinkron berarti clock yang digunakan antara transmitter dan receiver berasal dari sumber clock dan nilai yang sama. Sedangkan asinkron berarti masingmasing transmitter dan receiver mempunyai sumber clock sendiri-sendiri. Operasi USART berkaitan dengan registerregister UDR, UCSRA, UCSRB, UCSRC, UBRRH, dan UBRRL. Operasai ADC ATMega16 berkaitan dengan registerregister ADMUX, ADCSRA, ADCL, dan ADCH.
Gambar 6 Tampak depan SRF04 2.6 FIGARO TGS2620 TGS 2620 membutuhkan 2 input tegangan, yaitu : Tegangan heater (VH) dan tegangan rangkaian (VC). VH digunakan pada elemen heater yang terintegrasi pada modul transduser dengan maksud untuk menjaga elemen sensing pada temperatur tertentu yang optimal untuk sensing. VC digunakan supaya pada resistansi beban (RL) yang disusun seri dengan sensor dapat muncul tegangan. Sebuah rangkaian catu daya bersama dapat diterapkan pada VH maupun VC. Pada Gambar 7 ditunjukkan rangkaian yang direkomendasi-kan oleh Figaro untuk diterapkan pada TGS 2620.
2.4 IC MAX485 IC MAX485 merupakan komponen yang digunakan sebagai antarmuka RS485 half duplex. Pada Gambar 5 ditunjukkan susunan pin IC MAX485. Gambar 7 Rangkain TGS2620 III.
PERANCANGAN ALAT
3.1 DIAGRAM BLOK SISTEM Sistem yang dirancang terdiri dari sebauh master yaitu Magelis XBTGT2330 yang sekaligus berfungsi sebagai Human Machine Interface (HMI) dari sistem yang dibuat. Blok diagram sistem ditunjukkan pada Gambar 8.
Gambar 5 Susunan pin IC MAX485
3.2 PERANCANGAN PERANGKAT KERAS Meliputi perancangan sistem minimum mikrokontroler dan perancangan antarmuka komunikasi RS485. Pada Gambar 9 ditunjukkan skematika sistem minimum mikrokontroler untuk level transmitter. PORTA digunakan sebagai configurable addres untuk level transmitter. PORTD.5 dan PORTD.6 dimanfaatkan untuk akuisisi data dari transduser SRF04. Pada Gambar 10 ditunjukkan skematika sistem minimum mikrokontroler untuk gas transmitter. PORTB digunakan sebagai configurable addres untuk gas transmitter. PORTA.0 sebagai ADC0 digunakan untuk akuisisi data dari TGS2620.
2.5 DEVANTECH SRF04 SRF04 mendeteksi objek dengan cara memancarkan sinyal burst dengan frekuensi 40 kHz, kemudian “mendengarkan” gema yang dipantulkan oleh benda yang dikenainya. Dengan mengukur waktu antara transmisi pulsa dengan gema yang kembali, jarak dari objek dapat ditentukan. Pada Gambar 6 ditunjukkan tampak depan dari SRF04.
3
Rangkaian antarmuka komunikasi serial RS485 ditunjukkan pada Gambar 11. Pin 1 sebagai Receiver Output dari MAX485 dihubungkan dengan Receiver pada ATMega16. Pin 4 sebagai Driver Input dihubungkan dengan Transmitter ATMega16. MAX485 bekerja dalam mode half duplex. Kondisi Receive dan Transmit ditentukan dengan cara mengatur pin 2 (Receiver Enable) dan pin 3 (Driver Enable). Kedua pin ini dikontrol oleh perangkat lunak melalui PORTD.2.
Gambar 11 Skematika antarmuka RS485 3.3 PERANCANGAN PERANGKAT LUNAK Meliputi perancangan perangkat lunak pada mikrokontroler dan perancangan perangkat lunak HMI. Algoritma perangkat lunak utama pada mikrokontroler ditunjukkan pada Gambar 12. Setelah mikrokontroler menerima request dari HMI maka dilakukan pengecekan terhadap CRC dari request yang diterima. Bila CRC-nya sesuai maka akan dilihat isi addres field dari request tersebut. Jika isi addres field sesuai dengan addres dari mikrokontroler maka pengecekan dilakukan terhadap isi function code field dari request yang diterima. Jika sesuai dengan function code yang diimplementasikan pada mikrokontroler maka akan dilakukan pemrosesan terhadap request tersebut. Dari kondisi-kondisi di atas jika nilai CRC tidak sesuai dengan hasil perhitungan CRC yang dilakukan oleh mikrokontroler maka request akan diabaikan. Begitu pula jika isi dari addres field tidak sesuai dengan addres mikrokontroler. Jika isi dari function code field tidak sesuai dengan function code yang diimplementasikan pada mikrokontroler maka mikrokontroler akan mengirimkan exception response 01. Algoritma pemrosesan request tersebut ditunjukkan pada Gambar 13. Pada pemrosesan request dilakukan pemeriksaan terhadap banyaknya data yang diminta. Jika banyaknya data yang diminta tidak melebihi jumlah register data yang terdapat pada mikrokontroler maka akan dilakukan pemeriksaan terhadap alamat dari register-register data yang diminta. Jika alamat register-register data yang diminta sesuai dengan alamat-alamat register data yang terdapat pada mikrokontroler maka dilakukan proses akuisisi data dari transduser. Pada pemrosesan request apabila banyaknya data yang diminta tidak sesuai dengan banyaknya register data pada mikrokontroler maka mikrokontroler akan mengirimkan exception response 03. Jika alamat register-register data yang diminta sebagian atau seluruhnya tidak terdapat pada mikrokontroler maka mikrokontroler akan mengirimkan exception response 02. Protokol Modbus yang diimplementasikan adalah Modbus RTU. Masing-masing karakter terdiri dari 1 start bit, 8-bit data, dan 2 stop bit karena tidak menggunakan parity check. Besarnya baudrate adalah 19,2 kbps. Untuk perhitungan CRC-nya menggunakan look-up table sebagaimana yang
Gambar 8 Diagram Blok Sistem
Gambar 9 Skematika sistem minimum mikrokontroler untuk Level Transmitter.
Gambar 10 Skematika sistem minimum mikrokontroler untuk Gas Transmitter. 4
terlampir pada dokumentasi Modbus Over Serial Line Implementation Guide dari Modbus-IDA. Perangkat lunak pada HMI dirancang dengan menentukan sumber data dari variabel-variabel yang digunakan pada HMI. Sumber data eksternal ditentukan pula alamat-alamat register data yang dituju pada mikrokontroler. Sebelumnya dilakukan konfigurasi terhadap parameterparameter dari perangkat-perangkat eksternal yang terhubung dengan HMI. Konfigurasi tersebut meliputi jenis protokol komunikasi yang digunakan serta alamat dari perangkatperangkat tersebut.
IV.
PENGUJIAN SISTEM
Pengujian sistem dimaksudkan untuk mengetahui validitas data yang dikirim. Data yang ditampilkan HMI direncanakan untuk diperoleh dari transmitter yang sesuai serta mempunyai nilai yang sesuai dengan pembacaan transmitter yang bersangkutan. Tabel II.1 Hasil Pengujian Sistem Secara Keseluruhan Pembaca- Pembaca- Data yang Sumber No an Level an Gas DitampilData Trans. Trans. kan HMI 1 Level Trans. 72 72 2 Level Trans. 142 142 3 Level Trans. 207 207 4 Level Trans. 285 285 5 Level Trans. 367 367 6 Gas Trans. 252 252 7 Gas Trans. 792 792 8 Gas Trans. 335 335 9 Gas Trans. 249 249 10 Gas Trans. 824 824 11 Level Trans. 367 367 12 Level Trans. 446 446 13 Level Trans. 501 501 14 Level Trans. 581 581 15 Level Trans. 653 653 16 Gas Trans. 240 240 17 Gas Trans. 896 896 18 Gas Trans. 807 807 19 Gas Trans. 342 342 20 Gas Trans. 256 256 Hasil pengujian sistem secara keseluruhan menunjukkan bahwa sistem mampu bekerjasama dengan baik. Data collision, yang memang tidak diharapkan, sepanjang pengujian tidak pernah terjadi. Data yang diperoleh menunjukkan bahwa data diperoleh dari sumber yang diinginkan dan nilainya sesuai dengan nilai pada sumber data.
Gambar 12 Algoritma program utama pada mikrokontroler
V. KESIMPULAN Dari Tugas Akhir yang telah dikerjakan, disimpulkan beberapa hal yaitu : 1. Protokol Modbus RTU dapat diimplementasikan pada mikrokontroler ATMega16. 2. Pada scan rate 2 detik dan baud rate 19200 bps tingkat keberhasilan komunikasi data mencapai 100%. 3. Akurasi level transmitter untuk pengukuran level permukaan air mencapai 60% sedangkan pada aplikasi pengukuran level benda padat mencapai 90%. 4. Aplikasi gas transmitter untuk deteksi keberadaan alkohol di udara mencapai 100%. 5. Implementasi kedua transmitter dalam satu jaringan pada saat yang sama tidak menimbulkan data collision. 6. Pengujian dengan menggunakan Modscan32 sebagai simulator master diperoleh scan rate maksimum untuk
Gambar 13 Algoritma Pemrosesan Response oleh Mikrokontroler. 5
data tunggal sebesar 1 ms dengan time out condition 50 ms. 7. Pengujian dengan menggunakan Modscan32 sebagai simulator master diperoleh scan rate maksimum untuk data kelompok sebesar 1 ms dengan time out condition 50 ms.
DAFTAR PUSTAKA 1. Modbus-IDA. Modbus Application Protocol Specification V1.1b. 2006. 2. Modbus-IDA. MODBUS over Serial Line Specification and Implementation Guide V1.02. 2006. 3. Winoto, Ardi. Mikrokontroler AVR ATMega8/32/16/ 8535 dan Pemrogrammannya dengan Bahasa C pada WinAVR. Bandung, Penerbit Informatika, 2008. 4. Wardhana, Lingga. Belajar Sendiri Mikrokontroler AVR Seri ATMega8535 Simulasi, Hardware dan Aplikasi. Jogjakarta, Penerbit Andi, 2006. 5. Setiawan, Rachmad. Mikrokontroler MCS-51. Yogyakarta, Graha Ilmu, 2005. 6. Hidayat, Arif. “Pengertian Industri Kimia”
,Juli,, 2011. 7. Bies, Lammert. “RS485 Serial Information”
, Juli, 2011 8. Imanto, Rifqi. “Apa itu HART Communication ?” , Juli, 2011 9. Schneider Electric. Magelis XBT GT User Manual 35010372 01 eng 2.0. 2005 10. Maxim-IC. Document 19-0122; Rev 8; 10/03Low-Power, Slew-Rate-LimitedRS-485/RS-422 Transceiver. 2003 11. Atmel. Datasheet ATMega16(L). 2010 12. Robot Electronics , Juli, 2011 13. Figaro. , Juli, 2011
6