Koneksi Node-RED ke Modbus RTU: node-red-contrib-modbus Tutorial

Setelah Node-RED terinstall, langkah berikutnya adalah menghubungkannya ke perangkat industri Anda. Karena Modbus RTU adalah protokol paling umum digunakan pada PLC, sensor, dan konverter industri, node komunitas node-red-contrib-modbus menjadi jembatan penting yang akan kita bahas tuntas di artikel ini.

Deretan terminal block dengan wiring rapi, ilustrasi koneksi RS485 untuk Modbus RTU
Koneksi fisik RS485 yang rapi adalah kunci komunikasi Modbus RTU yang stabil.

Mengenal node-red-contrib-modbus

node-red-contrib-modbus adalah paket node pihak ketiga paling populer untuk komunikasi Modbus di ekosistem Node-RED. Paket ini mendukung baik Modbus RTU (via serial/RS485) maupun Modbus TCP, dan menyediakan beberapa jenis node utama:

  • Modbus-Read — membaca register/coil dari slave Modbus secara periodik.
  • Modbus-Write — menulis nilai ke register/coil slave, misalnya untuk mengontrol output.
  • Modbus-Getter/Response — kombinasi trigger dan pembacaan data secara manual/on-demand.
  • Modbus-Server — menjadikan Node-RED sebagai Modbus slave/server, kebalikan dari mode master.

Instalasi Node-RED-Contrib-Modbus

Buka editor Node-RED, klik menu hamburger di kanan atas, pilih Manage Palette, lalu masuk ke tab Install. Cari “node-red-contrib-modbus” dan klik install. Setelah selesai, beberapa node baru dengan ikon Modbus akan muncul di palet sebelah kiri editor.

Konfigurasi Koneksi Modbus RTU

Drag node Modbus-Read ke canvas, lalu double-click untuk membuka konfigurasinya. Pada bagian server connection, klik ikon pensil untuk membuat koneksi baru dengan parameter berikut:

  • Type — pilih Serial untuk Modbus RTU (via USB-to-RS485 converter).
  • Serial Port — pilih port yang sesuai, misalnya /dev/ttyUSB0 di Linux/Raspberry Pi atau COM3 di Windows.
  • Baud Rate — sesuaikan dengan setting slave, umumnya 9600 atau 19200.
  • Parity, Data Bits, Stop Bits — pastikan sama persis dengan konfigurasi perangkat slave (biasanya None, 8, 1).

Selanjutnya, setelah koneksi tersimpan, atur parameter pembacaan pada node Modbus-Read:

  • Unit-Id — alamat slave Modbus (1-247).
  • FC (Function Code) — pilih sesuai jenis data, misalnya FC3 untuk Holding Register atau FC4 untuk Input Register.
  • Address — alamat register awal yang ingin dibaca.
  • Quantity — jumlah register yang dibaca sekaligus.
  • Poll Rate — interval pembacaan otomatis, misalnya setiap 1000ms.
Tiga gauge tekanan terpasang di panel industri
Sensor tekanan seperti ini biasanya terhubung via konverter Modbus RTU.

Contoh Flow Sederhana: Membaca Sensor Tekanan

Sebagai contoh, misalkan Anda punya sensor tekanan 4-20mA yang terhubung ke konverter Modbus RTU dengan data tekanan di Holding Register alamat 0. Susun flow sederhana:

[Modbus-Read] → [Function: scaling] → [Debug]

Node Function digunakan untuk mengonversi nilai mentah dari register (biasanya 0-65535 atau sesuai spesifikasi sensor) ke satuan teknik seperti bar atau psi:

const raw = msg.payload[0];
const scaled = (raw / 65535) * 10; // contoh: 0-10 bar
msg.payload = scaled;
return msg;

Hasil pembacaan yang sudah di-scaling ini kemudian bisa diteruskan ke node Debug untuk verifikasi, atau ke dashboard gauge yang akan dibahas di artikel berikutnya.

Membaca Banyak Register Sekaligus dan Parsing Data 32-bit

