BACnet
BACnet protokolü, 2WinScada'nın bina otomasyonu kontrolörleri, HVAC cihazları ve benzeri BACnet/IP cihazlarıyla haberleşmesini sağlar. 2WinScada ağda istemci olarak çalışır; cihazlardaki nesnelerin Present Value özelliğini periyodik olarak okur ve yazar.
Desteklenen başlıca özellikler:
- UDP üzerinden BACnet/IP (IPv4) haberleşmesi
- Who-Is / I-Am ile ağdaki cihazları keşfetme ve toplu içe aktarma
- Cihazın nesne listesinden tag'leri okuyup toplu içe aktarma
- BBMD'ye yabancı cihaz (Foreign Device) olarak kaydolarak farklı alt ağlardaki cihazlara erişim
- Cihaz adresini BACnet cihaz kimliğinden otomatik bulma (Otomatik Who Is)
BACnet MS/TP gibi seri hatlar ve COV (Change of Value) aboneliği kullanılmaz; değerler her tag'in Güncelleme Süresi[s] değerine göre sorgulanır.
Lisans
BACnet standart protokoller arasındadır ve Starter, Standard ve Professional lisans sürümlerinin tümünde kullanılabilir. Ayrıntılar için Lisans sayfasına bakın.
Kanal Tanımı
Yeni kanal penceresinin Genel sekmesinde kanal adı girilir ve Bağlantı Tipi olarak BacNetIP seçilir. Diğer sekmelerdeki ayarlar yapıldıktan sonra Kaydet butonuna tıklanır.

