BACnet/IP
BACnet/IP sürücüsü bina otomasyonu denetleyicilerinin nesnelerini okur ve yazar: klima santralleri, soğutma grupları, oda denetleyicileri ve sayaçlar. Tüm sürücülerin ortak yanları için bkz. Sürücüler nasıl çalışır.
Protokol ve rol
| Rol | İstemci. YTCC BACnet cihazlarının özelliklerini okur ve yazar; kendisi bir BACnet cihazı değildir. |
| Taşıma | UDP üzerinden BACnet/IP. MS/TP'deki cihazlara BACnet yönlendiricileri üzerinden ulaşılır. |
| Varsayılan port | 47808 (UDP) |
| Sürücü başına cihaz | Bir sürücü, sınırsız cihazlı bir BACnet ağıdır (yerel adres ve port). |
| Sürücü tipi | BACnet (bacnet) |
Sürücü parametreleri (ağ)
Bunları Drivers → devices görünümünde sürücü üzerinde ayarlayın.
| Parametre | Varsayılan | Anlamı |
|---|---|---|
| Local IP (Yerel IP) | 0.0.0.0 | Yerel ağ arayüzü; 0.0.0.0 hepsini kullanır. |
| Local port (Yerel port) | 47808 | Yerel UDP portu. Başka bir portla cihazların yayın cevapları alınmaz: cihaz başına sabit Host ya da bir BBMD kullanın. |
| Broadcast (Yayın adresi) | 255.255.255.255 | Who-Is adresi. Windows'ta ağın yönlendirilmiş yayın adresini kullanın, örneğin 192.168.1.255. |
| Bbmd | boş | Yabancı cihaz kaydı, JSON olarak: {"host": "…", "port": 47808, "ttl_s": 600}. Who-Is o zaman BBMD üzerinden gider. |
| Max requests per s (Saniyede en çok istek) | 200 | Ağdaki saniyede en çok onaylı istek. |
| Router requests per s | 50 | Bir yönlendiricinin arkasındaki cihazlara saniyede en çok istek. |
| Cov lifetime (s) (COV ömrü) | 600 | COV aboneliklerinin ömrü (60–86400). |
| Cov confirmed (Onaylı COV) | kapalı | Onaylı COV bildirimleri ister. |
| Cov verify (s) (COV doğrulama) | 300 | Bir bildirim kaybolmuş olabilir diye COV sinyallerini bu aralıkla ayrıca okur. |
| Apdu timeout (ms), Apdu retries | 3000, 3 | Onaylı bir istek için bekleme ve yineleme; cihaz bunları ezebilir. |
| Who is chunk | 100 | Taramada bir Who-Is'in kapsadığı cihaz örneği sayısı. |
Bir ağ parametresinin değişmesi UDP soketini yeniden açar; cihazlar kısa süre sonra yeniden bağlanır.
Cihaz parametreleri

| Parametre | Varsayılan | Anlamı |
|---|---|---|
| Device instance (Cihaz örneği) | — (zorunlu) | Cihaz nesnesinin örneği, 0–4194302. Sürücüde tekil. |
| Host, Port | boş, 47808 | Cihazın sabit adresi. Boş: adres Who-Is / I-Am ile bulunur. Yönlendiricinin arkasındaki cihaz için: yönlendiricinin adresi. |
| Dnet, Dadr | boş | Yönlendiricinin arkasındaki ağ numarası ve MAC adresi (örneğin MS/TP MAC 0A); ikisi birlikte, Host ile. |
| Max apdu, Segmentation | I-Am'den | Cihazın bildirdiğini ezer. |
| Max in flight (Aynı anda istek) | 2 | Aynı anda okuma isteği; MS/TP yönlendiricisinin arkasında 1 kullanın. |
| Apdu timeout (ms), Apdu retries | ağdan | Bu cihaz için ezme. |
| Poll (ms) (Tarama) | 1000 | Kendi tarama sınıfı olmayan sinyallerin okuma periyodu. |
Her parametrenin yanındaki yardım işareti kısa bir açıklama gösterir.
Sinyal adresi
Adresi sinyalin Value source (Değer kaynağı) sekmesinde, Address — BACnet altında ayarlayın:
| Alan | Anlamı |
|---|---|
| Object type (Nesne tipi) | Analog-input, Analog-output, Analog-value, Binary-input, Binary-output, Binary-value, Multi-state-input, Multi-state-output ya da Multi-state-value |
| Instance (Örnek) | Nesne örneği, 0–4194302 |
| Property (Özellik) | Present-value (85) |
| Array index (Dizi dizini) | Dizi özellikleri için; yoksa boş |

