---
title: "Modbus Adalah: RTU vs TCP, Register, Function Code | Citia"
description: "Modbus adalah protokol industri terbuka: RTU di RS-485 dengan CRC, TCP di Ethernet port 502. Pelajari register, function code, contoh frame, dan gateway."
url: https://citia-engineering.com/id/knowledge/modbus
language: id
updated: 2026-11-13
type: article
site: Citia Engineering Indonesia
---

# Modbus adalah: RTU vs TCP, register, dan function code

Modbus adalah protokol terbuka untuk perangkat industri. Panduan ini membandingkan Modbus RTU dan TCP serta menjelaskan register, function code, frame, dan gateway.

| Info | Isi |
| --- | --- |
| Topik | Protokol industri |
| Penulis | Tim Engineering Citia |
| Diperbarui | 2026-11-13 |

Ringkasan

Modbus adalah protokol komunikasi terbuka untuk perangkat industri; Modbus RTU berjalan di jalur serial seperti RS-485 dengan pemeriksaan CRC, sedangkan Modbus TCP berjalan di Ethernet TCP/IP pada port 502. Modbus Organization menyebutnya standar de facto komunikasi serial di industri sejak 1979, dalam Modbus Application Protocol Specification V1.1b3.

Di terminal BBM, Modbus membawa pembacaan dari automatic tank gauge (ATG), flow meter, motor-operated valve (MOV), dan power meter ke PLC, SCADA, dan perangkat lunak manajemen tangki. Modbus hanya memindahkan angka, bukan arti. Register map dari pembuat perangkat yang menjelaskan arti setiap angka, satuannya, dan formatnya.

Modbus tetap banyak dipakai karena mudah diterapkan, dokumen spesifikasinya bisa diunduh gratis, dan hampir semua PLC, gateway, serta paket SCADA mendukungnya. Konsekuensi dari kesederhanaan itu: Modbus tidak mengenal satuan, status kualitas data, maupun keamanan. Kekurangan tersebut harus ditutup dengan dokumentasi yang rapi, desain jaringan yang benar, dan bila perlu protokol yang lebih baru seperti OPC UA atau MQTT di lapisan atasnya.

Bagi tim terminal, memahami Modbus berarti bisa membaca sendiri dokumen vendor, memeriksa pengaturan gateway, dan membedakan gangguan kabel dari kesalahan konfigurasi. Kemampuan dasar ini mempersingkat waktu pencarian gangguan ketika data tangki atau status valve tiba-tiba berhenti di layar operator.

- Modbus adalah protokol tanya-jawab terbuka: client bertanya, satu server menjawab, dan server tidak pernah mengirim data tanpa diminta.
- Modbus RTU berjalan di jalur serial seperti RS-485 dengan pemeriksaan CRC; Modbus TCP berjalan di Ethernet pada port 502 dengan header MBAP 7 byte sebagai pengganti CRC.
- Semua data Modbus tersimpan di empat tabel: coil, discrete input, input register, dan holding register.
- Delapan function code publik (01-06, 15, 16) sudah mencakup sebagian besar pekerjaan integrasi lapangan.
- Register map dari vendor perangkat menentukan berhasil tidaknya integrasi, jadi cocokkan dengan firmware yang terpasang.

## Cara kerja Modbus: satu perangkat bertanya, satu menjawab

Modbus bekerja seperti absensi: satu perangkat bertanya, dan hanya perangkat yang dipanggil yang menjawab.

Spesifikasinya menempatkan Modbus di lapisan aplikasi (lapisan 7 model OSI) sebagai protokol tanya-jawab (request/reply). Perangkat yang bertanya disebut client, atau master pada jalur serial. Perangkat yang menjawab disebut server, atau slave pada jalur serial. Server tidak pernah mengirim data atas inisiatif sendiri, sehingga protokolnya ringkas dan siklus polling mudah diperkirakan.

Setiap permintaan membawa function code yang menyatakan perintahnya, misalnya membaca register atau menulis coil, ditambah data yang menyatakan alamat dan jumlahnya. Server mengirim balik datanya, atau mengirim exception response. Balasan itu memakai function code yang sama ditambah 0x80, diikuti satu byte exception code yang menjelaskan alasan penolakan.

Di terminal pada umumnya, server SCADA atau gateway industri berperan sebagai client. Ia membaca setiap perangkat bergantian: tank gauge, flow computer, aktuator valve, power meter. Waktu satu putaran polling bertambah seiring jumlah perangkat dan register, jadi daftar polling perlu dirancang sama seriusnya dengan pengkabelan.

