Rancang Bangun Master Slave Modbus Berbasis Mikrokontroler Untuk Mengendalikan Beberapa Subsistem Dr. Ir. Arman D. Diponegoro1, Ahmad Fahmi Arief2 Departemen Teknik Elektro, Universitas Indonesia, Depok 16424 Tel: (021) 78888805. Fax: (021) 78885656 Email:
[email protected] ,
[email protected]
Abtrak Sebuah sistem kompleks membutuhkan lebih dari satu buah sistem untuk mengkontrol keseluruhan sistem tersebut dikarenakan faktor keterbatasan jumlah output yang dapat dikontrol satu sistem itu sendiri, maupun dibutuhkan nya kemampuan mengendalikan banyak output di lokasi yang berbeda. Ini dapat diatasi sebuah sistem yang disebut modbus. Modbus merupakan sebuah sistem yang memiliki sebuah master dengan beberapa slave yang bekerja berdasarkan instruksi yang diberikan oleh master. Pada skripsi ini dibuat sebuah rancang bangun master slave modbus berbasis mikrokontroler untuk mengendalikan beberapa subsistem dalam skala mikro, yaitu dengan satu buah master dengan tiga buah slave. Master slave ini berbasiskan mikrokontroler Atmega8535 dengan sebuah bus menggunakan komunikasi TWI dan antarmuka menggunakan perangkat lunak Visual Basic sebagai antarmuka untuk user memberikan instruksi ke sistem menggunakan komunikasi USART. Selain itu dalam rancang bangun dilakukan pengujian untuk menganalisa pengaruh dari jarak antara master slave dengan beberapa variasi panjang jalur bus. Design of Master Slave Modbus Microcontroller-Based For Controlling Multiple Subsystems Abstract A complex system requires more than a single system to control the entire system due to factors the limited number output that can be controlled of the system itself, although his ability to control multiple outputs in different locations. It can overcome a system called modbus. Modbus is a system that has a master with several slaves who worked on the instructions given by the master. In this paper made a design based modbus master slave microcontroller to control multiple subsystems in micro scale, ie with a single master with three slaves. Master Slave is based microcontroller ATmega8535 with a bus using TWI communication and interface using Visual Basic as a software interface for the user to give instructions to the system using the USART communication. Also in design testing to analyze the influence of the distance between the master slave with some variation in the length of bus lines.
Keywords: Master Slave, Modbus, Microcontroller, TWI, USART
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
1. Pendahuluan Sistem modbus diaplikasikan untuk mengontrol output yang tidak dapat ditangani oleh satu buah sistem saja maupun untuk kemampuan mengontrol beberapa sistem output yang berada di lokasi berbeda. Pada rancang bangun sistem ini sistem modbus dibuat berbasiskan mikrokontroler pada master dan slave, dan Visual Basic untuk antarmuka pengendali. Pada sistem ini dibuat dengan skala mikro saja, dengan satu master dan tiga slave untuk model dari sistem yang sebenarnya dapat dibuat dalam skala makro. Sebelumnya sistem master slave ini sudah dikembangkan sebelumnya yang menjadikan sistem modbus untuk fungsi yang sama yaitu mengendalikan beberapa subsistem. Namun sistem tersebut berbasiskan mikrokontroler AT89S51 sementara pada sistem yang dibuat pada skripsi ini berbasiskan mikrokontroler Atmega8535. Perbedaannya terletak pada kemudahan dari segi bahasa program serta bus yang digunakan. Dimana sebelumnya bahasa program menggunakan assembler yang sulit sementara sistem pada skripsi ini sudah menggunakan bahasa C yang lebih mudah. Selain itu bus pada sistem sebelumnya menggunakan USART (Universal Synchronous Asynchronous Serial Receiver and Transmitter) sekaligus menjadi komunikasi dengan antarmuka yang tentunya akan riskan terhadap error data pada prosesnya, dikarenakan kedua proses antara antarmuka dengan master dan master dengan slave menggunakan jalur yang sama. Sementara pada sistem yang dibuat ini menggunakan dua jalur yang berbeda, pada antarmuka dengan master menggunakan komunikasi USART serta pada master slave menggunakan komunikasi TWI (Two-Wire Serial Interface) dengan dua buah jalur (SDA dan SCL). Kelebihan nya ialah, berbedanya jalur membuat kemungkinan eror karena jalur yang sama digunakan untuk dua fungsi berbeda tidak akan terjadi sehingga kehandalan sistem bisa terjaga Rancang bangun sistem ini sangat bermanfaat untuk menciptakan sebuah sistem modbus degan teknologi yang berbeda, yang lebih umum dipasaran. Sehingga akan sangat mudah diaplikasikan terlebih oleh para mahasiswa. Selain itu rancang bangun ini akan memberikan penjelasan lebih mengenai komunikasi USART maupun TWI baik secara teori maupun pengggunaan komunikasi tersebut. Dengan dikembangkan nya sistem modbus ini diharapkan akan membantu menyelesaikan masalah umum sebuah sistem yang membutuhkan pengendalian output yang melebihi kemampuan satu buah sistem mikrokontroler dan kemampuan untuk menjalankan beberapa subsistem dengan satu buah sistem pengendali.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Pembuatan sistem ini memiliki beberapa tujuan, sebagai berikut: 1. Merancang dan membangun sebuah sistem yang dapat mengendalikan banyak sub sistem. 2. Memberikan solusi dari masalah umum sebuah sistem yang terkendala jumlah output
maupun kemampuan menjalankan beberapa subsistem secara bersamaan dan dikendalikan oleh sebuah sistem.
2. Tinjauan Teoritis Sistem master slave yang dibangun tersusun atas 1 master dan 3 slave yang membentuk sebuah jaringan bus, serta HMI (Human Machine Interface) sebagai antarmuka dalam proses monitoring dan pengendalian. Dalam jaringan bus ini digunakan dua jalur kabel (SDA dan SCL) sebagai komunikasi dengan menggunakan fungsi TWI (Two-Wire Serial Interface) seperti terlihat pada Gambar 1.
Gambar 1 Konfigurasi sistem master slave Komunikasi sistem modbus seperti ini selalu diawali dengan query dari master, dan slave memberikan respon dengan mengirimkan data atau melakukan aksi sesuai perintah dari master. Master hanya melakukan satu komunikasi dalam satu waktu. Slave hanya akan melakukan komunikasi jika ada perintah (query) dari master dan tidak bisa melakukan komunikasi dengan slave yang lain.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Two Wire Serial Interface (TWI) TWI atau secara umum dapat disebut I2C (Inter- Integrated Circuit), adalah protokol yang memperbolehkan system designer untuk menghubungkan hingga 128 devices berbeda menggunakan hanya TWI bi-directional bus lines, satu untuk clock (SCL) dan satu lagi untuk data (SDA). Satu-satunya external hardware yang dibutuhkan untuk mengimplementasi busnya adalah sebuah pull-up resistor untuk setiap jalur bus TWI. Semua device yang terhubung ke bus memiliki alamatnya sendiri, dan mekanisme untuk memecahkan permasalahan bus terdapat pada protokol TWI. Jenis komunikasi yang dilakukan antar peralatan dengan menggunakan protokol TWI mempunyai sifat serial synchronous half duplex bi-directional, dimana data yang ditransmisikan dan diterima hanya melalui satu jalur data SDA line (bersifat serial), setiap penggunaan jalur data bergantian antar perangkat (bersifat half duplex) dan data dapat ditransmisikan dari dan ke sebuah perangkat (bersifat bi-directional). Interkoneksi TWI dapat dilihat pada Gambar 2.
Gambar 2. TWI Bus Interconnection
Komunikasi USART Universal Synchronous Asynchronous Serial Receiver and Transmitter (USART) merupakan protokol komunikasi serial yang terdapat pada mikrokontroler AVR. Serial USART biasa digunakan untuk membuat mikrokontroler dapat berhubungan dengan perangkat luar lainnya. Fasilitas USART dapat dimanfaatkan untuk menghubungkan mikrokontroler dengan perangkat PC. Komunikasi serial adalah komunikasi yang tiap-tiap bit data dikirim secara berurutan dimulai dari LSB (Least Significant Bit) dan bertahap sampai MSB (Most Significant Byte) dalam satu waktu, seperti terlihat pada Gambar 3.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Gambar 3. Frame Format USART Penjelasan Frame Format : 1.
St
: Start bit, selalu low (0).
2.
(n) : Data bits (0 to 8).
3.
P
: Parity bit, odd / even
4.
Sp
: Stop bit, selalu high (1)
5.
IDLE
: Tidak ada transfer komunikasi (RxD or TxD). IDLE selalu high.
IC MAX232 IC MAX232 memiliki 16 kaki dengan supply tegangan 5 Volt. IC MAX232 berfungsi sebagai pengubah level tegangan pada konektor RS232 menjadi level TTL. Jika peralatan yang digunakan menggunakan logika TTL maka sinyal port serial harus dikonversikan terlebih dahulu ke pulsa TTL sebelum digunakan begitu pula sebaliknya. Converter yang paling mudah digunakan adalah MAX232. Di dalam IC ini terdapat charge pump yang akan membangkitkan tegangan +10 Volt dan – 10 Volt dari sumber +5 Volt tunggal. Arsitektur dari MAX232 ini dapat dilihat pada Gambar 4.
Gambar 4. Arsitektur MAX232
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
3. Metode Rancang Bangun Dalam perancangan ini dilakukan beberapa metode, yaitu dengan studi literatur, berlanjut ke pengumpulan informasi, berlanjut ke perancangan serta pembuatan sistem, kemudian dilakukan pengujian dan terakhir adalah analisis. Diagram alir dari metode perancangan yang dilakukan dalam skripsi ini adalah seperti pada Gambar 5.
Gambar 5. Diagram alir metode perancangan 4. Desain Rancang Bangun Desain Human Interface Sistem Master Slave Dalam sistem master slave modbus ini diperlukan sebuah human interface sebagai pengendali untuk sebuah line yang terdiri dari beberapa slave menggunakan sebuah perangkat lunak Visual Basic. Desain human interface pada sistem ini dapat dilihat pada Gambar 6.
Gambar 6. Desain human interface master slave modbus
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Pada desain terlihat sebuah sistem yang terdiri dari 1 master dan 3 buah slave dengan 3 alamat berbeda yang memiliki output berupa lcd dan motor. Pada desain juga terdapat control slave pada sisi kanan atas yang menjadi pengendali dari sistem master slave modbus. Dalam perancangan nya sebagai antarmuka, diperlukan sebuag fungsi dari perangkat lunak tersebut agar dapat terhubung dengan master. Fungsi tersebut ialah MSComm, yang terlihat pada sisi kiri atas pada Gambar 6. Selain itu pada Mscomm ada beberapa hal yang harus diperhatikan seperti pada Gambar 7.
Gambar 7. Konfigurasi MSComm Pertama ialah CommPort yang disesuai kan pada COM yang terbaca pada device manager. Kedua ialah komunikasi yang digunakan dengan mikrokontroler meliputi Rthreshold untuk batas data yang diterima serta ketiga ialah Setting meliputi Baudrate, Parity, Data bits, Stop bits seperti pada Gambar 7. Desain Sistem Mikrokontroler Master dan Slave Desain sekamtik sistem master dan slave yang digunakan pada sistem terdapat pada Gambar 8.
Gambar 8. Skematik Master & Slave
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Skematik ini dibuat menggunakan perangkat lunak Eagle (Easily Applicable Graphical Layout Editor) version 6.4. Pada skema terlihat sistem minimum untuk master slave berbasis Atmega8535 dan juga terdiri dari rangkaian RS232 menggunakan IC MAX232. Sementara untuk layout dan PCB dari skematik terlihat pada Gambar 9.
Gambar 9. Layout & PCB Master Slave Desain Board LCD Dalam desain slave terdapat output display berupa LCD dimana membutuhkan PCB dasar sebagai penghubung LCD dengan pengatur contrast dan backlight serta penghubung dengan slave. Skematik desain board LCD ditunjukan pada Gambar 10.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Gambar 10. Skematik Board LCD Sementara untuk layout dan bentuk dari board LCD seperti yang ditunjukan Gambar 11.
Gambar 11. Layout dan Bentuk Fisik Board LCD Konfigurasi Codevision AVR Konfigurasi untuk dapat menggunakan beberapa fungsi CodeWizard yang dibutuhkan master terlihat pada Gambar 12 dan konfigurasi slave pada Gambar 13.
Gambar 12. Konfigurasi Codevision Master
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Gambar 13. Konfigurasi Codevision Slave Format Data Dalam sistem ini terdapat aliran data dari antar muka VB ke master maupun dari master ke slave. Semua format data yang digunakan dalam sistem dapat dilihat pada Tabel 1. Tabel 1. Format aliran data sistem INSTRUKSI VB Slave 1 - Servo 0⁰ Slave 1 - Servo 45⁰ Slave 1 - Servo 90⁰ Slave 1 - Servo 135⁰ Slave 1 - Servo 180⁰ Slave 2 - Servo 0⁰ Slave 2 - Servo 45⁰ Slave 2 - Servo 90⁰ Slave 2 - Servo 135⁰ Slave 2 - Servo 180⁰ Slave 3 - Servo 0⁰ Slave 3 - Servo 45⁰ Slave 3 - Servo 90⁰ Slave 3 - Servo 135⁰ Slave 3 - Servo 180⁰
VB - MASTER (ASCII) 'A000' 'A045' 'A090' 'A135' 'A180' 'B000' 'B045' 'B090' 'B135' 'B180' 'C000' 'C045' 'C090' 'C135' 'C180'
MASTER - SLAVE (Hexa) (ALAMAT) (INSTRUKSI) 0x50 0x00 0x50 0x01 0x50 0x02 0x50 0x03 0x50 0x04 0x51 0x00 0x51 0x01 0x51 0x02 0x51 0x03 0x51 0x04 0x52 0x00 0x52 0x01 0x52 0x02 0x52 0x03 0x52 0x04
Algoritma Alur Komunikasi Algoritma adalah langkah-langkah pemecahan suatu masalah atau pekerjaan, yang dinyatakan secara sistematis, rinci, dan jelas, sehingga bila dilaksanakan pada kondisi awal tertentu, akan berakhir dalam selang waktu terbatas dan menghasilkan keluaran seperti yang diharapkan. Algoritma dari alur komunikasi dapat dilihat pada Gambar 14.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Gambar 14. Algoritma Alur Komunikasi
5. Hasil Rancang Bangun Sistem master slave yang dibuat menggunakan antarmuka Visual Basic pada komputer yang terhubung ke master menggunakan sebuah perantara kabel USB ke DB9. Master terhubung ke tiga buah slave menggunakan wire sebanyak empat wire yaitu VCC, GND, SDA, SCL. Tampilan sistem master slave keseluruhan yang telah dibuat dapat dilihat pada Gambar 15.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Gambar 15. Sistem Master Slave Keseluruhan Prinsip kerja dari sistem master slave ini ialah ketika tombol pada antarmuka ditekan dengan konfigurasi yang diinginkan maka antarmuka akan mengirimkan karakter ascii ke master dengan komunikasi USART, kemudian master akan memproses karakter tersebut dan mengirimkan alamat dan instruksi yang sesuai dengan perintah dengan format bit biner dengan komunikasi TWI.
Hasil Sinyal USART Hasil sinyal USART yang dari antarmuka ke master dapat dilihat pada Gambar 16. Channel 1 meupakan sinyal Tx USART TTL sedangkan channel 2 merupakan sinyal Tx hasil dari MAX232.
Gambar 16. Sinyal Tx USART Hasil Sinyal TWI (I2C) Hasil sinyal I2C yang dikirim dari master ke slave dan diterima diterima atau sesuai dengan alamat dari salah satu slave dapat dilihat pada Gambar 17.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
Gambar 17. Pengelompokan Sinyal 12C Master Slave Dari keseluruhan ujicoba yang dilakukan dapat terangkum pada Tabel 2. Dari hasil percobaan tersebut dapat dikatakan sesuai dengan yang diinginkan, dimana setiap instruksi dari antar muka VB diterima dan dilakukan sesuai oleh slave yang dituju. Tabel 2. Hasil Ujicoba Keseluruhan
6. Pembahasan Dari rancang bangun yang telah dibuat dan dilakukan ujicoba pada instruksi per slave terlihat semua instruksi dari antarmuka dapat dilakukan oleh slave yang dituju dan diabaikan oleh slave yang tidak dituju karena adanya address dari masing-masing slave yang menjadi pembeda. Ini menandakan jika sistem modbus yang dibuat telah bekerja sesuai yang diinginkan. Selain mengetahui sistem bekerja dengan baik, analisa dikembangkan kepada
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
pengaruh dari panjangnya wire bus yang menghubungkan master dan slave. Setelah dilakukan pengukuran waktu yang dibutuhkan dari instruksi antarmuka ke sebuah slave, dilakukan juga variasi panjang bus yang hasilnya dapat dilihat pada Gambar 18. Grafik tersebut merupakan hasil instruksi all yang berfungsi untuk menginstruksikan kesemua slave, sehingga grafik tersebut merupakan waktu keseluruhan yang dibutuhkan dari instruksi antarmuka hingga kesemua slave selesai menjalankan instruksi.
Gambar 18. Grafik perngaruh panjang jalur TWI Dari Gambar 18 dapat dilihat untuk jarak 1 meter waktu eksekusi yang dibutuhkan adalah 2,2 detik. Kemudian untuk jarak 2 meter waktu yang dibutuhkan adalah 2,34 detik. Untuk jarak 3 meter dibutuhkan 2,42 detik, 4 meter dibutuhkan 2,65 detik dan jarak terjauh 5 meter dibutuhkan 2,81 detik. Pengukuran waktu menggunakan stopwatch, dimana pengambilan waktu dilakukan hingga lima kali dan diambil nilai rata-rata. Dari keseluruhan data tersebut dapat dilihat jika panjang dari bus dengan komunikasi TWI ini mempengaruhi waktu yang dibutuhkan untuk sebuah instruksi di eksekusi oleh slave. Ini disebabkan semakin jauh nya bus yang harus ditempuh sebuah data tentunya akan membutuhkan waktu lebih untuk data tersebut diterima oleh slave. Selain itu waktu yang diperlukan tersebut mencapai skala detik lebih dikarenakan waktu tersebut dihitung dari selesainya sebuah slave mengerjakan instruksi ke output. Sementara output slave tersebut ialah motor servo yang dalam prinsip kerjanya membutuhkan interval logika low 20ms dan logika high yang menentukan sudut. Dan pemberian logika dilakukan setidaknya 5 kali untuk memastikan servo mencapai sudut yang diinginkan. Jadi penyumbang waktu eksekusi terbesar berasal dari motor servo sebagai output slave.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
7. Kesimpulan Dari rancang bangun sistem master slave berbasis mikrokontroler ini dapat disimpulkan: 1. Sistem rancang bangun master slave modbus berbasis mikrokontroler ini telah bekerja sesuai dengan yang diinginkan, ini dibuktikan dari hasil ujicoba yang dilakukan dimana setiap instruksi yang dilakukan oleh antarmuka dijalankan hanya oleh slave yang dituju dan slave yang dituju tersebut mengeksekusi output seperti yang diinstruksikan oleh antarmuka. 2. Pada rancang bangun master slave modbus ini menggunakan komunikasi TWI pada bus yang terdiri dari dua line SDA SCL, dimana panjang dari wire tersebut mempengaruhi waktu yang dibutuhkan oleh sistem untuk mengeksekusi instruksi dari antarmuka hingga slave selesai menjalankan instruksi tersebut. Ini dapat dilihat dari grafik ujicoba variasi panjang wire. 3. Semakin panjang wire antara master dan slave membuat sebuah sinyal atau data yang ditransmisikan dari master harus menempuh jarak yang semakin jauh juga, yang akan membuat sebuah sinyal atau data tersebut membutuhkan waktu untuk diterima oleh slave. Inilah yang membuat semakin panjang wire dari master slave semakin lama. 4. Rancang bangun master slave ini hanya dalam skala mikro saja, namun rancang bangun ini merupakan model dari sistem yang dapat dibuat secara makro. Dengan hasil ujicoba dimana sebuah mikrokontroler dapat saling berkomunikasi ini akan membantu menyelesaikan masalah umum yang ada didunia embedded system perihal jumlah output yang tidak dapat diatasi oleh satu buah mikrokontroler saja, maupun kemampuan untuk menjalankan sebuah sistem yang dapat mengkontrol sistem output di beberapa lokasi yang berbeda.
8. Saran Dari rancang bangun dan kesimpulan yang didapat, penulis dapat memberikan saran sebagai berikut: 1.
Konsep modbus dengan menggunakan wire ternyata memiliki kekurangan dalam hal jarak antar sistem dan juga penggunaan wire untuk saling terhubung tentunya akan menjadi batasan tersendiri dalam peletakan sistem. Sehingga penulis mensarankan membuat konsep modbus menggunakan konsep wireless.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014
DAFTAR PUSTAKA ____Robert.L Boylestad, & Louis Nashelski, “Electronic Devices And Circuit Theory (10th ed.)”, Pearson Education Inc, New Jersey, 2006. ____Muhammad Ali Mazidi, Janice.G, & Rolin.D Mckinlay, "The 8051 Microcontroller and Embedded Systems Using Assembly and C (2nd ed.)”, Pearson Education Inc, New Jersey, 2006. ____Sismoro, Hari. “Pengantar Logika Informatika. Algoritma dan Pemrograman Komputer”, ANDI OFFSET, Yogyakarta. ____Tiyono , Agus Sudjadi, “Sistem Telekontrol Sada dengan Fungsi Dasar menggunakan Mikrokontrollei AT89S51 dan Komunikasi serial RS485”, Laboratorium Teknik Kontrol Otomatik ,Jurusan Teknik Elektro Fakultas Teknik Universitas Diponegoro. ____Agus Tiyono, Sudjadi, Iwan Setiawan, “Sistem Telekontrol SCADA dengan Fungsi Dasar Modbus Menggunakan Mikrokontroler AT89S51 dan Komunikasi Serial RS485”, Laboratorium Teknik Kontrol Otomatik, Yogyakarta, 2007.
Rancang bangun..., Ahmad Fahmi Arief, FT UI, 2014