İçe aktarma dosyalarında sayısal nesne tipini ve örneği iki noktayla ayırarak yazın, örneğin 0:1 (analog giriş 1) ya da
5:12 (ikili değer 12). Diğer nesne tipleri (örneğin integer-value 45, large-analog-value 46) ve diğer özellikler
Advanced: raw params (JSON) içinde ayarlanabilir ya da bir cihaz taramasından gelir.
Değerler
| BACnet değeri | YTCC'deki değer |
|---|---|
| Real, Double | Float32, Float64 |
| Boolean; ikili nesnenin Enumerated'i | Açık ya da kapalı |
| Enumerated (diğer), Unsigned | UInt32 |
| Signed | Int32 |
| CharacterString, tarih, saat | Metin |
Okuma
Sinyaller varsayılan olarak taranır: Present_Value, Status_Flags ve Reliability ReadPropertyMultiple ile birlikte okunur (cihaz desteklemiyorsa ReadProperty), çok büyük istekler bölünür.
COV (değer değişimi), dizi dizini olmayan Present_Value için kullanılabilir: Advanced: raw params (JSON) içine
"receive": "cov" ekleyin ya da taramadan sinyal oluştururken COV'u seçin. Sürücü Cov lifetime (s) ile abone olur,
ömrün %60'ında yeniler ve değeri her Cov verify (s)'de yeniden okur. Aboneliği reddeden bir cihaz onun yerine taranır.
Yazma
Bir BACnet sinyali bir öncelikte (varsayılan 8, 1–16) WriteProperty ile yazılır. Boş değer yazmak (bırakma, relinquish) önceliği yeniden serbest bırakır; YTCC gönderdiği son komutun önceliğinde bırakır.
Bir BACnet sinyali yönü out ya da inout iken yazılır; yönü in olan sinyal her komutu reddeder.
Advanced: raw params (JSON) içine "direction": "inout" (gerekirse "write_priority": 8) ekleyin ya da sinyalleri
bir cihaz taramasından Read + write ile oluşturun.
- Analog nesneler REAL, ikili nesneler ENUMERATED (0 ya da 1), çok durumlu nesneler UNSIGNED olarak yazılır.
- Başarılı yazmadan sonra değer hemen geri okunur.
- Cihazın reddi hatasıyla gösterilir, örneğin property/write-access-denied. Cevap vermeyen cihaz bir okumayla denetlenir; ancak o da başarısız olursa bağlı değil olarak işaretlenir.
Operatörlerin komutu nasıl gönderip onayladığı için bkz. Komut gönderme.
Kalite
| Cihaz durumu | YTCC'deki kalite |
|---|---|
| Status_Flags'te FAULT ya da Reliability "no fault detected" değil | Bad |
| OUT_OF_SERVICE | Uncertain |
| OVERRIDDEN | Good · Substituted |
| IN_ALARM | Good (cihazın alarmı arıza değildir) |
| hiçbiri | Good |
Bir cihaz cevap vermeyince tüm sinyalleri Bad · Not connected olur ve son değerlerini korur; diğer cihazlar etkilenmez. Bir değerin zamanı okunduğu andır.
Yeniden bağlanma
Apdu timeout (ms) × Apdu retries sonra cevap vermeyen cihaz bağlı değil olarak işaretlenir ve 1 saniye sonra, bekleyişi 60 saniyeye kadar ikiye katlayarak yeniden denenir.
Cihaz taraması ve EDE içe aktarma
Drivers → devices görünümünde BACnet sürücüsünü seçip Scan / EDE'ye (Tara / EDE) tıklayın:
- Scan (Tara) bir cihaz örneği aralığı (ya da bir cihaz listesi) için Who-Is gönderir, cevap veren her cihazın nesne listesini ve nesnelerinin adlarını, açıklamalarını ve birimlerini okur. 0 – 0 aralığı her cihaza sorar.
- Upload EDE (EDE yükle) bunun yerine bir EDE dosyası (EDE 2.x, noktalı virgülle ayrılmış, en çok 64 MB) okur.
- Sonuç her nesneyi New (Yeni), In system (Sistemde var) ya da Missing on device (Cihazda yok) olarak gösterir. Satırları seçip Create signals from selection'a (Seçilenleri sinyal yap) tıklayın; sinyal tipini, alanı, alma kipini (Periodic ya da COV) ve yönü (Read only ya da Read + write) seçin. Kuru çalıştırma değişiklikleri uygulanmadan önce gösterir.
Sürücü başına aynı anda bir tarama ya da yükleme çalışır; tarama 30 dakika sonra durur.
Tanılama
Value source sekmesindeki Read now adres için bir ReadProperty gönderir ve değeri ve tipini ya da hatayı class/code, reject: … ya da abort: … olarak gösterir.
Cihazın Communication diagnostics (Haberleşme tanısı) paneli (bkz. Bir cihazın haberleşmesini denetleme) Timeouts / retries (Zaman aşımı / yeniden gönderim) altında Apdu timeout (ms) içinde cevap almayan her onaylı isteği ve her yinelemesini sayar. Cihaz taramasının istekleri sayılmaz.
| Belirti | Olası neden |
|---|---|
| Hiçbir cihaz cevap vermiyor | UDP 47808 portunu başka bir program kullanıyor; Windows'ta 255.255.255.255 yayını tek arayüzden çıkıyor |
| Başka alt ağdaki cihazlar bulunmuyor | Bir BBMD (Bbmd) ya da sabit Host adresleri kullanın |
| MS/TP yönlendiricisinin arkasındaki cihazlar zaman aşımına uğruyor | Dnet, Dadr ve Max in flight 1 ayarlayın |
| Sinyal Uncertain | Nesne servis dışı |
| Komut Signal is not writable ile reddediliyor | Yön in; Yazma altında anlatıldığı gibi out ya da inout yapın |
Desteklenen BIBB'ler
| BIBB | Destek |
|---|---|
| DS-RP-A ReadProperty | Evet |
| DS-RPM-A ReadPropertyMultiple | Evet |
| DS-WP-A WriteProperty (öncelik, bırakma) | Evet |
| DS-COV-A SubscribeCOV | Evet |
| DM-DDB-A dinamik cihaz bağlama (Who-Is / I-Am) | Evet |