Pada jalur serial, client juga bisa mengirim broadcast ke alamat 0. Semua server menjalankan perintahnya tetapi tidak ada yang membalas, sehingga broadcast hanya cocok untuk perintah tulis. Setelah broadcast, client menunggu jeda turnaround sebelum mengirim permintaan berikutnya. Spesifikasi serial menyebut 100 sampai 200 ms sebagai nilai jeda yang umum, dan response timeout satu sampai beberapa detik pada 9600 baud untuk permintaan biasa.

- Server SCADA atau TMS: Client Modbus. Membaca tiap perangkat dan menyimpan nilainya sebagai tag.
- Gateway industri: Modbus TCP di sisi jaringan, Modbus RTU di sisi RS-485.
- Tank gauge (ATG): Server alamat 1: level, air, dan temperatur.
- Aktuator valve (MOV): Server alamat 2: posisi, status, dan perintah.
- Power meter: Server alamat 3: tegangan, arus, dan energi.

## Modbus RTU vs Modbus TCP: apa bedanya

Modbus RTU dan Modbus TCP membawa permintaan yang sama; yang berbeda adalah kabel di bawahnya dan cara setiap frame dibungkus.

Modbus RTU mengirim frame biner lewat jalur serial, biasanya RS-485 dua kawat. Frame diawali alamat server, lalu function code, data, dan CRC 16-bit. Modbus over Serial Line specification V1.02 menetapkan alamat 1 sampai 247 untuk server dan menyisakan 0 untuk broadcast. Antar-frame dipisahkan jeda diam minimal 3,5 karakter, dan format bawaannya 8 bit data dengan parity even.

Modbus TCP memasukkan protocol data unit (PDU) yang sama ke dalam paket TCP/IP. Alamat serial dan CRC hilang. Penggantinya header MBAP 7 byte yang berisi transaction identifier, protocol identifier, panjang data, dan unit identifier. Messaging on TCP/IP Implementation Guide mencadangkan port 502, dan IANA mencatat port itu dengan nama mbap.

Pilih berdasarkan topologi, bukan kebiasaan. RS-485 cocok untuk deretan perangkat lapangan yang tersebar ratusan meter dengan satu pasang kabel. Ethernet cocok untuk panel dan server yang sudah berada di satu jaringan, dan memungkinkan beberapa client membaca perangkat yang sama jika perangkat itu menerima lebih dari satu koneksi.

Semua perangkat dalam satu jalur RTU wajib memakai baud rate, parity, dan stop bit yang sama. Spesifikasi serial mewajibkan dukungan 9600 dan 19200 baud, dengan 19200 sebagai nilai bawaan, dan mensyaratkan 2 stop bit jika parity tidak dipakai. Ada juga bentuk serial ketiga, Modbus ASCII, yang mengirim karakter terbaca dengan pemeriksaan LRC; bentuk ini masih ditemui di peralatan lama tetapi jarang di terminal baru.

- Lapisan fisik: Jalur serial, umumnya RS-485 dua kawat; RS-232 untuk titik ke titik | Ethernet dengan TCP/IP
- Peran: Satu master dan hingga 247 slave per jalur | Client dan server; beberapa client bisa membaca satu server
- Pengalamatan: Alamat slave di setiap frame | Alamat IP ditambah unit identifier di header MBAP
- Pemeriksaan galat: CRC-16 di akhir setiap frame | Ditangani TCP; tanpa CRC Modbus
- Batas frame: Jeda diam minimal 3,5 karakter | Kolom panjang di header MBAP
- Jangkauan: Hingga 1000 m pada 9600 baud dengan kabel AWG26 atau lebih besar (spesifikasi serial V1.02) | Ditentukan segmen Ethernet; diperpanjang dengan switch atau fiber optik

## Coil, discrete input, dan register

Modbus menyimpan data di empat tabel, dan setiap nilai yang dibaca pasti berada di salah satunya.

Application Protocol Specification mendefinisikan dua tabel bit tunggal dan dua tabel 16-bit. Coil adalah bit baca-tulis untuk perintah seperti buka atau stop. Discrete input adalah bit baca saja, misalnya limit switch atau kontak alarm. Input register adalah word baca saja, biasanya hasil ukur. Holding register adalah word baca-tulis untuk setpoint dan konfigurasi, dan banyak perangkat juga menaruh hasil ukur di sana.

Setiap tabel dapat memuat hingga 65.536 item, dengan alamat 0 sampai 65535 di dalam frame. Nilai dikirim big-endian, byte tinggi lebih dulu. Nilai yang lebih lebar dari 16 bit, misalnya float 32-bit untuk level tangki, menempati dua register, dan urutan word-nya ditentukan pembuat perangkat.

Keempat tabel itu bisa berupa area memori terpisah atau saling tumpang tindih di dalam perangkat; spesifikasi membolehkan keduanya. Dalam praktik, banyak tank gauge dan meter menaruh semua datanya sebagai holding register, sehingga client sering cukup memakai function code 03 untuk membaca dan 06 atau 16 untuk menulis.

