Mesai: Pzt–Cum 09:00–18:00
BACnet MS/TP'de Yazma İşlemi Başarısız Oluyor: Priority Array ve Silent Reject

BACnet MS/TP'de Yazma İşlemi Başarısız Oluyor: Priority Array ve Silent Reject

BACnet üzerinden bir noktaya değer yazıyorsunuz, cihaz "WriteProperty Acknowledged!" diyor, ama değer değişmiyor. Klasik BACnet sorunu: priority array, silent reject ve vendor-specific commandable davranışı.

BACnet MS/TP üzerinden bir noktaya yazma yaptığınızda cihaz size WriteProperty Acknowledged! cevabı dönerse ne anlama gelir? Mantıksal olarak "yazım kabul edildi". Ama saha gerçeği şu: cihaz ACK göndermiş olabilir ve aynı anda yazımı uygulamamış olabilir. Bu BACnet uyumsuz cihaz davranışıdır ve sektörde yaygındır.

Bu yazıda BACnet commandable obje yapısını, priority array mekanizmasını ve "silent reject" durumunda doğru teşhisi nasıl yapacağınızı anlatıyoruz.

Commandable obje nedir?

BACnet'te bir "commandable" obje (AO, AV, BO, BV, MSV — Analog/Binary/MultiState Output veya Value), Present-Value'ya doğrudan yazılmaz. Bunun yerine Priority Array adlı 16 elemanlı bir dizi vardır:

  • Priority 1 = en yüksek öncelik (Manual Life Safety)
  • Priority 8 = Manual Operator (en yaygın "kullanıcı override" katmanı)
  • Priority 16 = Default (en zayıf, otomatik sistemler)

Her yazım belirli bir priority slotuna düşer. Present-Value en yüksek öncelikli NULL olmayan slotun değerini yansıtır.

Örnek senaryo

BMS sistemi Priority 8'e (Manual Operator) 23.5°C yazıyor. Sonra siz Priority 16'ya (Default) 25.0°C yazmak istiyorsunuz. Yazım başarılı kabul edilir, slot dolar, ama Present-Value hâlâ 23.5°C — çünkü P8 daha yüksek öncelikli ve aktif.

Silent reject nedir?

BACnet standart der ki: bir yazım kabul edildiyse, slot mutlaka güncellenmeli. Ama bazı üreticiler (özellikle Honeywell, bazı eski Siemens) şu yola gider:

  • WriteProperty alır
  • SimpleACK gönderir (yazım onaylandı sanılır)
  • İçten yazımı uygulamaz — sanki hiçbir şey olmamış gibi

Bu, ya bir güvenlik özelliği (sadece "trusted source"lara yazım izni) ya da computed (hesaplanmış) bir objenin yazıma kapalı olmasıdır. BACnet standart açısından kabul edilebilir değil; vendor sahada bu davranışı dokümante etmez.

Saha teşhis adımları

1. Present-Value'yu read-back yap

Yazım sonrası hemen Present-Value'yu okuyun. Eğer yazdığınız değere eşit değilse:

  • Yazım başka bir slot'a girmiş ama düşük öncelikli — Priority Array'i kontrol et
  • Yazım hiç uygulanmamış — silent reject ihtimali

2. Priority Array'i oku

Cihazda priority-array property'sini okuyun. 16 element olur. Yazdığınız slot dolu mu? Daha yüksek öncelikli başka slot dolu mu?

SlotAnlamAktif?
P1Manual Life SafetyÇoğunlukla boş
P3Critical EquipmentYaygın — BMS karar mekanizması
P5Minimum On/OffHVAC scheduling
P8Manual Operatorİnsan müdahalesi
P16Default (Relinquish Default'a düşer)Otomatik kontrol

3. Out-of-Service ve Reliability oku

Eğer out-of-service = TRUE ise cihazın yazımları kabul etmesi protokole özel olabilir. reliability = no-fault-detected dışında bir değer ise cihaz objeyi "arızalı" görüyor demektir.

4. Property-list ile yazılabilir property'leri bul

Modern BACnet cihazlarda property-list okunabilir. Burada Present-Value görünmüyorsa o obje yazıma kapalı demektir.

5. Farklı priority'lerde test et

Aynı objeye Priority 1, 5, 8, 16 ile sırayla yazın ve her birinde priority array'i okuyun. Eğer hiçbiri Priority Array'i güncellemiyorsa silent reject kesin.

Silent reject ile karşılaşırsanız

Üç pratik çözüm:

  1. BACnet/IP üzerinden deneyin. Bazı cihazlar BACnet/IP arayüzünden yazımları kabul ederken MS/TP direct erişimde reddeder. Bu vendor güvenlik filtresine örnektir.
  2. Out-of-Service = TRUE yapın, sonra Present-Value yazın, sonra Out-of-Service = FALSE. Bazı cihazlar bunu zorunlu tutar.
  3. Üretici dokümanını isteyin. "Bu cihazda hangi obje yazılabilir?" sorusuna teknik destek dokümandan referans verir. Eğer "yalnızca BACnet/IP üzerinden, yalnızca BMS gateway'den" diyorsa standart bir sınırlama vardır.
NEOVUS pratiği: Saha discovery aracımız yazma sonrası otomatik priority array kontrolü yapar. Eğer slot güncellenmediyse uyarı verir: "ACK alındı ama değişiklik yok — silent reject olasılığı". Bu, BACnet sahalarındaki tanı süresini saatlerden dakikalara indirir.

BACnet sahanızda yazım sorunu yaşıyorsanız, cihazın marka/modelini ve test ettiğiniz objeyi paylaşın — bilinen vendor davranışlarına göre teşhis yapabiliriz.

← Tüm yazılar

Tesisinizdeki sorunu konuşalım

SCADA entegrasyonu, sayaç okuma, çoklu protokol uyumu veya sistem renovasyonu için uzman ekibimiz hazır.

İletişime Geç →