PLC'lerde hata ayıklama nasıl yapılır?

PLC programında ve saha bağlantılarında hata ayıklama

Merhaba dostlar,

PLC üzerinde hata ayıklama, beklenen davranışla gerçek davranış arasındaki farkın nedenini bulmaktır. Motorun çalışmaması, bir sayacın yanlış sayması veya bir sıcaklığın hatalı görünmesi her zaman program hatası değildir. Saha bağlantısı, I/O eşlemesi, program mantığı, haberleşme ve mekanik koşullar birlikte değerlendirilir. PLC programlama kadar önemli olan beceri, hangi bilginin nerede değiştiğini kanıtlarla izleyebilmektir.

1. Belirtiyi tanımlayın, doğru PLC ve projeyi doğrulayın

“Makine çalışmıyor” yerine hangi adımın gerçekleşmediğini belirleyin: başlatma isteği alınmıyor mu, çalışma izni oluşmuyor mu, yoksa çıkış aktif olduğu hâlde ekipman hareket etmiyor mu? Sorunun zamanı, çalışma modu, son değişiklikler ve alarm kodları kaydedilir. CPU'nun RUN/STOP durumu, modül teşhisleri ve destekleniyorsa olay günlüğü incelenir; nedeni kaydetmeden alarmı silmek veya enerjiyi kesip açmak teşhis bilgisini kaybettirebilir.

Kullanılan PLC programlama yazılımı, CPU ve firmware sürümüyle uyumlu olmalıdır. Çevrim içi bağlanılan kontrolörün kimliği ve bilgisayardaki projenin çalışan programla eşleşmesi doğrulanır. Mevcut proje, parametre ve donanım yapılandırması değişiklik öncesinde korunur. PLC'den programı geri okumak, özgün kaynak projeyi her zaman eksiksiz geri getirmez. Örneğin CODESYS tabanlı bir sistemde kaynak kodun ayrıca kontrolöre aktarılmış olması gerekebilir.

2. Sinyali sahadan başlayarak izleyin

Bir sensörün üzerindeki LED'in yanması, PLC programındaki ilgili değişkenin doğru olduğu anlamına gelmez. Sensör durumu, giriş modülündeki kanal, programın kullandığı değişken ve işlem izni ayrı ayrı karşılaştırılır. Yanlış adres, hatalı I/O eşlemesi, giriş filtresi veya sinyal türü uyumsuzluğu aynı belirtiyi oluşturabilir.

Çıkış tarafında da program komutu, fiziksel çıkış kanalı ve ekipmanın geri bildirimi birbirinden ayrılır. Programdaki “motor çalıştır” biti doğru olsa bile çıkış modülünün beslemesi, ara röle, sürücü izni veya motor devresi nedeniyle hareket gerçekleşmeyebilir. Ekrandaki mantık değeri, fiziksel ekipmanın çalıştığını tek başına kanıtlamaz. Kablolama müdahaleleri, makine güvenli duruma alınarak ve ilgili enerjiler izole edilerek yapılır.

3. Watch tablosunda koşulları birlikte izleyin

İzleme tablosuna yalnız son çıkış eklenmez. Başlatma isteği, otomatik/manuel mod, işlem izinleri, adım numarası, zamanlayıcı durumu, arıza biti ve geri bildirim birlikte alınır. Böylece “çıkış neden oluşmuyor?” sorusu, eksik olan koşulun bulunmasına dönüşür. Aynı fonksiyon bloğu birden fazla ekipman için kullanılıyorsa doğru blok örneği izlenmelidir.

Ladder Diagram ve FBD üzerinde koşul yolu takip edilir; Structured Text içinde karşılaştırmalar, değişken atamaları ve veri türleri incelenir. SFC kullanılıyorsa aktif adım ve geçiş koşulu kontrol edilir. Çapraz referans araması, aynı değişkene başka bir blok veya görevden değer yazılıp yazılmadığını gösterir. Bir değişkenin doğru görünmesi, çevrimin tamamında aynı değeri koruduğu anlamına gelmez.

