Otomasyon dünyasında bazı arızalar vardır ki, ne yazılımdaki mantık hataları ne de standart arıza giderme kılavuzları size yol gösterir. Panonun başına geçip saatlerce ekranı izlemenize, "Acaba nerede yanlış yapıyorum?" diyerek kahve tüketmenize neden olan o gizemli anlar... Kağıt üstünde her şeyin kusursuz göründüğü, ancak sistemin günlerce sorunsuz çalıştıktan sonra aniden durduğu o kalleş arızalar, bir otomasyon mühendisinin en büyük sınavıdır.
Eğer Delta PLC sisteminizde özel modüller kullanıyor ve bir süredir buna benzer mantıksız sinyal kopmalarıyla boğuşuyorsanız, muhtemelen aradığınız cevabı bu yazıda bulacaksınız. Çünkü bu hikaye; transdüserleri söküp testlere gönderdiğim, analog kanalları yakıp yedeklere geçtiğim ve günlerce süren kabusun sonunda keşfettiğim kritik modül sıralaması kuralının gerçek hikayesidir.
Projelerimden birinde, sistemdeki kritik bir parametreyi izlemek için sahadan gelen yüksek seviyeli bir sinyali (örneğin 400V DC gerilimi güvenli bir 0-10V seviyesine düşüren bir Klemsan transdüser vasıtasıyla) Delta PLC (DVP serisi) analog giriş modülüne alıyordum.
Panomuzda sadece bu analog giriş modülü yoktu; aynı zamanda sistemin sıcaklık takibini yapan bir Sıcaklık Ölçüm Modülü (Termokupl/RTD) de CPU'nun hemen sağında yerini almıştı.
Sisteme ilk enerjiyi verdiğim andaki senaryo kusursuzdu:
PLC programı hatasız bir şekilde ayağa kalktı.
Sıcaklık modülü gayet stabil bir şekilde değerleri okuyor, ekrana yansıtıyordu.
Transdüserden gelen 0-10V analog sinyal modül üzerinden sorunsuz bir şekilde okunuyor, sistem saat gibi çalışıyordu.
Bu arızayı o dönem benim için çıkmaza sokan en büyük detay şuydu: Problem hemen, ilk anda olmuyordu.
Sistem kuruluyor, enerjileniyor ve günlerce (bazen 2-3 gün boyunca) tamamen normal çalışıyordu. Tam "Sorun çözüldü, sistem oturdu" dediğim o noktada, ortada hiçbir mantıklı sebep yokken analog giriş modülünün sinyali tamamen kesiliyordu.
Sıcaklık modülü çalışmaya devam ediyor, ekranda sıcaklıkları rahatça görebiliyordum; fakat analog modülden gelen veriler tamamen donuyor ya da sıfıra düşüyordu. PLC tarafına baktığımda herhangi bir kritik hata (Fatal Error) LED'i de yanmıyordu.
1. Yanılgı: "Acaba Girişi Yaktım mı?"
Arıza ilk birkaç gün sonra nüksettiğinde, sahadan gelen sinyalde bir gerilim sıçraması olduğunu ve analog modülün ilgili kanalını bozduğunu/yaktım sandım.
Panonun kapağını açıp kabloları söktüm.
Modülün bozulduğunu varsayarak diğer yedek analog giriş kanalına geçtim.
PLC yazılımında ilgili register adreslerini buna göre güncelledim ve sistemi yeniden devreye aldım.
Sonuç ne oldu? Sistem yine kusursuz bir şekilde çalışmaya başladı... Ta ki birkaç gün sonraya kadar. Birkaç gün sonra aynı kanal yine susunca, sorunun fiziksel olarak kanalı yakmakla ilgili olmadığını anladım. Bunun üzerine panodaki transdüseri söküp firmaya incelemeye gönderdim. Gelen raporda cihazın tamamen sorunsuz ve laboratuvar şartlarında kusursuz çalıştığı belirtildi. Cihaz sağlamdı, analog giriş kanallarım sağlamdı, yazılımım tamamdı; ama sistem yine kilitleniyordu.
2. Yanılgı: Reset Atıp Beklemek
Sistemin enerjisini kesip tekrar açtığımda (Power Cycle) her şeyin yeniden düzelmesi, ama günler sonra aynı döngünün tekrarlanması artık olayın donanımsal bir kararsızlık olduğunu bas bas bağırıyordu.
Günlerce süren araştırmalar, yerli ve yabancı otomasyon forumlarındaki derinlemesine incelemeler ve Delta sistemlerin mimarisi üzerine kafa yorarken, odaklanmam gereken ana noktanın transdüserler veya kanallar değil, modüllerin fiziksel dizilim sırası olduğunu fark ettim.
Orijinal kurulumumda, CPU'ya göre modüllerin sıralaması şöyleydi:
CPU Ünitesi
Sıcaklık Ölçüm Modülü (CPU'ya en yakın - Modül 0)
Analog Giriş Modülü (İkinci sırada - Modül 1)
Bu sıralamada sıcaklık modülü CPU'ya fiziksel olarak en yakın konumdaydı. Peki bu neden günler sonra arızaya yol açıyordu?
Teknik Arka Plan: Dahili Bus Veri Yolu ve Zamanlama Çakışması
Delta PLC'ler, sağ taraftaki genişleme portu üzerinden modüllerine dahili 5V besleme ve haberleşme (bus) sinyalleri taşırlar.
Sıcaklık modülleri, analog modüllere kıyasla dahili olarak çok daha yavaş örnekleme yapar ve verilerini bus hattına kendine has, daha uzun süreli paket yapılarıyla aktarırlar.
Sıcaklık modülü CPU'ya fiziksel olarak en yakın (Modül 0) konumda olduğunda, her tarama çevriminde (scan cycle) CPU ile modül arasındaki veri alışverişi önceliği bu yavaş modülde kalır.
Günlerce süren çalışma zarfında bus hattı üzerindeki bu zamanlama çakışması (bus collision / timeout) yavaş yavaş birikir ve bir noktada arkadaki analog modül bu iletişim trafiğini taşıyamayarak askıda kalıp kilitlenir.
Sıcaklık modülü kendi yavaş döngüsünde çalışmaya devam ederken, analog modül veri iletişimini tamamen keser. Enerjiyi kesip açtığınızda buffer'lar sıfırlandığı için sistem günlerce yine sorunsuz çalışır, ancak bus hattı tekrar şiştiğinde aynı kilitlenme kaçınılmaz olur.
Sorunu kökten çözmek için panonun kapağını tekrar açtım ve modüllerin fiziksel yerini değiştirdim:
CPU'nun hemen sağına Analog Giriş Modülünü aldım (Artık Modül 0 oldu).
Onun da sağ tarafına Sıcaklık Modülünü taşıdım (Artık Modül 1 oldu).
Donanımsal yer değiştirmeyi yaptıktan sonra, PLC yazılımındaki (ISPSoft / WPLSoft) FROM / TO komutlarında geçen slot indeks numaralarını da bu yeni sıraya göre güncellemeyi unutmadım (K0 ve K1 adresleri güncellendi).
Bu değişiklikten sonra sistemi enerjiye verdim. Günler, hatta haftalar geçti; sistemde en ufak bir sinyal kesilmesi dahi yaşanmadı. Sinyal akışı ilk andan itibaren tamamen kararlı hale geldi.
Eğer siz de benzer bir modüler PLC sistemi kuruyor, sahanızda hassas veriler okuyor ve "günlerce çalışıp sonra susan" gizemli arızalarla boğuşuyorsanız şu adımları mutlaka göz önünde bulundurun:
Modül Sıralamasına Öncelik Verin: Hassas, hızlı veri işleyen veya kritik analog sinyaller okuyan modüllerinizi, yavaş örnekleme yapan özel modüllerin (sıcaklık modülleri vb.) arkasında bırakmayın; mümkün olduğunca CPU'ya yakın slotlara konumlandırın.
Sağlam Parçaları Suçlamadan Önce Bus Yapısını İnceleyin: Cihazlarınız laboratuvar testlerinden sağlam çıkıyorsa veya kanalları değiştirmenize rağmen arıza tekrarlıyorsa, arızayı donanımsal iletişim çakışmalarında ve modül diziliminde arayın.
Yazılım Adreslemesini Güncellemeyi Unutmayın: Fiziksel sıralamayı değiştirdiğiniz an, PLC içerisindeki slot numaralandırmalarının (K0, K1...) donanımla birebir uyuştuğundan emin olun.
Günlerce kafayı yediğim, kanalları değiştirip transdüserleri testlere gönderdiğim ve nihayetinde donanımsal sıralamanın gücünü fark ederek çözdüğüm bu vakayı umarım sizlere net bir şekilde aktarabilmişimdir. Otomasyon dolu, hatasız ve kazasız günler dilerim!