您的位置 首页 kreess

Niagara中的數據同步方式——BACnet協議簡介及數據輪詢

#跟京A瞭解Niagara系列 39BACnet 協議簡介BACnet 的含義是 Building Automation and Control Networks,可見它是

#跟京A瞭解Niagara系列 39

BACnet 協議簡介

BACnet 的含義是 Building Automation and Control Networks,可見它是專門針對樓控行業定義的一個通訊協議。它是由美國暖通工程師協會(ASHRAE)開發的一種開放協議,於1995年發佈瞭第一個正式版本。協議中定義瞭物理層、數據鏈路層、網絡層和應用層。

協議棧各層級

但是隨著協議的推廣應用和發展,時至今日,物理層和鏈路層的一些協議逐漸被淡化和放棄瞭,目前比較常用的如下圖所示:

實際廣為使用的各層

本文及後續相關文章涉及的 BACnet 協議中的輪詢和 COV 等話題,都僅僅涉及應用層定義的特性。


BTL認證

BTL = BACnet Testing Laboratories (BTL) Certification programBACnet 作為一種開放標準協議,協議規約對任何人都是公開的(ASHRAE 官網的電子版規約居然是收費的,鄙視~),可以用自己的方式去實現符合該協議標準的產品。但實際上,任何一個聲稱支持 BACnet 的產品,在多大程度上“符合”標準,這就很難講瞭。有些產品可能為瞭某種便利,“故意”在標準的基礎上做瞭一些改動;也有些產品,可能是設計人員水平的問題,沒能做出完全符合協議標準的產品……所有這些都可能會給產品之間的互聯互通帶來或多或少的障礙。由此,“冠冕堂皇”的標準認證測試就隆重登場瞭。經過測試認證的產品,都是100%符合標準的。


這就像普通話標準一樣,標準發音就標在那裡,但在這片廣闊的熱土上,由於氣候地理因素,生活習慣差異,很多地方的很多人,仍然在堅持使用自己地區的方言。還有些人聽得懂普通話,但是說不好;也有些人大部分時間說的是普通話,但是針對某種特定生活場景的時候,會在標準普通話的句子裡加入方言詞,比如“雷猴 ~……”。在日常交流中都有這樣的感受:對某些方言,如天津話,東北話基本所有人都聽得懂,但是閩南話呢……;而一些夾雜方言的普通話,雖然某個詞沒聽懂,但是大體意思往往是能夠理解的……所以,100%標準化這個事情,有些時候是挺重要的,有些時候又沒那麼重要,it depends……

避免雞同鴨講


另外,需要註意的是,做這個認證測試需要到指定的機構去測,是收費的,一次沒過,下次去還要收錢;證書不是一直有效的,過瞭有效期再測的時候,要滿足“新版本”的標準,而不是用當年的舊版本……所以呢,帶這個圈圈標的產品,意味著可靠,也往往意味著——貴……


BACnet 協議中的一些關鍵詞

輪詢和 COV 中都會涉及到三個要素:客戶端發出的查詢/訂閱請求,目標對象(服務器的信息承載體),服務器發出的回復/通知。

BACnet Object (對象)

在 BACnet 協議中,Object(對象)是設備之間數據交互的載體,目前2020版本中總計定義瞭63個對象,樓控中較為常用的包括:

BACnet常用對象模型

BACnet 應用層對象模型和 Niagara 中的通用對象模型是高度相似的:對象模型是一種抽象的數據結構,針對某種類型的對象模型,BACnet 設備中可以有一個或多個它的實例,不同的實例通過 ID 號進行區分。每個對象由多個屬性構成的,屬性是信息存儲的基本單位。

BACnet Service (服務)

設備之間的數據交互一般都是通過請求(request)和應答(response)來完成,或者是通知(隻是單向發送,接收方無需回復)。BACnet 中定義瞭很多種 Service 來實現各種數據交互,分為幾大類:報警和事件通知,文件操作(讀/寫),對象操作(增/刪/改/查),設備設置(設備查找,初始化,時間同步)等。

BIBB(對象模型互操作服務集)

BIBB 是 BACnet Interoperability Building Blocks 的縮寫。BACnet 定義瞭若幹個這樣的集合,每組集合中定義瞭一個或多個 BACnet 服務。每個服務都涉及兩個設備:客戶端(請求服務者)和服務器(提供服務者)。其中有一個集合叫做 Data Sharing (數據共享操作服務集合),這裡面包含瞭輪詢(讀屬性)和 COV 相關的內容。也就是說,在 BACnet 看來,輪詢和 COV 都屬於數據共享操作服務的范疇。

Profiles (設備類型描述)

協議中根據應用場合定義瞭幾個大的設備分類,每個分類中又根據功能級別定義瞭不同小分類,跟樓控相關的大類包括:Operator Interface (工作站類)和Controllers (控制器類)。每個大類下面又根據功能的強弱分成幾個小類,不同類型的設備之間具體的功能差異要看每種設備所支持 BIBB。