4. Aralıklı sorunlarda trace ve zamanlama incelemesi yapın

Watch ekranının yenilenme hızı ile PLC'nin program çevrimi aynı değildir; kısa süreli bir sinyal ekranda hiç görünmeyebilir. Desteklenen sistemlerde trace kaydı, değişkenleri zaman bilgisiyle kaydederek olay sırasını incelemeyi sağlar. Başlatma, izin kaybı ve arıza sinyalleri aynı kayıtta karşılaştırılır; örnekleme aralığı ve tetikleme koşulu aranılan olaya göre seçilir. Kayıt yükünün görev süresini etkileyebileceği de dikkate alınır.

Sayıcı yanlış sayıyorsa giriş filtresi, darbe süresi ve kenar algılama incelenir. Normal giriş ve program taraması hızlı sinyale yetişmiyorsa uygun hızlı sayıcı gerekebilir. Zamanlayıcının her çevrimde yanlışlıkla sıfırlanması veya bloğun yalnız bazı çevrimlerde çağrılması da beklenmeyen davranış üretebilir. Görev çevrim süresi ve watchdog kayıtları, zamanlama sorunlarının ayrılmasına yardımcı olur.

5. Analog ölçüm ile ölçeklendirmeyi ayırın

Ham giriş değeri, mühendislik birimine çevrilmiş değer ve ekranda gösterilen değer ayrı ayrı kontrol edilir. Kanalın akım mı gerilim mi okuyacağı, sensör aralığı, veri türü ve birim doğru olmalıdır. Örneğin doğrusal 4–20 mA çıkışlı, 0–10 bar aralığındaki bir sensörde 12 mA, 5 bar karşılığıdır. PLC modülünün ham sayısal aralığı ise modele ve kanal ayarına bağlıdır.

Sensör doğru ölçse bile yanlış ölçeklendirme, taşma veya tam sayı işlemlerinde hassasiyet kaybı hatalı sonuç verebilir. PID kontrol sorunlarında ölçüm değeri, hedef değer ve kontrol çıkışı birlikte izlenir. Ölçüm hatasını PID kazançlarıyla örtmeye çalışmak, sorunun kaynağını çözmez. Kablo kopması veya ölçüm aralığı dışı durumlarda modülün teşhis bilgisi ve yapılandırılmış davranışı değerlendirilir.

6. Haberleşme ve HMI kaynaklı hataları kontrol edin

Uzak I/O veya sürücüden gelen veri için yalnız değere değil, verinin geçerliliğine ve güncellenmesine de bakılır. Bağlantı koptuğunda son değerin korunması, sahadaki durum değiştiği hâlde ekranda eski bilgiyi gösterebilir. PROFINET sistemlerinde cihaz ve modül teşhisleri; Modbus RTU sistemlerinde cihaz adresi, seri port ayarları, register eşlemesi ve zaman aşımı kayıtları incelenir.

HMI üzerinde görülen değer, PLC'deki doğru etiketten mi geliyor? Veri türü, birim ve ölçek doğru mu? SCADA sisteminde son güncelleme zamanı ve kalite bilgisi varsa kontrol edilir. PLC ile SCADA arasındaki veri alışverişinde sorun olması, PLC programının mutlaka hatalı olduğu anlamına gelmez. Kontrol hatası ile görüntüleme hatası ayrı teşhis edilir.

7. Simülasyon neyi gösterir, neyi göstermez?

Simülasyon; işlem sırası, hesaplamalar, sınır değerleri ve eksik giriş koşullarını fiziksel makineyi çalıştırmadan sınamak için kullanılabilir. Destek ve kapsam, yazılım ile hedef kontrolöre bağlıdır. CODESYS hata ayıklama araçlarında olduğu gibi, simüle edilen uygulama ile gerçek kontrolörün I/O, haberleşme ve zamanlama davranışları farklı olabilir.

