Modbus TCP’de Cihaz Ping Atıyor Ama Veri Okunmuyorsa Port ve Unit ID Nasıl Kontrol Edilir?

Modbus TCP’de Cihaz Ping Atıyor Ama Veri Okunmuyorsa Port ve Unit ID Nasıl Kontrol Edilir?

📅 02 Eylül 2026⏱️ 14 dk okuma
0.37 Hız Kontrol Cihazı Siemens 220
📑 İçindekiler (Tıkla Aç)

Modbus TCP cihazınız ping atıyor ancak veri okunamıyorsa, öncelikle Modbus TCP portunu (genellikle 502) ve Unit ID’yi (genellikle 1 veya dokümantasyonda belirtilen değer) kontrol etmelisiniz. Bu, cihazın ağa bağlı olduğunu gösteren ping’in ötesinde, Modbus uygulama katmanı iletişiminin doğru parametrelerle kurulup kurulmadığını anlamak için kritik adımlardır. Ağ güvenlik duvarları, cihaz ayarları ve istemci yazılımı port/Unit ID eşleşmeleri dikkatle incenmelidir.

Modbus TCP’de Cihaz Ping Atıyor Ama Veri Okunmuyorsa Port ve Unit ID Nasıl Kontrol Edilir? Nedir?

 

Endüstriyel otomasyon sistemlerinde, bir cihazın ağa bağlı olup olmadığını anlamanın en temel yolu, o cihaza bir “ping” isteği göndermektir. Ping (Packet Internet Groper), ICMP (Internet Control Message Protocol) kullanarak bir ağ cihazının yanıt verip vermediğini kontrol eden bir ağ tanı aracıdır. Cihazınız ping’e yanıt veriyorsa, bu, ağ katmanında (OSI modelinin Katman 3’ü) temel bir bağlantının mevcut olduğu anlamına gelir. Ancak, Modbus TCP gibi uygulama katmanı protokolleri (OSI modelinin Katman 7’si) için bu yeterli değildir. Ping’in başarılı olması, Modbus TCP iletişiminin de sorunsuz çalışacağı anlamına gelmez. Veri okuma sorunları genellikle Modbus TCP portu veya Unit ID (Slave ID) gibi uygulama katmanı parametrelerinin yanlış yapılandırılmasından kaynaklanır.

Bu durum, cihazın IP adresine ulaşılabilir olduğunu, ancak Modbus TCP sunucusunun (slave) belirli bir porta gelen bağlantıları kabul etmediğini veya gelen Modbus isteklerinin doğru Unit ID’ye yönlendirilmediğini gösterir. Modbus TCP, standart olarak TCP port 502‘yi kullanır. Eğer cihaz veya istemci yazılımı farklı bir port numarası ile yapılandırılmışsa, iletişim sağlanamaz. Benzer şekilde, Modbus TCP protokolünde, her ne kadar doğrudan bir IP bağlantısı olsa da, Modbus RTU’daki gibi bir Unit ID kavramı mevcuttur. Bu ID, özellikle bir Modbus TCP’den Modbus RTU ağ geçidi (gateway) kullanılıyorsa veya cihazın kendisi birden fazla sanal slave’i destekliyorsa kritik hale gelir. Cihazın doğru Unit ID ile yapılandırılması ve istemcinin de bu ID’yi doğru bir şekilde hedeflemesi gerekmektedir.

Çalışma Prensibi ve Teknik Veriler

Modbus TCP, TCP/IP protokol yığını üzerinde çalışan bir uygulama katmanı protokolüdür. Ping ise ağ katmanında çalışır. Bu ayrım, sorunun kökenini anlamak için hayati öneme sahiptir. Ping başarılı olduğunda, bu, cihazın IP adresi üzerinden ağa erişilebilir olduğunu ve temel ağ yapılandırmasının (IP adresi, alt ağ maskesi, ağ geçidi) doğru olduğunu gösterir. Ancak Modbus TCP iletişimi, bu temel bağlantının üzerine inşa edilir ve ek parametrelerin doğru olmasını gerektirir.

Modbus TCP Portu (Genellikle 502): Modbus TCP sunucuları (slave cihazlar) genellikle standart olarak 502 numaralı TCP portunu dinler. İstemci (master) cihaz da bu porta bağlanmaya çalışır. Eğer sunucu farklı bir portta dinliyorsa veya istemci yanlış bir portu hedefliyorsa, bağlantı kurulamayacak ve veri okuma başarısız olacaktır. Bu durum, bir binanın adresini bilip kapı numarasını bilmemeye benzer. Ağ geçidi (gateway) cihazları veya bazı özel endüstriyel cihazlar, varsayılan portu değiştirme seçeneği sunabilir. Bu portun her iki tarafta (Modbus TCP sunucusu ve istemcisi) eşleştiğinden emin olmak gereklidir.

