Modbus RTU ve Modbus TCP nasıl çalışır? Frame yapısını ve sık kullanılan function code'ları açıklayın.

Cevap

Modbus, endüstride yaygın kullanılan, istek/cevap (master/slave, yeni adıyla client/server) modeline dayanan basit bir protokoldür. Master sorar, slave cevap verir; slave kendiliğinden veri göndermez.

Modbus RTU

  • Genellikle RS-485 üzerinde çalışır (birden çok slave, yarı çift yönlü).
  • Binary frame: Slave adresi (1) + Function code (1) + Veri (N) + CRC-16 (2, düşük byte önce)
  • Frame'ler arası en az 3.5 karakter süresi sessizlik ile ayrılır; frame içinde 1.5 karakterden uzun boşluk olmamalıdır.
  • Adres 1-247 arasıdır; 0 broadcast'tir.

Modbus TCP

  • Ethernet üzerinden TCP port 502 kullanılır.
  • CRC yoktur (TCP zaten bütünlük sağlar). Başta 7 byte'lık MBAP header bulunur: transaction ID, protocol ID (0), uzunluk ve unit ID.

Veri modeli ve function code'lar

KodİşlemVeri tipi
0x01Read Coils1-bit okuma/yazma
0x02Read Discrete Inputs1-bit sadece okuma
0x03Read Holding Registers16-bit okuma/yazma
0x04Read Input Registers16-bit sadece okuma
0x05Write Single Coil
0x06Write Single Register
0x10Write Multiple Registers

Örnek: 1 numaralı slave'den 0. adresten başlayıp 2 holding register okumak

İstek : 01 03 00 00 00 02 C4 0B
        |  |  |---| |---| |---|
        |  |  adres adet  CRC (low, high)
        |  function code
        slave adresi

Cevap : 01 03 04 00 FA 01 2C xx xx
        4 byte veri: reg0 = 0x00FA (250), reg1 = 0x012C (300)

Hata cevabı

Slave hata durumunda function code'un en üst bitini set eder (0x03 yerine 0x83) ve bir exception kodu gönderir (01 geçersiz fonksiyon, 02 geçersiz adres, 03 geçersiz değer).

Pratik sorunlar

  • Register adreslemesinde "40001" gösterimi ile protokoldeki 0 tabanlı adres arasındaki fark (off-by-one).
  • 32-bit float veya int değerlerin iki register'a hangi sırayla bölündüğü (word order) cihazdan cihaza değişir.
  • RS-485'te DE/RE pininin son byte tamamen gönderildikten sonra (UART TC kesmesi) bırakılması gerekir; erken bırakılırsa son byte bozulur.
  1. UART, SPI ve I2C arasındaki farklar nelerdir?OrtaHaberleşme ProtokolleriEmbedded
  2. CAN bus nasıl çalışır? Arbitration, hata yönetimi ve CAN FD farkını açıklayın.ZorHaberleşme ProtokolleriEmbedded
  3. SPI'da CPOL ve CPHA nedir? Dört SPI modu arasındaki fark nasıl açıklanır?OrtaHaberleşme ProtokolleriEmbedded
  4. I2C protokolü nasıl çalışır? Adresleme, ACK/NACK ve clock stretching nedir?OrtaHaberleşme ProtokolleriEmbedded
  5. UART'ta baud rate, frame yapısı ve parity nedir? RS-485 UART'tan nasıl farklıdır?KolayHaberleşme ProtokolleriEmbedded
  6. USB nasıl çalışır? Enumeration süreci, endpoint'ler ve transfer tipleri nelerdir?OrtaHaberleşme ProtokolleriEmbedded

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle