Troubleshooting Modbus RTU: 7 Error Paling Sering & Solusinya

Rangkuman diagnostik cepat untuk 7 error paling umum di Modbus RTU: Timeout, CRC Error, Illegal Data Address, Illegal Function, Slave Device Busy, nilai data salah, dan konflik multi-perangkat

Kalau kamu sudah mengikuti seri ini dari konsep dasar, wiring, cara baca register, sampai setting Slave Address — kemungkinan besar kamu sudah pernah (atau akan) ketemu setidaknya satu dari 7 error di artikel ini.

Ini adalah rangkuman diagnostik cepat — bukan pengganti artikel-artikel sebelumnya, tapi referensi yang bisa kamu buka langsung saat sedang di lapangan menghadapi error dan butuh solusi cepat.

📌 Bagian dari seri Panduan Lengkap Modbus RTU. Simpan/bookmark artikel ini sebagai referensi troubleshooting cepat.

1. Connection Timeout / No Response

Gejala: software (Modbus Poll atau lainnya) menampilkan “Timeout” terus-menerus, tidak ada data yang masuk sama sekali.

Penyebab paling umum:

  • Baud rate, parity, atau Slave Address di software tidak cocok dengan perangkat
  • Wiring A/B tertukar
  • Perangkat tidak mendapat daya / mati
  • COM port yang dipilih salah

Solusi cepat:

  • Cek ulang tiga parameter kunci: Slave Address, Baud Rate, Parity — cocokkan dengan datasheet
  • Coba tukar kabel A dan B (aman untuk RS-485, tidak akan merusak perangkat)
  • Pastikan LED indikator power di perangkat menyala
  • Cek Device Manager untuk memastikan COM port yang dipakai benar

➡️ Detail lengkap ada di Wiring RS-485 yang Benar.

2. CRC Error / Checksum Error

Gejala: koneksi terhubung, ada respons dari perangkat, tapi software menandai data sebagai tidak valid/corrupt.

Penyebab paling umum:

  • Noise elektromagnetik masuk ke jalur komunikasi (kabel tidak shielded, terlalu dekat dengan sumber noise seperti VFD/motor)
  • Tidak ada terminating resistor 120Ω di ujung jalur bus
  • Kabel terlalu panjang untuk baud rate yang dipakai

Solusi cepat:

  • Pastikan terminating resistor 120Ω aktif di kedua ujung bus
  • Ganti kabel biasa dengan kabel twisted pair shielded
  • Jauhkan jalur kabel RS-485 dari kabel power/motor listrik
  • Turunkan baud rate kalau kabel sangat panjang (>500 meter)

Posisi terminating resistor 120 ohm yang benar di RS-485 bus

3. Illegal Data Address (Exception Code 02)

Gejala: perangkat merespons, tapi mengembalikan pesan error spesifik “Illegal Data Address” alih-alih data yang diminta.

Penyebab paling umum:

  • Nomor register yang diminta tidak ada di perangkat tersebut
  • Salah paham soal offset penomoran register — sebagian datasheet menulis nomor register mulai dari 1 (misal 40001), tapi di software kadang perlu dimasukkan sebagai 0 (karena internal addressing dimulai dari 0)

Solusi cepat:

  • Cek ulang datasheet perangkat untuk memastikan nomor register yang benar
  • Coba kurangi 1 dari nomor register yang kamu masukkan (paling sering menyelesaikan masalah offset ini)
  • Pastikan jumlah register yang diminta (quantity) tidak melebihi jumlah register yang tersedia di perangkat

4. Illegal Function (Exception Code 01)

Gejala: perangkat merespons dengan error “Illegal Function”.

Penyebab paling umum:

  • Function code yang digunakan (misal Read Holding Register/03) tidak didukung oleh perangkat tersebut — perangkat mungkin hanya mendukung Read Input Register (04)

Solusi cepat:

  • Cek datasheet untuk tahu function code apa saja yang didukung perangkat
  • Coba ganti function code di software (misal dari 03 ke 04, atau sebaliknya)

5. Slave Device Busy (Exception Code 06)

Gejala: respons datang tapi berupa error “Slave Device Busy”, biasanya sesekali/tidak konsisten.

Penyebab paling umum:

  • Perangkat sedang memproses request lain, atau internal processing-nya lebih lambat dari kecepatan polling yang diminta
  • Scan rate/polling interval di software terlalu cepat untuk kemampuan perangkat