- Coil: 1 bit, baca-tulis (FC 01, 05, 15)
- Discrete input: 1 bit, baca saja (FC 02)
- Input register: Word 16-bit, baca saja (FC 04)
- Holding register: Word 16-bit, baca-tulis (FC 03, 06, 16)
- Item per tabel: Hingga 65.536 (alamat 0-65535)
- Urutan byte: Big-endian di dalam setiap register

## Isi register map Modbus

Register map adalah kamus sebuah perangkat: daftar alamat, nilai yang disimpan di alamat itu, format, dan satuannya.

Dua kebiasaan penulisan paling sering membingungkan di hari pertama. Banyak manual menulis holding register sebagai 40001, 40002, dan seterusnya, penomoran warisan kontroler Modicon. Frame sendiri membawa alamat yang dimulai dari nol, jadi 40001 dikirim sebagai 0. Contoh di Application Protocol Specification membaca register 108 sampai 110 dengan alamat awal 107 (0x006B).

Jebakan kedua adalah tipe data. Level yang dikirim sebagai FLOAT32 harus dibaca dua register sekaligus dalam satu permintaan dan diurai dengan urutan word yang benar. Jika dibaca dalam dua permintaan, kedua bagiannya bisa berasal dari scan yang berbeda. Register integer sering punya faktor skala yang harus diterapkan client sebelum nilainya tampil di layar operator.

Minta register map yang sesuai dengan firmware terpasang, bukan brosur merek. INTEGRA TMS membaca ATG buatan Honeywell, Endress+Hauser, dan Tokyo Keiso, dan dua gauge dari pabrikan yang sama pun bisa punya register map berbeda.

Register map yang layak pakai sudah menjelaskan empat hal berikut sebelum ada yang membuka laptop di lokasi:

```
Example register map: tank gauge on RS-485 (illustrative, not a real device)
Server address: 1   Baud: 9600   Format: 8 data bits, even parity, 1 stop bit

Manual ref  PDU addr  Words  Type     Unit    Value
40001       0         2      FLOAT32  mm      Product level
40003       2         2      FLOAT32  mm      Free water level
40005       4         2      FLOAT32  degC    Average product temperature
40007       6         1      UINT16   -       Status bits (0 = level OK, 1 = gauge fault)
40008       7         1      UINT16   -       Alarm bits (0 = H, 1 = HH, 2 = L, 3 = LL)

Notes
- FLOAT32 spans two registers. Word order: high word first (check the manual).
- Read 40001 to 40008 in one request: FC 03, start 0, quantity 8.
```

Contoh register map untuk tank gauge. Hanya ilustrasi; pakai register map dari manual perangkat Anda.

- Pengalamatan: dimulai dari nol atau dari satu, dan setiap alamat masuk ke tabel yang mana. Tanpa informasi ini, semua tag berisiko bergeser satu register.
- Tipe data: INT16, UINT16, INT32, atau FLOAT32, beserta urutan word untuk setiap nilai 32-bit. Urutan yang terbalik menghasilkan angka yang tampak acak.
- Satuan dan skala: satuan teknik, faktor skala, dan nilai khusus yang berarti "tidak ada pembacaan" atau "gauge rusak".
- Hak tulis: register mana yang boleh ditulis, dan apa yang dilakukan perangkat ketika register itu ditulis.

## Function code Modbus yang paling sering dipakai

Function code adalah kata kerja dalam permintaan Modbus: satu byte yang memberi tahu server apakah harus membaca atau menulis, dan tabel mana yang dipakai.

Delapan kode publik sudah mencakup hampir semua pekerjaan integrasi lapangan. Kode lain di luar delapan ini, misalnya untuk diagnostik serial atau akses file record, jarang dibutuhkan untuk integrasi tangki, meter, dan valve. Application Protocol Specification membatasi setiap pembacaan: hingga 2000 coil atau discrete input, dan hingga 125 register untuk function code 03 dan 04. Function code 16 menulis hingga 123 register dalam satu frame.

Saat perangkat menolak permintaan, ia membalas dengan function code ditambah 0x80. Exception 01 berarti fungsi tidak didukung, 02 berarti alamat tidak ada, 03 berarti ada nilai yang tidak valid di permintaan, dan 04 berarti perangkat gagal saat menjalankannya. Gateway menambahkan 0A dan 0B jika jalur atau perangkat di belakangnya tidak menjawab.

