Adres etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Adres etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

2 Temmuz 2013 Salı

Modbus Hataları ( Modbus Errors )


Resim yazısı ekle

Modbus Errors:

 

 

Modbus Hataları:

 

Bir Modbus mesajı Server tarafından alındığında tüm parametreleri doğrumu diye analiz edilir.Eğer doğru ise Server bir cevap (response) yollar.Bu cevap Data içerebilir
Veya bir mesajın alındığı teyidi olabilir.
Eğer bir hata (error) var ise,Server iki şeyden birini yapabilir.Eğer mesaj hiç bir şekilde çözülemiyorsa (decode)  ( yani bir bad check sum varsa) mesaj doğrudan çöpe atılır.
Eğer mesaj çözülebiliyor ancak bir veya birkaç parametre doğru değilse ( yani olmayan bir adres için okuma girişiminde bulunulmuş ise ) server bir hata kodu (fault code)
İle cevap verecektir.
Hata kodu (fault code) basit olarak fonksiyon koduna (Function Code)128 eklenerek oluşur.
Örneğin eğer Client, function 3( Holding Register’i oku) ile bir talep te ( request ) bulunuyor ise ve bir hata içeriyorsa,server hata kodu  131 (3 + 128 = 131) verecektir.


Modbus Exceptions : Modbus İstisnaları

Hata koduna ek olarak,server neyin yanlış olduğu hakkında daha detaylı bir istisna kodu ( exception code) ile dönüş yapar.İstisna kodları her bir fonksiyon için ayrı ayrı tanımlanmıştır,ancak en yaygın kullanılan istisna fonksiyonları aşağıdakilerdir.

  • 1 = İstenilen fonksiyon kodu (command) desteklenmiyor
  • 2 = Adres doğru değil (varlığı yok).Çoklu adreslerde çalışan bu fonksiyon,requet den etkilen tüm adresler için check’i içerir.
  • 3 = Adres miktarı doğru değil.Miktar parametresi istenen fonksiyon için çok geniş ( yada sıfır)
  •  4 = İsteğin(request) yerine getirilişi esnasında Server da bazı tanımlanamayan hatalar oluştu

Modbus Tablo Adresleri



Modbus Tablo Adresleri

Sistem Veri Tablosu


Modbus data tablo adresleri basit tam sayılardır.Her adres tipi (discrete input,coil,input register,holding register) kendi numaralandırılmış adres setine sahiptir. Örneğin discrete input 42 ile coil 42 ayrı adreslerdir.
Modbus Protokol adresleri ile data model adreslerini birbirinden ayırır.
Protokolde kullanılan adresler 0 dan 65535 e kadar numaralandırılmıştır.Öte yandan imalatçı ( vendor)  dokümantasyonu 1 den başlayıp 65536 ya kadar numaralanmış olabilir.
Bu dokümantasyon protokol adreslerine ( ilk adres 0 olarak ) referans verecektir.
65536 adrese sahip olmak mümkün olmasına rağmen her bir tipe ait adresler gerçekte tek bir özel cihazda gerçeklenir (Sensör bloku,vana bankı,PLC v.s) ve genelde bundan daha azdır.Her bir cihaz tasarımcısının uygulamasını neyin anlamlı kılacağına kendisi karar vermelidir.Bu yüzden bir hafıza haritası “ memory map” sağlayarak yada adres listesi vererek cihazlarındaki adreslerde neyin “gerçeklendiğini” ve her bir birinin ne yaptığını anlatmaları gerekir.

Adres tiplerine bindirme “overlay” yapmakta mümkündür.Yani, aynı fiziki hafıza adresine refere eden birden fazla değişik adres tiplerine sahip cihaz tasarlamak mümkündür.
Örneğin Holding Register 10 ile Input Register 10 ‘u aynı hafıza birimine atamak mümkündür.Bu durumda holding regsiter 10 a yazdığınız değer Input Register 10 da da görünebilecektir.Bu durum Coil ve Discrete Inputs içinde geçerlidir.
Aynı şekilde coils ve discrete inputs register da paket edilebilir.Örneğin coils 0 dan 15 e kadar Holding Register  0’da Coils 16 dan 31 ‘e Holding Register 1 ‘e ve saire.
Bu birden çok coil in  harfler “words” olarak okunması ( veya yazılmasına) müsaade eder.
Data tiplerini ve Coil Paketlerini  register lara  bindirmek mümkün olsada pratikte pek rastlanan bir durum değildir.