MODBUS POLL NEDİR ?

 

Modbus Poll Nedir?

Modbus Poll, Danimarkalı Witte Software tarafından geliştirilmiş, Windows tabanlı bir Modbus Master Simulator yazılımıdır.

  • “Master” demek, sahadaki cihazlara (slave) sorgu gönderen ve cevap alan taraf demektir.

  • Modbus Poll, bilgisayarınızı bir Modbus Master gibi çalıştırır ve cihazların Modbus register’larını test etmenize olanak tanır.

  • Modbus cihazlarını okumak (register/coil değerlerini görmek)

  • Modbus cihazlarına yazmak (set değer göndermek, coil aç/kapatmak)

  • Haberleşmenin doğru çalışıp çalışmadığını test etmek

  • Hata ayıklamak (debugging)
    için kullanılan profesyonel bir araçtır.

  • Desteklediği Protokoller

    Modbus Poll, neredeyse tüm Modbus haberleşme tiplerini destekler:

    • Modbus RTU / ASCII (RS-232, RS-485, USB dönüştürücü ile)

    • Modbus TCP/IP (Ethernet üzerinden)

    • Modbus UDP/IP

    • RTU/ASCII encapsulated TCP/UDP

    Bu sayede ister klasik seri haberleşme ister Ethernet tabanlı Modbus kullanın, Modbus Poll ile test yapabilirsiniz.

    Temel Özellikler

    1. Çoklu Pencere Desteği
      Aynı anda birden fazla cihaz ya da register grubu için ayrı pencereler açabilirsiniz.

    2. Farklı Veri Tipleri

      • 16-bit signed/unsigned integer

      • 32-bit/64-bit integer

      • Float (IEEE 754)

      • Double

      • Binary, Hexadecimal format

    3. Okuma ve Yazma

      • Holding Register (400xx)

      • Input Register (300xx)

      • Coils (000xx)

      • Discrete Inputs (100xx)

    4. Data Logging
      Cihazdan çekilen verileri TXT ya da Excel dosyasına kaydedebilirsiniz.

    5. Grafiksel İzleme (Charting)
      Register değerlerini gerçek zamanlı grafik olarak görüntüleme imkânı sunar.

    6. Haberleşme Trafiğini İzleme
      Gönderilen (Tx) ve alınan (Rx) Modbus paketlerini ham formatta izleyebilir, hata ayıklayabilirsiniz.

  • Lisans ve Kullanım

    • Modbus Poll ücretsiz değildir.

    • 30 günlük deneme sürümü mevcuttur.

    • Süre sonunda lisans satın almak gerekir. Lisans ömür boyudur (perpetual).

    • Yazılım yalnızca Windows (Win7–Win11) üzerinde çalışır.

  • MODBUS POLL KULLANIM ÖRNEK


Daha önce projelerimizde, RTU cihazımız üzerinden TCP bağlantısı kurarak enerji analizöründen veri çekmiştik. Bu sefer ise farklı bir senaryo deniyoruz:

Bu kez RTU kullanmadan, doğrudan Modbus Poll yazılımı üzerinden analizörle haberleşme testi yapacağız. Amacımız, cihaz ile bilgisayar arasında sağlıklı bir Modbus iletişimi kurulup kurulmadığını kontrol etmek.

Modbus Poll burada bir Modbus Master olarak çalışıyor. Analizör ise slave rolünde. Bilgisayar üzerinden doğru IP adresi, port, slave ID ve register bilgilerini girerek, cihazdan veri okunabiliyor. Eğer yanlış adres girilirse veya cihaz cevap vermezse ekranda “Illegal Data Address” ya da timeout gibi hata mesajları görünüyor.



Analizörümüzü bilgisayara bağladıktan sonra Modbus Poll yazılımını açıyoruz.
İlk adım olarak üst menüden Connect sekmesine tıklıyoruz. Alternatif olarak klavyeden F3 kısayolu da kullanılabilir.

Karşımıza gelen Connection Setup penceresinde haberleşme tipini seçiyoruz. Bu örnekte analizörümüz Modbus TCP desteklediği için TCP/IP seçeneğini seçiyoruz.

Daha sonra cihazın Modbus parametrelerini giriyoruz:

  • IP Adresi → Analizörün haberleşme için tanımlı TCP/IP adresi

  • Port Numarası → Genellikle Modbus TCP için varsayılan port 502’dir, ancak cihaz farklı bir port kullanıyorsa bunu girmeliyiz.

