Panoda trend grafikleri

Bir raporda “Reaktör sıcaklığı: 72,4 °C” görüyorsunuz. Ama bu değer şu an mı ölçüldü, yoksa sensör üç saat önce kopmuş ve sistem son geçerli değeri mi gösteriyor? Değer doğru bir ölçüm mü, yoksa bir varsayılan mı? Kalite ve zaman damgası bu sorulara yanıt verir; ikisi olmadan değer güvenilmez bir sayıdır.

Kısaca

OPC UA’da bir veri noktası yalnızca değer değildir: değer + kaynak zaman damgası + sunucu zaman damgası + durum kodu (kalite). Raporlama ve entegrasyon, bu dördünü birlikte taşımalıdır.

Veri noktasının yapısı

Bir OPC UA veri noktasının yapısıBir veri noktası yalnızca değer değildir: değer, kaynak zaman damgası, sunucu zaman damgası ve kalite durum kodundan oluşur.Bir veri noktasıDeğerÖlçüm veya durum;tipiyle ve birimiyleKaynak zamanıDeğerin cihazdaüretildiği anSunucu zamanıSunucunun değerialdığı anKaliteGood, Uncertainveya Bad durumkodu+++Kaynak ve sunucu zamanı arasındaki fark gecikmeyi ve bayat veriyi gösterir
Raporlar ve hesaplar değerle birlikte zaman damgası ve kaliteyi de taşımalıdır; aksi halde bayat veya hatalı veri sağlıklı görünür.

Kalite: Good, Uncertain, Bad

OPC UA durum kodunun ciddiyet bitleri verinin güvenilirliğini üç sınıfa ayırır:

SınıfAnlamıÖrnek durumlarRapor davranışı
GoodDeğer güvenilirNormal ölçüm; yerel geçersiz kılma (local override)Normal kullanın
UncertainDeğer kullanılabilir ama şüpheliSon geçerli değer; yedek değer; sensör hassasiyeti düşükİşaretleyin, hesaplarda dikkatli olun
BadDeğer güvenilmezİletişim yok, cihaz veya sensör arızası, yapılandırma hatasıHesaba katmayın; boşluk olarak gösterin

Bu sınıfların altında ayrıntılı kodlar (ör. Bad_NotConnected, Bad_SensorFailure, Uncertain_LastUsableValue) bulunur; hata teşhisinde bu kodlar yol gösterir.

Zaman damgası: iki ayrı zaman

  • Kaynak zaman damgası (SourceTimestamp): değerin kaynakta (cihazda veya sürücüde) üretildiği an.
  • Sunucu zaman damgası (ServerTimestamp): sunucunun değeri aldığı an.

İkisi arasındaki fark gecikmeyi ve bayat veriyi gösterir. Dikkat edilecek noktalar:

  1. Zamanı kim damgalıyor? Cihaz kendi zamanını veriyorsa kaynak zamanı olaya yakındır. Cihaz zaman damgası sağlamıyorsa sürücü okuma anını damgalar; bu, olay zamanı değil okuma zamanıdır. Olay sıralaması (SOE) gerekiyorsa zaman damgalı olay üreten cihazlar kullanın.
  2. Saatler senkron mu? NTP (veya hassas uygulamalarda PTP) olmadan farklı cihazların zamanları birbirine güvenle kıyaslanamaz.
  3. Saat dilimi ve yaz saati: Zamanı UTC olarak saklayın; gösterimde yerel saate çevirin.
  4. Örnekleme aralığı: Tarama (scan) hızı zaman çözünürlüğünü sınırlar; saniyede bir okunan bir değer milisaniye hassasiyetli olay anlamına gelmez.

SQL ve raporlarda kaliteyi nasıl korumalı?

  • Her kayıt için değerle birlikte kalite ve kaynak zaman damgasını saklayın (PLC verisini SQL’e aktarma).
  • Bad değeri sıfır olarak yazmayın. Sıfır geçerli bir ölçümdür; hatalı veriyi gerçek sıfırdan ayırt edilemez kılar. Boş (NULL) bırakın ve kaliteyi kaydedin.
  • Bayat veriyi tespit edin: şimdi − kaynak_zamanı eşiği aşarsa değeri bayat işaretleyin.
  • Hesaplarda (OEE, tüketim, ortalama) yalnızca Good kayıtları kullanın veya boşluğu açıkça yönetin (OEE için veri hazırlığı).
  • Dönüşümlerde (OPC UA → MQTT/SQL) kalite ve zaman damgasını düşürmeyin; aksi halde kaynağın verdiği bilgi yolda kaybolur.

Kabul testinde ne doğrulanmalı?

  • Bir kabloyu çıkarıp kalitenin Bad’e dönüp dönmediği ve raporların bunu gösterip göstermediği.
  • Kaynak ve sunucu zamanı arasındaki farkın makul olması.
  • Bağlantı geri geldiğinde değerlerin doğru kaliteyle yeniden akması.

Bu kontroller entegrasyon kabul testi listesine eklenebilir. OPC UA’nın temelleri için OPC UA nedir? yazısına bakın.

Sık sorulan sorular

Uncertain kaliteli veriyi kullanabilir miyim?

Duruma bağlıdır. Örneğin “son geçerli değer” kısa kesintilerde yaklaşık bir gösterge olabilir, ama faturalama veya kalite kararı gibi kritik hesaplarda kullanmamak daha güvenlidir. Her kullanım için kural yazın.

Kaynak ve sunucu zamanı neden farklı olur?

Gecikme, tarama aralığı, saat farkı veya cihazın kendi zamanını vermemesi nedeniyle. Fark büyüyorsa bağlantıyı ve saat senkronizasyonunu inceleyin.

Kalite bilgisi MQTT’ye geçince kaybolur mu?

Dönüşümde alanlar eşlenmezse evet. Sparkplug B gibi bir şema veya kendi JSON şemanız kalite ve zaman damgası alanlarını içermelidir.