MODBUS-RTU Nedir?


MODBUS-RTU (Remote Terminal Unit - Uzaktan Terminal Ünitesi), MODBUS-ASCII ile birlikte kullanılan bir MODBUS protokol çeşididir. "RTU", Uzaktan Terminal Ünitesi anlamına gelir.

MODBUS-RTU, ikili bir protokoldür. MODBUS-ASCII'nın aksine, MODBUS-RTU verileri ikili formatda gönderir. Bu, MODBUS-RTU'yu, özellikle büyük miktarda veri gönderilmesi gerektiğinde, MODBUS-ASCII'dan daha kompakt, daha hızlı ve daha verimli kılar.

Bir MODBUS-RTU mesajı şu şekilde yapılır:

[ID][FC][Data][CRC]

    ID: Bu, cihazın adresidir (1 bayt).
    FC: İşlev Kodu (1 bayt), yapılacak işlemi belirtir.
    Data: Bu veri alanıdır. İşlem koduna bağlı olarak farklı anlamlar taşır.
    CRC: Bu, Döngüsel Kırmızılık Kontrolüdür (2 bayt). Bu, MODBUS-ASCII'da kullanılan LRC'den daha sağlam bir hata kontrol formudur.

Uygulama açısından, MODBUS-RTU ve MODBUS-ASCII arasındaki önemli farklardan biri, MODBUS-RTU'nun bir mesajın sonunu belirtmek için sessiz bir aralık kullanmasıdır. Bu, bazı sistemlerde zorluk oluşturabilecek hassas zamanlama kontrolü gerektirir.

Bu farklılıklara rağmen, hem MODBUS-RTU hem de MODBUS-ASCII, elektronik cihazları bağlamak için endüstride yaygın olarak kullanılır. İkisi arasında seçim genellikle belirli bir uygulamanın spesifik ihtiyaçlarına ve kısıtlamalarına bağlıdır.


MODBUS RTU ile belirli bir veriyi gönderirken, aşağıdaki yapıyı kullanmanız gerekmektedir:

css

[ID][FC][ADDRESS][DATA][CRC]

    ID: Cihazın adresi
    FC: İşlev Kodu (Function Code), yapılacak işlemi belirtir.
    ADDRESS: Değiştirilecek register'ın adresi
    DATA: Gönderilecek veri
    CRC: Döngüsel Redundans Kontrolü (Cyclic Redundancy Check) hata kontrolü

Ancak, MODBUS RTU ikili (binary) bir protokoldür ve bir CRC hesaplama işlemi gerektirir. CRC hesaplaması genellikle işlemci veya özel bir yazılım kütüphanesi tarafından yapılır ve bu karmaşık bir işlem olabilir.


Modbus RTU ile id numarası 28 olan bir alıcıya 555 rakamını gönderme örneği?


Bu örnekte, ID'si 28 olan bir cihaza (örneğin bir hava kalitesi sensörü), adresi 10 olan bir holding register'a 555 değerini yazmayı deneyeceğiz. İşlev Kodu 06 (Preset Single Register) kullanılacaktır.

Verinin hexadecimal hali:

1C 06 00 0A 02 2B

    1C: ID 28 (hexadecimal hali ile)
    06: İşlev Kodu (Preset Single Register)
    00 0A: Register adresi 10 (hexadecimal hali ile)
    02 2B: Veri 555 (hexadecimal hali ile)

CRC hesaplandığında (bu işlem genellikle otomatik olarak yapılır):

1C 06 00 0A 02 2B [CRC]

Bu, MODBUS RTU ile 555 değerini belirli bir cihaza göndermek için oluşturulmuş örnek bir mesajdır. Ancak CRC'nin ne olacağını belirlemek için CRC hesaplaması yapmanız gerekecektir, bu yüzden gerçek bir sistemde bu işlem genellikle otomatik olarak gerçekleştirilir.



Değerli arkadaşlar

Günümüzde endüstride kullanılan birçok PLC, sürücü ve HMI cihazı MODBUS-RTU desteğine sahiptir. Bu sayede farklı markalardaki ürünlerin ortak bir dil üzerinden haberleşmesi mümkün olur. Örneğin, bir Schneider PLC ile Siemens sürücüyü aynı hatta çalıştırmak, doğru adresleme ve fonksiyon kodları ile oldukça basittir.

DERELL MODBUS‑RTU — Canlı Simülasyon
Master sorgular, Slave cevaplar. Çerçeve: Adres • Fonksiyon • Veri • CRC.
Bağlantı Parametreleri
Baud
9600 bps
Parite
Slave Adresi
Fonksiyon
Reg. Adresi
Adet
ACK
Zamanlama
Char ≈ 10 bit @ 9600 → ~1.04 ms/char • 3.5 char ≈ 3.65 ms
Slave Register Haritası
R0 = 2043
R1 = 2207
R2 = 3335
R3 = 3433
R4 = 5575
R5 = 4739
R6 = 3887
R7 = 4602
R8 = 5202
R9 = 1601
R10 = 3967
R11 = 2457
R12 = 2646
R13 = 4119
R14 = 5889
R15 = 4126
0x06 yazınca tablo güncellenir; 0x03 okuyunca bu değerler döner.
Çerçeve (RTU)
Addr 11
Fn 03
D1 00
D2 01
D3 00
D4 02
CRCL 97
CRCH 5B
Aşağıdaki hat, çerçevenin akışını ve 3.5 karakterlik boşlukları gösterir.
RS‑485 Hat
Master
Slave
3.5 char boşluk
CRC OK
8N1
Yön: Master→Slave
ACK
Nasıl Çalışır?
Master tek bir slave'i sorgular. RTU çerçevesi adres, fonksiyon, veri ve CRC’dan oluşur. En az 3.5 karakterlik sessiz süre yeni çerçeve sınırıdır.

MODBUS-RTU’nun pratikte en çok tercih edilme sebebi, basitliği ve güvenilirliğidir. Çift telli RS-485 hattı üzerinde uzun mesafelere sorunsuz veri aktarımı yapılabilir. İyi bir kablolama ve doğru terminasyon ile 1200 metreye kadar haberleşme sağlanabilir. Bu da sahada çok sayıda cihazın tek master altında toplanabilmesini sağlar.

Bir diğer önemli nokta ise, zamanlama ve hata kontrolüdür. MODBUS-RTU’da çerçevenin ayrılması için en az 3,5 karakterlik sessiz süre beklenir. Bu süreye dikkat edilmediğinde cihazlar mesaj sınırlarını karıştırabilir. Ayrıca CRC mekanizması sayesinde hat üzerindeki gürültüden kaynaklı hatalar kolayca tespit edilir.

Kendi tecrübemden söyleyebilirim ki; sahada en sık karşılaşılan sorunlardan biri, adres çakışmasıdır. İki farklı cihaza aynı ID verildiğinde, master hangi cihazdan yanıt alacağını bilemez. Bu durumda iletişim kilitlenir. Bu yüzden sahada kurulum yaparken her cihaza benzersiz bir ID atamak büyük önem taşır.

Son olarak, yeni başlayan öğrenciler için şunu vurgulamak isterim: MODBUS-RTU'yu anlamak, endüstride kullanılan diğer haberleşme protokollerini öğrenmeyi de kolaylaştırır. Çünkü adresleme mantığı, fonksiyon kodları ve hata kontrol prensipleri birçok protokolde benzerdir. Bu yüzden MODBUS-RTU öğrenmek, otomasyon alanında atılacak sağlam bir ilk adımdır.


Sepete Henüz Ürün eklemediniz!