陳治宇
(蘭州文理學(xué)院,甘肅蘭州,730030)
隨著信息化技術(shù)的發(fā)展,智能建筑[1]已經(jīng)從夢想變?yōu)楝F(xiàn)實,智能建筑系統(tǒng)是利用統(tǒng)計管理和控制系統(tǒng)[2],建設(shè)設(shè)施和控制系統(tǒng),安全防護(hù)系統(tǒng)等綜合性應(yīng)用系統(tǒng)[3]。然而由于涉及的系統(tǒng)比較多,因此在設(shè)備的標(biāo)準(zhǔn)上有很大的區(qū)別,因此在傳統(tǒng)平臺上集成的系統(tǒng)有很多問題[4]。本文設(shè)計了基于BACnet協(xié)議[5]的智能建筑系統(tǒng),該系統(tǒng)將信息管理系統(tǒng)[6]和物業(yè)管理系統(tǒng)[7]集成,在系統(tǒng)設(shè)計過程中,將BACnet和IP協(xié)議相結(jié)合,實現(xiàn)各分系統(tǒng)之間的互聯(lián)互通。
基于BACnet模式下智能建筑系統(tǒng)通過構(gòu)建有效的消息交互網(wǎng)絡(luò),將各種各樣的物業(yè)管理子系統(tǒng)和智能控制子系統(tǒng)相結(jié)合,具體結(jié)構(gòu)如圖1所示。
智能建筑系統(tǒng)是一個集成了多種子系統(tǒng)的綜合管理系統(tǒng),因此為了保證系統(tǒng)的可靠性和可維護(hù)性,必須從整個平臺角度設(shè)計統(tǒng)一的標(biāo)準(zhǔn)。BACnet協(xié)議是針對采暖、通風(fēng)、空調(diào)、制冷控制設(shè)備所設(shè)計的,同時也為其他樓宇控制系統(tǒng)的集成提供一個基本原則。
BACnet協(xié)議包括局域網(wǎng)通信協(xié)議,信息數(shù)據(jù)傳遞方式,設(shè)備自動控制等功能,對于不同廠商生產(chǎn)的系統(tǒng),通過定制獨立的系統(tǒng)控制器來實現(xiàn)對其的控制。
智能建筑系統(tǒng)中,所有的BACnet數(shù)據(jù)都被封裝在局域網(wǎng)數(shù)據(jù)包中,然后使用局域網(wǎng)通信協(xié)議將該數(shù)據(jù)傳輸?shù)侥康牡?,然后由目?biāo)接收并加壓該數(shù)據(jù)。在上述過程中,為了實現(xiàn)控制中心和各分系統(tǒng)之間BACnet數(shù)據(jù)的通信,需要在控制中心和各分系統(tǒng)之間設(shè)定一個數(shù)據(jù)的打包和解包的PAD路由器,當(dāng)接收到控制中心的控制命令或者分系統(tǒng)的上報命令后,PAD路由器會將數(shù)據(jù)按照一定的格式壓縮,然后通過IP網(wǎng)絡(luò)發(fā)送出去。對于控制中心的控制命令來說,發(fā)送的數(shù)據(jù)包以廣播的形式在各系統(tǒng)之間廣播,而對于各系統(tǒng)的上報信息來說,實施點對點的傳輸。為了實現(xiàn)上述數(shù)據(jù)的傳輸過程,本系統(tǒng)采用了消息隊列進(jìn)行數(shù)據(jù)傳輸。
圖1 智能建筑系統(tǒng)結(jié)構(gòu)
2.2.1 BACnet通信模式設(shè)計
在智能建筑系統(tǒng)中,各分系統(tǒng)要接入到該系統(tǒng)中,必須首先注冊,注冊的同時上報該系統(tǒng)的主要功能和主要控制命令,子系統(tǒng)注冊成功之后會分配唯一的標(biāo)識符,當(dāng)有控制命令發(fā)送時,以該標(biāo)識符標(biāo)識該系統(tǒng)的唯一性。在智能建筑系統(tǒng)中,數(shù)據(jù)主要有上報和下發(fā)兩種方式,數(shù)據(jù)的注冊,心跳,結(jié)果返回需要通過上報的方式,而控制命令的執(zhí)行通過下發(fā)的方式。為了實現(xiàn)上述過程,本文引入了ZeroMQ消息隊列。
用于子系統(tǒng)注冊,子系統(tǒng)心跳數(shù)據(jù),子系統(tǒng)數(shù)據(jù)上報用的 pull—push 模式。
圖2 安全生產(chǎn)監(jiān)測系統(tǒng)推拉模式
用于系統(tǒng)全局基本信息,子系統(tǒng)注冊結(jié)果以及系統(tǒng)對子系統(tǒng)的控制命令的publisher—subscriber模式。
圖3 安全生產(chǎn)監(jiān)測系統(tǒng)訂閱者發(fā)布者模式
推拉模式主要是針對兩節(jié)點一對一之間的通信,所有的節(jié)點再推送狀態(tài)信息給控制節(jié)點之后,不需要從控制中心獲取處理的結(jié)果,所有的處理結(jié)果或者系統(tǒng)的控制命令由訂閱者發(fā)布者模式實現(xiàn)
2.2.2 BACnet通信協(xié)議設(shè)計
根據(jù)智能建筑系統(tǒng)中通信數(shù)據(jù)的特點,通信協(xié)議的格式如圖4所示。
圖4 通信協(xié)議格式
在上述通信協(xié)議中,各個字段的意思如下:
(1)padding,表示該數(shù)據(jù)包附加數(shù)據(jù)的長度。為了實現(xiàn)數(shù)據(jù)的安全,控制中心和各系統(tǒng)之間的數(shù)據(jù)都需要加密。為了保證數(shù)據(jù)處理的速度,所有的待加密數(shù)據(jù)都是16字節(jié)對齊的,因此需要在待加密數(shù)據(jù)后面補(bǔ)全長度,pad—ding表示附加數(shù)據(jù)的長度。
(2)type,表示該消息的數(shù)據(jù)類型,本系統(tǒng)的所有數(shù)據(jù)可以歸為5大類:系統(tǒng)注冊信息,系統(tǒng)運行狀態(tài),系統(tǒng)向控制中心通報命令執(zhí)行結(jié)果,廣播控制命令,廣播系統(tǒng)注冊結(jié)果。為了表示不同的數(shù)據(jù)類型,這些數(shù)據(jù)的type分別為1,2,3,4,5。通過定義type的方式,可以方便的實現(xiàn)數(shù)據(jù)類型的擴(kuò)展。
(3)data_len,數(shù)據(jù)部分的長度,指的是去除pad—ding內(nèi)容的長度。
(4)data,數(shù)據(jù)包的具體內(nèi)容。
PAD路由器主要實現(xiàn)各種數(shù)據(jù)的打包,通信數(shù)據(jù)中包含各種數(shù)據(jù)類型,如整形,浮點型,字符串等類型,為了實現(xiàn)數(shù)據(jù)庫的快速處理,需要對數(shù)據(jù)包進(jìn)行快速的打包或者解包,對于變長的data部分,采用長度加內(nèi)容的方式。數(shù)據(jù)包的打包和解包方式如下:
表1 數(shù)據(jù)的打包方式
對于采集信息結(jié)構(gòu)體來說,數(shù)據(jù)通過上述方法打包進(jìn)數(shù)據(jù)包中,然后加上包頭,padding,type,data_len等,然后通過無線方式傳輸?shù)絽^(qū)域匯聚模塊。