Solusi cepat:

  • Perbesar interval polling (misal dari 100ms jadi 500ms atau 1000ms)
  • Kalau ada banyak Slave dalam satu jalur, kurangi jumlah request bersamaan

6. Data Terbaca Tapi Nilainya Tidak Masuk Akal

Gejala: tidak ada error, data masuk, tapi angkanya aneh (misalnya negatif ekstrem, atau angka yang jauh dari ekspektasi).

Penyebab paling umum:

  • Format data salah diinterpretasikan — perangkat mengirim data sebagai Float atau 32-bit, tapi software membacanya sebagai 16-bit Integer biasa
  • Byte order (endianness) terbalik — sebagian perangkat mengirim byte dengan urutan berbeda dari yang diasumsikan software

Solusi cepat:

  • Cek datasheet untuk tahu format data yang benar dipakai perangkat (Integer, Float, Signed/Unsigned)
  • Di Modbus Poll, klik kanan pada nilai di grid dan coba ganti tampilan format (Decimal, Hex, Float, dll) sampai angkanya masuk akal
  • Kalau memakai dua register untuk satu nilai (32-bit), cek apakah perlu diatur sebagai “byte swap” atau “word swap”

7. Beberapa Perangkat Bentrok di Jalur yang Sama

Gejala: sistem berjalan normal saat hanya satu perangkat terhubung, tapi jadi kacau/error random setelah perangkat kedua/ketiga ditambahkan ke jalur yang sama.

Penyebab paling umum:

  • Dua perangkat memiliki Slave Address yang sama
  • Topologi wiring berubah jadi star (bercabang) alih-alih daisy-chain saat menambah perangkat baru

Solusi cepat:

  • Cek ulang Slave Address setiap perangkat — pastikan semua unik (lihat Cara Setting Slave Address)
  • Pastikan wiring baru tetap mengikuti pola daisy-chain, bukan bercabang dari satu titik
  • Test satu per satu: matikan semua perangkat kecuali satu, lalu nyalakan bergantian sambil memantau apakah error muncul saat perangkat tertentu aktif

Perbandingan topologi RS-485: Daisy-Chain (benar) vs Star (salah)

Tabel Rangkuman Cepat

ErrorGejala UtamaCek Pertama
TimeoutTidak ada respons sama sekaliBaud rate, Slave Address, wiring A/B
CRC ErrorData masuk tapi invalidTerminating resistor, shielding kabel
Illegal Data AddressError spesifik dari perangkatNomor register, offset (0 vs 1)
Illegal FunctionError spesifik dari perangkatFunction code yang didukung perangkat
Slave Device BusyError sesekaliInterval polling terlalu cepat
Nilai tidak masuk akalData masuk tapi salahFormat data (Integer/Float), byte order
Bentrok multi-perangkatError muncul setelah tambah perangkatSlave Address unik, topologi daisy-chain

Alur Diagnosis yang Direkomendasikan

Kalau bingung mulai dari mana, ikuti urutan ini:

  1. Cek fisik dulu — power, LED indikator, wiring A/B, terminating resistor
  2. Cek parameter software — Slave Address, Baud Rate, Parity, Stop Bits harus sama persis dengan perangkat
  3. Cek nomor register dan function code — sesuaikan dengan datasheet, coba variasi offset
  4. Cek format data — kalau angka aneh, eksperimen dengan format tampilan berbeda
  5. Baru curigai multi-device conflict — kalau semua di atas sudah benar tapi masih error, terutama saat jumlah perangkat lebih dari satu

Praktik Langsung dengan Hardware Asli

Cara paling cepat menguasai troubleshooting Modbus RTU adalah dengan sengaja membuat kesalahan kecil saat praktik, lalu belajar mengenali gejalanya.

🔧 Belum punya modul converter untuk praktik? Cek modul 4-20mA to Modbus RTU di Tokopedia: tokopedia.com/bisaioti — setiap pembelian dapat akses bonus ke kelas praktik “Batch Pendiri” di bisaioti.com/lab, termasuk panduan troubleshooting lengkap.

🎓 Mau dipandu langsung supaya tidak buang waktu debugging sendirian? Gabung kelas “Dari Sensor Industri ke Dashboard: Baca Data 4-20mA via Modbus RTU” di bisaioti.com/lab.