Modbus RTU untuk Industrial IoT: Integrasi Sensor, PLC dan Gateway

Modbus RTU masih menjadi salah satu protokol yang sangat relevan untuk menghubungkan sensor industri, energy meter, temperature controller, PLC, HMI, gateway dan embedded controller. Pada banyak implementasi Industrial IoT, Modbus RTU berfungsi sebagai jalur komunikasi di level lapangan sebelum data diteruskan ke MQTT, database, dashboard atau aplikasi monitoring.

Hal penting yang perlu dipahami adalah RS485 dan Modbus RTU bukan hal yang sama. RS485 adalah standar electrical/physical layer untuk komunikasi serial diferensial, sedangkan Modbus RTU adalah protokol yang menentukan struktur message, function code, address, data dan pemeriksaan error.

Artikel ini merupakan Sub Content: Industrial IoT & System Integration. Untuk gambaran sistem secara menyeluruh, baca juga Arsitektur Industrial IoT: Dari Sensor hingga Dashboard dan artikel MQTT untuk Industrial IoT .

Modbus RTU Berada di Mana dalam Arsitektur Industrial IoT?

Pada arsitektur Industrial IoT, Modbus RTU biasanya digunakan untuk komunikasi antara perangkat lapangan dengan controller, gateway atau PLC. Data tersebut kemudian dapat diterjemahkan menjadi MQTT topic, HTTP API, database record atau visualisasi dashboard.

Lapisan field communication ini berkaitan langsung dengan Industrial Automation & System Integration serta Embedded Systems & Electronics Engineering.

1. RS485 sebagai Physical Layer

RS485 menggunakan sinyal diferensial sehingga lebih tahan terhadap noise dibanding komunikasi single-ended seperti UART TTL biasa. Karena itu RS485 banyak digunakan pada lingkungan industri dan jalur komunikasi yang relatif lebih panjang.

Pada implementasi dua-wire yang umum, komunikasi berjalan half-duplex. Beberapa device berbagi satu bus, tetapi pengiriman data harus diatur agar tidak terjadi collision.

Prinsip wiring yang perlu diperhatikan

  • Gunakan topologi bus/daisy-chain, bukan star tanpa alasan teknis yang jelas.
  • Gunakan twisted pair yang sesuai untuk jalur A/B.
  • Termination ditempatkan pada kedua ujung bus, bukan pada setiap node.
  • Biasing/fail-safe harus dirancang secara tepat agar line tidak floating.
  • Pertimbangkan common reference, shielding dan isolation untuk lingkungan industri.
  • Jaga stub cable tetap pendek agar refleksi signal tidak memburuk.
Catatan engineering: penamaan terminal A/B atau D+/D− dapat berbeda antar vendor. Jangan hanya mengandalkan label huruf. Periksa manual perangkat dan lakukan verifikasi komunikasi.

2. Konsep Master/Client dan Slave/Server pada Modbus RTU

Pada Modbus RTU serial, satu perangkat bertindak sebagai pihak yang menginisiasi request, sementara device lain merespons sesuai address yang dimilikinya. Banyak dokumentasi lama menggunakan istilah master/slave, sedangkan dokumentasi modern juga menggunakan istilah client/server.

Contohnya, sebuah PLC atau Raspberry Pi gateway melakukan polling terhadap energy meter. Gateway meminta nilai register tertentu, energy meter merespons, kemudian gateway memproses nilai tersebut.

3. Struktur Frame Modbus RTU

4. Function Code yang Sering Digunakan

Function Code Fungsi Contoh Penggunaan
01Read CoilsMembaca status output digital
02Read Discrete InputsMembaca status input digital
03Read Holding RegistersMembaca parameter atau data register
04Read Input RegistersMembaca data measurement
05Write Single CoilMengubah satu output digital
06Write Single RegisterMenulis satu register
15Write Multiple CoilsMenulis beberapa coil
16Write Multiple RegistersMenulis beberapa register

Tidak semua device mendukung seluruh function code. Selalu cek datasheet atau Modbus register map dari vendor.

5. Register Map adalah Dokumen Kunci

Salah satu sumber masalah terbesar pada integrasi Modbus adalah membaca register tanpa memahami register map. Register map menjelaskan address, jenis data, access mode, scaling dan arti setiap nilai.

