Pengantar protokol komunikasi modbus
Daftar Isi Artikel
Pendahuluan Modbus adalah sebuah protokol komunikasi serial yang digunakan untuk menghubungkan peralatan elektronik industri seperti PLC (Programmable Logic Controller), RTU (Remote Terminal Unit), dan peralatan lainnya. Protokol ini digunakan untuk pertukaran data antara peralatan yang berbeda dan biasanya digunakan pada sistem kontrol dan monitoring industri.
Prinsip Kerja Modbus menggunakan model master/slave, di mana sebuah perangkat master mengirim permintaan ke perangkat slave untuk mendapatkan informasi atau meminta aksi tertentu. Perangkat slave akan merespon permintaan dari perangkat master dengan mengirimkan data atau melakukan tindakan yang diminta. Protokol Modbus ini menggunakan transmisi data serial, seperti RS-232 atau RS-485.
Contoh Aplikasi Modbus banyak digunakan pada aplikasi industri seperti pada sistem kontrol otomatis, sistem monitoring dan pemantauan suhu, kelembaban, tekanan, dan ketinggian. Beberapa aplikasi yang menggunakan protokol Modbus meliputi sistem HVAC (Heating, Ventilation, and Air Conditioning), sistem pembangkit listrik, sistem pengolahan air, dan sebagainya.
Format Data Protokol Modbus terdiri dari beberapa jenis format data yang berbeda, termasuk:
-
Modbus RTU: format data ini menggunakan transmisi serial asynchronous yang biasanya dikirimkan melalui kabel RS-485 atau RS-232. Setiap karakter diawali dengan start bit dan diakhiri dengan stop bit. Format data ini terdiri dari alamat slave, fungsi, alamat awal register, jumlah register, dan checksum.
-
Modbus ASCII: format data ini juga menggunakan transmisi serial asynchronous dengan karakter ASCII sebagai format. Setiap karakter diawali dengan start bit dan diakhiri dengan stop bit, dengan tambahan karakter khusus untuk pembatasan data. Format data ini terdiri dari alamat slave, fungsi, alamat awal register, jumlah register, dan checksum.
-
Modbus TCP: format data ini menggunakan protokol TCP/IP dan mengirimkan data melalui jaringan Ethernet. Format data ini terdiri dari alamat slave, fungsi, alamat awal register, jumlah register, dan checksum.
Berikut adalah contoh format data Modbus RTU dalam bentuk tabel:
Field | Size (byte) | Deskripsi |
Address | 1 | Alamat perangkat Modbus yang akan dituju |
Function Code | 1 | Kode fungsi Modbus yang akan dijalankan |
Starting Point | 2 | Alamat awal register yang akan diakses |
Quantity | 2 | Jumlah register yang akan diakses |
Data | n | Data yang dikirim atau diterima, tergantung pada fungsi |
Error Check | 2 | Checksum untuk memastikan integritas data |
Demikian juga, berikut adalah contoh format data Modbus TCP dalam bentuk tabel:
Field | Size (byte) | Deskripsi |
Transaction ID | 2 | ID transaksi untuk mengidentifikasi permintaan |
Protocol | 2 | Selalu bernilai 0 untuk menunjukkan protokol Modbus TCP |
Length | 2 | Jumlah byte yang dikirim dalam pesan |
Unit ID | 1 | Alamat perangkat Modbus yang akan dituju |
Function Code | 1 | Kode fungsi Modbus yang akan dijalankan |
Starting Point | 2 | Alamat awal register yang akan diakses |
Quantity | 2 | Jumlah register yang akan diakses |
Data | n | Data yang dikirim atau diterima, tergantung pada fungsi |
Error Check | 2 | Checksum untuk memastikan integritas data |
Format data Modbus memungkinkan perangkat komunikasi untuk saling bertukar informasi secara efektif dan terstruktur. Perangkat master dapat mengirimkan permintaan dengan mudah dan perangkat slave dapat memberikan respons yang sesuai dengan permintaan tersebut.
Berikut adalah contoh format data register pada Modbus RTU dan Modbus TCP dalam bentuk tabel:
Format Data Register Modbus RTU:
Field | Size (byte) | Deskripsi |
Coil Status | 1 | Menyimpan status on/off suatu bit (1 bit) |
Input Status | 1 | Menyimpan status on/off suatu bit (1 bit) |
Holding Register | 2 | Menyimpan nilai data seperti konstanta, faktor, dsb. |
Input Register | 2 | Menyimpan nilai data seperti konstanta, faktor, dsb. |
Format Data Register Modbus TCP:
Field | Size (byte) | Deskripsi |
Coil Status | 1 | Menyimpan status on/off suatu bit (1 bit) |
Input Status | 1 | Menyimpan status on/off suatu bit (1 bit) |
Holding Register | 2 | Menyimpan nilai data seperti konstanta, faktor, dsb. |
Input Register | 2 | Menyimpan nilai data seperti konstanta, faktor, dsb. |
Dalam format data register, tiap-tiap register dapat menyimpan nilai suatu data dengan panjang bit tertentu, seperti 16-bit atau 32-bit, tergantung pada jenis register yang digunakan. Format data register ini sangat penting dalam pengiriman data dan pertukaran informasi antara perangkat master dan slave pada Modbus.
Tabel pertama menjelaskan format data Modbus yang digunakan pada protokol Modbus RTU dan Modbus TCP. Tabel ini terdiri dari beberapa field atau kolom, seperti Alamat (Address), Kode Fungsi (Function Code), Alamat Awal Register (Starting Point), Jumlah Register (Quantity), Data, dan Error Check. Setiap kolom ini memiliki fungsi yang berbeda:
- Address: menunjukkan alamat perangkat Modbus yang akan dituju untuk permintaan atau respons data.
- Function Code: menunjukkan jenis operasi yang akan dilakukan pada data, seperti membaca atau menulis data.
- Starting Point: menunjukkan alamat awal register yang akan diakses.
- Quantity: menunjukkan jumlah register yang akan diakses pada operasi Modbus.
- Data: menunjukkan data yang dikirim atau diterima pada operasi Modbus.
- Error Check: menunjukkan checksum atau pengamanan integritas data yang dikirimkan.
Tabel kedua menjelaskan format data register yang digunakan pada Modbus RTU dan Modbus TCP. Tabel ini terdiri dari beberapa field atau kolom, seperti Coil Status, Input Status, Holding Register, dan Input Register. Setiap kolom ini memiliki fungsi yang berbeda:
- Coil Status: menyimpan status on/off suatu bit (1 bit).
- Input Status: menyimpan status on/off suatu bit (1 bit).
- Holding Register: menyimpan nilai data seperti konstanta, faktor, dsb.
- Input Register: menyimpan nilai data seperti konstanta, faktor, dsb.
Format data register sangat penting dalam pengiriman data dan pertukaran informasi antara perangkat master dan slave pada Modbus. Perangkat master dapat membaca atau menulis nilai register tertentu pada perangkat slave dengan menggunakan format data register ini. Dalam aplikasi industri, format data register ini digunakan untuk membaca atau menulis data seperti suhu, kecepatan motor, tekanan, dan sebagainya.
Berikut adalah alamat heksadesimal dan desimal dari setiap field dalam format data Modbus RTU dan Modbus TCP:
Format Data Modbus RTU:
Field | Alamat Heksadesimal | Alamat Desimal |
Address | 01 | 1 |
Function Code | 03 | 3 |
Starting Point | 0000 | 0 |
Quantity | 0001 | 1 |
Data | 0A 00 | 2560 |
Error Check | CC DD | – |
Format Data Modbus TCP:
Field | Alamat Heksadesimal | Alamat Desimal |
Transaction ID | 00 01 | 1 |
Protocol ID | 00 00 | 0 |
Length | 00 06 | 6 |
Unit ID | 01 | 1 |
Function Code | 03 | 3 |
Starting Point | 0000 | 0 |
Quantity | 0001 | 1 |
Data | 00 0A | 10 |
Alamat heksadesimal dan desimal ini penting untuk memahami protokol Modbus dan memeriksa apakah data telah terkirim atau diterima dengan benar. Alamat heksadesimal digunakan dalam pengiriman data Modbus karena data yang dikirimkan dalam format hex, sedangkan alamat desimal digunakan dalam pemrograman dan pengaturan perangkat Modbus.
Prinsip kerja komunikasi Modbus antara master dan slave dapat dijelaskan sebagai berikut:
- Master mengirimkan permintaan Modbus ke slave: Master, yang biasanya merupakan perangkat pengontrol utama seperti PLC atau SCADA, mengirimkan permintaan Modbus ke slave melalui jaringan komunikasi. Permintaan tersebut berisi informasi tentang fungsi Modbus yang akan digunakan, alamat slave, alamat awal dan jumlah data yang akan dibaca atau ditulis.
- Slave menerima permintaan Modbus: Setelah menerima permintaan Modbus dari master, slave memeriksa apakah permintaan tersebut valid atau tidak. Jika permintaan valid, slave akan memproses permintaan sesuai dengan instruksi yang diberikan dalam permintaan.
- Slave mengirimkan respon Modbus ke master: Setelah memproses permintaan, slave mengirimkan respon Modbus ke master. Respon tersebut berisi informasi yang diminta oleh master, seperti data yang akan dibaca atau ditulis.
- Master menerima respon Modbus dari slave: Setelah menerima respon Modbus dari slave, master memeriksa apakah respon tersebut valid atau tidak. Jika respon valid, master akan memproses data yang diterima dari slave sesuai dengan kebutuhan aplikasi.
Prinsip kerja ini berlaku untuk komunikasi Modbus pada kedua mode, yaitu Modbus RTU dan Modbus TCP. Namun, ada beberapa perbedaan teknis dalam implementasi komunikasi Modbus pada kedua mode tersebut. Misalnya, Modbus RTU menggunakan protokol serial dan mengirimkan data dalam format bit, sedangkan Modbus TCP menggunakan protokol jaringan TCP/IP dan mengirimkan data dalam format byte.
Dalam komunikasi Modbus, master dapat berkomunikasi dengan banyak slave pada satu waktu, dan setiap slave dapat memiliki beberapa register yang dapat dibaca atau ditulis oleh master. Ini memungkinkan master untuk mengontrol banyak perangkat yang berbeda dan mengumpulkan data dari berbagai sumber pada suatu sistem kontrol industri.
Modbus adalah protokol komunikasi yang sangat populer dalam dunia industri. Beberapa contoh aplikasi Modbus dalam dunia industri antara lain:
- Monitoring Suhu dan Kelembaban: Modbus dapat digunakan untuk membaca data suhu dan kelembaban pada suatu lingkungan, seperti pada ruang server, gudang, atau pabrik. Perangkat sensor suhu dan kelembaban yang terhubung ke jaringan Modbus dapat memberikan data yang akurat dan dapat diakses dari jarak jauh.
- Kontrol Motor: Modbus dapat digunakan untuk mengontrol motor pada mesin industri, seperti mengatur kecepatan motor atau mematikan motor saat suhu berlebihan. Perangkat kontrol motor yang terhubung ke jaringan Modbus dapat memberikan kontrol yang akurat dan dapat diakses dari jarak jauh.
- Monitoring Kebocoran Gas: Modbus dapat digunakan untuk membaca data kebocoran gas pada suatu pipa atau tangki penyimpanan gas. Perangkat sensor kebocoran gas yang terhubung ke jaringan Modbus dapat memberikan data yang akurat dan dapat diakses dari jarak jauh.
- Pemantauan Kualitas Air: Modbus dapat digunakan untuk membaca data kualitas air pada suatu lingkungan, seperti pada kolam renang, taman air, atau instalasi pengolahan air. Perangkat sensor kualitas air yang terhubung ke jaringan Modbus dapat memberikan data yang akurat dan dapat diakses dari jarak jauh.
- Pemantauan Konsumsi Energi: Modbus dapat digunakan untuk membaca data konsumsi energi pada suatu lingkungan, seperti pada gedung perkantoran atau pabrik. Perangkat pengukur konsumsi energi yang terhubung ke jaringan Modbus dapat memberikan data yang akurat dan dapat diakses dari jarak jauh.
Contoh di atas adalah hanya sebagian kecil dari aplikasi Modbus dalam dunia industri. Modbus dapat digunakan dalam berbagai jenis perangkat dan sistem, dan membantu meningkatkan efisiensi dan pengawasan pada proses industri.
Demikianlah penjelasan tentang komunikasi Modbus dari pendahuluan, prinsip kerja, contoh aplikasi, dan format data yang digunakan. Protokol ini sangat penting dalam industri untuk menghubungkan berbagai peralatan elektronik dan memungkinkan sistem kontrol dan monitoring yang efektif dan terintegrasi.
Referensi :
- Modbus.org: https://modbus.org/
- Modbus Application Protocol Specification, v1.1b3: https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf
- Modbus Technical Resources: https://www.se.com/ww/en/download/document/NVE21775/
- Modbus FAQ: http://www.simplymodbus.ca/FAQ.htm
- “Modbus: The Everyman’s Guide to Modbus” by David W. Prewitt: https://www.amazon.com/Modbus-Everymans-Guide-David-Prewitt/dp/1519600279