Bağlantı Parametereleri sekmesi:
| Alan | Açıklama | Varsayılan | Aralık |
|---|---|---|---|
| Port | 2WinScada'nın BACnet/IP için kullandığı UDP portu. Standart BACnet/IP portu 47808'dir (onaltılık 0xBAC0). | 47808 | 1–65535; zorunlu |
| Zaman aşımı [ms] | Bir isteğin yanıtı için beklenecek süre | 3000 | 3000–86400000 |
| Tekrar sayısı | Yanıt alınamayan bir isteğin yeniden gönderilme sayısı | 3 | 0–10 |
Gelişmiş Parametreler sekmesi:
| Alan | Açıklama | Varsayılan | Aralık |
|---|---|---|---|
| Local Endpoint Ip | BACnet trafiği için kullanılacak yerel ağ arayüzünün IPv4 adresi. Sunucuda birden fazla ağ kartı varsa BACnet ağına bağlı kartın adresini girin. Boş bırakılırsa arayüz otomatik seçilir. | Boş | IPv4 adresi |
| Max Payload | Bir UDP paketinde taşınacak en büyük BACnet verisi (bayt). 1472, standart Ethernet MTU'su (1500 bayt) için uygundur. | 1472 | 128–16384 |
| Use Exclusive Port | İşaretlenirse Port bu kanal için paylaşımsız (özel) açılır. Aynı sunucuda aynı portu kullanan başka bir BACnet uygulaması varsa bu seçeneği işaretlemeyin. | Kapalı | — |
| Dont Fragment | Gönderilen IP paketlerinde "bölme" (Don't Fragment) bayrağını ayarlar. Paket yol üzerindeki MTU'dan büyükse bölünmek yerine atılır. | Kapalı | — |
| Register As Foreign Device | 2WinScada'yı bir BBMD'ye (BACnet Broadcast Management Device) yabancı cihaz olarak kaydeder. Cihazlar farklı bir IP alt ağındaysa ve keşif yayınları yönlendiriciden geçmiyorsa kullanılır. | Kapalı | — |

Register As Foreign Device işaretlendiğinde BBMD Cihazları grubu görünür:
| Alan | Açıklama | Varsayılan | Aralık |
|---|---|---|---|
| Ip Adresi | BBMD'nin IPv4 adresi | Boş | IPv4 adresi |
| Port | BBMD'nin UDP portu | 47808 | 1–65535 |
| Time To Live(TTL) | Kaydın BBMD'de geçerli kalacağı süre (saniye) | 30 | 1–32767 |
BBMD kaydı yalnız Register As Foreign Device işaretliyken ve BBMD Ip Adresi girilmişken yapılır; seçenek kapalıyken BBMD'ye kayıt paketi gönderilmez. Kayıt açıkken 2WinScada kaydı Time To Live(TTL) süresinin yarısında bir (en az 10 saniyede bir) kendiliğinden yeniler. Kaydın süresinin dolması yalnızca keşfi etkiler; adresi bilinen cihazlarla okuma ve yazma doğrudan IP adresi üzerinden sürer.
Cihazları içe aktarma
Kaydedilmiş bir kanalda Gelişmiş Parametreler sekmesinin Cihazlar grubundaki Cihazları içe aktar butonu, ağda keşfedilen BACnet cihazlarını listeler. Buton kanal kaydedilene kadar pasiftir.
- Cihazları içe aktar butonuna tıklayın. BacNet Cihaz Seçimi penceresinde kanal başlatıldığından beri I-Am yanıtı veren cihazlar listelenir.
- Liste eksikse WhoIs Gönder butonuna tıklayın. 2WinScada ağa bir Who-Is yayını gönderir (BBMD kaydı açıksa BBMD üzerinden de gönderir). Buton 30 saniye boyunca pasif kalır. 15 dakikadır yanıt vermeyen cihazlar bu sırada listeden çıkarılır.
- Yanıtların gelmesi ağdaki cihaz sayısına göre zaman alabilir. Listeyi yenilemek için Veriyi Tazele butonuna tıklayın.
- Listede Adı, Adres, BacNet Cihaz Id, Adres Tipi ve Network sütunları görünür. İçe aktarılacak cihazları işaretleyip Seç butonuna tıklayın ve onay penceresini kabul edin.
Seçilen cihazlar adı, adresi ve cihaz kimliğiyle doğrudan kaydedilir ve aktif olarak eklenir. İçe aktarılan cihazlarda Otomatik Who Is kapalıdır; adres I-Am yanıtından alınır. İşlem sonunda içe aktarılan, başarısız ve uygun olmayan kayıt sayıları bildirilir.
TIP
Keşif ve içe aktarma, kanalın 2WinScada servisinde çalışıyor olmasını gerektirir. Liste boş geliyorsa kanalın kaydedildiğini, lisansın BACnet'e izin verdiğini ve UDP 47808 trafiğinin güvenlik duvarından geçtiğini kontrol edin.
Cihaz Tanımı
Cihaz kaydı tek bir BACnet cihazını temsil eder. Genel sekmesinde Adı ve Aktif alanları diğer protokollerdeki gibi belirlenir. İçe aktarılan cihazlarda parametreler önceden doldurulmuştur.
Parametreler sekmesi:
| Alan | Açıklama | Varsayılan / kural |
|---|---|---|
| Adres | Cihazın IPv4 adresi ve UDP portu, IP:port biçiminde (örn. 192.168.1.20:47808) | Otomatik Who Is kapalıyken zorunlu |
| BacNet Cihaz Id | Cihazın BACnet Device nesnesi numarası (Device Instance). Ağdaki her cihazda benzersiz olmalıdır. | Zorunlu; yalnızca rakam, 0–4194303 |
| Adres Tipi | Adresin tipi. Yalnız IP (IPv4) seçilebilir. | IP |
| Network | Cihazın bulunduğu BACnet ağ numarası. Cihaz aynı IP ağındaysa 0 bırakılır; bir BACnet yönlendiricisinin arkasındaki ağlar için yönlendiricide tanımlı ağ numarası girilir. | 0 |
| Otomatik Who Is | İşaretliyse cihazın adresi BacNet Cihaz Id kullanılarak Who-Is ile otomatik bulunur ve Adres alanı kullanılmaz. | Yeni cihazda açık |
2WinScada BACnet/IP haberleşmesini IPv4 UDP üzerinden yapar ve Adres alanı yalnızca IPv4 IP:port biçimini kabul eder. IPv6 desteklenmez; sunucu da IP dışı adres tipiyle kaydı reddeder. Eski sürümlerde IPv6 statik adresle kaydedilmiş cihazlar silinmez; Bad kalitede görünür ve servis loguna yazılır. Bu cihazları Adres Tipi IP seçip IPv4 adresiyle kaydedin.
Otomatik Who Is açıkken:
- 2WinScada yalnızca bu cihaz kimliği için Who-Is gönderir (BBMD kaydı açıksa BBMD üzerinden de) ve yanıt için yaklaşık 3 saniye bekler. Adres bulunamazsa deneme 30 saniyede bir tekrarlanır.
- Arka arkaya 4 tag okuması başarısız olursa adres yeniden aranır. Böylece IP adresi değişen cihazlara yeniden ulaşılır.
Otomatik Who Is kapalıyken Adres alanındaki adres doğrudan kullanılır ve yeniden arama yapılmaz.
Değişkenleri içe aktarma
Kaydedilmiş bir cihazın Gelişmiş Parametreler sekmesindeki Değişkenler grubunda Değişkenleri içe aktar butonu bulunur. Buton cihaz kaydedilene kadar pasiftir.
- Değişkenleri içe aktar butonuna tıklayın. 2WinScada cihazın nesne listesini (Object List) okur ve her nesnenin adını ve tipini sorgular.
- Açılan pencerede Adı, Adres ve Veri Tipi sütunları görünür. İçe aktarılacak satırları işaretleyin, Seç butonuna tıklayın ve onay penceresini kabul edin.
- Seçilen tag'ler adı, adresi ve veri tipiyle cihaza eklenir. Diğer tag alanları varsayılan değerleriyle oluşturulur.
Listede yalnızca nesne tipleri tablosundaki nesneler görünür. Cihazın aktif olması ve adresinin biliniyor olması gerekir; Otomatik Who Is açık bir cihazda adres henüz bulunmadıysa liste boş gelir.

Tag Tanımı
Tag'ler cihazın tag tablosunda diğer protokollerdeki gibi tanımlanır (bkz. Tag Yönetimi). Adres alanına nesne tipi ve nesne numarası (instance) iki nokta ile ayrılarak yazılır:
<NESNE_TİPİ>:<instance>Örnekler:
| Adres | Anlamı |
|---|---|
OBJECT_ANALOG_INPUT:5 | 5 numaralı Analog Input |
OBJECT_ANALOG_VALUE:5 | 5 numaralı Analog Value (örn. set değeri) |
OBJECT_BINARY_VALUE:5 | 5 numaralı Binary Value |
OBJECT_MULTI_STATE_VALUE:2 | 2 numaralı Multi-state Value |
Nesne tipi adı büyük/küçük harf duyarlıdır ve aşağıdaki tablodaki gibi yazılmalıdır. Adres çözülemezse tag okunmaz.
Nesne tipleri ve veri tipleri
Değişkenleri içe aktar ile listelenen nesne tipleri ve atanan Veri Tipi:
| Nesne tipi | Adresteki ad | Veri Tipi |
|---|---|---|
| Analog Input | OBJECT_ANALOG_INPUT | Real |
| Analog Output | OBJECT_ANALOG_OUTPUT | Real |
| Analog Value | OBJECT_ANALOG_VALUE | Real |
| Binary Input | OBJECT_BINARY_INPUT | Bool |
| Binary Output | OBJECT_BINARY_OUTPUT | Bool |
| Binary Value | OBJECT_BINARY_VALUE | Bool |
| Multi-state Input | OBJECT_MULTI_STATE_INPUT | Int |
| Multi-state Output | OBJECT_MULTI_STATE_OUTPUT | Int |
| Multi-state Value | OBJECT_MULTI_STATE_VALUE | Int |
| CharacterString Value | OBJECT_CHARACTERSTRING_VALUE | String |
Present Value özelliği olan diğer nesne tipleri (örn. OBJECT_INTEGER_VALUE:1) elle tanımlanabilir; bu durumda Veri Tipi cihazdaki değere uygun seçilmelidir.
Okuma ve yazma davranışı
- Her tag, Güncelleme Süresi[s] dolduğunda nesnenin Present Value özelliği okunarak güncellenir. Tag değeri yalnızca okunan değer değiştiğinde değişir.
- Okunamayan tag'in kalitesi Bad olur. Cihazdan en az bir tag okunabildiğinde cihaz kalitesi Good olur.
- Yazma, nesnenin Present Value özelliğine yapılır ve yalnız Analog, Binary ve Multi-state Input/Output/Value nesnelerine desteklenir. Değer nesne tipine uygun BACnet veri tipiyle gönderilir:
| Nesne | Gönderilen tip | Kabul edilen değer |
|---|---|---|
| Analog | REAL (Veri Tipi LReal ise DOUBLE) | Sayı; REAL için tek duyarlıklı sayı aralığında |
| Binary | ENUMERATED | Yalnız 0 veya 1 (Bool değerler 0/1 olarak gönderilir) |
| Multi-state | UNSIGNED | 1 veya daha büyük tam sayı (durum numarası) |
- String (CharacterString) tag'lere ve diğer nesne tiplerine yazma desteklenmez. Uygun olmayan değer (ör. Binary için 2, Multi-state için 0 veya kesirli değer) cihaza gönderilmeden reddedilir.
- Yazma isteğinde öncelik (priority) belirtilmez; BACnet standardına göre cihaz bu durumda en düşük öncelik olan 16'yı uygular. Daha yüksek öncelikli bir komut varsa yazılan değer etkili olmaz.
- 2WinScada yazmadan sonra kanalın Zaman aşımı [ms] ve Tekrar sayısı değerleriyle cihazın onayını bekler. Reddedilen veya onaylanmayan yazma başarılı görünmez: yazmayı yapan kullanıcının ekranında Yazma isteği reddedildi: sunucu isteği sürücüye iletemedi. uyarısı çıkar, nedeni servis loguna yazılır ve yazma Operasyon Geçmişi'ne kaydedilmez. Reçete uygulamada bu kalemler başarısız olarak listelenir.
WARNING
Yazma işlemlerini canlı tesiste denemeden önce cihaz dokümanını, nesnenin yazılabilir olduğunu ve öncelik dizisini (Priority Array) kontrol edin. İlk devreye almada tag'leri Sadece Okuma olarak tanımlayın.
Sorun giderme
| Belirti | Kontroller |
|---|---|
| Cihaz listesi boş | Kanalın kaydedildiğini, 2WinScada servisinde çalıştığını ve lisansın BACnet'e izin verdiğini kontrol edin. WhoIs Gönder sonrası Veriyi Tazele ile listeyi yenileyin. UDP 47808 için güvenlik duvarını ve Local Endpoint Ip değerini kontrol edin. |
| Başka alt ağdaki cihazlar görünmüyor | Register As Foreign Device seçimini, BBMD Ip Adresi ve Port değerlerini ve BBMD'nin yabancı cihaz kaydını kabul ettiğini kontrol edin. |
| Hiç yanıt gelmiyor, port başka uygulamada | Aynı sunucuda 47808 portunu kullanan başka bir BACnet uygulaması varsa Use Exclusive Port seçimini kaldırın veya farklı bir port kullanın. |
| Cihaz bulunamıyor (Otomatik Who Is) | BacNet Cihaz Id değerinin cihazdaki Device Instance ile aynı olduğunu kontrol edin. Arama 30 saniyede bir tekrarlanır. Gerekirse Otomatik Who Is seçimini kaldırıp Adres girin. |
| Tag kalitesi Bad | Adresteki nesne tipi adını ve numarasını, cihazın erişilebilir olduğunu ve Zaman aşımı [ms] değerini kontrol edin. |
| Değişkenleri içe aktar listesi boş | Cihazın kaydedildiğini, aktif olduğunu ve adresinin bulunduğunu kontrol edin. |
| Yazma etkisiz | Sadece Okuma seçimini, nesnenin yazılabilir olduğunu ve daha yüksek öncelikli bir komut bulunmadığını kontrol edin. Ayrıntılar servis logundadır. |
| Yazmada "Yazma isteği reddedildi" uyarısı | Nesne tipinin yazmayı desteklediğini, değerin nesne tipine uygun olduğunu (Binary 0/1, Multi-state 1 ve üzeri tam sayı) ve cihazın yazmayı kabul ettiğini kontrol edin. Ret nedeni servis logundadır. |
| Cihaz kalitesi Bad, adres tipi IPv6 | IPv6 desteklenmez. Adres Tipi olarak IP seçip IPv4 adresiyle kaydedin. |