Konfigurasi Modbus TCP Antara ESP32 (Server) dan Modbus Client (ModbusPoll) dengan Panduan Step-by-Step.

Pendahuluan
Modbus TCP adalah protokol komunikasi berbasis Ethernet yang banyak digunakan dalam sistem automasi industri dan IoT. Berbeda dengan Modbus RTU yang menggunakan port serial, Modbus TCP memanfaatkan jaringan TCP/IP untuk mengirimkan data. Dalam praktikum ini, Anda akan mempelajari cara mengkonfigurasi ESP32 sebagai Modbus Server dan berkomunikasi dengan software ModbusPoll sebagai Modbus Client.
Teori Dasar Modbus TCP
1. Apa Itu Modbus TCP?
Modbus TCP adalah varian Modbus yang berjalan di atas protokol TCP/IP. Protokol ini menggunakan port 502 sebagai default dan tidak memerlukan checksum seperti Modbus RTU karena keamanan data dijamin oleh lapisan TCP.
2. Komponen Modbus TCP
- Client: Mengirim permintaan (request) untuk membaca/menulis data (contoh: ModbusPoll, PLC).
- Server: Merespons permintaan client dengan mengirimkan data (contoh: ESP32, sensor).
3. Keunggulan Modbus TCP
- Kompatibel dengan jaringan LAN/Wi-Fi.
- Mendukung komunikasi multi-device.
- Cocok untuk aplikasi IoT berbasis ESP32/ESP8266.
Alat dan Bahan
- ESP32Â (dengan kabel USB).
- Software ModbusPoll (Modbus Client: Download di sini).
- Arduino IDE (terinstall library ModbusServer dari emelianov).
- Jaringan Wi-Fi (untuk koneksi ESP32 dan PC).
- Kabel jumper (opsional untuk sensor tambahan).
Langkah Praktikum
1. Instalasi Library Modbus pada Arduino IDE
- Buka Arduino IDE, lalu instal library:
Sketch > Include Library > Manage Libraries > Cari “modbus-esp8266”
2. Konfigurasi ESP32 sebagai Modbus Server
- Sambungkan ESP32 ke PC via USB.
- Upload kode berikut ke ESP32:
#include <WiFi.h> #include <ModbusIP_ESP8266.h> // Konfigurasi WiFi const char* ssid = "NAMA_WIFI";   // Ganti dengan SSID Wi-Fi const char* password = "PASSWORD"; // Ganti dengan password Wi-Fi // Inisialisasi Modbus ModbusIP mb;  void setup() {   Serial.begin(115200);     // Koneksi ke WiFi   WiFi.begin(ssid, password);   Serial.print("Menghubungkan ke WiFi");   while (WiFi.status() != WL_CONNECTED) {     delay(500);     Serial.print(".");   }   Serial.println("\nTerhubung!");   Serial.print("ESP32 Modbus Server IP: ");   Serial.println(WiFi.localIP());   // Tambahkan Holding Register (Alamat 0-9)   for (int i = 0; i < 10; i++) {     mb.addHreg(i);   } } void loop() {   mb.task();  // Proses komunikasi Modbus TCP     // Simulasi perubahan data pada Holding Register   for (int i = 0; i < 10; i++) {     mb.Hreg(i, random(100, 1000));   }     delay(1000); }
3. Konfigurasi ModbusPoll sebagai Client
- Buka ModbusPoll.
- Klik File > New dan pilih TCP/IP.
- Isi parameter:
- IP Address: Masukkan alamat IP ESP32 (lihat di Serial Monitor).
- Port: 502.
- Function: 03 (Read Holding Registers).
- Address: 0.
- Quantity: 10.
- Klik OK dan mulai polling dengan menekan F2.
4. Verifikasi Komunikasi
- Jika berhasil, ModbusPoll akan menampilkan data acak dari ESP32 di jendela register.
- Pantau log komunikasi di View > Communication Traffic.
Tugas dan Evaluasi
- Ubah Function Code ke 06 (Write Single Register) dan coba tulis nilai ke alamat 40001.
- Jelaskan perbedaan respon antara Function 03 dan 06!
- Apa yang terjadi jika alamat IP ESP32 dan PC tidak dalam jaringan yang sama?
- modifikasi program supaya modbus bisa saling write and read
Analisis Error & Troubleshooting
- Timeout: Pastikan ESP32 dan PC terhubung ke Wi-Fi yang sama.
- Connection Refused: Cek firewall atau pastikan port 502 tidak diblokir.
- Data Tidak Terbaca: Verifikasi alamat register dan konfigurasi library Modbus.
Kesimpulan
Modbus TCP memungkinkan ESP32 berintegrasi dengan sistem industri berbasis Ethernet/Wi-Fi. Dengan library ModbusServer, ESP32 dapat berperan sebagai server yang efisien untuk aplikasi IoT seperti monitoring sensor atau kontrol perangkat.
No | Materi | Tanggal | Waktu | Harga | Lokasi | View | Action |
---|---|---|---|---|---|---|---|
1 | IOT PLC SCADA Siemens | 7-8 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
2 | IOT PLC SCADA Omron | 14 - 15 Juni 2025 | 08.00 - 16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
3 | IOT PLC SCADA Schneider | 21-22 Juni 2025 | 08.00 -16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
4 | IOT PLC SCADA Allen Bradley | 28-29 Juni 2025 | 08.00-16.00 | 2000000 | Surabaya | Silabus | Daftar Sekarang |
FAQ (Pertanyaan Umum)
Q: Apa perbedaan Modbus TCP dan RTU?
A: Modbus RTU menggunakan port serial (RS485/RS232) dengan checksum CRC, sedangkan Modbus TCP menggunakan jaringan TCP/IP tanpa checksum.
Q: Bisakah ESP32 menjadi Modbus Client?
A: Ya, gunakan library ModbusClient dan konfigurasi alamat IP server.
Q: Bagaimana cara membaca input register di ESP32?
A: Tambahkan registerInputRegisters()
 pada kode dan gunakan Function 04 di ModbusPoll.