Modbus TCP ve RTU Farkı
Modbus RTU, RS485 gibi seri hatlar üzerinden konuşan ve her paketin sonuna CRC ekleyen Modbus türüdür. Modbus TCP ise aynı fonksiyon kodlarını Ethernet/IP ağı üzerinde, 502 numaralı portta ve CRC yerine 7 baytlık bir MBAP başlığıyla taşır. Register’lar, fonksiyon kodları ve veri modeli aynıdır. Değişen, paketin nasıl taşındığıdır. Bu fark sahada en çok gateway kurulumunda ve yanlış ayarlanmış “RTU over TCP” bağlantılarında can yakar.
Hızlı karşılaştırma
| Modbus RTU | Modbus TCP | |
|---|---|---|
| Fiziksel katman | Seri: RS485 (bazen RS232) | Ethernet / IP ağı |
| Adresleme | Slave ID 1–247 | IP adresi + unit ID |
| Port | COM / tty seri port | TCP 502 |
| Hata kontrolü | Paket sonunda CRC-16 | TCP’nin kendi kontrolü; Modbus CRC yok |
| Başlık | Yok (slave ID + PDU + CRC) | MBAP: transaction ID, protocol ID, length, unit ID |
| Master sayısı | Hatta tek master | Aynı anda birden fazla client (cihaz limitine bağlı) |
| Tipik hız | 9600–115200 bit/s | 10/100 Mbit/s ağ; cihazın cevap süresi belirler |
| Mesafe | Yaklaşık 1200 m (segment başına) | Ağ altyapısına bağlı |
| Tipik cihaz | Sayaç, sensör, sürücü, küçük inverter | Inverter, PLC, gateway, enerji analizörü |
Çerçeve yapısı: asıl fark burada
Her iki türde de ortadaki kısım aynıdır: PDU (fonksiyon kodu + veri). Farklı olan, PDU’nun etrafına neyin eklendiğidir.
RTU çerçevesi:
[Slave ID 1 bayt] [PDU] [CRC 2 bayt]
Paketler arasında en az 3,5 karakterlik sessizlik bırakılır. Paketin bittiği bu sessizlikten anlaşılır.
TCP çerçevesi:
[Transaction ID 2] [Protocol ID 2 = 0] [Length 2] [Unit ID 1] [PDU]
CRC yoktur, çünkü TCP veriyi zaten doğrular. Transaction ID sayesinde client, hangi cevabın hangi isteğe ait olduğunu bilir.
Unit ID: TCP’de neden hâlâ var?
Doğrudan Ethernet portlu bir cihazda unit ID çoğu zaman yok sayılır (1 veya 255 kabul edilir). Ama TCP–RTU gateway arkasında unit ID, gateway’in RS485 hattında hangi slave’e gideceğini belirler. Gateway arkasındaki cihazdan cevap alamıyorsanız ilk kontrol edilecek değer unit ID’dir.
“Modbus RTU over TCP” Modbus TCP değildir
Bazı seri–Ethernet dönüştürücüler RTU paketini olduğu gibi (CRC dahil, MBAP başlıksız) TCP üzerinden taşır. Buna “RTU over TCP” veya “transparent mode” denir.
- Modbus TCP client’ı bu cihaza bağlanırsa TCP bağlantısı kurulur ama cevap gelmez veya anlamsız gelir.
- Çözüm: Dönüştürücüyü “Modbus TCP gateway” moduna almak ya da client’ta RTU over TCP seçeneğini kullanmak.
Port 502 açık diye cihazın Modbus TCP konuştuğunu varsaymayın.
Hangisini ne zaman seçmeli?
- Kısa mesafede çok sayıda basit cihaz (sayaç, sensör): RTU. Kablolama ucuzdur, ağ altyapısı gerekmez.
- Saha zaten Ethernet ise veya yüksek veri hızı gerekiyorsa: TCP.
- Karışık saha (ör. GES): Inverter’lar TCP, sayaç ve sensörler RTU olur; aradaki köprü bir gateway veya datalogger’dır.
Pratikte seçim çoğu zaman sizin değil, cihazın elindedir. Önemli olan, iki tarafı da test edebilmektir.
İki tarafı da aynı programla test etmek
Gateway kurulumunda doğru sıra şudur:
- RTU tarafını USB–RS485 dönüştürücüyle doğrudan test edin (seri ayar, slave ID, register). Ayrıntılar: Modbus RTU / RS485 test rehberi.
- Ardından TCP tarafını gateway’in IP’sine port 502’den bağlanarak, aynı register’ı aynı unit ID ile okuyun.
- İki okuma aynıysa gateway doğru çalışıyordur. Farklıysa sorun gateway’in eşleme ayarındadır.
Ranaliz iOT Tester Modbus TCP, UDP ve seri RTU desteğini tek pencerede sunar. Aynı oturumda RTU’dan TCP’ye geçebilir, iki sonucu yan yana karşılaştırabilirsiniz. FC01–FC16, endian seçenekleri, işlem geçmişi ve Excel/CSV aktarımı ücretsizdir; Windows ve macOS’ta çalışır.
SSS
Modbus TCP, RTU’dan daha mı hızlı?
Ağ hızı olarak evet. Ancak gerçek sorgu süresini çoğu zaman cihazın işlem süresi belirler. Seri hatta tek master sırayla sorguladığı için çok cihazlı RTU hattı yavaş kalır.
Modbus TCP hangi portu kullanır?
Varsayılan TCP 502’dir. Bazı cihazlar ve gateway’ler farklı port kullanmaya izin verir.
Aynı cihaz hem TCP hem RTU destekleyebilir mi?
Evet. Birçok inverter ve enerji analizörü hem Ethernet hem RS485 portuna sahiptir. Register haritası genelde aynıdır, ama adres ofsetini her iki tarafta da doğrulayın.
Modbus ASCII nedir?
Seri hatta kullanılan, veriyi hex karakterlerle ve LRC ile taşıyan eski bir türdür. Bugün nadiren görülür. Yeni kurulumlarda RTU tercih edilir.
Kaynaklar
- Modbus Organization — MODBUS Application Protocol Specification V1.1b3
- Modbus Organization — MODBUS Messaging on TCP/IP Implementation Guide V1.0b
- Modbus Organization — MODBUS over Serial Line Specification and Implementation Guide V1.02