MODBUS RTU İLE ENDÜSTRİYEL HABERLEŞME

 

1. Modbus Nedir?

  • Modbus: Endüstriyel cihazlar arasında veri alışverişi için kullanılan bir haberleşme protokolüdür.

  • RTU (Remote Terminal Unit) versiyonu: Seri iletişim hattı üzerinden (RS485, RS232 gibi) binary (ikili) formatta veri gönderir.

  • Kullanım alanları: PLC’ler, koruma röleleri, enerji analizörleri, sensörler, SCADA sistemleri, I/O modülleri vb.

2. Fiziksel Katman

  • RS-485 en çok kullanılan arayüzdür (yarım çift – 2 kablo: A ve B hattı).

  • RS-232 de desteklenir (daha kısa mesafeler için).

  • İletişim Master-Slave mantığıyla yapılır:

    • Master → İsteği başlatır.

    • Slave → Sadece gelen isteğe cevap verir.

  • Tek hatta 32 slave’e kadar bağlanabilir (adresler: 1–247).

3. Modbus RTU Çerçevesi (Frame Formatı)

Bir Modbus RTU mesajı paket (frame) halinde iletilir:

AlanBoyutAçıklama
Slave Adresi1 byteHangi cihaza istek gidecek? (1–247)
Fonksiyon Kodu1 byteNe yapılacak? (okuma, yazma vb.)
Veri AlanıN byteOkunacak/yazılacak adresler, miktarlar, değerler
CRC (Hata Kontrol)2 byteVeri doğrulama için 16-bit CRC

4. Fonksiyon Kodları

En çok kullanılan fonksiyon kodları:

  • 01 → Coil Status Oku (dijital çıkış)

  • 02 → Input Status Oku (dijital giriş)

  • 03 → Holding Register Oku (analog veri / parametreler)

  • 04 → Input Register Oku (analog girişler)

  • 05 → Tek Coil Yaz (ON/OFF)

  • 06 → Tek Register Yaz

  • 15 (0F hex) → Birden fazla coil yaz

  • 16 (10 hex) → Birden fazla register yaz

5. Adresleme Mantığı

  • Coil (bit) → 00001 – 09999

  • Input → 10001 – 19999

  • Holding Register → 40001 – 49999

  • Input Register → 30001 – 39999

6. Veri Tipleri

Modbus verileri 16-bit word tabanlıdır. Ama şu şekilde gruplanabilir:

  • Bit (1 coil veya input)

  • Word (16-bit) → çoğu ölçüm (akım, gerilim, sıcaklık vb.)

  • 32-bit → Float (2 register birleşerek)

  • 64-bit → Double / Long

7. Hata Kontrol (CRC)

  • Modbus RTU’da CRC-16 algoritması kullanılır.

  • Mesaj sonunda 2 byte olarak eklenir.

  • Slave yanlış CRC alırsa cevap vermez → Master timeout yaşar.

8. Zamanlama Kuralları

  • RTU’da çerçeve ayrımı için zaman boşlukları kullanılır.

  • 3.5 karakter süresi boşluk = yeni frame başlangıcı.

  • Yanlış boşluklar → “Frame Error” oluşur.

9. Haberleşme Parametreleri

  • Baud Rate: 9600, 19200, 38400…

  • Parity: Even, Odd, None

  • Stop Bit: 1 veya 2

  • Data Bit: 8

Endüstriyel Cihazlarda MODBUS
RTU Kullanımı

Bugünkü projemizde LOM rölesinden RTU’ya Modbus protokolü ile veri çekeceğiz. Bu projede Ethernet kablosunu yalnızca RTU’nun konfigürasyonu için kullanacağız; veri haberleşmesi Modbus RTU üzerinden yapılacak. Modbus RTU haberleşmesi RS485, RS232 veya RS422 arayüzleriyle gerçekleştirilebilir. Biz uygulamamızda RS485 kullanacağız.

RTU’nun RS485 destekleyen COM girişi Ethernet tipinde olduğu için, bir Ethernet kablosunu keserek içerisindeki damarlardan RS485 bağlantısı yapıyoruz. Bu kabloda yeşil teli RS485-A girişine, mavi-beyaz teli ise RS485-B girişine bağlıyoruz. Böylece bu iki tel üzerinden herhangi bir cihazla Modbus RTU haberleşmesini gerçekleştirebiliriz.


Konfigürasyona başlamadan önce RTU’muzun arayüzüne bağlanabilmek için, cihaz ve bilgisayarımızı aynı subnet içine alıyoruz. Yukarıdaki resimde görülen IP adresleri bu amaçla atanmıştır. RTU’nun “NET” portundan bilgisayarımızla haberleşmeyi sağlamak için (sadece konfigürasyon amacıyla) bir Ethernet kablosu kullanıyoruz ve kabloyu bilgisayarımıza bağlıyoruz.

 

 

Hemen ardından, cihazımıza atanmış olan Modbus haberleşme parametrelerini (örneğin Slave ID, baud rate, parity vb.) RTU’ya doğru şekilde giriyoruz. Bu ayarların doğru yapılmasıyla birlikte RTU ile cihaz arasında Modbus haberleşmesi sağlanmış olur. 

 

Hemen ardından, cihaz üreticisinden temin ettiğimiz Modbus haritasını kullanarak, ihtiyacımız olan sinyalleri RTU üzerinden çekiyoruz. Bu harita sayesinde hangi register’dan hangi bilginin okunacağını belirleyerek gerekli verileri doğru şekilde alabiliyoruz. 

 


Son aşamada cihaza gerilim vererek, doğru adreslerden doğru değerleri çekip çekmediğimizi kontrol ediyoruz. Tüm testler başarıyla tamamlandıktan sonra projemiz bu şekilde son buluyor. Bir sonraki proje için takipte kalın!


 


 

Yorumlar

Bu blogdaki popüler yayınlar

IEC 60870-5-103 PROTOKOLÜ İLE ENDÜSTRİYEL HABERLEŞME

MODBUS TCP İLE ENDÜSTRİYEL HABERLEŞME

IEC 60870-5-104 İLE ENDÜSTRİYEL HABERLEŞME