Hati-hati memakai kode tulis di plant yang sedang beroperasi. Function code 05, 06, 15, dan 16 langsung mengubah output dan setpoint tanpa langkah konfirmasi di dalam protokol. Sepakati sejak desain register mana yang boleh ditulis client, uji penulisan pada jendela kerja yang disetujui, dan tetap tempatkan perintah ke valve dan pompa di belakang interlock sistem kontrol.

- 01 (0x01): Read Coils | Coil | Membaca perintah jalan pompa
- 02 (0x02): Read Discrete Inputs | Discrete input | Membaca limit switch dan kontak alarm
- 03 (0x03): Read Holding Registers | Holding register | Membaca level tangki, setpoint, totalisator meter
- 04 (0x04): Read Input Registers | Input register | Membaca hasil ukur pada banyak meter
- 05 (0x05): Write Single Coil | Coil | Mengirim perintah buka, tutup, atau stop ke valve
- 06 (0x06): Write Single Register | Holding register | Mengubah satu setpoint
- 15 (0x0F): Write Multiple Coils | Coil | Mengubah sekelompok output sekaligus
- 16 (0x10): Write Multiple Registers | Holding register | Menulis preset batch atau nilai 32-bit

## Membaca frame Modbus byte demi byte

Frame Modbus hanyalah deretan byte pendek, dan membacanya secara manual adalah cara tercepat menyelesaikan perselisihan antara dua sistem.

Contoh di bawah memakai permintaan dari Application Protocol Specification: membaca tiga holding register mulai alamat 107. Di RS-485, client mengirim alamat server (di sini 0x11), PDU, lalu CRC dengan byte rendah lebih dulu. Di Ethernet, PDU yang sama mengikuti header MBAP 7 byte dan tidak membawa CRC.

Spesifikasi membatasi PDU sebesar 253 byte, sehingga frame RTU paling panjang 256 byte dan frame TCP paling panjang 260 byte. Batas ini menjelaskan mengapa client memecah blok register yang panjang menjadi beberapa permintaan.

Untuk melihat frame sebenarnya, pasang serial monitor atau alat uji Modbus di jalur, atau rekam lalu lintas Ethernet di port switch. Bandingkan yang dikirim client dengan yang diharapkan manual. Alamat awal yang salah, balasan yang tidak datang, atau CRC yang gagal terlihat jelas di byte mentah, jauh sebelum muncul sebagai nilai yang membeku di HMI.

```modbus
Read holding registers 108 to 110 (example from the Modbus Application Protocol Specification V1.1b3)

PDU (same on every medium)
  03          function code: read holding registers
  00 6B       starting address 107 (register 108, zero-based)
  00 03       quantity: 3 registers

Modbus RTU on RS-485, server address 0x11
  Request : 11 03 00 6B 00 03 76 87
            addr fc  start  qty   CRC (low byte first)
  Response: 11 03 06 02 2B 00 00 00 64 C8 BA
            addr fc  bytes reg108 reg109 reg110 CRC
            reg108 = 0x022B = 555, reg109 = 0, reg110 = 100

Modbus TCP, port 502, unit identifier 0x11
  Request : 00 01 00 00 00 06 11 03 00 6B 00 03
            trans proto length unit | PDU (no CRC)

Exception example (register does not exist)
  Response: 11 83 02 C1 34
            fc 0x03 + 0x80 = 0x83, exception 02 = illegal data address
```

Permintaan dan balasan dalam Modbus RTU dan Modbus TCP, beserta balasan exception. Nilai CRC dihitung untuk contoh ini.

- 253 bytes Ukuran PDU maksimum Modbus Application Protocol V1.1b3
- 256 bytes Frame RTU maksimum di RS-485 Alamat + PDU + CRC 2 byte
- 260 bytes Frame Modbus TCP maksimum Header MBAP 7 byte + PDU
- 502 Port TCP terdaftar Panduan Modbus TCP; IANA "mbap"

## Kapan butuh gateway Modbus

Gateway Modbus adalah penerjemah yang memungkinkan client TCP di jaringan membaca perangkat RTU di jalur serial.

Gateway menerima permintaan Modbus TCP, memakai unit identifier untuk memilih perangkat serial, mengirim frame RTU ke RS-485, menunggu balasan, lalu meneruskannya lewat TCP. Alasan umum memasang gateway: server SCADA tidak punya port serial, beberapa sistem membutuhkan data lapangan yang sama, atau ujung jalur serial jauh dari control room. Di terminal BBM, gateway biasanya dipasang di panel dekat perangkat lapangan atau di ruang server, tergantung panjang kabel serial dan jaringan yang tersedia.

Gateway membawa pengaturan sendiri dan titik gagal sendiri. Timeout di sisi TCP harus lebih panjang dari waktu jawab perangkat serial, kalau tidak client menyerah saat gateway masih menunggu. Exception 0A (jalur tidak tersedia) dan 0B (perangkat tujuan tidak menjawab) berasal dari gateway itu sendiri, sehingga membantu memisahkan gangguan jaringan dari perangkat lapangan yang mati.

