Panduan Lengkap Modbus RTU: Dari Konsep Dasar Sampai Implementasi di Industri

Mengapa Artikel Ini Ditulis

Modbus RTU sudah berusia hampir 50 tahun. Di era SCADA modern, cloud, dan Industrial AI, banyak yang mengira protokol ini sudah usang.

Kenyataannya? Modbus RTU masih hidup di hampir setiap pabrik, kilang, dan fasilitas industri di Indonesia. Mayoritas sensor, transmitter, inverter VFD, dan perangkat lapangan yang diproduksi hari ini — termasuk yang dijual di toko online — masih menggunakan Modbus RTU sebagai antarmuka komunikasi defaultnya.

Artinya: kalau Anda engineer atau teknisi yang bekerja di lingkungan industri, memahami Modbus RTU bukan opsional. Ini keahlian dasar.

Artikel ini menjelaskan semuanya — dari cara kerja protokolnya, struktur datanya, cara wiring-nya, sampai cara membaca data sensor nyata ke PC dan dashboard.

Daftar Isi

  1. Apa itu Modbus RTU?
  2. Sejarah Singkat & Kenapa Masih Relevan
  3. Modbus RTU vs Modbus TCP: Perbedaan Kunci
  4. Arsitektur Master-Slave
  5. Jenis-Jenis Register Modbus
  6. Struktur Frame Modbus RTU
  7. RS-485: Lapisan Fisik di Bawah Modbus RTU
  8. Cara Wiring RS-485 yang Benar
  9. Parameter Komunikasi yang Harus Dikonfigurasi
  10. Implementasi: Baca Data dengan QModMaster
  11. Implementasi: Integrasi ke Node-RED
  12. Troubleshooting: 6 Error Paling Umum
  13. Langkah Selanjutnya

1. Apa itu Modbus RTU?

Modbus RTU adalah protokol komunikasi serial yang digunakan untuk menghubungkan perangkat elektronik di lingkungan industri. RTU singkatan dari Remote Terminal Unit — mengacu pada format transmisi data biner yang efisien di jalur serial.

Dalam sistem Modbus RTU:

  • Ada satu master (PLC, PC, ESP32, HMI, atau Node-RED) yang menginisiasi semua komunikasi
  • Ada satu atau banyak slave (sensor, transmitter, inverter, modul I/O) yang merespons permintaan master
  • Komunikasi berjalan melalui kabel RS-485 — dua kawat, half-duplex, bisa menjangkau hingga 1.200 meter dengan hingga 32 perangkat dalam satu bus

Satu kalimat yang merangkum semuanya: Modbus RTU adalah cara master berbicara ke perangkat lapangan untuk membaca atau menulis data, melalui kabel RS-485.

2. Sejarah Singkat & Kenapa Masih Relevan

Modbus dikembangkan oleh Modicon pada 1979 — awalnya untuk komunikasi antara PLC dengan perangkat lapangan. Ia kemudian menjadi standar de facto industri karena:

  • Terbuka dan bebas royalti — siapapun bisa mengimplementasikannya tanpa bayar lisensi
  • Sederhana — struktur protokolnya minimal, mudah di-debug
  • Robust — CRC error checking membuat deteksi kesalahan transmisi sangat andal
  • Sudah tertanam di miliaran perangkat — menggantinya butuh biaya besar

Sampai hari ini, Modbus RTU adalah protokol yang paling banyak didukung oleh vendor perangkat industri di seluruh dunia — termasuk semua merek besar seperti Siemens, Mitsubishi, Schneider, dan ratusan produsen sensor & transmitter dari China yang masuk ke pasar Indonesia.

3. Modbus RTU vs Modbus TCP

Ini pertanyaan yang paling sering muncul. Jawabannya sederhana:

AspekModbus RTUModbus TCP
Media transmisiRS-485 (kabel serial 2 wire)Ethernet / TCP/IP
Kecepatan9.600 – 115.200 bps10/100 Mbps
JarakHingga 1.200 meterSejauh jaringan Ethernet
Jumlah perangkatHingga 32 per segmentRatusan (via jaringan)
Overhead protokolMinimalAda header TCP/IP tambahan
Biaya hardwareSangat murahPerlu port Ethernet di perangkat
Cocok untukLapangan / field devicesIntegrasi ke jaringan IT, SCADA modern