Banyak instrumen industri modern seperti flow meter atau power meter menyimpan nilai dalam format 32-bit (float atau long integer) yang tersebar di dua register 16-bit berurutan. Saat Quantity pada node Modbus-Read diatur menjadi 2 atau lebih, payload yang dihasilkan berupa array berisi beberapa nilai register mentah, bukan satu angka tunggal.

Oleh karena itu, untuk menggabungkan dua register menjadi satu nilai 32-bit, tambahkan node Function setelah Modbus-Read dengan logika berikut:

const buf = Buffer.alloc(4);
buf.writeUInt16BE(msg.payload[0], 0);
buf.writeUInt16BE(msg.payload[1], 2);
msg.payload = buf.readFloatBE(0);
return msg;

Selain itu, perlu diperhatikan bahwa urutan word (word order) berbeda-beda antar merek perangkat — sebagian memakai big-endian (high word lebih dulu), sebagian little-endian. Jika hasil pembacaan tidak masuk akal, coba tukar urutan register sebelum melakukan konversi ke float.

Mengelola Beberapa Slave Modbus RTU dalam Satu Bus RS485

Sebagai contoh, pada instalasi nyata, satu jalur RS485 sering menghubungkan lebih dari satu perangkat slave — misalnya beberapa sensor, PLC, dan power meter sekaligus dengan Unit-Id berbeda-beda. Karena Modbus RTU bersifat half-duplex dan hanya mengizinkan satu permintaan aktif dalam satu waktu, seluruh node Modbus-Read yang berbagi bus fisik yang sama sebaiknya menggunakan server connection yang sama, bukan koneksi serial terpisah untuk tiap node.

  • Gunakan satu server connection — buat satu konfigurasi serial dan pakai ulang (share) di semua node Modbus-Read/Write yang membaca slave berbeda pada bus fisik yang sama.
  • Atur Unit-Id sesuai device — setiap node cukup mengganti nilai Unit-Id sesuai alamat slave tujuan, tanpa mengubah parameter serial lainnya seperti baud rate atau parity.
  • Perhatikan poll rate gabungan — semakin banyak slave yang dibaca bergantian dalam satu bus Modbus RTU, semakin besar total waktu siklus polling; turunkan frekuensi per node jika bus mulai lambat merespons.
  • Hindari polling bersamaan — jika terjadi bentrok atau error acak saat banyak node aktif, tambahkan node Delay kecil di antara permintaan agar bus mendapat jeda sebelum menerima request berikutnya.

Dengan demikian, pendekatan ini membuat flow Node-RED tetap rapi meski jumlah perangkat Modbus RTU yang dipantau terus bertambah, tanpa perlu menambah converter USB-to-RS485 baru untuk setiap slave tambahan pada bus yang sama.

Troubleshooting Masalah Koneksi Umum

  • Timeout / tidak ada respons — periksa kembali baud rate, parity, dan wiring RS485 (A/B tidak boleh terbalik).
  • Data selalu 0 atau error — pastikan Unit-Id dan Function Code sesuai dengan dokumentasi perangkat slave.
  • Port serial tidak terdeteksi — di Linux, pastikan user Node-RED punya izin akses ke /dev/ttyUSB0 (biasanya perlu ditambahkan ke grup dialout).
  • Koneksi terputus-putus — turunkan poll rate atau periksa kualitas kabel RS485, terutama pada instalasi dengan jarak kabel panjang atau banyak noise elektrik.

Akhirnya, dengan koneksi Modbus RTU yang stabil, Anda sudah punya fondasi data real-time dari perangkat industri. Langkah berikutnya adalah menampilkan data ini dalam bentuk dashboard gauge dan trend chart yang mudah dibaca operator — dibahas lengkap di artikel selanjutnya.

📌 Call to Action

  • Siap mulai membangun dashboard monitoring industri Anda sendiri? Dapatkan modul konverter Modbus RTU sebagai titik awal proyek Anda → tokopedia.com/bisaioti
  • Ingin dipandu dari instalasi hingga dashboard benar-benar berjalan? Ikuti kelas “Node-RED untuk Monitoring Industri” → bisaioti.com/lab