Modbus RTU dan Modbus TCP membawa data aplikasi yang sama (function code yang sama, register map yang sama, model data yang sama) tetapi memindahkannya melalui physical layer yang sepenuhnya berbeda. RTU adalah protokol serial yang berjalan di atas RS-485 atau RS-232, sedangkan TCP membungkus payload Modbus ke dalam paket Ethernet/IP. Memilih di antara keduanya, atau menjembatani salah satunya ke yang lain dengan gateway, bergantung pada jarak, jumlah perangkat, determinisme, penanganan error, dan bagaimana data perlu sampai ke SCADA atau platform cloud Anda.
Application Layer Sama, Transport Berbeda
Kedua varian didefinisikan oleh Modbus Application Protocol Specification yang sama, dikelola oleh Modbus Organization. Sebuah operasi read atau write dibangun dari function code (misalnya 0x03 Read Holding Registers, 0x06 Write Single Register) ditambah alamat register dan data yang relevan. Bagian itu identik. Yang berbeda adalah framing yang membungkusnya.
Pada Modbus RTU, setiap pesan adalah frame biner yang ringkas: slave address 1 byte, function code, field data, dan checksum CRC-16 2 byte. Batas frame dideteksi dari silence pada kabel, tepatnya jeda minimal 3,5 character times. Tidak ada slave address yang lebih besar dari 247, dan satu master melakukan polling banyak slave dalam urutan request/response yang ketat.
Pada Modbus TCP, CRC dan framing berbasis silence dihilangkan karena TCP/IP stack di bawahnya sudah menjamin pengiriman yang terurut dan ter-error-check. Sebagai gantinya, MBAP header (Modbus Application Protocol header) sepanjang 7 byte ditambahkan di depan: transaction identifier 2 byte, protocol identifier 2 byte (selalu 0 untuk Modbus), field length 2 byte, dan unit identifier 1 byte. Unit identifier inilah yang memungkinkan sebuah endpoint TCP/IP tunggal, seperti gateway, mengalamatkan beberapa serial slave di belakangnya.
Perbandingan Berdampingan
| Karakteristik | Modbus RTU | Modbus TCP |
|---|---|---|
| Physical layer | RS-485 (2 atau 4 kawat) atau RS-232 | Ethernet (10/100/1000), TCP/IP |
| Port default | Tidak berlaku (serial) | TCP 502 |
| Overhead frame | Address + CRC-16 (3 byte tambahan) | MBAP header 7 byte, tanpa CRC |
| Error checking | CRC-16 di dalam frame | Didelegasikan ke TCP checksum + retransmission |
| Delimiting frame | Idle time 3,5 character | Field length di MBAP header |
| Pengalamatan | Slave address 1-247 pada bus bersama | IP address + unit ID |
| Topologi | Bus multidrop, daisy chain, 1 master | Star via switch, beberapa master dimungkinkan |
| Maks node per segmen | 32 unit load (hingga 256 dengan transceiver 1/8-load) | Dibatasi oleh subnet IP dan port switch |
| Jarak maks | Hingga 1200 m pada baud rendah (sesuai EIA/TIA-485-A) | 100 m per jalur tembaga, tak terbatas via switch/fiber |
| Kecepatan tipikal | 9600 hingga 115200 baud | 10/100 Mbit/s atau lebih tinggi |
| Transaksi bersamaan | Satu polling outstanding pada satu waktu | Banyak via pipelining transaction ID |
| Determinisme | Tinggi (poll cycle dapat diprediksi pada bus khusus) | Bergantung pada beban jaringan dan switching |
| Biaya kabel | Rendah (twisted pair tunggal, daisy-chained) | Lebih tinggi (structured cabling, switch) |
Jarak, Topologi, dan Jumlah Node
RS-485 dirancang untuk plant floor. Sebuah twisted pair tunggal, yang diterminasi dengan benar menggunakan resistor 120 ohm di kedua ujung, dapat membentang hingga 1200 m pada baud rate yang lebih rendah, dan transceiver standar menampilkan satu unit load sehingga bus mendukung 32 node (lebih banyak dengan transceiver fractional-unit-load). Trade-off-nya adalah hubungan klasik antara kecepatan dan jarak: semakin panjang kabel, semakin rendah baud rate yang bisa Anda pertahankan secara andal. Kesalahan wiring, termination yang hilang, dan perbedaan ground potential adalah penyebab umum di balik error RTU yang intermiten, itulah sebabnya desain bus dan proteksi penting. Untuk detail wiring dan termination, lihat panduan kami tentang wiring RS-485, termination, dan fault umum.
Modbus TCP berjalan di atas Ethernet standar, sehingga setiap jalur tembaga individual dibatasi hingga sekitar 100 m, tetapi switch dan fiber memungkinkan Anda memperluas jaringan ke seluruh fasilitas dengan topologi star. Anda mendapatkan throughput yang lebih tinggi dan dapat memiliki beberapa SCADA client yang melakukan polling perangkat yang sama secara bersamaan, sesuatu yang tidak dapat dilakukan secara native oleh bus RTU single-master.
Error Checking dan Determinisme
RTU menyematkan CRC-16 di setiap frame, sehingga perangkat penerima memvalidasi integritas di application layer dan membuang frame yang rusak. TCP menghilangkan CRC tersebut karena transport layer sudah menyediakan checksum ditambah retransmission otomatis untuk segmen yang hilang. Kedua pendekatan ini tangguh, tetapi gagal dengan cara yang berbeda: segmen RS-485 yang bising muncul sebagai CRC error dan timeout, sedangkan link Ethernet yang padat muncul sebagai latensi dan TCP retransmission.
Untuk determinisme, bus RTU khusus sangat dapat diprediksi karena master mengontrol seluruh poll cycle dan tidak ada hal lain yang bersaing memperebutkan kabel. Pada jaringan Ethernet bersama, jitter bergantung pada traffic dan perilaku switch, sehingga untuk kontrol hard real-time engineer sering menempatkan RTU dekat dengan peralatan dan menggunakan TCP untuk data supervisory. Ketika timeout atau exception code muncul, pendekatan sistematis dalam artikel kami tentang troubleshooting error komunikasi Modbus membantu mengisolasi fault di physical-layer dari yang di protocol-level.
Kapan Mengonversi RTU ke TCP dengan Gateway
Sebagian besar instalasi nyata bersifat campuran. Field device seperti power meter, sensor suhu, dan drive berbicara RTU melalui RS-485, tetapi sistem monitoring, historian, atau platform cloud mengharapkan TCP atau MQTT. Sebuah protocol gateway menjembatani kesenjangan ini dengan melakukan polling serial slave sebagai RTU master dan menyajikannya kembali sebagai TCP server (atau mem-publish ke broker), memetakan setiap serial slave ke sebuah unit identifier.
Konversi RTU ke TCP atau MQTT ketika Anda perlu:
- Menjangkau perangkat yang secara fisik jauh dari control room melalui Ethernet yang sudah ada, alih-alih menarik kabel serial baru.
- Membiarkan beberapa client (SCADA, dashboard, analytics) membaca field device yang sama secara bersamaan.
- Memisahkan poll cycle serial yang lambat dan deterministik dari lapisan supervisory yang lebih cepat.
- Mengirim data lapangan ke platform cloud atau edge menggunakan MQTT alih-alih polling point-to-point.
Modbus gateway SRT-MGATE-1210 dari SURIOTA menjalankan peran ini secara persis: ia bertindak sebagai RTU master di sisi RS-485, mengagregasi slave yang terhubung, dan menjembataninya ke Modbus TCP dan MQTT. Hal itu menjadikannya titik integrasi antara instrumentasi serial legacy dan stack industrial IoT dan system integration modern. Jika Anda sedang mempertimbangkan di mana logika polling sebaiknya berada, perbandingan kami antara edge gateway versus PLC versus RTU membahas trade-off arsitekturalnya.
Pertanyaan yang Sering Diajukan
Apakah Modbus TCP hanya Modbus RTU di atas Ethernet?
Tidak persis begitu. Data aplikasi dan function code identik, tetapi Modbus TCP menggantikan byte address RTU dan CRC-16 dengan MBAP header 7 byte dan mengandalkan TCP untuk error checking. Varian berbeda yang disebut Modbus RTU over TCP memang membungkus seluruh frame RTU (termasuk CRC) di dalam stream TCP, yang berbeda dari Modbus TCP native dan harus dicocokkan di kedua ujung.
Bisakah satu gateway mengekspos banyak slave RTU melalui satu koneksi TCP?
Ya. Unit identifier di MBAP header memungkinkan sebuah endpoint IP tunggal merutekan request ke serial slave yang berbeda di belakang gateway, sehingga TCP client mengalamatkan setiap field device dengan slave ID aslinya.
Mana yang lebih cepat, Modbus RTU atau Modbus TCP?
Modbus TCP biasanya menawarkan throughput mentah yang lebih tinggi dan mendukung transaksi bersamaan, sedangkan bus RTU khusus menawarkan timing yang lebih dapat diprediksi. Untuk data supervisory dan banyak perangkat, TCP unggul; untuk loop kontrol lokal yang ketat dan deterministik, RTU sering lebih disukai.
Apakah saya kehilangan proteksi CRC saat menjembatani RTU ke TCP?
CRC-16 dilepas di gateway karena TCP menyediakan integritas dan retransmission-nya sendiri. Integritas end-to-end tetap terjaga, tetapi mekanisme proteksinya bergeser dari frame aplikasi ke transport layer.