Tüm yazılar
Genel

İki PLC Aynı Hattı İzliyordu, Birinin Saati 40 ms Farklıydı: PTP'siz Fabrikada Kim Haklı?

İzmir'de bir tesiste iki PLC aynı hat olayını logluyordu ama zaman damgaları 40 ms farklıydı. Olayın 'hangisi önce oldu' sorusu cevaplanamıyordu. NTP'nin neden yetmediğini, PTP'nin 1 ms'nin altına nasıl indiğini ve 'kim haklı' sorusunun aslında 'saatiniz ne kadar doğru' sorusu olduğunu kendi saha vakamla anlatıyorum.

İki PLC Aynı Hattı İzliyordu, Birinin Saati 40 ms Farklıydı: PTP'siz Fabrikada Kim Haklı?

İzmir’de bir tesis. Hat üzerinde iki PLC: biri S7-1500, diğeri ControlLogix. İkisi de aynı hat olaylarını logluyordu — bir sargı motorunun frenleme anı, bir limit switch’inin tetiklenişi, bir acil durdurmanın devreye girişi. Sorun şu: iki PLC’nin loglarındaki zaman damgaları, aynı olay için 40 ms farklıydı.

40 ms. Bir insanın refleksinden hızlı, bir PLC’nin döngüsünden yavaş. Ama “hangi olay önce oldu” sorusunu cevaplamak için yetersiz.

Tesisin bakım müdürü bana şunu sordu: “Hangisi haklı? S7 mi, ControlLogix mi?”

Cevabım: “Hiçbiri. İkisinin saati de yanlış. Sorun ‘kim haklı’ değil, ‘saatiniz ne kadar doğru’.”

NTP Yetmedi, Çünkü NTP ‘Yeterli’ Değil

Tesisin iki PLC’si de NTP ile senkronize ediliyordu. Fabrika binasındaki bir sunucu, internetten NTP alıp, iç ağı besliyordu. Klasik kurulum.

NTP’nin tipik doğruluğu, iyi koşullarda 1–10 ms. Kötü koşullarda — ağ gecikmesi, sunucu yükü, DHCP yeniden bağlanma — 50 ms’ye kadar sapar. Bizim vakamızda 40 ms, NTP’nin “normal” sapma aralığındaydı. Yani NTP “çalışıyordu”, ama “yeterli” değildi.

NTP, “saatim 14:32:07.000” der. Ama “bu 7.000’in sonundaki 0’lar ne kadar güvenilir?” sorusuna cevap vermez. İki PLC’nin NTP’den aldığı zaman, her birinin kendi ağ yoluna, kendi sunucusuna, kendi CPU yüküne bağlıdır. İki farklı yol, iki farklı gecikme, iki farklı “doğru”.

PTP: 1 ms’nin Altına İnmek İçin

PTP (Precision Time Protocol, IEEE 1588), NTP’nin “ağ üzerinden saat gönder” mantığını, donanım seviyesine indirir. Fark şu:

S7-1500, PTP’yi donanım olarak destekler — CPU’nun kendi NIC’i, PTP slave olarak çalışır. ControlLogix de, uygun bir PTP grandmaster (örneğin bir PTP destekli switch ya da ayrı bir grandmaster cihazı) varsa, aynı şekilde slave olur.

Tesisimizde yaptığımız:

  1. Grandmaster seçimi. Fabrika ana switch’ini PTP grandmaster olarak konfigüre ettim. (Switch, PTP’yi “transparent clock” olarak da destekliyordu — yani her port geçişinde gecikmeyi telafi ediyordu.)
  2. S7-1500 tarafı. CPU’nun PROFINET portuna PTP slave ayarı. TIA Portal’da, “Time synchronization” altında, PTP’yi aktif ettim. S7-1500, grandmaster’dan saat almaya başladı.
  3. ControlLogix tarafı. CIP tarafında, PTP’yi destekleyen bir modül (1756-EN2TN, PTP capable) üzerinden grandmaster’a bağladım.

Sonuç: iki PLC’nin zaman damgaları, aynı olay için 200 µs farkla loglandı. 40 ms → 200 µs. 200 kat iyileşme.

“Kim Haklı” Sorusu Neden Yanlış Soru?

Bakım müdürünün “hangisi haklı” sorusu, aslında “hangi saat daha doğru” sorusu. Ama bu sorunun cevabı, “ikisi de grandmaster’a göre doğru”dur. Grandmaster, fabrika binasındaki atomik referans (ya da GPS alıcılı bir PTP grandmaster) ise, iki PLC de o referansa göre senkronizedir.

Asıl mesele şu: zaman damgası, olayın kendisi kadar güvenilir olmalı. Eğer iki PLC’nin saati 40 ms farklıysa, “hangi olay önce oldu” sorusu, “saatlerim ne kadar doğru” sorusuna dönüşür. Ve bu sorunun cevabı, NTP ile alınamaz. PTP ile alınır.

PTP Kuran Tesiste Dikkat Ettiğim 3 Detay

  1. Transparent clock. PTP, sadece “grandmaster → slave” değil, “her switch geçişinde gecikme telafisi” ister. Switch’in PTP’yi “boundary clock” ya da “transparent clock” olarak desteklemesi şart. Desteği yoksa, her switch hop’u, PTP doğruluğunu eritir.
  2. Grandmaster tek olmalı. İki grandmaster, aynı segmentte, farklı “doğrular” üretir. Bir tesis, bir grandmaster. Yedek grandmaster varsa, “holdover” modunda olmalı — yani birincil düşerse, kendi kristaliyle devam etmeli, ikinci bir “doğru” üretmemeli.
  3. NTP’yi kapatma, ama PTP’yi öncelikli yap. S7-1500, PTP alıyorsa NTP’ye düşmez. Ama PTP grandmaster’ı düşerse, NTP’ye düşer. Yani NTP, “yedek” olarak kalır. PTP, “birincil” olur.

40 ms’nin Maliyeti

Bu 40 ms, tesisin “hat durdurması”na neden olmamıştı. Ama bir kez, bir arıza analizinde, “hangi olay önce oldu” sorusu, iki PLC’nin loguna bakılarak cevaplanamamıştı. Sonuç: arızanın kök nedeni, 3 gün gecikmeyle bulunmuştu. 3 gün × hat duruşu × saatlik maliyet.

40 ms, “hat durdurmadı”. Ama “kök nedeni bulmayı 3 gün geciktirdi”. Ve bu, 40 ms’nin gerçek maliyetiydi.

PTP’yi kurduktan sonra, bir daha “hangi olay önce oldu” sorusu, iki PLC’nin loguna bakılarak anında cevaplandı. 200 µs fark, “aynı anda oldu” demekti. Ve bu, arıza analizini 3 günden 3 saate indirdi.

Bazen en pahalı hata, “hat durduran” hata değil, “kök nedeni bulmayı geciktiren” hatadır.