Contoh sederhana:

Register 0x0000  → Voltage
Register 0x0001  → Current
Register 0x0002  → Power
Register 0x0003  → Frequency

Pada device nyata, satu nilai dapat menggunakan satu atau beberapa register. Float 32-bit misalnya biasanya menggunakan dua register 16-bit sehingga urutan word menjadi hal penting.

6. Addressing: 40001 Bukan Selalu Address yang Dikirim

Dokumentasi Modbus sering menampilkan notasi seperti 40001, 40002 dan seterusnya. Namun address yang dikirim di dalam frame Modbus dapat menggunakan offset berbasis nol. Karena itu register 40001 pada dokumentasi tertentu dapat dipanggil sebagai address 0.

Best practice: jangan menebak register offset. Periksa apakah vendor mendokumentasikan register number, protocol address, decimal offset atau hexadecimal address.

7. Data Type, Scaling dan Endianness

Modbus register berukuran 16-bit, tetapi data nyata tidak selalu 16-bit. Vendor dapat menyimpan nilai sebagai unsigned integer, signed integer, 32-bit integer, floating point atau kombinasi beberapa register.

Selain itu, beberapa device menggunakan scaling. Sebagai contoh, nilai register 2305 dapat berarti 230.5 V jika scale factor-nya 0.1.

Pada data 32-bit, perbedaan urutan byte dan word juga perlu diperhatikan. Jika nilai hasil pembacaan tampak sangat tidak masuk akal, periksa kemungkinan byte order atau word order yang berbeda.

8. Baud Rate, Parity dan Serial Setting Harus Sama

Seluruh device pada bus harus menggunakan konfigurasi serial yang kompatibel. Parameter yang perlu diperiksa biasanya mencakup:

  • Baud rate.
  • Data bits.
  • Parity.
  • Stop bits.
  • Device/Slave address.

Contoh konfigurasi yang sering ditemukan:

Baud rate : 9600
Data bits : 8
Parity    : None
Stop bits : 1
Address   : 1

Contoh ini bukan standar wajib untuk semua device. Gunakan setting sesuai manual masing-masing perangkat.

9. Polling Strategy untuk Industrial IoT

Gateway Modbus biasanya melakukan polling register secara periodik. Polling terlalu cepat dapat membebani bus, controller atau device, sedangkan polling terlalu lambat dapat membuat dashboard kurang responsif.

Hal yang perlu dipertimbangkan saat menentukan polling interval

  • Seberapa cepat proses berubah.
  • Jumlah device dalam satu bus.
  • Jumlah register yang dibaca.
  • Baud rate komunikasi.
  • Timeout dan retry policy.
  • Kebutuhan dashboard dan historical logging.

Jangan membaca semua register jika hanya beberapa parameter yang dibutuhkan. Grouping register yang berdekatan dapat mengurangi jumlah transaction jika device mendukungnya.

10. Timeout, Retry dan Error Handling

Komunikasi industri harus mengantisipasi kegagalan. Device dapat offline, kabel dapat terputus, noise dapat merusak frame atau response dapat terlambat.

Gateway sebaiknya memiliki timeout dan retry policy yang rasional. Selain itu, status kualitas data juga penting. Jangan hanya menyimpan nilai terakhir tanpa mengetahui apakah nilai tersebut masih valid.

Contoh status data yang dapat disimpan:

value      : 230.5
quality    : good
timestamp  : 2026-10-06T19:30:00+07:00
source     : meter01

11. Dari Modbus RTU ke MQTT

Salah satu pola paling efektif untuk Industrial IoT adalah menggunakan Modbus RTU di field layer, kemudian gateway menerjemahkan data register menjadi MQTT message.

Contoh mapping:

Modbus Device : Energy Meter #1
Register      : 0x0000
Meaning       : Voltage
Scale         : 0.1

MQTT Topic:
factory/line1/meter01/voltage

MQTT Payload:
{"value":230.5,"unit":"V"}

Artikel tentang MQTT dapat dibaca di MQTT untuk Industrial IoT: Publish/Subscribe, Broker, Topic dan Arsitektur .

12. Contoh Arsitektur Sensor / PLC → Gateway → Server

13. Integrasi Modbus RTU dengan PLC dan HMI