Kesimpulan praktis: Modbus RTU untuk perangkat lapangan (sensor, transmitter, inverter). Modbus TCP untuk integrasi ke level atas (SCADA, MES, cloud). Keduanya sering ada bersamaan dalam satu sistem — gateway mengkonversi RTU ke TCP.

4. Arsitektur Master-Slave

Modbus RTU menggunakan model master-slave yang ketat:

Arsitektur Master-Slave Modbus RTU - RS-485 Bus dengan satu Master dan beberapa Slave
Arsitektur Master-Slave Modbus RTU: satu Master mengontrol semua Slave via RS-485 Bus

Aturan yang tidak bisa dilanggar:

  • Hanya ada satu master dalam satu bus RS-485
  • Slave tidak pernah mengirim data tanpa diminta oleh master
  • Master mengirim request → slave yang dituju merespons → master membaca respons
  • Slave lain di bus yang sama diam selama bukan mereka yang dipanggil
  • Setiap slave memiliki Slave Address unik antara 1–247

Slave Address 0 adalah broadcast address — request ke address 0 diterima semua slave, tapi tidak ada yang merespons (digunakan untuk write command saja).

5. Jenis-Jenis Register Modbus

Ini konsep yang paling penting untuk dipahami. Modbus membagi data ke dalam empat tipe “register” (tabel data):

Tipe RegisterNama LainAksesUkuran DataKode Fungsi Baca
CoilDiscrete OutputRead/Write1 bit (ON/OFF)FC01
Discrete InputDigital InputRead Only1 bit (ON/OFF)FC02
Holding RegisterOutput RegisterRead/Write16-bit (0–65535)FC03
Input RegisterAnalog InputRead Only16-bit (0–65535)FC04

Yang paling sering Anda gunakan di lapangan:

  • Holding Register (FC03) — untuk baca nilai sensor, parameter konfigurasi, status perangkat. Ini yang 90% dipakai sehari-hari.
  • Coil (FC01/FC05) — untuk baca/tulis status ON/OFF (mis. aktifkan pompa, buka valve)

Perlu diperhatikan: nomor register dalam dokumentasi bisa ditulis dengan dua cara:

  • Modbus Address (mulai dari 0): digunakan dalam frame request sebenarnya
  • Register Number (mulai dari 1 atau 40001): digunakan di datasheet vendor

Kalau datasheet bilang “baca register 40001”, artinya Holding Register address 0. Selalu cek konvensi yang digunakan vendor Anda.

6. Struktur Frame Modbus RTU

Memahami struktur frame membantu Anda troubleshoot di level paling dalam. Inilah anatomi satu request dari master untuk membaca 2 Holding Register mulai dari address 0, ke slave address 1:Struktur Frame Modbus RTU - Anatomi byte Request dan Response

Struktur Frame Modbus RTU: Request (Master→Slave) dan Response (Slave→Master) dengan penjelasan tiap byte
     

Penjelasan tiap field:

  • Slave Address — siapa yang dituju (1 byte, 1–247)
  • Function Code — apa yang diminta: 01=baca coil, 03=baca holding register, 05=tulis coil, 06=tulis single register, 16=tulis multiple register
  • Start Address — register mana yang mulai dibaca (2 byte, Hi+Lo)
  • Quantity — berapa register yang dibaca (2 byte)
  • CRC — Cyclic Redundancy Check, 2 byte untuk deteksi error. Dihitung dari semua byte sebelumnya. Jika CRC tidak cocok di sisi penerima, frame dibuang.

Timing penting: Modbus RTU menggunakan silence gap (3.5 karakter) sebagai tanda awal dan akhir frame. Master wajib menunggu sekurang-kurangnya 3.5 karakter time sebelum mengirim frame baru.

7. RS-485: Lapisan Fisik di Bawah Modbus RTU

RS-485 adalah standar sinyal elektris yang membawa data Modbus RTU. Modbus RTU adalah protokol (aturan komunikasi); RS-485 adalah media fisik (kabel dan sinyal listrik). Keduanya berbeda tapi selalu bekerja bersama.

Karakteristik RS-485:

  • Differential signaling — menggunakan dua kabel (A dan B, atau D+ dan D−) yang membawa sinyal berlawanan fasa. Noise yang masuk ke kedua kabel secara bersamaan akan dibatalkan di penerima → sangat tahan interferensi
  • Half-duplex — satu kabel untuk transmisi dan penerimaan, tidak bisa bersamaan
  • Multi-drop — hingga 32 perangkat dalam satu bus (bisa lebih dengan repeater)
  • Jarak — hingga 1.200 meter pada 9.600 bps, lebih pendek pada baud rate lebih tinggi
  • Tegangan sinyal — diferensial ≥200mV antara A dan B dianggap valid

