Modbus ve Calisma Mantigi

Modbus Nedir?

Modbus 1979 yılında Modicon (şimdiki adı Schneider elektrik) tarafından yayımlanmış bir seri iletişim protokolüdür. Modbus Master-Slave ilişkisi ile iletişim sağlar. Yani Modbus ağında, bilgi talebinde bulanan Master cihaz ve istenilen bilgiyi Master cihaza ileten Slave cihaz bulunur. Standart bir Modbus ağında bir Master ve herbiri 1’den 247’ye kadar farklı Slave adresine sahip Slave cihaz bulunur. (Bir Master Cihaza en fazla 247 Slave cihaz bağlanabilir.) Modbus Nerede Kullanılır? Modbus kısaca istemci/sucunu ilişkisi bulunan sistemlerin haberleşmesinde kullanılır. Daha detaya inecek olursak, PLC, sürücü, sensör, invertör ve diğer çevre elemanlarının haberleşmesini sağlar. (Slave cihazlar birbirleri ile doğrudan iletişim kuramazlar.)

modbus sekil1
Modbus Nasıl Çalışır?

En basit Modbus ağ yapısı bir Master cihaz ve bir Slave cihazdan oluşmaktadır. Master cihaz Slave cihazdan veri talebinde bulunur sonrasında istenilen veri Slave cihaz tarafından Master cihaza iletilir. Bu veriler birler ve sıfırlardan meydana gelen paketler aracılığı ile gönderilmektedir. Yani veri aktarımı bitler aracılığı ile sağlanır. Her bir bit, bir voltaj seviyesi olarak iletilir. Burada pozitif voltaj sıfırları, negatif voltaj ise birleri ifade eder. Bu veri aktarım hızı genel olarak 9600 baud’dur. (baud=saniyede iletilen bit sayısı, “bit/saniye” ). Bir çok çeşidi olmasına karşın en çok kullanılanlar Modbus RTU ve Modbus TCP’dir.

Modbus RTU: MODBUS RTU protokolü master/slave mimarisine göre düzenlenmiş seri haberleşme protokollerini kullanır. Kullanım kolaylığı ve güvenilirlik nedeniyle yaygın olarak kullanılır. İki bitlik veriler halinde yollanan mesajların güvenli iletimi için kullanılan 16 bitlik CRC (hata kontrol mekanizması) ile basitlik ve güvenilirlik sağlanmış olur. CRC ile gönderilen verilerin tamamı denetlenir. Çoğunlukla RS485 haberleşme protokolü kullanılır. MODBUS RTU için belirlenen veri aktarım hızları 9.600 ve 19.200’dür. Aynı band hızı için ASCII kodlama yöntemine göre daha hızlı veri gönderilmiş olur. Motor koruma sistemleri için ekonomik bir çözümdür.

Modbus TCP:

Otomasyon cihazlarının denetim ve kontrol amaçlı tasarlanan basit kullanımı olan bir protokoldür. Klasik internet ağ topolojisine göre haberlşeme sunan bu protokol standart olarak kullanılan internet kartları ile 100 Mbps hız ile veri aktarımı yapar. TCP/IP protokolü ile çok sayıda bağlantı yapılabilir. Sunucu/istemci cihazlar aralarında bağlantı kurulur ve veri aktarımı gerçekleşir. Herhangi bir cihaz istemci veya sunucu olabileceği gibi sistemde birçok sunucu veya istemci olabilir. TCP/IP protokolünde verilerin iletim hızı cihazlarda kullanılan işlemci ve internet kartı türüne bağlı olarak değişmektedir.

modbus sekil2
Modbus İle İlgili Bazı Terimler

Slave ID; Bir ağdaki her bir Slave’in kendine ait ve benzersiz bir ID si vardır. Bu ID 1- 247 arası değişir. Master cihaz veri talebinde bulunduğunda, Slave cihazın adres bilgisi gönderilen ilk byte’dır. Her bir slave ilk byte’dan sonra mesajı gözardı edip etmeyeceğini anlar.

Fonksiyon Kodu (Function Code): Master tarafından gönderilen ikinci byte’dır. Bu kod Slave’e erişeceği çizelgeyi ve onu okuyacağı (Read) ya da ona yazıp (Write) yazmayacağı bilgisini verir.

CRC(Cyclic Reduncany Check-Çevrimsel Hata Denetimi): CRC, hata denetimi için her modbus mesajının sonuna eklenen iki byte’dır. Mesajdaki her byte CRC’yi hesaplamak için gönderilmektedir. Ayrıca alıcı cihaz da CRC’yi hesaplar ve onu gönderici cihazdan gelen CRC ile karşılaştırır. Eğer mesajdaki bir bit bile yanlış alınmışsa, CRC’ler farklı olacaktır ve bir hata oluşacaktır.


CRC çalışma mantığı; CRC yönteminde veriler tek tek toplanır, bu toplam belli bir sayıya bölünür (Bu sayıya P diyelim) ve bölüm sonucunda kalan sayısı verilere eklenir. Karşı tarafta veriler alındığında yeniden toplanır ve bu toplamdan daha önce hesaplanan kalan sayı çıkarılır. Sonuç P ile bölünür. Eğer veriler hatasız iletilmişse yeni kalan sıfır olmalıdır. Eğer sonuç sıfırdan farklı ise tekrardan veri istenir.

ÖR: Veriler; { 55, 78, 95, 55, 14, 76, 25 ,14} olsun.
Toplamı=412 yapmaktadır.
P=17 olsun.
412/17=24 Kalan=4 olur.
Veri iletimi { 55, 78, 95, 55, 14, 76, 25 ,14} - {4} şeklindedir.
Veriler - CRC
Veri alındığında ise (412-4)/17 işlemi yapılır ve kalan sonuç sıfır ise hatasız iletim olduğu varsayılır. Sizin de öngöreceğiniz üzere bu sistemin yanılma payı da vardır.

MODBUS İLE SCADA ÖRNEĞİ

Bu bölümde Eagleye RSD (Runtime Scada Designer) programı ile yapılmış bir örnek incelenecektir.

modbus sekil3
modbus sekil4

Öncelikle Bağlantılar menüsünden Modbus bağlantısını seçip, haberleşme için gerekli olan parametreleri girdik. (Projedeki Siemens s71200 bağlantısı başka bir proses için kullanılmaktadır.) Bağlantılar kısmında Modbus ve s71200 dışında s7200, s7300, s71500, modbus TCP, modbus RTU, ve OPC bağlantı seçenekleri de yer almaktadır.

modbus sekil5

Sonrasında Etiketler(Taglar) menüsünden, proje için gerekli olan tag adreslerini girdik ve veri kaydı için ilgili taglara kayıt zamanı atadık. Bu projede 1610 adet tag ile okuma ve/veya yazma yaparak proses kontrolü ve veri kaydı yapmaktayız.

modbus sekil6

Daha sonra Sayfa Düzenleme Ekranı ile reçete ve ana ekran tasarımlarımızı yaptık.

Ana Sayfada kayıtlı reçetelerden birini seçil PLC’ye yükleyerek prosesin çalışmasını sağladık. Bu çalışma esnasında da sıcaklık, basınç, vakum gibi analog değerleri kayıt altına aldık.

modbus sekil7
modbus sekil8

Writer