Tidak semua kotak konverter serial ke Ethernet adalah gateway Modbus. Serial device server dalam mode transparan hanya meneruskan byte, sehingga client tetap berbicara Modbus RTU lengkap dengan CRC melalui virtual COM port atau socket TCP mentah. Gateway Modbus mengubah format frame RTU menjadi TCP dan sebaliknya. Pastikan mode yang dipakai perangkat itu sebelum menyalahkan perangkat lapangan.

- Kumpulkan pengaturan serial: Baud rate, parity, stop bit, dan alamat setiap perangkat di jalur, diambil dari perangkatnya, bukan dari gambar lama.
- Petakan unit identifier ke perangkat: Catat unit identifier yang harus dipakai client untuk menjangkau setiap alamat serial.
- Atur timeout berlapis: Timeout serial di gateway lebih dulu, lalu timeout yang lebih panjang di client TCP.
- Uji dari client sebenarnya: Baca nilai yang sudah diketahui dari SCADA atau TMS, bukan hanya dari halaman web gateway.
- Lindungi kedua sisi: Pasang proteksi surja di jalur RS-485 dan jalur Ethernet jika rawan petir atau lonjakan akibat switching.

## Modbus di lapangan: pelajaran dari proyek Citia

Sebagian besar gangguan Modbus yang ditemukan PT Citia Engineering Indonesia (Citia) di lapangan berada di kabel, konverter, atau konfigurasi, bukan di protokolnya.

Di Fuel Terminal Jambi, perintah dan umpan balik motor-operated valve berjalan dari aktuator Flowserve Limitorque lewat RS-485, melalui surge protection device, ke gateway Advantech ECU-1051, lalu lewat Ethernet ke SCADA InduSoft. Gateway membaca setiap aktuator berdasarkan alamat perangkat, register, function code, baud rate, dan parity yang dikonfigurasi.

Di terminal yang sama, Citia mengganti gateway ATG yang rusak di antara tank gauge dan TMS. Pekerjaan itu sekaligus menambahkan surge protector di jalur RS-485 Modbus dan jalur Ethernet. Hasilnya menegaskan satu aturan: setiap penggantian gateway diakhiri uji ujung ke ujung dari ATG sampai TMS.

Di Cikampek, gateway serial Moxa NPort 5160 untuk pembacaan meter diganti lalu parameter serial dan jaringannya diatur ulang. Di Eltech, data panel busbar baru masuk ke SCADA pusat setelah alamat Modbus, register mapping, dan pengaturan IP divalidasi bertahap.

Komunikasi hanya separuh jawaban. Pada investigasi gangguan ATG di Redeco , pemulihan jalur data membuat pembacaan muncul kembali, tetapi hasil assessment mencatat bahwa langkah itu tidak memulihkan akurasi sensor yang sudah menurun. Modbus hanya bisa mengantarkan angka yang diukur perangkat.

Tips lapangan: mulai dari satu nilai yang bisa dicek: Sebelum memetakan ratusan tag, baca satu register yang nilainya bisa dicocokkan dengan layar perangkat, misalnya level tangki atau posisi valve. Jika angkanya bergeser satu register, skalanya salah, atau acak, betulkan offset alamat, skala, atau urutan word lebih dulu. Semua tag berikutnya akan mewarisi kesalahan yang sama.

- Proteksi surja di kedua jalur: Sisi RS-485 dan sisi Ethernet.
- Catatan alamat dan register: Disimpan bersama dokumen as-built.
- Uji ujung ke ujung: Dari perangkat lapangan sampai aplikasi.
- Commissioning bertahap: Perangkat, jaringan, data, lalu SCADA.

## Istilah yang perlu diketahui

- Modbus RTU: Bentuk biner Modbus di jalur serial seperti RS-485, dengan alamat slave dan CRC di setiap frame.
- Modbus TCP: Modbus yang dibawa di dalam TCP/IP lewat Ethernet, memakai port 502 dan header MBAP sebagai pengganti CRC.
- RS-485: Standar listrik dua kawat seimbang yang memungkinkan banyak perangkat berbagi satu pasang kabel untuk jarak jauh.
- Holding register: Nilai 16-bit baca-tulis di perangkat Modbus, dipakai untuk setpoint, konfigurasi, dan sering juga hasil ukur.
- Coil: Satu bit baca-tulis, biasanya perintah seperti start, stop, buka, atau tutup.
- Function code: Byte pertama permintaan Modbus yang menyatakan tindakan yang harus dilakukan server.
- Register map: Tabel dari vendor yang berisi setiap alamat, tipe data, satuan, dan artinya.
- CRC: Cyclic redundancy check: checksum 16-bit di akhir frame RTU untuk mendeteksi byte yang rusak.
- Unit identifier: Byte di header MBAP yang memberi tahu gateway perangkat serial mana yang dituju permintaan TCP.