Bu bilgiler doğru girildikten sonra Connect butonuna bastığımızda bilgisayarımız ile analizör arasında Modbus haberleşmesi kurulmuş olur.



Bağlantıyı kurduktan hemen sonra, hangi sinyali cihazdan okumak istiyorsak o register adresini tanımlamamız gerekir. Bunun için Read/Write Definition penceresini açıyoruz. Bu ekrana F8 kısayolu ile ya da menüden erişebilirsiniz.

Burada aşağıdaki parametreler girilir:

  • Slave ID → Haberleşmek istediğimiz cihazın kimlik numarası. (Her Modbus cihazı, aynı hatta olsa bile, kendine ait benzersiz bir ID’ye sahiptir.)

  • Function Code → Hangi tür veriyi okuyacağımızı belirler. Örneğin:

    • 03: Holding Registers

    • 04: Input Registers

    • 01: Coils

    • 02: Discrete Inputs

  • Address → Okumak istediğimiz sinyalin başlangıç adresi.

  • Quantity → Kaç adet register veya coil okunacağını belirtir.

Benim örneğimde analizörden L1 faz gerilimi okumak istediğim için, cihazın Modbus haritasında tanımlı olan ilgili adresi, Slave ID’yi ve Function Code’u bu ekrana girdim.

Siz de kendi cihazınızdan alacağınız sinyale göre adresi, Slave ID’yi ve Function Code’u değiştirerek kullanabilirsiniz.



Eğer bağlantı ayarlarında (IP adresi, port numarası) veya adres tanımlamalarında bir hata yoksa, Modbus Poll ekranında aşağıdaki gibi değerler görünecektir.

Benim örneğimde, 40001 adresinden L1 faz gerilimi okumaya çalıştım. Bilindiği gibi şebekede L1 fazında yaklaşık 220 V bulunuyor. Programda değer geldiğini net olarak görüyorum; yani cihaz ile haberleşme sağlanmış durumda.

Ancak dikkat ederseniz okunan değer 220 yerine bambaşka bir sayı olarak görüntüleniyor. Bu da bize şunu gösteriyor:

  • Haberleşme doğru,

  • Fakat cihazın veriyi saklama biçimi (örneğin ölçekleme – scaling, 32-bit float kullanımı, ya da byte sırası) farklı.

Bu gibi durumlarda cihazın Modbus Register Map dokümanına bakarak hangi veri tipinin ve hangi ölçek faktörünün kullanıldığını öğrenmek gerekir. Daha sonra Modbus Poll içinde doğru data formatı veya scaling ayarı seçildiğinde gerçek  değerini (220 V) görebiliriz.




İlk okumada cihazdan veri geldiğini görebilsek de, değerler doğru mühendislik birimleriyle görüntülenmeyebilir. Bunun nedeni genellikle:

  • Cihazın 32-bit (float) veri tipi kullanması,

  • Veya ölçek faktörü (scaling) uygulaması,

  • Ya da byte sırası (endianness) farkıdır.

Bu sorunu düzeltmek için Modbus Poll içerisinde doğru ayarları tanımlıyoruz. Örneğin:

  • Quantity değerini 2 yaparak 32-bit veriyi iki register halinde okuma,

  • Display Format kısmından “32-bit Floating” seçme,

  • Gerekirse doğru sonucu bulana kadar byte order seçeneklerini deneme,

  • Ya da cihazın haritasında belirtilen scale (örneğin ham değer /100) faktörünü uygulama.

Aşağıdaki görselde göreceğiniz bu ayarları yaptıktan sonra, okunan değer doğru şekilde dönüştürülür ve gerçek gerilim değeri olan 220 V ekranda doğru olarak görüntülenir.



Sonuç olarak, analizörümüzün 40001 adresinden veri okuma denememizi başarıyla gerçekleştirdik. Modbus TCP üzerinden, Modbus Poll yazılımı ile doğru ayarları yaparak L1 faz gerilim değerini gerçek mühendislik birimiyle görüntülemeyi başardık.

Bu küçük test sayesinde

Cihazın haberleşmesinin çalıştığını,

Doğru register adresinden doğru veriyi alabildiğimizi,

Modbus Poll’un sahada hızlı bir test aracı olarak ne kadar faydalı olduğunu görmüş olduk.

Bu projemiz burada sona eriyor. Bir sonraki projede görüşmek üzere!


















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