Simülasyonda başarılı olan programın sahada da sorunsuz çalışacağı varsayılmaz. Sensör tepki süresi, elektriksel bağlantı, sürücü davranışı ve mekanik gecikmeler ayrıca doğrulanır. Test senaryoları normal çalışma yanında eksik sensör bilgisi, zaman aşımı, haberleşme kaybı ve yeniden başlatmayı da kapsamalıdır.

8. Değer değiştirme ile force aynı işlem değildir

Değer yazma veya modify, desteklenen biçimiyle bir değişkenin değerini değiştirir; program ya da I/O güncellemesi bu değeri yeniden yazabilir. Force ise desteklenen değişken veya I/O üzerinde zorlanmış değer uygular. Hangi adreslerin zorlanabildiği ve değerin çevrimin hangi noktasında uygulandığı üreticiye göre değişir. Force, her PLC'de bütün değişkenleri aynı şekilde sabitleyen evrensel bir işlev değildir.

Force, makine güvenli ve kontrollü bir test durumundayken kullanılmalıdır; üretimdeki arızayı gizlemek veya emniyet koşulunu geçersiz kılmak için kullanılmaz. Bazı sistemlerde yazılımı kapatmak veya bağlantıyı kesmek force işlemini sonlandırmaz. Testten sonra zorlamalar üreticinin yöntemine göre kaldırılır ve aktif force kalmadığı kontrolörden doğrulanır. Teşhise mümkün olduğunca önce yalnız izleme ile başlanır.

9. Breakpoint ve tek adım her PLC'de bulunmaz

Breakpoint, desteklenen ortamda program yürütmesini belirli bir noktada durdurur; tek adım ise yürütmenin adım adım incelenmesini sağlar. Kullanılabilirlik CPU, runtime, firmware ve yazılım özelliklerine bağlıdır. Bir simülatörde bulunan özelliğin fiziksel PLC'de de bulunduğu varsayılmaz.

Programın durması, fiziksel sürecin de durduğu anlamına gelmez. Başka görevler çalışmaya devam edebilir, I/O güncellemesi etkilenebilir ve çıkış davranışı hedef sisteme göre değişebilir. Bu nedenle bu araçlar, etkileri değerlendirilmiş bir test ortamında kullanılır. Çalışan üretim hattında teşhis için çoğu durumda izleme, olay kaydı ve uygun trace kaydı daha elverişlidir.

10. Örnek: Başlat düğmesine basılıyor, motor çalışmıyor

Başlatma isteği PLC'ye ulaşmıyorsa giriş kanalı, adres ve sinyal yolu incelenir. İstek geliyor ancak motor komutu oluşmuyorsa çalışma modu, işlem izinleri, aktif arıza ve sıra adımı kontrol edilir. Komut oluşuyor ancak hareket yoksa fiziksel çıkış yolu ve ekipman durumu değerlendirilir.

Motor bir hız kontrol cihazıyla çalışıyorsa sürücünün hazır bilgisi, komut kaynağı, hız talebi ve arıza kodu birlikte okunur. Servo sisteminde ise etkinleştirme, referanslama ve hareket bloğunun durum/hata bilgileri de incelenir. Çıkışı zorlayıp motoru döndürmek, normal çalışma koşullarındaki sorunu çözmüş olmak değildir.

Düzeltmeyi doğrulayın ve değişikliği kaydedin

Kök neden belirlendikten sonra değişiklik kontrollü yapılır; birbirinden bağımsız birçok ayar aynı anda değiştirilmez. Ardından sorunu oluşturan koşul yeniden denenir ve ilişkili diğer işlemlerin etkilenmediği kontrol edilir. Geçici test değerleri, zorlamalar ve debug ayarları kaldırılır; normal çalışma yapılandırması doğrulanır.

Değişiklik kaydında belirti, neden, yapılan düzeltme, test sonucu ve proje sürümü bulunmalıdır. Proje yedeği ve elektrik şeması güncellenir. PLC sistemlerinde erişim güvenliği kapsamında program değiştirme yetkileri ve uzaktan erişim de kontrol altında tutulur. Böylece sonraki bakımda neyin, neden ve hangi sürümde değiştiği görülebilir.