8. Cara Wiring RS-485 yang Benar

Ini yang paling sering menjadi sumber masalah di lapangan.

Topologi yang Benar: Daisy Chain (Bukan Star)Wiring RS-485 Topologi yang Benar (Daisy Chain) vs Salah (Star/T-Junction)

Topologi Wiring RS-485: Daisy Chain (✅ Benar) vs Star/T-Junction (❌ Salah)

Jangan wiring seperti ini (star/T-junction):

Termination Resistor

Pasang resistor 120Ω di dua ujung bus RS-485 (di master dan di slave terjauh). Fungsinya: menyerap refleksi sinyal di ujung kabel. Tanpa terminator, pada kabel panjang akan ada pantulan sinyal yang merusak data.

  • Banyak converter USB-to-RS485 punya saklar atau jumper built-in untuk terminator — aktifkan
  • Perangkat slave kadang sudah punya terminator internal yang bisa diaktifkan via DIP switch

Kabel yang Digunakan

  • Gunakan twisted pair shielded (mis. Belden 9841 atau setaranya)
  • Shield di-ground di satu ujung saja (biasanya di panel master)
  • Pisahkan jalur kabel RS-485 dari kabel power

Koneksi A, B, dan GND

  • A (D−) ke A (D−) semua perangkat
  • B (D+) ke B (D+) semua perangkat
  • GND signal — hubungkan GND semua perangkat dalam satu jalur. Ini sering dilupakan, padahal RS-485 tetap butuh referensi ground bersama untuk bekerja andal

⚠️ Perhatian polaritas: beberapa vendor memberi label A=D+ dan B=D−, sebagian lagi sebaliknya. Jika koneksi terbalik, komunikasi tidak akan jalan. Jika tidak yakin, coba tukar kabel A dan B.

9. Parameter Komunikasi yang Harus Dikonfigurasi

Master dan slave wajib menggunakan setting yang identik, atau tidak ada komunikasi sama sekali.

ParameterNilai UmumCatatan
Slave Address1–247Default biasanya 1; harus unik per perangkat
Baud Rate9600 / 19200 / 384009600 adalah default paling aman
Data Bits8Standar Modbus RTU — tidak berubah
ParityNone / Even / OddNone + 2 Stop Bits atau Even + 1 Stop Bit
Stop Bits1 atau 2Sesuaikan dengan parity

Cara cek/ubah parameter di slave: lihat datasheet perangkat. Biasanya via DIP switch, rotary switch, atau menu konfigurasi software bawaan vendor.

10. Implementasi: Baca Data dengan QModMaster

QModMaster adalah software gratis di Windows untuk uji coba dan debug Modbus RTU langsung dari PC. Ini tool paling cepat untuk verifikasi apakah perangkat slave Anda bisa berkomunikasi sebelum mengintegrasikannya ke sistem yang lebih besar.

Yang Dibutuhkan

  • PC Windows
  • USB-to-RS485 converter (tersedia di marketplace, harga mulai Rp 30.000)
  • Kabel RS-485 ke perangkat slave
  • QModMaster (download gratis di sourceforge.net)

Langkah Setup

  1. Install dan buka QModMaster
  2. Konfigurasi port serial:
    • Menu → Bus Monitor → pilih COM port sesuai USB-to-RS485 Anda
    • Set Baud Rate, Parity, Data Bits, Stop Bits sesuai setting di perangkat slave
  3. Set parameter request:
    • Slave Address: sesuai perangkat
    • Function Code: FC03 (Read Holding Registers)
    • Start Address: 0 (atau sesuai datasheet)
    • Number of Registers: 1 (mulai dari 1 dulu untuk verifikasi)
  4. Klik “Start Polling”

Jika wiring benar dan parameter cocok, Anda akan melihat nilai register berubah secara real-time. Jika tidak ada respons, lanjut ke bagian troubleshooting.

11. Implementasi: Integrasi ke Node-RED

Setelah verifikasi berhasil via QModMaster, langkah selanjutnya adalah membawa data ini ke dashboard atau sistem logging.

Install Node yang Diperlukan

node-red-contrib-modbus
node-red-dashboard

Di terminal Node-RED:

npm install node-red-contrib-modbus node-red-dashboard

Flow Dasar: Baca Register → Tampilkan di Gauge