Pada sistem automation, PLC dapat menjadi controller utama yang membaca sensor melalui Modbus RTU, menjalankan control logic dan menyediakan data ke HMI. Gateway atau server kemudian dapat membaca register tertentu dari PLC untuk kebutuhan Industrial IoT.

Pendekatan ini sering lebih aman daripada membuat server mengendalikan seluruh proses secara langsung. Control utama tetap berada di PLC, sedangkan server fokus pada monitoring, logging, reporting dan analytics.

Untuk pembahasan lebih luas mengenai layer control, lihat Industrial Automation & System Integration .

14. Modbus RTU pada Embedded Controller

ESP32, STM32, Arduino, Raspberry Pi Pico dan microcontroller lain dapat digunakan sebagai Modbus client/master maupun server/slave tergantung kebutuhan dan library yang digunakan. Pada hardware level, UART controller perlu dihubungkan ke RS485 transceiver.

Untuk transceiver half-duplex, pin Driver Enable (DE) dan Receiver Enable (RE) perlu dikontrol sesuai arah komunikasi. Firmware harus memastikan transmitter kembali ke receive mode setelah frame selesai dikirim.

Integrasi hardware dan firmware ini merupakan bagian dari Embedded Systems & Electronics Engineering .

15. Troubleshooting Modbus RTU

Ketika komunikasi Modbus tidak berjalan, lakukan troubleshooting secara berurutan. Jangan langsung mengganti library atau program sebelum physical layer diperiksa.

Kesalahan Umum dalam Implementasi Modbus RTU

  • Menyamakan RS485 dengan Modbus RTU.
  • Menukar A/B tanpa memeriksa manual vendor.
  • Membuat topologi star pada bus yang panjang.
  • Memasang termination pada semua node.
  • Menggunakan address register yang salah karena perbedaan offset.
  • Tidak memperhatikan signed/unsigned, scaling dan word order.
  • Polling terlalu cepat tanpa mempertimbangkan jumlah device.
  • Tidak menyimpan timestamp dan data quality.
  • Mengirim control command dari server tanpa interlock atau fail-safe.

Best Practice untuk Gateway Modbus ke Industrial IoT

Hubungan Modbus RTU dengan Infrastruktur Network dan Server

Modbus RTU sendiri berjalan pada serial bus, tetapi gateway yang membawa data ke layer IoT membutuhkan network infrastructure yang stabil. Gateway dapat berada pada VLAN khusus, mengakses MQTT Broker melalui LAN atau VPN, dan mengirim data ke server yang menjalankan broker, database serta backend application.

Untuk layer tersebut, lanjutkan ke:

Pendekatan Engineering yang Saya Gunakan

Saya lebih memilih memulai implementasi Modbus dari dokumentasi device dan kebutuhan data. Tentukan parameter yang benar-benar diperlukan, pahami register map, verifikasi physical layer, uji komunikasi satu device terlebih dahulu, kemudian baru memperluas bus dan menghubungkannya ke gateway.

Design sequence:
Device Manual → Wiring → Serial Setting → Register Map → Single Device Test → Multi-Device Bus → Polling Strategy → Data Validation → MQTT/API Mapping → Database → Dashboard.

Penutup

Modbus RTU tetap relevan karena banyak perangkat industri masih menggunakan protocol ini sebagai antarmuka komunikasi. Dalam Industrial IoT, Modbus RTU dapat menjadi bridge antara perangkat lapangan yang stabil dan ekosistem digital yang lebih modern seperti MQTT, database, web dashboard dan analytics.

Implementasi yang baik membutuhkan pemahaman bukan hanya pada code, tetapi juga RS485 wiring, register addressing, data type, timing, polling, error handling dan integration architecture. Ketika seluruh layer tersebut dirancang dengan benar, Modbus RTU dapat menjadi bagian yang sangat andal dari sistem Industrial IoT end-to-end.

INDUSTRIAL IOT PILLAR

Tempatkan Modbus RTU dalam Arsitektur Industrial IoT

Pelajari bagaimana Modbus RTU terhubung dengan embedded systems, industrial automation, network infrastructure, MQTT, server dan dashboard dalam sistem end-to-end.

Buka Pillar Industrial IoT →



ELGA ARIS PRASTYO