一、概述
人們常常弄不清楚LonWorks技術(shù)、Bacnet協(xié)議之間有什么不同,也就不清楚海思LonWorks產(chǎn)品與BACnet產(chǎn)品究竟分別用在哪些場合。本文詳細(xì)介紹BACnet,給大家作個(gè)科普。
隨著計(jì)算機(jī)、通信、控制和圖形顯示技術(shù)即4C技術(shù)的快速發(fā)展和全球?qū)π畔⒏咚俟返拇罅ㄔO(shè),智能建筑,這個(gè)數(shù)字化、網(wǎng)絡(luò)化和信息化的結(jié)合產(chǎn)物開始進(jìn)入人們的視野。然而,如今智能建筑內(nèi)各種控制功能變得愈發(fā)強(qiáng)大而復(fù)雜,致使不同廠商生產(chǎn)的設(shè)備使用于同一建筑物內(nèi)。制定一個(gè)開放的、統(tǒng)一的通信協(xié)議標(biāo)準(zhǔn),并形成即插即用的環(huán)境,就成為十分迫切需要解決的問題。這就是Bacnet協(xié)議誕生的出發(fā)點(diǎn)。
二、什么是BACnet協(xié)議
樓宇自動(dòng)控制網(wǎng)絡(luò)數(shù)據(jù)通信協(xié)議(BACnet協(xié)議)由美國供熱、制冷與空調(diào)工程師協(xié)會(huì)組織的標(biāo)準(zhǔn)項(xiàng)目委員會(huì)135P于1995年6月正式通過制定。標(biāo)準(zhǔn)編號為ANSI/ASHRAE
Standard l35-1995,同年12月正式成為美國國家標(biāo)準(zhǔn),并得到歐盟標(biāo)準(zhǔn)委員會(huì)的承認(rèn),成為歐盟標(biāo)準(zhǔn)草案。2000年1月ISO組織TC205委員會(huì)的15個(gè)國家(中國、法國、日本、英國、美國等)的代表一致通過決議,將BACnet作為“委員會(huì)草案”進(jìn)行廣泛評議,適當(dāng)修改后列為“國際標(biāo)準(zhǔn)化草案”,最后成為國際標(biāo)準(zhǔn)。
一般樓宇自控設(shè)備從功能上講分為兩部分:一部分專門處理設(shè)備的控制功能;另一部分專門處理設(shè)備的數(shù)據(jù)通信功能。而BACnet就是要建立一種統(tǒng)一的數(shù)據(jù)通信標(biāo)準(zhǔn),使得設(shè)備可以互操作。BACnet協(xié)議只是規(guī)定了設(shè)備之間通信的規(guī)則,并不涉及實(shí)現(xiàn)細(xì)節(jié)。
BACnet協(xié)議模型為:
(1)所有的網(wǎng)絡(luò)設(shè)備,除基于MS/TP協(xié)議的以外,都是完全對等的(peer to peer);
(2)每個(gè)設(shè)備都是一個(gè)“對象”的實(shí)體,每個(gè)對象用其“屬性”描述,并提供了在網(wǎng)絡(luò)中識別和訪問設(shè)備的方法;設(shè)備相互通信是通過讀/寫某些設(shè)備對象的屬性,以及利用協(xié)議提供的“服務(wù)”完成;
(3)設(shè)備的完善性(Sophistication),即其實(shí)現(xiàn)服務(wù)請求或理解對象類型種類的能力,由設(shè)備的“一致性類別”(Conformance
Class)所反映。
三、BACnet的體系結(jié)構(gòu)
Bacnet建立在包含四個(gè)層次的簡化分層體系結(jié)構(gòu)上。這四層相當(dāng)于OSI模型中的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和應(yīng)用層,如圖1所示。Bacnet標(biāo)準(zhǔn)定義了自己的應(yīng)用層和簡單的網(wǎng)絡(luò)層。對于其數(shù)據(jù)鏈路層和物理層,提供了以下五種選擇方案。
圖1 BACnet的體系結(jié)構(gòu)層次圖
BACnet協(xié)議從硬/軟件實(shí)現(xiàn)、數(shù)據(jù)傳輸速率、系統(tǒng)兼容和網(wǎng)絡(luò)應(yīng)用等幾方面考慮,目前支持五種組合類型的數(shù)據(jù)鏈路/物理層規(guī)范。其中主從/令牌傳遞(MS/TP)協(xié)議是專門針對樓宇自控設(shè)備設(shè)計(jì)的數(shù)據(jù)鏈路規(guī)范。BACnet在物理介質(zhì)上,支持雙絞線、同軸電纜和光纜。在拓?fù)浣Y(jié)構(gòu)上,支持星型和總線拓?fù)洹?/span>
BACnet沒有嚴(yán)格規(guī)定網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),如圖2所示。其中:網(wǎng)段(Segment)是多個(gè)物理網(wǎng)段通過中繼器(R)連接形成的段落區(qū)間;網(wǎng)絡(luò)是多個(gè)網(wǎng)段通過網(wǎng)橋(B)連接而成的,每個(gè)網(wǎng)絡(luò)都形成一個(gè)MAC地址域;BACnet/Internet網(wǎng)絡(luò)是將使用不同局域網(wǎng)技術(shù)的多個(gè)網(wǎng)絡(luò)用路由器(RT)互聯(lián)起來形成的網(wǎng)際網(wǎng)。
在BACnet拓?fù)渲性O(shè)備之間只存在一條邏輯通路,無需廣域網(wǎng)的最優(yōu)路由算法;其次,BACnet具有單一的局部地址空間,所以BACnet參照OSI模型制定了簡化的網(wǎng)絡(luò)層協(xié)議,向應(yīng)用層提供不確認(rèn)無連接的數(shù)據(jù)單元傳送服務(wù)。每個(gè)BACnet設(shè)備都被一個(gè)網(wǎng)絡(luò)號碼和一個(gè)MAC地址唯一確定。
網(wǎng)絡(luò)層通過“路由器”實(shí)現(xiàn)兩個(gè)或多個(gè)異類BACnet局域網(wǎng)(不同的數(shù)鏈層)的連接,并通過協(xié)議報(bào)文進(jìn)行“路由器”的自動(dòng)配置、路由表維護(hù)和擁塞控制。BACnet路由器與每個(gè)網(wǎng)絡(luò)的連接處稱為一個(gè)“端口”。路由表中包含端口的下列項(xiàng)目:(1)端口所連接網(wǎng)絡(luò)的MAC地址和網(wǎng)絡(luò)號;(2)端口可到達(dá)網(wǎng)絡(luò)的網(wǎng)絡(luò)號列表及與這些網(wǎng)絡(luò)的連接狀態(tài)。圖2中,“1/2
RT”是半路由器,由PTP連接形成一個(gè)完整的BACnet路由器,即BACnet網(wǎng)際網(wǎng)將廣域網(wǎng)技術(shù)向應(yīng)用層屏蔽。
BACnet應(yīng)用層即BACnet應(yīng)用實(shí)體,通過API(應(yīng)用編程接口)為上層應(yīng)用程序服務(wù),并與對等應(yīng)用層實(shí)體通信。應(yīng)用實(shí)體由兩部分組成:用戶單元和應(yīng)用服務(wù)單元(ASE)。ASE是一組特定內(nèi)容的應(yīng)用服務(wù)。而用戶單元支持本地API、保存事務(wù)處理上下文信息、產(chǎn)生請求ID、記錄ID對應(yīng)的應(yīng)用服務(wù)響應(yīng)、維護(hù)超時(shí)重傳機(jī)制所需的計(jì)數(shù)器以及將設(shè)備行為要求映射為對象。
BACnet應(yīng)用層提供證實(shí)和非證實(shí)兩種類型的服務(wù)。BACnet定義了四種服務(wù)原語:請求、指示、響應(yīng)和證實(shí),它們通過應(yīng)用層協(xié)議數(shù)據(jù)單元(APDU)傳遞。由于BACnet建立在無連接的通信模式上,所以OSI模型提供端到端服務(wù)的傳輸層部分簡化功能也由應(yīng)用層實(shí)現(xiàn),分別為:可靠的端到端傳輸和差錯(cuò)校驗(yàn);報(bào)文分段和流量控制;報(bào)文重組和序列控制。
四、BACnet的對象、服務(wù)和功能組
BACnet采用面向?qū)ο蠹夹g(shù),借此提供一種表示樓宇自控設(shè)備的標(biāo)準(zhǔn)。在BACnet中,對象就是在網(wǎng)絡(luò)設(shè)備之間傳輸?shù)囊唤M數(shù)據(jù)結(jié)構(gòu),網(wǎng)絡(luò)設(shè)備通過讀取、修改封裝在應(yīng)用層APDU中的對象數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)互操作。BACnet目前定義了18個(gè)對象,如表1所示,每個(gè)對象都必須有三個(gè)屬性:對象標(biāo)志符(Object_Identifier)、對象名稱(Object_Name)和對象類型(Object_Type)。其中,對象標(biāo)志符用來唯一標(biāo)識對象;BACnet設(shè)備可以通過廣播自身包含的某個(gè)對象的對象名稱,與包含相關(guān)對象的設(shè)備建立聯(lián)系。BACnet協(xié)議要求每個(gè)設(shè)備都要包含“設(shè)備對象”,通過對其屬性的讀取可以讓網(wǎng)絡(luò)獲得設(shè)備的全部信息。
表1 BACnet對象
|
對 象 名 稱 |
應(yīng) 用 舉 例 |
01 |
模擬輸入Analog Input |
模擬傳感器輸入如機(jī)械開關(guān)On/Off輸入 |
02 |
模擬輸出Analog Output |
模擬控制量輸出 |
03 |
模擬值Analog Value |
模擬控制設(shè)備參數(shù)如設(shè)備閥值 |
04 |
數(shù)字輸入Binary Input |
數(shù)字傳感器輸入如電子開關(guān)On/Off輸入 |
05 |
數(shù)字輸出Binary Output |
繼電器輸出 |
06 |
數(shù)字值Binary Value |
數(shù)字控制系統(tǒng)參數(shù) |
07 |
命令Command |
向多設(shè)備多對象寫多值如日期設(shè)置 |
08 |
日歷表Calender |
程序定義的事件執(zhí)行日期列表 |
09 |
時(shí)間表Schedule |
周期操作時(shí)間表 |
10 |
事件登記Event Enrollment |
描述錯(cuò)誤狀態(tài)事件如輸入值超界或報(bào)警事件。通知一個(gè)設(shè)備對象,也可通過“通知類”對象通知多設(shè)備對象 |
11 |
文件File |
允許訪問(讀/寫)設(shè)備支持的數(shù)據(jù)文件 |
12 |
組Group |
提供單一操作下訪問多對象多屬性 |
13 |
環(huán)Loop |
提供訪問一個(gè)“控制環(huán)”的標(biāo)準(zhǔn)化操作 |
14 |
多態(tài)輸入Multi-state Output |
表述多狀態(tài)處理程序的狀況,如制冷設(shè)備開、關(guān)和除霜循環(huán) |
15 |
多態(tài)輸出Multi-state Output |
表述多狀態(tài)處理程序的期望狀態(tài),如制冷設(shè)備開始冷卻、除霜的時(shí)間 |
16 |
通知類Notification Class |
包含一個(gè)設(shè)備列表,配合“事件登記”對象將報(bào)警報(bào)文發(fā)送給多設(shè)備 |
17 |
程序Program |
允許設(shè)備應(yīng)用程序開始和停止、裝載和卸載,并報(bào)告程序當(dāng)前狀態(tài) |
18 |
設(shè)備Device |
其屬性表示設(shè)備支持的對象和服務(wù)以及設(shè)備商和固件版本等信息 |
在BACnet中,把對象的方法稱為服務(wù),對象及其屬性提供了對一個(gè)樓宇自控設(shè)備“網(wǎng)絡(luò)可見信息”的抽象描述,而服務(wù)提供了如何訪問和操作這些信息的命令和方法。BACnet設(shè)備通過在網(wǎng)絡(luò)中傳遞服務(wù)請求和服務(wù)應(yīng)答報(bào)文實(shí)現(xiàn)服務(wù)。BACnet定義了35種服務(wù),并將其劃分為6個(gè)類別:
(1)報(bào)警與事件服務(wù)(Alarm and Event Services)包含8種服務(wù)處理環(huán)境狀態(tài)的變化,提供了BACnet設(shè)備預(yù)設(shè)的請求值改變通告、請求報(bào)警或事件狀態(tài)摘要、發(fā)送報(bào)警或事件通知、收到報(bào)警通知確認(rèn)等方法;
(2)文件訪問服務(wù)(File Access Services)包含2種服務(wù),提供讀寫文件的方法,包括上/下載控制程序和數(shù)據(jù)庫的能力;
(3)對象訪問服務(wù)(Object Access Services)包含9種服務(wù),提供了讀、修改和寫屬性值以及增刪對象的方法;
(4)遠(yuǎn)程設(shè)備管理服務(wù)(Remote Device Management Services)包含11種服務(wù),提供對BACnet設(shè)備進(jìn)行維護(hù)和故障檢測的工具、方法;
(5)虛擬終端服務(wù)(Virtual Terminal Services)包含3種服務(wù),提供了一種面向字符的數(shù)據(jù)雙向交換機(jī)制,使其他具有專有特性的樓宇自控設(shè)備成為一個(gè)BACnet虛擬終端并使BACnet網(wǎng)絡(luò)能對其進(jìn)行重構(gòu);
(6)網(wǎng)絡(luò)安全服務(wù)(Network Security Services)包含2種服務(wù),提供對等實(shí)體驗(yàn)證、數(shù)據(jù)源驗(yàn)證、操作者驗(yàn)證和數(shù)據(jù)加密等功能。
BACnet功能組規(guī)定了實(shí)現(xiàn)特定控制功能所需的對象和服務(wù)的組合。BACnet已定義了13個(gè)功能組,包括時(shí)鐘功能組、事件響應(yīng)功能組、文件功能組、虛擬終端功能組、設(shè)備通信功能組等。
五、BACnet設(shè)備級別和設(shè)備等級說明
在實(shí)際的樓宇自動(dòng)化系統(tǒng)中,沒有必要也不可能所有的設(shè)備都支持、包含上述所有的對象和服務(wù)。因此,BACnet定義了6個(gè)一致性類別(設(shè)備級別)。一致性類別的分級編號為1~6,最低級別是類別l。每個(gè)類別都規(guī)定了設(shè)備要實(shí)現(xiàn)的最小服務(wù)子集,且包含低級別的所有服務(wù)。
為了幫助用戶和工程人員確定不同BACnet設(shè)備之間的互操作性,需要廠商為每個(gè)設(shè)備提供標(biāo)準(zhǔn)格式文件以標(biāo)識設(shè)備中己實(shí)現(xiàn)的BACnet標(biāo)準(zhǔn)的內(nèi)容,即文件需包括設(shè)備符合BACnet等級的說明。這個(gè)文件就是PICS(Protocol
Implementation Conformance Statement),它包括:
(1)標(biāo)識廠商和描述設(shè)備的基本信息;
(2)設(shè)備符合BACnet的級別;
(3)設(shè)備所支持的功能組;
(4)設(shè)備所支持的基于標(biāo)準(zhǔn)或?qū)S械姆?wù),設(shè)備啟動(dòng)或響應(yīng)服務(wù)請求的能力;
(5)設(shè)備所支持的基于標(biāo)準(zhǔn)或?qū)S械膶ο箢愋图捌鋵傩悦枋觯?/span>
(6)設(shè)備支持的數(shù)據(jù)鏈路技術(shù);
(7)設(shè)備支持的分段請求和響應(yīng)。
六、 BACnet的互聯(lián)網(wǎng)擴(kuò)展
目前,BACnet標(biāo)準(zhǔn)使用兩種技術(shù)實(shí)現(xiàn)與Internet的互聯(lián)。第一種技術(shù)附件H中稱之為“隧道”技術(shù),并將其設(shè)備稱之為分組封裝/拆裝設(shè)備,簡稱PAD。其作用就像一個(gè)網(wǎng)關(guān)/路由器,這在圖2中兩個(gè)半路由器連接廣域網(wǎng)形成一個(gè)完全的BACnet路由器有所體現(xiàn)。第二種技術(shù)附件J中稱之為BACnet/IP,設(shè)備直接封裝IP幀/包在BACnet網(wǎng)絡(luò)和Internet上傳輸。
PAD將BACnet報(bào)文數(shù)據(jù)封裝在IP協(xié)議數(shù)據(jù)包內(nèi)傳輸,在目的BACnet網(wǎng)絡(luò)解封。因此每個(gè)連接Internet的BACnet網(wǎng)絡(luò)都要配置PAD網(wǎng)關(guān)/路由器。它可以是一個(gè)單獨(dú)的設(shè)備,也可以是某種樓宇控制設(shè)備功能的一部分。
ASHRAE于1999年1月正式發(fā)布附件J并成為美國國家標(biāo)準(zhǔn)。它規(guī)范了支持TCP/IP的設(shè)備組建BACnet網(wǎng)絡(luò)的技術(shù),并稱之為BACnet/IP網(wǎng)絡(luò),簡稱B/IP,是一個(gè)或多個(gè)IP子網(wǎng)組成的集合,整體具有單獨(dú)的BACnet網(wǎng)絡(luò)號。BACnet/IP網(wǎng)絡(luò)報(bào)文在網(wǎng)絡(luò)層是IP包,在傳輸層是UDP數(shù)據(jù)報(bào),從而實(shí)現(xiàn)與Internet的TCP/IP協(xié)議的融合。