Note : Protokol Modbus

Modbus merupakan protokol yang cukup populer di industri, hampir setiap project yang pernah penulis ikuti device menggunakan protokol modbus. Modbus dikembangkan oleh Modicon (yang sekarang kita kenal Schneider) untuk process control system.

Modbus diakses menggunakan prinsip master-slave, protokol menyediakan komunikasi antara satu master dan 1 slave hingga 247 slave. Hanya master yang dapat memulai transaksi komunikasi. Dan hanya slave hanya dapat melayani 1 master.

Transaksi pada Modbus merupakan query/response di mana hanya terdapat satu slave yang dituju, atau sebuah broadcast/no response dimana yang dituju semua slave. Transaksi terdiri dari frame satu query dan satu response, atau satu broadcast.

Protokol modbus memiliki frame / format untuk message antara master dan slave dalam transaksi. Request message yang dikirimkan oleh master (query) berisikan informasi : address penerima yang dituju, apa yang penerima harus lakukan, data yang dibutuhkan dan status checking error. Slave yang membaca message dari master, dan jika tidak ada error slave akan melakukan tugas dan mengirim response kembali ke master. Message yang dikirimkan oleh Slave (response message) berisikan informasi: address slave, action yang dilakukan, hasil dari action dan status checking error.

Biasanya, master dapat mengirim query lainnya segera setelah menerima message response. fungsi timeout memastikan bahwa sistem berfungsi ketika query tidak diterima dengan benar.

Message Format

Sebuah transaksi terdiri dari satu message request dari master ke slave dan satu message response dari slave kembali ke master. Kedua message dibentuk sebagai Modbus message frame. Setiap message terdiri dari serangkain bytes yang dikelompokkan menjadi 4 bagian seperti gambar dibawah.

Gambar 1. Format Modbus Message

Bagian pertama adalah Address Field, yang mana terdiri dari satu byte informasi yang berisikan slave id antara 1 dan 247.

Bagian kedua adalah Function Field, yang mana terdiri dari satu byte informasi yang mengindentifikasikan target slave yang perlu lakukan.

Bagian ketiga adalah Data Field, yang mana panjang bergantung pada function ditentukan pada function field. Dalam request message, Data Field ini berisikan informasi yang mana Slave butuhkan untuk melengkapi response. Dalam response message, Data Field ini berisikan data yang diminta oleh master.

Dan bagian terakhir dalam terdiri dari error-check field. Nilai yang muncul pada frame error-check ini merupak nilai yang dihitung performa sebuah cyclic redundancy check (CRC-16).

Berikut contoh Read Coil (function code 01)

Gambar 2. Contoh Read Coil

Pada contoh diatas master mengirimkan request message (query) ke slave, dari format message tersebut dapat diketahui, address slave target 02, function code 01 yang berarti command read coil, address coil offset 000A (dec = 00010) dengan jumlah coil yang dibaca sebanyak 0002 (dec = 2) sehingga address yang dibaca adalah 00011 dan 00012.

kemudian message response yaitu coil data 03 ( binary = 0000 0011), dari paling kanan nilai binary adalah nilai coil untuk address offset yang diminta bernilai address 00011 (On) dan 00012 (On). Catatan nilai 1=On, 0=off.

Modbus functions

Semua function yang didukung oleh protokol Modbus diindentifikasikan oleh index number, index number ditampilkan sebagai function code pada tabel dibawah.

Table 1 Modbus data type

Seluruh function yang dirancang protokol modbus sebagai command control untuk field instrument dan aktuator adalah sebagai berikut:

  • Coil control command untuk membaca dan mensetting sebuah coil atau sebuah grup coil.
  • Input control command untuk membaca status input dalam sebuah grup input.
  • Register control command untuk membaca dan mensetinng satu atau lebih holding register.
  • fungsi diagnostic test dan report
  • Program function
  • Polling

Exception Code

Jika request message yang dikirim oleh master mengandung illegal request (sesuatu yang tidak didukung oleh target slave), sebuah exception response akan dikembalikan ke master. berikut dibawah merupakan list dari exception code yang biasanya muncul.

Table 2. list Exception code

Sekian sedikit catatan Protokol modbus.

Leave a Reply

Your email address will not be published.