(海思市場(chǎng)部提供推薦)
BACnet(A Data Communication Protocol for Building Automation and Control Network)是一種為樓宇自動(dòng)控制網(wǎng)絡(luò)所制定的數(shù)據(jù)通信協(xié)議,它由美國(guó)冷暖空調(diào)工程師協(xié)會(huì)組織的標(biāo)準(zhǔn)項(xiàng)目委員會(huì)135P(Standard Project Committee: SPC 135P)于1995年6月制定。BACnet標(biāo)準(zhǔn)產(chǎn)生的背景是用戶對(duì)樓宇自動(dòng)控制設(shè)備互操作性(Interoperability)的廣泛要求,即將不同廠家的設(shè)備組成一個(gè)一致的自控系統(tǒng)。BACnet實(shí)現(xiàn)樓宇自控設(shè)備的互操作性的思想是這樣的,一般樓宇自控設(shè)備從功能上講分為兩部分,一部分專門(mén)處理設(shè)備的控制功能,另一部分專門(mén)處理設(shè)備的數(shù)據(jù)通信功能,不同廠商生產(chǎn)的設(shè)備使用各自專門(mén)的數(shù)據(jù)通信的方式,所以不同廠商的設(shè)備之間沒(méi)有很好的互操作性。BACnet就是要建立一種統(tǒng)一的數(shù)據(jù)通信的標(biāo)準(zhǔn),用于設(shè)備的通信部分,從而使得按這種標(biāo)準(zhǔn)生產(chǎn)的設(shè)備,都可以進(jìn)行通信,實(shí)現(xiàn)互操作性。BACnet標(biāo)準(zhǔn)只是規(guī)定了樓宇自控設(shè)備之間要進(jìn)行“對(duì)話”所必須遵守的規(guī)則,并不涉及如何實(shí)現(xiàn)這些規(guī)則,各廠商可以用不斷進(jìn)步的技術(shù)來(lái)開(kāi)發(fā),從而使得整個(gè)領(lǐng)域的技術(shù)不斷進(jìn)步。
SPC征集了各方面的意見(jiàn),同時(shí)參考了國(guó)際上各種現(xiàn)已成文的或是事實(shí)上的數(shù)據(jù)通信標(biāo)準(zhǔn),討論得出了一個(gè)具有以下特性的網(wǎng)絡(luò)協(xié)議模型:
(1)所有的網(wǎng)絡(luò)設(shè)備,除了主從/令牌傳遞式從屬機(jī)(MS/TP slaves: master-slave/token-passing slaves)以外,都是對(duì)等的(Peer)。當(dāng)然某些同等設(shè)備可能比其他具有更多的特權(quán)(Privilege)和職責(zé)(Responsibility)。
(2)每一個(gè)網(wǎng)絡(luò)設(shè)備都稱之為是一個(gè)“對(duì)象”(Object)的實(shí)體(entity),這是一個(gè)具有網(wǎng)絡(luò)訪問(wèn)特征的集合模型。每個(gè)對(duì)象又用一些“屬性”(Property)來(lái)描述,這些屬性表示了設(shè)備的硬件、軟件以及操作的各個(gè)方面。在不需要了解設(shè)備內(nèi)部設(shè)計(jì)或配置細(xì)節(jié)的情況下,對(duì)象提供了識(shí)別和訪問(wèn)設(shè)備信息的方法。盡管該標(biāo)準(zhǔn)規(guī)定了廣泛的應(yīng)用對(duì)象的類型以及它們的屬性,但是一旦需要,利用開(kāi)發(fā)工具仍可以自由地增加新的對(duì)象類型。
(3)通信功能是通過(guò)讀寫(xiě)某些對(duì)象的屬性,以及利用其他協(xié)議提供的“服務(wù)”(Service)來(lái)完成的。盡管該標(biāo)準(zhǔn)規(guī)定了一套詳盡的服務(wù),但是一旦需要,該標(biāo)準(zhǔn)的機(jī)制也同樣允許利用開(kāi)發(fā)工具增加新的服務(wù)。
(4)設(shè)備的完善性(Sophistication),即實(shí)現(xiàn)特定服務(wù)請(qǐng)求或理解特定對(duì)象類型種類的能力,是由設(shè)備的“一致性類別”(Conformance Class)所反映的。每一種類別定義了一個(gè)包括服務(wù)、對(duì)象、屬性的最小集合,聲明為某一類別的設(shè)備必須支持其相應(yīng)的集合。
(5)由于該標(biāo)準(zhǔn)遵循了ISO的“分層”通信體系結(jié)構(gòu)的概念,因此使用不同的網(wǎng)絡(luò)訪問(wèn)方法和物理介質(zhì)可以交換相同的報(bào)文。這樣可以根據(jù)傳輸速度和吞吐量的要求,采用相宜的開(kāi)銷來(lái)配置BACnet網(wǎng)絡(luò)。
(6)該標(biāo)準(zhǔn)是為暖氣、通風(fēng)、 空調(diào)、制冷控制設(shè)備所設(shè)計(jì)的,同時(shí)它也為其他樓宇控制系統(tǒng)的集成提供了基本原則,例如照明、保安、消防系統(tǒng)等。雖然這些擴(kuò)展超出了該標(biāo)準(zhǔn)的范圍,但實(shí)現(xiàn)起來(lái)卻簡(jiǎn)單明了。并且,標(biāo)準(zhǔn)中定義的許多對(duì)象和服務(wù)也可以不加修改地被應(yīng)用。當(dāng)然,一旦這些其他類型的樓宇控制功能需要,也可以簡(jiǎn)單方便地定義新的對(duì)象和服務(wù)。
(7)該標(biāo)準(zhǔn)的目的是為暖氣、通風(fēng)、 空調(diào)、制冷控制設(shè)備和其它樓宇自控設(shè)備的監(jiān)控定義數(shù)據(jù)通信的服務(wù)和協(xié)議。除此之外,標(biāo)準(zhǔn)還定義了抽象的、面向?qū)ο蟮谋硎痉?,用?lái)描述這些設(shè)備間的信息通信,以便于在樓宇中使用數(shù)字控制技術(shù)。
所有的通信協(xié)議都是一個(gè)解決各種信息交換問(wèn)題的方案的集合,并且隨著時(shí)間的推移和技術(shù)的進(jìn)步而不斷改變,BACnet網(wǎng)絡(luò)同樣也不例外。
國(guó)際標(biāo)準(zhǔn)化組織在制定計(jì)算機(jī)網(wǎng)絡(luò)通訊協(xié)議標(biāo)準(zhǔn)時(shí)定義了一個(gè)模型,稱為開(kāi)放式系統(tǒng)互聯(lián)參考模型(OSI模型),模型的目的是解決計(jì)算機(jī)與計(jì)算機(jī)之間普遍的通信問(wèn)題,并將這個(gè)復(fù)雜的問(wèn)題分解成7個(gè)小的、易解決的子問(wèn)題,每個(gè)子問(wèn)題只與某些通信功能相關(guān)聯(lián),如圖1-1所示。這樣每個(gè)子問(wèn)題便形成了協(xié)議體系結(jié)構(gòu)中的一“層”。任何兩個(gè)遵循該模型及有關(guān)標(biāo)準(zhǔn)的設(shè)備或系統(tǒng),都可以實(shí)現(xiàn)互連和互操作。
SPC制定BACnet標(biāo)準(zhǔn)時(shí),確定BACnet作為一種開(kāi)放性計(jì)算機(jī)局域網(wǎng)協(xié)議,它仍然采用OSI模型的“分層”通信體系結(jié)構(gòu)的概念。在確定分層的層數(shù)時(shí),考慮了下列兩個(gè)因素:第一,OSI模型的實(shí)現(xiàn)需要很高的費(fèi)用,實(shí)際上在絕大部分樓宇自控系統(tǒng)應(yīng)用中也并不需要這么多的層次。但是從OSI的功能性方面考慮,經(jīng)過(guò)簡(jiǎn)化后,OSI模型仍然是設(shè)計(jì)樓宇自控協(xié)議的一個(gè)很好參考,如果只包含OSI模型中被選擇的層次,其它各層則去掉,這樣減少了報(bào)文長(zhǎng)度,降低了通信處理開(kāi)銷,同時(shí)也會(huì)節(jié)約樓宇自控工業(yè)的生產(chǎn)成本。第二,如果能夠充分利用現(xiàn)有的、易用的、廣泛使用的局域網(wǎng)技術(shù),如Ethernet、ARCNET和LonTalk,不但可以降低成本,同時(shí)也有利于性能的提高。由此,SPC確定BACnet標(biāo)準(zhǔn)協(xié)議體系結(jié)構(gòu)為一個(gè)包含四個(gè)層次的分層體系結(jié)構(gòu),這四個(gè)層次相對(duì)于OSI模型中的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和應(yīng)用層,如圖1-2所示。BACnet標(biāo)準(zhǔn)定義了自己的應(yīng)用層和網(wǎng)絡(luò)層,對(duì)于其數(shù)據(jù)鏈路層和物理層,提供了以下五種選擇方案:
第一種選擇是ISO 8802-2類型1定義的邏輯鏈路控制(LLC)協(xié)議,加上ISO 8802-3介質(zhì)訪問(wèn)控制(MAC)協(xié)議和物理層協(xié)議。ISO 8802-2類型1提供了無(wú)連接不確認(rèn)的服務(wù),ISO 8802-3則是著名的以太網(wǎng)協(xié)議的國(guó)際標(biāo)準(zhǔn)。
第二種選擇是ISO 8802-2類型1定義的邏輯鏈路控制(LLC)協(xié)議,加上ARCNET(ATA/ANSI 878.1)。
第三種選擇是主從/令牌傳遞(MS/TP)協(xié)議加上EIA-485協(xié)議。MS/TP協(xié)議是專門(mén)針對(duì)樓宇自控設(shè)備設(shè)計(jì)的,它通過(guò)控制EIA-485的物理層,向網(wǎng)絡(luò)層提供接口。
第四種選擇是點(diǎn)對(duì)點(diǎn)(PTP)協(xié)議加上EIA-232協(xié)議,為撥號(hào)串行異步通信提供了通信機(jī)制。
第五種選擇是LonTalk協(xié)議。
這些選擇都支持主/從MAC、確定性令牌傳遞MAC、高速爭(zhēng)用MAC以及撥號(hào)訪問(wèn)。拓?fù)浣Y(jié)構(gòu)上,支持星型和總線型拓?fù)洌晃锢斫橘|(zhì)上,支持雙絞線、同軸電纜、光纜。
以下詳細(xì)討論BACnet選擇一個(gè)四層體系結(jié)構(gòu)的原因。首先仔細(xì)考慮BACnet網(wǎng)絡(luò)的獨(dú)特特征。BACnet的特征主要有以下兩點(diǎn):
(1) BACnet網(wǎng)絡(luò)是一種局域網(wǎng)。即使在某些應(yīng)用中,樓宇中設(shè)備間遠(yuǎn)距離的通信必不可少時(shí),這一點(diǎn)仍然是不變的。這種遠(yuǎn)距離的通信功能,是由電信網(wǎng)來(lái)實(shí)現(xiàn)。通信過(guò)程中要解決的路由、中繼、可靠傳輸?shù)葐?wèn)題,都由電信網(wǎng)來(lái)處理。在此電信網(wǎng)可看成是BACnet網(wǎng)絡(luò)外部的部分。
(2) BACnet設(shè)備是靜態(tài)的,即在空間上,它們不會(huì)經(jīng)常被移來(lái)移去。在要完成的功能上,從某種意義上說(shuō)也是不變的,即不會(huì)今天生產(chǎn)的設(shè)備的功能是這樣,明天就完全不同了。
在充分了解BACnet網(wǎng)絡(luò)的特征后,就可討論OSI模型的各層在BACnet網(wǎng)絡(luò)中的適用性了。
OSI模型的物理層提供了設(shè)備間的物理連接,以及傳輸載波信號(hào)的方式。顯然在BACnet協(xié)議中,物理層是必不可少的。
OSI模型的數(shù)據(jù)鏈路層,負(fù)責(zé)將數(shù)據(jù)組織成幀(Frame)或分組(Packet)、管理通訊介質(zhì)的訪問(wèn)、尋址(Address),以及完成一些錯(cuò)誤校正(Error Recovery)和流量控制。這些都是BACnet協(xié)議所需要的,因此數(shù)據(jù)鏈路層也是必不可少的。
OSI網(wǎng)絡(luò)層的功能,包括將全局地址解析為局部地址,在一個(gè)或多個(gè)網(wǎng)絡(luò)中進(jìn)行報(bào)文的路由,協(xié)調(diào)不同類型網(wǎng)絡(luò)的差異(如不同網(wǎng)絡(luò)所允許的最大報(bào)文長(zhǎng)度),序列控制,流量控制,差錯(cuò)控制,以及多路復(fù)用。由于BACnet網(wǎng)絡(luò)的拓?fù)涮攸c(diǎn),在各個(gè)設(shè)備之間只存在一條邏輯通路(參見(jiàn)圖3),這樣便不需要最優(yōu)路由的算法。其次,BACnet網(wǎng)絡(luò)是由中繼器或網(wǎng)橋互聯(lián)起來(lái)的一個(gè)或多個(gè)網(wǎng)段所組成的網(wǎng)絡(luò),它具有單一的局部地址空間。在這樣一種單一網(wǎng)絡(luò)中,許多OSI網(wǎng)絡(luò)層的功能也變得多余,或者與數(shù)據(jù)鏈路層相重復(fù)。當(dāng)然在某些BACnet網(wǎng)絡(luò)系統(tǒng)中,網(wǎng)絡(luò)層也可能是必不可少的。例如,在一個(gè)BACnet的網(wǎng)際網(wǎng)(internet)中,當(dāng)兩個(gè)或多個(gè)網(wǎng)絡(luò)使用了不同的MAC層時(shí),便需要區(qū)別局部地址和全局地址,這樣才能將報(bào)文路由到正確的網(wǎng)絡(luò)上去。在BACnet協(xié)議中,通過(guò)定義了一個(gè)包含必要的尋徑和控制信息的網(wǎng)絡(luò)層頭部,來(lái)完成這種簡(jiǎn)化了的網(wǎng)絡(luò)層功能。
傳輸層主要是負(fù)責(zé)提供可靠的端到端的報(bào)文傳輸、報(bào)文分段、序列控制、流量控制,以及差錯(cuò)校正。傳輸層的許多功能與數(shù)據(jù)鏈路層相似,只是在作用范圍上有所不同。傳輸層提供的是端到端的服務(wù),而數(shù)據(jù)鏈路層則提供的是單一網(wǎng)絡(luò)上點(diǎn)到點(diǎn)的服務(wù)。由于BACnet支持多種網(wǎng)絡(luò)的配置,因此協(xié)議必須提供傳輸層端到端的服務(wù)。在BACnet網(wǎng)絡(luò)中要提供三個(gè)方面的傳輸層的功能,第一是可靠的端到端傳輸和差錯(cuò)校正功能,第二是報(bào)文分段和端到端的流量控制,第三是實(shí)現(xiàn)報(bào)文的正確重組,序列控制。由于BACnet是建立在無(wú)連接的通信模型基礎(chǔ)上的,因此所需的服務(wù)大大減少,并且可以被高層來(lái)實(shí)現(xiàn),所以,傳輸層的這些功能可以通過(guò)BACnet應(yīng)用層來(lái)實(shí)現(xiàn),這樣,在BACnet協(xié)議體系中不單獨(dú)設(shè)置傳輸層,相應(yīng)的功能放在應(yīng)用層中完成,從而節(jié)省了通信開(kāi)銷。
會(huì)話層的功能是在通信雙方之間建立和管理長(zhǎng)時(shí)間對(duì)話。包括建立同步標(biāo)志點(diǎn),用來(lái)在出錯(cuò)時(shí)回復(fù)到前一個(gè)標(biāo)志點(diǎn),以避免對(duì)話重新開(kāi)始。但在一個(gè)BACnet網(wǎng)絡(luò)中,絕大部分的通信都是很簡(jiǎn)短的,比如讀寫(xiě)一個(gè)或一些值,通知某個(gè)設(shè)備某個(gè)警報(bào)或事件,或者更改某個(gè)設(shè)定值。當(dāng)然長(zhǎng)時(shí)間的信息交換偶然也會(huì)發(fā)生的,比如上載或下載某個(gè)設(shè)備。由于絕大部分事務(wù)處理都是簡(jiǎn)短的,會(huì)話層的服務(wù)極少用到,再考慮到帶來(lái)的開(kāi)銷,因此BACnet標(biāo)準(zhǔn)中不包括這層。
表示層為通信雙方提供了屏蔽下層傳送語(yǔ)法的服務(wù)。這種傳送語(yǔ)法是用來(lái)將應(yīng)用層中抽象的用戶數(shù)據(jù)表示,變成適合下層傳輸?shù)淖止?jié)序列。但當(dāng)只存在一種傳送語(yǔ)法時(shí),表示層的功能便減少到對(duì)應(yīng)用程序的數(shù)據(jù)進(jìn)行編碼。由于在BACnet在應(yīng)用層中定義了一個(gè)固定的編碼方案,因此一個(gè)獨(dú)立的表示層也變得不再需要。
協(xié)議的應(yīng)用層為應(yīng)用程序提供了完成各自功能所需的通信服務(wù)。在此基礎(chǔ)上,應(yīng)用程序可以監(jiān)控HVAC&R和其它樓宇自控系統(tǒng)。顯然應(yīng)用層是本協(xié)議所必需的。
從以上討論中,可以得到以下幾點(diǎn):
1. 實(shí)現(xiàn)一個(gè)完全的OSI七層體系結(jié)構(gòu)需要大量的資源和開(kāi)銷,因此它對(duì)于目前的樓宇自控系統(tǒng)是不適用的。
2. 根據(jù)OSI模型,采用現(xiàn)有的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)將會(huì)帶來(lái)以下好處:節(jié)約成本,便于與其它計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)集成。
3. 根據(jù)樓宇自控系統(tǒng)的環(huán)境及要求,可以通過(guò)去除OSI某些層的功能來(lái)簡(jiǎn)化OSI模型。
4. 由物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和應(yīng)用層組成的一個(gè)簡(jiǎn)化體系結(jié)構(gòu),是當(dāng)今樓宇自控系統(tǒng)的最佳解決方案。
為了應(yīng)用的靈活性,BACnet并沒(méi)有嚴(yán)格規(guī)定網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。BACnet設(shè)備可以通過(guò)專線或撥號(hào)異步串行線,與四種局域網(wǎng)之一進(jìn)行物理相連。而這些網(wǎng)絡(luò)可以通過(guò)BACnet路由器或一對(duì)半路由器進(jìn)一步互聯(lián)。
在BACnet網(wǎng)絡(luò)中,定義了如下這樣一些拓?fù)浣Y(jié)構(gòu):
1. 物理網(wǎng)段(Physical Segment):直接連接一些BACnet設(shè)備的一段物理介質(zhì)。
2. 網(wǎng)段(Segment):多個(gè)物理網(wǎng)段通過(guò)“中繼器”在物理層連接,所形成的網(wǎng)絡(luò)段。
3. 網(wǎng)絡(luò)(Network):多個(gè)BACnet網(wǎng)段通過(guò)“網(wǎng)橋”互連而成,每個(gè)BACnet網(wǎng)絡(luò)都形成一個(gè)單一的MAC地址域。這些在物理層和數(shù)據(jù)鏈路層上連接各個(gè)網(wǎng)段的設(shè)備,可以利用MAC地址實(shí)現(xiàn)報(bào)文的過(guò)濾。
4. 網(wǎng)際網(wǎng)(Internetwork):將使用不同LAN技術(shù)的多個(gè)網(wǎng)絡(luò),用BACnet“路由器”互聯(lián)起來(lái),便形成了一個(gè)BACnet“網(wǎng)際網(wǎng)”。在一個(gè)BACnet網(wǎng)際網(wǎng)中,任意兩個(gè)節(jié)點(diǎn)之間恰好存在著一條報(bào)文通路。