modbus1Modbus Protoklü, genelde otomasyon için kullanılan cihazlar arasında veri alış verişini sağlayan uygulama protokolüdür. Basitçe bir istemci-sunucu protoklü olan Modbus, istemci tarafından gönderilen talebe karşı, sunucunun verdiği cevabı içeren iletiler olarak özetlenebilir. İletim halinde olan cihazlar “Master” ya da “Slave” olarak nitelendirilirler. Burada master, istemci; slave ise sunucudur.  

 

Aradaki iletişim Protocol Data Unit (PDU) tabir edilen basit paketlerle yapılır. Protokole göre 3 tip PDU söz konusudur:

Fonksiyonların her biri için 1 ile 127 aralığında bir kod atanmıştır. 129 ve 255 arasında ise hata kodları bulunur. Bu fonksiyonlar için spesifikasyonun ilk versiyonunda sınıf 1.. sınıf 3 olmak üzere 3 ayrı sınıf tanımlanmıştır. Yeni sürümlerde ise fonksiyonlar için public, kullanıcı tarafından tanımlanan ve rezerve olarak gruplama söz konusudur. Otomasyon amacıyla kullanılan fonksiyonlar public grubundaki fonksiyonlardır.

Modbus veri tipleri

Discrete input --------------------------------- tek bit ve read-only

Discrete output (coils) ---------------------- tek bit ve read-write

Input Registers ---------------------------------16 bit word ve read only

Holding Registers (ya da Registers)--------16 bit word ve read only

Spesifikasyon bir cihazda verilerin nasıl sınıflandırılması gerektiğine girmez; ancak bu değerlere erişim için kullanılacak fonksiyonlar açısından veri tipi önemlidir. Modbus ile bağlanılacak bir cihazda hangi basit fonksiyonların kullanılacağı konusunda manuelinin incelenmesi gerekir.

Modbus Uygulamaları

Modbus kablo, fiber, radyo gibi tüm bağlantı tipleri için kullanılabilir; ancak en yaygın iki tipi: Seri ve IP modbus uygulamalarıdır.

1.      Seri: Asenkron Master /Slave

Modbus ilk olarak asenkron seri ağ iletişimi için kullanılmıştır. Uygulama protokolü seri bir ara yüz üzerinde ve seri iletişim standartlarına göre çalışır. Kablo üzerinde en yaygın olanları:

RS232 (EIA232) : İki nokta arası kısa mesafe iletişiminde kullanılır.

RS422/RS485: RS 422, RS232 gibi, ancak iki yönlü versiyonudur ve daha uzun mesafeleri de destekler. RS-485 ise fazla sayıda nokta arasında iletişim için kullanılabilir (Aynı hat üzerinden birden fazla cihaz olabilir) ve bu cihazlardan biri master, digerleri slave olarak çalışırlar.

 

       
 
   
 

 

 

 

 

 

 

 


Bu bağlantılarda fiili haberleşmede PDU ilave alanlarla uzatılır. Yani PDU’ya bir başlık (Header) bir de hata (Error) checksum paketi eklenir. Bu uzatılmış pakete Application Data Unit (ADU) ismi verilir ve maksimum paket boyutu 256 byte’dır. Bu limit tüm modbus protokol uygulamaları için geçerlidir.

 

 
 

 

 

                                                                Seri ADU

 

Header içeriğinde 1 byte’lık adres alanı bulunur. Check sum bölümünde ise header alanı da dahil olmak üzere tüm paket üzerindeki hata bulunur. Modbus mesajı (ADU) bası ve sonu belli bir paket içine yerleşir. Böylece mesajın basşı ve sonu bellidir; kısmi mesajlar da ayrılabilir. İki farklı iletim modu vardır. Bu modlarda kodlama paketleme ve checksum farklıdır.

ASCII: Paketler byte basına iki ASCII karakterle kodlanır (hexadecimal gösterim). Error check sum Longitudinal Redundancy Check (LRC; 1 byte) ile gösterilir ve mesajlar : ile başlar (“:”, 0x3A) ve – ile biter ("CRLF", 0x0D0A). CRLF: Carriage Return – Line Feed. Karakerler arası 1 sn’lik duraklamalar söz konusu olabilir.

RTU (Remote Terminal Unit): Daha yüksek iletim yoğunluğu için karakterler binary olarak gönderilir. Error check sum, Cyclic Redundancy Check (CRC) ile ifade edilir. Mesajlar 3.5 karakter zamanına denk gelen bir sessizlikle başlar ve biter. Bu en basitçe ağ üzerindeki baud rate uyarınca geçen karakter zamanının çarpımıdır. 2 byte arasında geçen maksimum sessiz süre 1.5 karakter zamanıdır. RTU uygulaması yalnızca master tarafını destekler. Gecikme süresi düşük gerçek zamanlı sistemlerde güvenli şekilde kullanılamayabilir.

  

2.      IP: Master/Slave

TCP/IP tabanlı Modbus uygulaması (Modbus/TCP) 502 no’lu com portu üzerinden yürütülür. Bu uygulamada PDU başındaki paket IP’ye özel bir başlangıçtır. Bu uygulamalarda birden fazla master söz konusu olabilir ve iletişim iki yönlüdür (cihazlar hem master hem de slave olarak çalışabilir).

Text Box: MBAP HeaderText Box: Fonksiyon verisiText Box: Fonksiyon Kodu


                                                                                 ADU (TCP)

IP’ye özel header paketi spesifikasyonda MBAP olarak geçer ve 7 byte uzunluğundadır. İçinde:

 

Modbus UDP Spesifikasyonu

Çalışma prensibi TCP ile aynıdır. Ancak master/slave arasında paket kaybı olabilir. Master paket kaybını bildiği için talebi yenileyebilir.