Unit ID (Slave ID): Modbus TCP protokolü, Modbus RTU’dan miras kalan bir “Unit Identifier” alanını içerir. Doğrudan bir Modbus TCP cihazına bağlandığınızda, bu alan genellikle 1 olarak ayarlanır veya bazı cihazlarda bu alanın herhangi bir değeri kabul edilebilir (örneğin 255). Ancak, eğer bir Modbus TCP’den Modbus RTU’ya ağ geçidi kullanılıyorsa, Unit ID, arkadaki Modbus RTU slave cihazının adresini belirtir. Bu durumda, Unit ID’nin doğru Modbus RTU slave cihazının adresine ayarlanması zorunludur. Yanlış Unit ID, ağ geçidinin isteği doğru RTU cihazına yönlendirememesine neden olur, bu da veri okuma hatalarına yol açar. Bazı Modbus TCP cihazlar, birden fazla sanal slave arayüzünü destekleyebilir ve her biri farklı bir Unit ID ile ilişkilendirilebilir.

Bu parametrelerin doğru yapılandırılması, Modbus TCP iletişiminin başarılı olması için kritik öneme sahiptir. Ağ güvenliği duvarları (firewall) da 502 numaralı portu engelleyebilir ve bu da bağlantı sorunlarına yol açabilir. Bu nedenle, sorun giderme sürecinde hem cihazın kendi ayarları hem de ağ yapılandırması dikkatle incelenmelidir.

ParametreDeğer/Açıklama
Protokol KatmanıModbus TCP: Uygulama Katmanı (OSI Katman 7)
Ping: Ağ Katmanı (OSI Katman 3)
Standart Modbus TCP Portu502 (TCP)
Yaygın Unit ID Değerleri1 (çoğu doğrudan Modbus TCP cihazı için), 255 (gateway’ler veya broadcast için), 2-247 (RTU slave’leri için gateway üzerinden)
İletişim TürüMaster-Slave (Client-Server)
Veri BirimiModbus Application Protocol (MBAP) Header + PDU
Hata TespitiTCP Checksum (alt katman), Modbus Exception Codes (uygulama katmanı)
Gerekli Ağ AracıModbus TCP Client Yazılımı, Ağ Paket Analizörü (Wireshark)
Modbus TCP’de Cihaz Ping Atıyor Ama Veri Okunmuyorsa Port ve Unit ID Nasıl Kontrol Edilir?

Sahada Dikkat Edilmesi Gerekenler

  • Cihaz Dokümantasyonu ve Yapılandırması: Her zaman ilk başvuru kaynağınız cihazın kullanım kılavuzu olmalıdır. Üreticiler, cihazın varsayılan Modbus TCP portunu (502 veya özel bir port) ve Unit ID ayarlarını (genellikle 1, 255 veya yapılandırılabilir bir aralık) burada belirtirler. Cihazın web arayüzüne veya konfigürasyon yazılımına erişerek bu değerlerin doğru ayarlandığını teyit edin.
  • Modbus Client/Master Yazılımı Ayarları: Veri okuma isteği gönderen Modbus master (istemci) yazılımınızın (PLC, SCADA, HMI veya bir test yazılımı) da doğru IP adresi, port numarası ve Unit ID ile yapılandırıldığından emin olun. Bu üç parametrenin, hedef cihazın ayarlarıyla birebir eşleşmesi zorunludur. Yanlış bir karakter veya fazladan bir boşluk bile iletişimi engelleyebilir.
  • Ağ Güvenlik Duvarları (Firewall): Endüstriyel ağlarda güvenlik duvarları, yetkisiz erişimi engellemek için portları kısıtlayabilir. Cihazın bulunduğu ağdaki veya cihazın kendi üzerindeki (eğer varsa) güvenlik duvarının, Modbus TCP portu (varsayılan 502) üzerinden gelen bağlantılara izin verdiğinden emin olun. Bu, özellikle IT ve OT ağlarının birleştiği noktalarda sıkça karşılaşılan bir sorundur. Güvenlik duvarı kurallarının doğru tanımlandığını kontrol etmek için ağ yöneticinizle iletişime geçin.
  • Ağ Paket Analizörleri (Wireshark gibi): Modbus TCP trafiğini ağ düzeyinde incelemek için Wireshark gibi bir araç kullanmak, sorunun kökenini tespit etmede son derece faydalıdır. Wireshark ile ağ trafiğini yakalayıp, Modbus TCP filtrelemesi yaparak (örneğin “modbus.unit_id == 1” veya “tcp.port == 502”), istemcinin hangi port ve Unit ID ile istek gönderdiğini ve sunucunun buna nasıl yanıt verdiğini (veya yanıt vermediğini) görebilirsiniz. Bu, özellikle “bağlantı reddedildi” (connection refused) veya “zaman aşımı” (timeout) gibi hatalarda port sorununu, “geçersiz Unit ID” gibi hatalarda ise Unit ID sorununu net bir şekilde ortaya koyar.
  • IP Adresi Çakışmaları ve Ağ Topolojisi: Her ne kadar ping başarılı olsa da, aynı ağda aynı IP adresine sahip başka bir cihaz olması gibi IP çakışmaları veya yanlış ağ maskesi ayarları, Modbus TCP iletişimini etkileyebilir. Ayrıca, ağ anahtarlarının (switch) port ayarları (VLAN, port güvenliği vb.) veya router yapılandırmaları da Modbus trafiğini engelleyebilir. Ağ topolojisini ve cihazın ağdaki fiziksel bağlantısını gözden geçirin.
  • Modbus Fonksiyon Kodları ve Register Adresleri: Port ve Unit ID doğru olsa bile, yanlış Modbus fonksiyon kodu (örn. Holding Register okumak yerine Coils okumaya çalışmak) veya yanlış register adresi (örn. 40001 yerine 40000) veri okuma hatasına neden olabilir. Bu tür hatalar genellikle “Exception Response” olarak geri döner (örn. Illegal Data Address, Illegal Data Value). Bu, Unit ID veya port sorunu olmaktan ziyade, Modbus uygulama katmanındaki veri erişim sorunudur.