[inject: tiap 2 detik] → [modbus-read] → [function: parse] → [ui_gauge]

Konfigurasi node modbus-read:

  • Type: FC 3: Read Holding Registers
  • Address: 0
  • Quantity: 1
  • Server: [buat Modbus client baru]
    • Type: Serial
    • Serial Port: /dev/ttyUSB0 (Linux) atau COM3 (Windows)
    • Baud Rate: sesuai perangkat
    • Data Bits: 8, Parity: None, Stop Bits: 2

Node function untuk konversi nilai (contoh modul 4-20mA ke Modbus):

// nilai register dalam 0.001mA
var arus_raw = msg.payload[0];
var arus_mA = arus_raw / 1000;

// scaling ke engineering unit (contoh: pressure 0-10 bar)
var nilai_EU = (arus_mA - 4) * 10 / 16;

msg.payload = parseFloat(nilai_EU.toFixed(2));
return msg;

Flow Lanjutan: Logging ke CSV

Tambahkan node csv dan file setelah function node untuk menyimpan data ke file:

[modbus-read] → [function: parse] → [csv] → [file: append]

12. Troubleshooting: 6 Error Paling Umum

❌ 1. Timeout — Tidak Ada Respons dari Slave

Cek berurutan:

  • Apakah slave address di request sudah sama dengan yang dikonfigurasi di perangkat?
  • Apakah baud rate, parity, stop bits identik di kedua sisi?
  • Apakah wiring A dan B tidak terbalik?
  • Apakah kabel GND tersambung?
  • Apakah COM port yang dipilih di software sudah benar?

❌ 2. CRC Error

Data sampai tapi CRC tidak cocok. Penyebab paling umum: noise di kabel. Cek:

  • Apakah kabel RS-485 berdekatan dengan kabel power atau motor?
  • Apakah terminator 120Ω sudah dipasang di kedua ujung bus?
  • Apakah shield di-ground dengan benar?

❌ 3. Exception Response — Slave Menjawab tapi dengan Error Code

Slave memberikan respons tapi berisi exception code. Ini justru bagus — artinya komunikasi berhasil, tapi ada masalah di level aplikasi.

Exception CodeArtiSolusi
01Illegal FunctionFunction code tidak didukung perangkat
02Illegal Data AddressRegister yang diminta tidak ada
03Illegal Data ValueNilai yang ditulis di luar range

Cek datasheet — pastikan register address dan function code yang Anda gunakan sesuai yang didokumentasikan vendor.

❌ 4. Semua Slave Tidak Merespons Setelah Menambah Perangkat Baru

Kemungkinan besar address duplikat — dua slave memiliki address yang sama. Keduanya merespons bersamaan dan saling mengganggu, sehingga master tidak bisa membaca respons yang valid.

❌ 5. Komunikasi Intermittent (Kadang Jalan, Kadang Tidak)

  • Koneksi kabel yang longgar atau korosi di terminal
  • Ground loop — cek apakah ada lebih dari satu titik ground
  • Interferensi dari perangkat yang baru dinyalakan (VFD, motor besar)

❌ 6. Data Terbaca tapi Nilainya Aneh / Tidak Masuk Akal

  • Salah scaling — cek rumus konversi dan satuan yang digunakan vendor
  • Register yang dibaca salah — beberapa perangkat menyimpan data 32-bit di dua register 16-bit (high word dan low word harus digabung)
  • Endianness berbeda — coba swap byte Hi dan Lo jika nilai tampak terbalik

13. Langkah Selanjutnya

Setelah memahami Modbus RTU secara menyeluruh, ada beberapa arah yang bisa Anda ambil tergantung kebutuhan:

Untuk yang ingin langsung hands-on dengan hardware nyata:

Kami menyediakan Modul Waveshare 4-20mA ke Modbus RTU yang langsung bisa digunakan untuk praktik semua konsep di artikel ini — dari konfigurasi slave address, pembacaan register via QModMaster, sampai integrasi ke Node-RED. Tersedia di tokopedia.com/bisaioti — setiap pembelian sudah termasuk akses ke modul kursus terkait.

Untuk yang ingin panduan terstruktur dari nol:

Kursus “Dari Sensor Industri ke Dashboard: Baca Data 4-20mA via Modbus RTU” di bisaioti.com/lab memandu Anda step-by-step — mulai wiring fisik, konfigurasi perangkat, troubleshooting live, sampai dashboard real-time di Node-RED.

Related Articles