MODBUS RTU OVERVIEW
Modbus adalah teknologi lama yang dikembangkan oleh Modicon pada 1979. Modbus merupakan salah satu protokol yang memungkinkan beberapa sistem berbeda saling berkomunikasi satu sama lain.
Berdasarkan media transfernya, Modbus dikategorikan ke dalam Modbus serial (RS232/485) dan Modbus Ethernet (TCP/IP). Jika dirujuk dari bentuk datanya, Modbus dibagi ke dalam Modbus RTU (serial) dan Modbus ASCII. Pada Modbus serial digunakan istilah Master/Slave sedangkan Modbus Ethernet biasanya memakai terminologi Server/Client.
Modbus RTU
Pada gambar di bawah dapat dilihat bagaimana dua sistem yang berbeda (Master & Slave) berkomunikasi menggunakan Modbus RTU, misal pada PLC A dan B dengan brand yang berbeda. Master (sistem utama, PLC A) melakukan request ke slave (PLC B) untuk mengirimkan data dengan parameter tertentu (slave ID, function code, data size, address, dll). Setelah request diterima, PLC slave akan merespon dengan mengirimkan reply berupa data yang diinginkan oleh Master.
Contoh struktur pesan yang dikirimkan saat transaksi:
| Transmit | [01][03][00][88][00][0A][45][E7] | Receive | [01][03][14][00][00][00][00][00][00][00][26][00][00][00][00][00][00][00][00][00][00][00][00][D5][C1] |
Artinya, master me-request kepada sistem dengan slave/station id [01] untuk mengirimkan data berupa holding register [03], dimulai dari address ke 137 (konversi dari hexa [00][88]+1) dengan lebar data 10 ([00][0A]). Kode [45][E7] adalah error check.
Lalu, slave dengan id [01] merespon dengan mengirimkan data holding register [03] sebanyak 20 data ([14]), yang masing-masing nilainya adalah 0 ([00][00],[00][00],[00][00]) untuk address 137 hingga 139, 38 ([00][26]) untuk data ke 140 dan 0 untuk data selanjutnya. Sedangkan [D5][C1] adalah error check value.
Karena data yang diterima oleh master berbentuk word (16 bit), maka biasanya dibutuhkan lagi blok konversi dari word ke tipe data lain (real, boolean, integer, dll) sebelum data tersebut digunakan.
Selain holding register (function code = 03 [3xxxx]), terdapat 3 tipe variabel lainnya, yaitu:
- [0xxxx] Coil/Output (digital data),
- [1xxxx] Status (digital data), dan
- [2xxxx] Input register (analog data).
Function code menunjukkan tipe variabel dari data yang di-request/dikirimkan. Function code-function code yang umum digunakan:
| Code | Description |
| 01 | Read coil status |
| 02 | Read input status |
| 03 | Read holding registers |
| 04 | Read input registers |
| 05 | Force single coil |
| 06 | Preset single register |
| 07 | Read exception status |
| 15 | Force multiple coils |
| 16 | Preset multiple registers |
| 17 | Report slave ID |
Referensi:
1. Modbus Overview
2. Modbus RTU Overview


COMMENTs