Modbus TCP’de Cihaz Ping Atıyor Ama Veri Okunmuyorsa Port ve Unit ID Nasıl Kontrol Edilir?

Sık Karşılaşılan Sorunlar ve Çözümleri

Modbus TCP cihazının ping atmasına rağmen veri okunamaması, sahada sıkça karşılaşılan bir durumdur ve genellikle belirli sorun senaryolarına işaret eder. İşte bu sorunlar ve çözüm yöntemleri:

  • Sorun: Yanlış Modbus TCP Port Numarası.
    İstemci (master) yazılımı, cihazın dinlediği Modbus TCP portundan farklı bir porta bağlanmaya çalışıyor. Varsayılan 502 portu yerine cihaz farklı bir portta yapılandırılmış olabilir veya istemci yanlış bir port numarası kullanıyor olabilir.
    Çözüm: Cihazın kullanım kılavuzunu veya yapılandırma arayüzünü kontrol ederek doğru Modbus TCP port numarasını öğrenin. Genellikle bu 502’dir. İstemci yazılımınızdaki port ayarını bu değere göre düzeltin. Eğer emin değilseniz, bir ağ analizörü (Wireshark) kullanarak cihazın hangi portlarda dinlediğini ve istemcinin hangi porta bağlanmaya çalıştığını gözlemleyin. “Connection Refused” (Bağlantı Reddedildi) hatası genellikle port uyuşmazlığını veya güvenlik duvarı engelini gösterir.
  • Sorun: Yanlış Unit ID (Slave ID) Kullanımı.
    İstemci, Modbus TCP isteğini yanlış Unit ID ile gönderiyor. Bu, özellikle bir Modbus TCP-RTU ağ geçidi kullanılıyorsa veya cihaz birden fazla sanal slave’i destekliyorsa kritik öneme sahiptir.
    Çözüm: Cihazın dokümantasyonunu inceleyerek doğru Unit ID’yi bulun. Doğrudan Modbus TCP cihazları için genellikle Unit ID 1 kullanılır. Bazı cihazlar 255’i veya herhangi bir değeri kabul edebilir. Ağ geçitleri için Unit ID, arkasındaki Modbus RTU slave cihazının adresidir. İstemci yazılımınızdaki Unit ID ayarını bu değere göre düzeltin. Wireshark ile Modbus trafiğini izleyerek istemcinin hangi Unit ID ile istek gönderdiğini ve cihazın hangi Unit ID’ye yanıt verdiğini kontrol edin.
  • Sorun: Ağ Güvenlik Duvarı (Firewall) Modbus Portunu Engelliyor.
    Ağdaki bir güvenlik duvarı (donanımsal veya yazılımsal), Modbus TCP portu (genellikle 502) üzerinden gelen veya giden trafiği engelliyor.
    Çözüm: Ağ yöneticinizle iletişime geçerek, Modbus TCP portu (502) için TCP trafiğine izin veren bir kuralın tanımlandığından emin olun. Cihazın veya bilgisayarın kendi güvenlik duvarı ayarlarını (Windows Firewall gibi) kontrol edin ve Modbus TCP portuna izin verin. Güvenlik duvarı geçici olarak devre dışı bırakılarak sorunun güvenlik duvarından kaynaklanıp kaynaklanmadığı test edilebilir (ancak bu, kalıcı bir çözüm olmamalıdır).
  • Sorun: Modbus Fonksiyon Kodu veya Register Adresi Yanlış.
    Port ve Unit ID doğru olsa bile, istemci yanlış bir Modbus fonksiyon kodu (örn. 3 yerine 4) veya yanlış bir register adresi (örn. 40001 yerine 40002) ile veri talep ediyor olabilir. Bu durum, genellikle Modbus Exception Response (istisna yanıtı) ile sonuçlanır (örn. Illegal Data Address, Illegal Data Value).
    Çözüm: Cihazın Modbus register haritasını (Modbus Map) dikkatlice inceleyin. Hangi fonksiyon kodlarının (Read Holding Registers, Read Input Registers, Read Coils vb.) ve hangi adres aralıklarının desteklendiğini doğrulayın. İstemci yazılımınızdaki fonksiyon kodu ve register adresi ayarlarını bu haritaya göre düzeltin.
  • Sorun: Cihaz Modbus TCP’yi Desteklemiyor veya Farklı Bir Protokol Kullanıyor.
    Cihaz, Modbus RTU over TCP (seri port üzerinden Ethernet dönüştürücü ile) kullanıyor olabilir veya farklı bir endüstriyel Ethernet protokolü (örn. EtherNet/IP, PROFINET) kullanıyor olabilir.
    Çözüm: Cihazın teknik özelliklerini ve dokümantasyonunu dikkatlice kontrol edin. Cihazın gerçekten Modbus TCP’yi desteklediğinden ve doğru protokol seçeneğinin etkinleştirildiğinden emin olun. Eğer Modbus RTU over TCP ise, istemcinin de buna uygun şekilde yapılandırılması gerekir (bazı Modbus TCP istemcileri, RTU over TCP modunu destekler).

Uzman Tavsiyesi

Endüstriyel otomasyon sistemlerinde Modbus TCP iletişimi sorunları, saha mühendislerinin ve teknisyenlerinin karşılaştığı en yaygın zorluklardan biridir. Cihazın ping’e yanıt vermesi, ağ bağlantısının temel düzeyde çalıştığını gösterse de, Modbus TCP gibi uygulama katmanı protokolleri için bu yeterli değildir. Başarılı bir Modbus TCP iletişimi için Modbus TCP portu (genellikle 502) ve Unit ID gibi parametrelerin hem master (istemci) hem de slave (sunucu) cihaz üzerinde doğru ve eşleşecek şekilde yapılandırılması hayati öneme sahiptir.

Bu tür bir sorunla karşılaşıldığında, uzman tavsiyesi her zaman sistematik bir yaklaşımdır. İlk olarak, cihazın ve Modbus master yazılımının dokümantasyonunu titizlikle inceleyin. Üretici tarafından belirtilen varsayılan port numaralarını ve Unit ID değerlerini not alın. Ardından, her iki taraftaki yapılandırmaların bu değerlerle eşleşip eşleşmediğini kontrol edin. Unutulmamalıdır ki, Modbus TCP’de Unit ID’nin önemi, bir ağ geçidi kullanılıyorsa veya cihaz birden fazla sanal slave’i destekliyorsa daha da artar. İkinci adım olarak, ağ güvenlik duvarlarının Modbus TCP portunu engellemediğinden emin olun; bu, özellikle IT ve OT ağları arasındaki entegrasyon noktalarında sıkça gözden kaçan bir detaydır. Son olarak, Wireshark gibi ağ analiz araçlarını kullanarak Modbus trafiğini yakalamak, sorunun kaynağını kesin olarak tespit etmede paha biçilmez bir yardımcıdır. Bu araçlar, istemcinin hangi port ve Unit ID ile istek gönderdiğini ve sunucunun buna nasıl yanıt verdiğini detaylı bir şekilde gösterir. Uygulama katmanı hata kodları (Exception Codes) da Modbus haritası veya fonksiyon kodu yanlışlıkları hakkında değerli ipuçları sağlar. Bu adımları takip ederek, Modbus TCP iletişim sorunlarını hızlı ve etkili bir şekilde çözebilir, üretim kesintilerini minimize edebilirsiniz. Unutmayın, doğru dokümantasyon, doğru yapılandırma ve doğru teşhis araçları, endüstriyel ağ sorun gidermenin temel taşlarıdır.

Yorum bırakın

Alışveriş Sepeti
⚙ Araçlar
Scroll to Top