## Pertanyaan yang sering diajukan

Q: Apa beda Modbus RTU dan Modbus TCP?

A: Modbus RTU berjalan di jalur serial seperti RS-485 dan memeriksa setiap frame dengan CRC, sedangkan Modbus TCP berjalan di Ethernet pada port 502. Function code dan register-nya sama. TCP mengganti alamat slave dan CRC dengan header MBAP 7 byte.

Q: Apa itu register map Modbus?

A: Register map Modbus adalah tabel dari vendor yang menyebutkan nilai di setiap register beserta tipe data, satuan, dan skalanya. Tanpa register map, client bisa membaca angka tetapi tidak tahu artinya. Pakai register map yang sesuai dengan firmware terpasang.

Q: Berapa perangkat maksimum di satu jalur RS-485 Modbus?

A: Spesifikasi Modbus over Serial Line selalu mengizinkan 32 perangkat di satu jalur RS-485 tanpa repeater. Jumlahnya bisa lebih banyak jika setiap perangkat memakai beban unit pecahan dan vendor mendokumentasikannya. Jika tidak, tambahkan repeater atau bagi jalurnya.

Q: Kapan perlu gateway Modbus?

A: Gateway Modbus diperlukan saat client TCP harus membaca perangkat RTU serial, atau saat beberapa sistem harus berbagi satu jalur serial. Gateway mengubah setiap permintaan TCP menjadi frame RTU lalu mengembalikan balasannya. Gateway juga perlu rancangan timeout dan proteksi surja sendiri.

Q: Kenapa alamat Modbus saya bergeser satu?

A: Alamat Modbus bergeser satu karena banyak manual menghitung register mulai dari 1, sedangkan frame menghitung mulai dari 0. Register 40001 di manual dikirim sebagai alamat 0. Baca satu nilai yang bisa dicek untuk mengetahui kebiasaan yang dipakai software Anda.

Q: Apakah Modbus aman?

A: Modbus RTU dan Modbus TCP klasik tidak punya autentikasi maupun enkripsi. Lindungi dengan segmentasi jaringan, firewall, dan kontrol akses fisik. Modbus Organization juga menerbitkan spesifikasi Modbus/TCP Security yang membungkus Modbus dengan TLS dan sertifikat x.509.

## Sumber dan bacaan lanjutan