>>>>工作站類中包括:

  • 跨系統工作站:B-XAWS(Cross-Domain Advanced Workstation),可以兼容樓控和門禁的工作站。
  • 高級工作站:B-AWS(Advanced Operator Workstation),供工作人員監控整個BACnet系統,以及修改系統設備參數。
  • 普通工作站:B-OWS(Operator Workstation),其功能弱於高級工作站,用於系統的監控及一些最基本的操作。
  • 操作顯示設備:B-OD (Operator Display),適用於某些人機交互界面設備。

工作站類中每個子類對應的 BIBB 如下表:

控制器類中包括:

  • 樓宇級控制器,B-BC(Building Controller),可編程,可執行比較復雜的控制任務。大多數支持 BACnet 協議的智能網關屬於此類設備。
  • 高級應用程序控制器,B-AAC(Advanced Application Controller),它的功能弱於 BC,可以執行某些特定的比較復雜的應用程序。
  • 特定應用程序控制器,B-ASC(Application Specific Controller),它的功能弱於 AAC,隻能執行一些有限的應用程序。
  • 智能執行器,B-SA(Smart Actuator),一般不支持應用程序下載,隻用於響應某些特定服務請求。
  • 智能傳感器,B-SS(Smart Sensor),一般不支持應用程序下載,隻用於響應某些特定服務請求。

控制器類中每個子類對應的 BIBB 如下表:

BACnet 協議中的輪詢

所謂輪詢,是由客戶端周期性發起的,對服務器中某個或者某些信息的查詢;服務器接收到查詢請求後,做出應答。

ReadProperty Service(讀取單一屬性值)

讀取設備中指定對象(實例)中的某一個屬性值。

請求

1)目標對象ID號(Object ID );

2)目標屬性ID號(Property ID);

3)數組索引(Property Array Index),如果要讀取的屬性值是一個數組的話,此參數給出數組的索引。

應答

1)目標對象ID號(Object ID );

2)目標屬性ID號(Property ID);

3)數組索引(Property Array Index);

4)目標屬性值的當前值(Property Value)。

ReadPropertyMultiple Service(讀取多個屬性值)

讀取設備中某幾個對象實例中的屬性值。相比於 Modbus 協議中的讀連續寄存器(03/04命令),這個讀多個屬性服務更加靈活,它可以讀取任意(非連續)對象的屬性值。

請求

請求中需要給出一個參數列表,列表中每個元素中包含三個參數,這三個參數與 ReadProperty 中是一樣的。

應答

回應的內容也是一個列表,列表中包含若幹個元素,元素個數與請求個數相匹配。每個元素中包含四個參數,與 ReadProperty 中應答的參數含義相同。


這個一次性讀取多個屬性的服務,看起來很“豐滿”,尤其是對請求方來說,但在互聯系統的實際使用中,可能會很“骨感”,考慮下面的情況:

設備 A 向設備 B 提出三個問題(請求三個數據),分別是:

1. 流浪地球的導演是誰?

2. 《狂飆》中大嫂、孟鈺和高啟蘭的扮演者分別是誰?

3. 背誦《嶽陽樓記》全文。

問題1和2的答案很短,可以很容易放在一個數據包中回復。而問題3的答案很長,超出瞭應用層數據包(APDU)允許的最大長度。作為 B 設備來說,有兩種可能的回答,一是將答案分成多個數據包(Segmentation)回復,前提是 B 設備支持分包數據發送;另外一種就是不支持分包發送的話,就隻能回復:答案太長,無法回答瞭。

作為 A 設備來說,收到 B 的答復:第一種情況下,接收多個應答消息包之後再做組合就可以瞭;而第二種情況,就比較復雜瞭,它需要 A 比較“智能地”嘗試換一種問法,以保證 B 的答案可以容納在一個完整的數據包中,比如這樣問:背誦《嶽陽樓記》的第一段……。這無疑就增加瞭 A 設備的設計復雜度,而且遇到這樣的情況,雙方可能需要多次協商才能完成數據的成功傳輸,反而因此浪費瞭時間……


不同類型的設備中對輪詢的支持情況

工作站類中的幾種設備,對讀屬性服務的支持,都是雙向的(服務器+客戶端) —— 既可以發起讀其他設備的請求,也可以響應來自其他設備的讀請求。

控制器類中的幾種設備,隻有 B-BC 既可以讀取其他設備又能夠響應來自其他設備的讀請求。其他幾個類型的控制器僅僅能夠響應其他設備的讀取請求就可以瞭。


霍尼(Tridium)和江森幾款BTL認證產品中所支持的輪詢服務的對比

在 B-OWS 和 B-BC 級別的控制器上,兩傢的控制器都是嚴格按照協議標準實現瞭(DS-RP-A,B 和 DS-RPM-A,B)。但是在 B-ASC 這個級別上所選的兩款控制器,兩傢都超出瞭協議規定的范圍。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部