Tekstilkent Ticaret Merkezi, Oruç Reis Mah. Tekstilkent Cad. A15 Blok No:24, Esenler/İstanbul 0850 885 03 51 info@ogsotomasyon.com Konum

Modbus TCP Nedir? RTU’dan Farkı ve Kullanımı

Modbus, endüstriyel cihazlar arasında veri alışverişi için kullanılan, uzun süredir yaygın olan bir haberleşme protokolüdür. Modbus TCP ise bu protokolün Ethernet ve TCP/IP üzerinde taşınan sürümüdür. Basit yapısı, açık olması ve neredeyse her marka cihazda desteklenmesi nedeniyle, farklı üreticilerin ekipmanlarını bir araya getirmek gereken projelerde sık kullanılır.

Temel mantık: istemci ve sunucu

Modbus, istek-cevap (request/response) esasına dayanır. Bir taraf soru sorar, diğer taraf cevap verir. Kendiliğinden veri gönderimi yoktur.

  • İstemci (client / eski adıyla master): İsteği başlatan taraf.
  • Genellikle PLC, SCADA veya HMI.

  • Sunucu (server / eski adıyla slave): İsteği cevaplayan taraf. Sürücü,
  • enerji analizörü, sıcaklık kontrolör, remote I/O.

Modbus TCP’de bir istemci aynı anda birden fazla sunucuya bağlanabilir; bir sunucu da birden fazla istemciyi kabul edebilir. Bu, seri hatla çalışan RTU’ya göre önemli bir esnekliktir.

Veri modeli: dört tablo

Modbus verileri dört ayrı alanda tutar:

| Alan | Tip | Erişim | Boyut | |—|—|—|—| | Coil | Bit | Oku / Yaz | 1 bit | | Discrete Input | Bit | Yalnız oku | 1 bit | | Input Register | Word | Yalnız oku | 16 bit | | Holding Register | Word | Oku / Yaz | 16 bit |

Pratikte en çok holding register kullanılır. Sürücü parametreleri, hız referansı, ölçüm değerleri genellikle bu alanda tutulur.

Yaygın fonksiyon kodları

| Kod | İşlem | |—|—| | 01 | Coil oku | | 02 | Discrete input oku | | 03 | Holding register oku | | 04 | Input register oku | | 05 | Tek coil yaz | | 06 | Tek holding register yaz | | 15 | Çoklu coil yaz | | 16 | Çoklu holding register yaz |

Cihazın hangi fonksiyon kodlarını desteklediği kendi dokümanında belirtilir; tüm cihazlar tüm kodları desteklemez.

Modbus TCP ile Modbus RTU farkı

| Konu | Modbus RTU | Modbus TCP | |—|—|—| | Fiziksel katman | RS-485 / RS-232 seri hat | Ethernet | | Topoloji | Hat (bus), sonlandırma dirençli | Ethernet ağı, switch’li | | Adresleme | 1 byte’lık slave adresi | IP adresi + unit id | | Hata kontrolü | CRC | TCP’nin kendi kontrolü | | Eşzamanlılık | Tek master | Çok istemcili | | Mesaj başlığı | Yok | MBAP başlığı (transaction, protocol, length, unit) |

Modbus TCP’de CRC alanı yoktur; veri bütünlüğünü TCP katmanı sağlar. Mesaja ek olarak MBAP başlığı gelir. Bu başlıktaki *unit identifier* alanı, özellikle gateway kullanılan sistemlerde arkadaki seri hat cihazını seçmek için kullanılır.

Standart Modbus TCP portu 502’dir.

Adresleme karışıklığı — en sık yapılan hata

Modbus’ta iki farklı adres gösterimi dolaşımdadır ve devreye almada en çok zaman kaybettiren konu budur.

Protokol adresi: 0’dan başlar. Telde giden gerçek değerdir.

Geleneksel (5 haneli) gösterim: 1’den başlar ve alan tipini önek olarak taşır. Holding register’lar 4xxxx bloğunda gösterilir.

Yani dokümanda “40001” yazan register, telde protokol adresi 0’dır. Bir cihazın dokümanı geleneksel gösterimi, PLC tarafındaki kütüphane ise protokol adresini kullanıyorsa bir adres kayması oluşur. Devreye almada beklenmeyen değerler okunuyorsa ilk kontrol edilecek yer burasıdır.

32 bit veriler ve byte sırası

Modbus register’ı 16 bittir. 32 bitlik bir değer (uzun tamsayı veya kayan noktalı sayı) iki register’a bölünerek taşınır. Burada iki soru ortaya çıkar:

  • Hangi register önce gelir — yüksek word mü, düşük word mü?
  • Register içindeki byte sırası nasıldır?

Standart bu konuda tam bir zorunluluk getirmediği için üreticiler farklı uygulamalar kullanır. Sonuç: değer okunuyor ama anlamsız çıkıyor. Çözüm, cihaz dokümanındaki word/byte sırasını kontrol etmek ve PLC tarafında gerekiyorsa word takası (word swap) yapmaktır.

Benzer şekilde, ölçüm değerleri sıklıkla ölçekli tamsayı olarak taşınır (örneğin gerçek değerin on katı). Ölçek çarpanı yine cihaz dokümanındadır.

Performans ve sorgu tasarımı

Modbus TCP’de her sorgu bir gidiş-dönüş demektir. Çok sayıda tek register sorgusu yapmak yerine, ardışık register’ları tek sorguda toplu okumak performansı belirgin biçimde iyileştirir. Bu nedenle cihaz üzerinde okunacak verilerin adres olarak bir arada olması tercih edilir.

Sorgu döngüsü tasarlanırken zaman aşımı (timeout) ve tekrar (retry) sayıları gerçekçi seçilmelidir. Çok kısa zaman aşımı gereksiz hata alarmları üretir; çok uzun zaman aşımı ise bir cihaz arızalandığında tüm tarama döngüsünü yavaşlatır.

Sınırları

Modbus TCP gerçek zamanlı bir protokol değildir. Cevap süresi ağ trafiğine, cihazın işlem yüküne ve TCP yığınına bağlıdır; garanti edilmez. Bu nedenle senkron motion, hızlı emniyet fonksiyonları ve kısa çevrimli kontrol döngüleri için uygun değildir. Bu tür ihtiyaçlarda EtherCAT veya Profinet IRT gibi gerçek zamanlı protokoller kullanılır.

Ayrıca protokolde kimlik doğrulama ve şifreleme yoktur. Modbus TCP cihazları kurumsal ağa veya internete doğrudan açılmamalı, otomasyon ağı ayrılmalıdır.

Nerede tercih edilir

  • Farklı marka cihazların bir araya getirilmesi gereken sistemler
  • Enerji analizörü, sayaç, sıcaklık kontrolör gibi ölçüm cihazlarının
  • okunması

  • Sürücülerin hız referansı ve durum bilgisinin izlenmesi
  • SCADA ve raporlama katmanına veri aktarımı
  • Mevcut Modbus RTU cihazlarının gateway ile Ethernet ağına taşınması

İlgili ürün aileleri: PLC, HMI, AC Sürücü, Gateway, Ethernet Switch, Haberleşme Modülleri

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir