Tüm yazılar
Haberleşme

Modbus TCP'de 30 Dakikalık Kopma: İki PLC Birbirini Göremedi

İki PLC Modbus TCP ile konuşuyordu, bir gün master slave'i göremedi. Üretim 30 dakika durdu, sorunu bulmak iki saat sürdü. Asıl suçlu switch'in VLAN ayarıydı. Sahadaki gerçek deneyimi anlatıyorum.

Modbus TCP'de 30 Dakikalık Kopma: İki PLC Birbirini Göremedi

Geçen sene iki PLC’yi Modbus TCP ile bağladık: bir master, bir slave. Master, slave’den sürekli veri alıyordu. Aylarca sorunsuz gitti. Ta ki bir gün master, slave’i göremeyene kadar. Üretim o 30 dakikada durdu; sorunu bulmak iki saatimizi aldı. Suçlu ise hiç beklemediğimiz yerdi: switch’in VLAN ayarı. Bugün o kopmadan öğrendiklerimi sahadan anlatıyorum.

Modbus TCP Nedir?

Modbus TCP, Ethernet temelli, register tabanlı bir saha protokolü. İki cihaz TCP/IP üzerinden konuşur: master slave’den veri ister, slave gönderir. Endüstride her yerde var; pratik, ucuz, her PLC’nin içinden çıkar.

Ama pratik olması, sorunun pratik çözülmesi demek değil. Bizim başımıza gelen tam da bu yüzden iki saat sürdü.

İki PLC: Master ve Slave

Makinemizde iki PLC vardı. Biri master, diğeri slave. Master, slave’in IP adresini biliyordu; her saniye o IP’ye bağlanıp register’ları okuyordu. Slave, istenen verileri gönderiyordu. Basit, tekrar eden, sessiz bir döngüydü.

Kopma: Ne Oldu?

Bir gün master, slave’i göremedi. Veri gelmedi, makine kuru kaldı. Operatör duran makineyi görünce bizi aradı. Sorunu araştırmaya başladık.

İlk akla gelen kablodur; kabloyu kontrol ettik, sağlamdı. Slave’in çalışıp çalışmadığını baktık, çalışıyordu; kendi başına register’ları okuyabiliyorduk. Ama master hâlâ slave’i göremiyordu. İki saatimiz bu “ama”da gitti. Sonra switch’in VLAN ayarına baktık ve suçlu ortaya çıktı: switch’in VLAN tablosu değişmişti. Master ve slave artık farklı VLAN’lardaydı; paketler aralarında geçemiyordu.

VLAN: Görünmez Duvar

VLAN (Virtual Local Area Network), tek bir switch’i mantıksal olarak birden fazla ağa böler. Her VLAN ayrı bir broadcast alanı gibidir; farklı VLAN’lardaki iki cihaz, trunk/ACL olmadan birbirini göremez.

Switch’in ayarı değiştiğinde master ve slave farklı VLAN’lara düşmüştü. Fiziksel kablo aynıydı, cihazlar çalışıyordu; ama aralarındaki görünmez duvar paketleri geçirmiyordu. Bu yüzden “kablo sağlam, cihaz sağlam” diye saatlerce boşuna gezmiştik.

Çözüm: VLAN’ları Eşitle

Suçluyu bulduktan sonra çözüm basitti: switch’in VLAN ayarını düzeltip master ile slave’i tekrar aynı VLAN’a aldık. Master, slave’i saniyeler içinde gördü; üretim yeniden başladı.

Ders şu: sorun kabloda değil, o görünmez VLAN ayarındaydı. İki saatimiz, “kablo sağlam” inancında harcanmıştı. Bir dahaki sefere önce switch’in ayar loguna bakacağım.

Sahada Takıldığınızda 5 Nokta

  1. Kablo: En basit ve en sık unulan. Kabloyu, konnektörü, link ışığını kontrol et.
  2. Cihaz canlı mı: Slave’in kendi başına çalışıp çalışmadığını doğrula.
  3. IP adresi: Slave’in IP’si değişmiş, çatışmış olabilir.
  4. Switch VLAN / ACL: İki cihaz aynı VLAN’da mı? Trunk ve ACL kuralı paketleri geçiriyor mu?
  5. Port 502: Firewall veya switch ACL, Modbus TCP’nin 502 portunu engelliyor olabilir.

Bizim olayımız 4. maddedeydi. Bu beşini üst üste kontrol etseydim, iki saat yerine on dakikada biterdi.

Suçlu O Görünmez VLAN Ayarıydı

Modbus TCP basit bir protokoldür; ama basitlik, arızanın basit çözülmesi demek değildir. Arıza kabloda da olabilir, switch’in VLAN ayarında da, firewall’da da. Bizim makinemizde suçlu o görünmez VLAN ayarıydı. Üretim 30 dakika durdu, sorunu bulmak iki saatimiz gitti. Ders aldım: bir dahaki sefere önce switch’in ayar loguna bakacağım.