1. MODBUS Application Protocol Specification V1.1b3, Modbus Organization, 2012-04-26 (https://www.modbus.org/file/secure/modbusprotocolspecification.pdf)
2. MODBUS over Serial Line Specification and Implementation Guide V1.02, Modbus Organization, 2006-12-20 (https://www.modbus.org/file/secure/modbusoverserial.pdf)
3. MODBUS Messaging on TCP/IP Implementation Guide V1.0b, Modbus Organization (https://www.modbus.org/file/secure/messagingimplementationguide.pdf)
4. MODBUS/TCP Security Protocol Specification, Modbus Organization, 2021-07-30 (https://www.modbus.org/file/secure/modbussecurityprotocol.pdf)
5. Service Name and Transport Protocol Port Number Registry: port 502 (mbap), IANA (https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=502)
6. The RS-485 Design Guide (SLLA272D), Texas Instruments, 2021-05 (https://www.ti.com/lit/an/slla272d/slla272d.pdf)
7. Motor-operated valve (MOV) communication, Citia (https://citia-engineering.com/en/projects/motor-operated-valve-mov-communication)
8. Cover photo by David Marsh, CC BY 2.0 (cropped and colour graded), Wikimedia Commons (https://commons.wikimedia.org/wiki/File:Serial_Cable.jpg)

Sedang memetakan perangkat Modbus di lokasi Anda?: Kirim daftar perangkat dan register map ke siTia, lalu engineer Citia akan meninjau jalur komunikasinya bersama Anda.

## Kontak

- Perusahaan: PT Citia Engineering Indonesia
- siTia - Virtual Assistance: [WhatsApp +62 813-2206-507](https://wa.me/628132206507). siTia menjawab pertanyaan seputar produk, proyek dan permintaan Anda lewat WhatsApp. Balasannya otomatis, lalu tim Citia menindaklanjuti.
- Email: services@citiaengineering.com
- Telepon / WhatsApp (siTia): +62 813-2206-507
- Lokasi: Bandung, Indonesia

[Hubungi Citia](https://citia-engineering.com/id/contact.md)

## Data terstruktur (JSON-LD)

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://citia-engineering.com/#organization",
      "name": "Citia Engineering Indonesia",
      "legalName": "PT Citia Engineering Indonesia",
      "alternateName": "Citia",
      "url": "https://citia-engineering.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://citia-engineering.com/media/citia-logo.png",
        "width": 950,
        "height": 328
      },
      "description": "Citia adalah perusahaan engineering dan integrasi sistem di Bandung, Indonesia. Kami menghubungkan perangkat lapangan, PLC dan SCADA, software terminal dan sistem enterprise, lalu memasang, menguji dan merawatnya.",
      "email": "services@citiaengineering.com",
      "telephone": "+62 813-2206-507",
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "Bandung",
        "addressRegion": "Jawa Barat",
        "addressCountry": "ID"
      },
      "contactPoint": [
        {
          "@type": "ContactPoint",
          "contactType": "customer service",
          "email": "services@citiaengineering.com",
          "telephone": "+62 813-2206-507",
          "url": "https://citia-engineering.com/id/contact"
        },
        {
          "@type": "ContactPoint",
          "contactType": "customer support",
          "name": "siTia - Virtual Assistance",
          "telephone": "+62 813-2206-507",
          "url": "https://wa.me/628132206507",
          "areaServed": "ID",
          "availableLanguage": [
            "id",
            "en"
          ]
        }
      ],
      "areaServed": {
        "@type": "Country",
        "name": "Indonesia"
      },
      "knowsAbout": [
        "Sistem otomasi terminal",
        "Automatic tank gauging (ATG)",
        "Sistem manajemen tangki",
        "SCADA",
        "Programmable logic controller (PLC)",
        "Modbus",
        "Instrumentasi lapangan",
        "Jembatan timbang",
        "Pemantauan tekanan pipa",
        "Industrial IoT"
      ],
      "brand": [
        {
          "@type": "Brand",
          "name": "INTEGRA"
        },
        {
          "@type": "Brand",
          "name": "CATALYST"
        }
      ],
      "sameAs": [
        "https://www.facebook.com/citiaengineering/",
        "https://www.instagram.com/citiaengineering/"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://citia-engineering.com/#website",
      "url": "https://citia-engineering.com",
      "name": "Citia Engineering Indonesia",
      "inLanguage": [
        "en",
        "id"
      ],
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "potentialAction": [
        {
          "@type": "SearchAction",
          "name": "Search Citia News",
          "target": {
            "@type": "EntryPoint",
            "urlTemplate": "https://citia-engineering.com/en/news?q={search_term_string}"
          },
          "query-input": "required name=search_term_string"
        },
        {
          "@type": "SearchAction",
          "name": "Cari di News Citia",
          "target": {
            "@type": "EntryPoint",
            "urlTemplate": "https://citia-engineering.com/id/news?q={search_term_string}"
          },
          "query-input": "required name=search_term_string"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://citia-engineering.com/id/knowledge/modbus#webpage",
      "url": "https://citia-engineering.com/id/knowledge/modbus",
      "name": "Modbus adalah: RTU vs TCP, register, dan function code",
      "description": "Modbus adalah protokol industri terbuka: RTU di RS-485 dengan CRC, TCP di Ethernet port 502. Pelajari register, function code, contoh frame, dan gateway.",
      "inLanguage": "id",
      "isPartOf": {
        "@id": "https://citia-engineering.com/#website"
      },
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "about": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "breadcrumb": {
        "@id": "https://citia-engineering.com/id/knowledge/modbus#breadcrumb"
      },
      "dateModified": "2026-11-13",
      "mainEntity": {
        "@id": "https://citia-engineering.com/id/knowledge/modbus#entity"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://citia-engineering.com/id/knowledge/modbus#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Citia",
          "item": "https://citia-engineering.com/id"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Pengetahuan",
          "item": "https://citia-engineering.com/id/knowledge"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Modbus adalah: RTU vs TCP, register, dan function code",
          "item": "https://citia-engineering.com/id/knowledge/modbus"
        }
      ]
    },
    {
      "@id": "https://citia-engineering.com/id/knowledge/modbus#entity",
      "url": "https://citia-engineering.com/id/knowledge/modbus",
      "mainEntityOfPage": {
        "@id": "https://citia-engineering.com/id/knowledge/modbus#webpage"
      },
      "@type": "TechArticle",
      "headline": "Modbus adalah: RTU vs TCP, register, dan function code",
      "description": "Modbus adalah protokol terbuka untuk perangkat industri. Panduan ini membandingkan Modbus RTU dan TCP serta menjelaskan register, function code, frame, dan gateway.",
      "dateModified": "2026-11-13",
      "author": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "inLanguage": "id",
      "articleSection": "Protokol industri",
      "datePublished": "2026-11-13",
      "image": "https://citia-engineering.com/media/covers/modbus.webp"
    },
    {
      "@type": "FAQPage",
      "@id": "https://citia-engineering.com/id/knowledge/modbus#faq",
      "url": "https://citia-engineering.com/id/knowledge/modbus",
      "inLanguage": "id",
      "isPartOf": {
        "@id": "https://citia-engineering.com/id/knowledge/modbus#webpage"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Apa beda Modbus RTU dan Modbus TCP?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Modbus RTU berjalan di jalur serial seperti RS-485 dan memeriksa setiap frame dengan CRC, sedangkan Modbus TCP berjalan di Ethernet pada port 502. Function code dan register-nya sama. TCP mengganti alamat slave dan CRC dengan header MBAP 7 byte."
          }
        },
        {
          "@type": "Question",
          "name": "Apa itu register map Modbus?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Register map Modbus adalah tabel dari vendor yang menyebutkan nilai di setiap register beserta tipe data, satuan, dan skalanya. Tanpa register map, client bisa membaca angka tetapi tidak tahu artinya. Pakai register map yang sesuai dengan firmware terpasang."
          }
        },
        {
          "@type": "Question",
          "name": "Berapa perangkat maksimum di satu jalur RS-485 Modbus?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Spesifikasi Modbus over Serial Line selalu mengizinkan 32 perangkat di satu jalur RS-485 tanpa repeater. Jumlahnya bisa lebih banyak jika setiap perangkat memakai beban unit pecahan dan vendor mendokumentasikannya. Jika tidak, tambahkan repeater atau bagi jalurnya."
          }
        },
        {
          "@type": "Question",
          "name": "Kapan perlu gateway Modbus?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Gateway Modbus diperlukan saat client TCP harus membaca perangkat RTU serial, atau saat beberapa sistem harus berbagi satu jalur serial. Gateway mengubah setiap permintaan TCP menjadi frame RTU lalu mengembalikan balasannya. Gateway juga perlu rancangan timeout dan proteksi surja sendiri."
          }
        },
        {
          "@type": "Question",
          "name": "Kenapa alamat Modbus saya bergeser satu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Alamat Modbus bergeser satu karena banyak manual menghitung register mulai dari 1, sedangkan frame menghitung mulai dari 0. Register 40001 di manual dikirim sebagai alamat 0. Baca satu nilai yang bisa dicek untuk mengetahui kebiasaan yang dipakai software Anda."
          }
        },
        {
          "@type": "Question",
          "name": "Apakah Modbus aman?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Modbus RTU dan Modbus TCP klasik tidak punya autentikasi maupun enkripsi. Lindungi dengan segmentasi jaringan, firewall, dan kontrol akses fisik. Modbus Organization juga menerbitkan spesifikasi Modbus/TCP Security yang membungkus Modbus dengan TLS dan sertifikat x.509."
          }
        }
      ]
    },
    {
      "@type": "DefinedTermSet",
      "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary",
      "url": "https://citia-engineering.com/id/knowledge/modbus",
      "inLanguage": "id",
      "isPartOf": {
        "@id": "https://citia-engineering.com/id/knowledge/modbus#webpage"
      },
      "name": "Istilah yang perlu diketahui",
      "hasDefinedTerm": [
        {
          "@type": "DefinedTerm",
          "name": "Modbus RTU",
          "description": "Bentuk biner Modbus di jalur serial seperti RS-485, dengan alamat slave dan CRC di setiap frame.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Modbus TCP",
          "description": "Modbus yang dibawa di dalam TCP/IP lewat Ethernet, memakai port 502 dan header MBAP sebagai pengganti CRC.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "RS-485",
          "description": "Standar listrik dua kawat seimbang yang memungkinkan banyak perangkat berbagi satu pasang kabel untuk jarak jauh.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Holding register",
          "description": "Nilai 16-bit baca-tulis di perangkat Modbus, dipakai untuk setpoint, konfigurasi, dan sering juga hasil ukur.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Coil",
          "description": "Satu bit baca-tulis, biasanya perintah seperti start, stop, buka, atau tutup.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Function code",
          "description": "Byte pertama permintaan Modbus yang menyatakan tindakan yang harus dilakukan server.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Register map",
          "description": "Tabel dari vendor yang berisi setiap alamat, tipe data, satuan, dan artinya.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "CRC",
          "description": "Cyclic redundancy check: checksum 16-bit di akhir frame RTU untuk mendeteksi byte yang rusak.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Unit identifier",
          "description": "Byte di header MBAP yang memberi tahu gateway perangkat serial mana yang dituju permintaan TCP.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/id/knowledge/modbus#glossary"
          }
        }
      ]
    }
  ]
}
```
