陳治宇
(蘭州文理學院,甘肅蘭州,730030)
隨著信息化技術的發展,智能建筑[1]已經從夢想變為現實,智能建筑系統是利用統計管理和控制系統[2],建設設施和控制系統,安全防護系統等綜合性應用系統[3]。然而由于涉及的系統比較多,因此在設備的標準上有很大的區別,因此在傳統平臺上集成的系統有很多問題[4]。本文設計了基于BACnet協議[5]的智能建筑系統,該系統將信息管理系統[6]和物業管理系統[7]集成,在系統設計過程中,將BACnet和IP協議相結合,實現各分系統之間的互聯互通。
基于BACnet模式下智能建筑系統通過構建有效的消息交互網絡,將各種各樣的物業管理子系統和智能控制子系統相結合,具體結構如圖1所示。
智能建筑系統是一個集成了多種子系統的綜合管理系統,因此為了保證系統的可靠性和可維護性,必須從整個平臺角度設計統一的標準。BACnet協議是針對采暖、通風、空調、制冷控制設備所設計的,同時也為其他樓宇控制系統的集成提供一個基本原則。
BACnet協議包括局域網通信協議,信息數據傳遞方式,設備自動控制等功能,對于不同廠商生產的系統,通過定制獨立的系統控制器來實現對其的控制。
智能建筑系統中,所有的BACnet數據都被封裝在局域網數據包中,然后使用局域網通信協議將該數據傳輸到目的地,然后由目標接收并加壓該數據。在上述過程中,為了實現控制中心和各分系統之間BACnet數據的通信,需要在控制中心和各分系統之間設定一個數據的打包和解包的PAD路由器,當接收到控制中心的控制命令或者分系統的上報命令后,PAD路由器會將數據按照一定的格式壓縮,然后通過IP網絡發送出去。對于控制中心的控制命令來說,發送的數據包以廣播的形式在各系統之間廣播,而對于各系統的上報信息來說,實施點對點的傳輸。為了實現上述數據的傳輸過程,本系統采用了消息隊列進行數據傳輸。

圖1 智能建筑系統結構
2.2.1 BACnet通信模式設計
在智能建筑系統中,各分系統要接入到該系統中,必須首先注冊,注冊的同時上報該系統的主要功能和主要控制命令,子系統注冊成功之后會分配唯一的標識符,當有控制命令發送時,以該標識符標識該系統的唯一性。在智能建筑系統中,數據主要有上報和下發兩種方式,數據的注冊,心跳,結果返回需要通過上報的方式,而控制命令的執行通過下發的方式。為了實現上述過程,本文引入了ZeroMQ消息隊列。
用于子系統注冊,子系統心跳數據,子系統數據上報用的 pull—push 模式。

圖2 安全生產監測系統推拉模式
用于系統全局基本信息,子系統注冊結果以及系統對子系統的控制命令的publisher—subscriber模式。

圖3 安全生產監測系統訂閱者發布者模式
推拉模式主要是針對兩節點一對一之間的通信,所有的節點再推送狀態信息給控制節點之后,不需要從控制中心獲取處理的結果,所有的處理結果或者系統的控制命令由訂閱者發布者模式實現
2.2.2 BACnet通信協議設計
根據智能建筑系統中通信數據的特點,通信協議的格式如圖4所示。

圖4 通信協議格式
在上述通信協議中,各個字段的意思如下:
(1)padding,表示該數據包附加數據的長度。為了實現數據的安全,控制中心和各系統之間的數據都需要加密。為了保證數據處理的速度,所有的待加密數據都是16字節對齊的,因此需要在待加密數據后面補全長度,pad—ding表示附加數據的長度。
(2)type,表示該消息的數據類型,本系統的所有數據可以歸為5大類:系統注冊信息,系統運行狀態,系統向控制中心通報命令執行結果,廣播控制命令,廣播系統注冊結果。為了表示不同的數據類型,這些數據的type分別為1,2,3,4,5。通過定義type的方式,可以方便的實現數據類型的擴展。
(3)data_len,數據部分的長度,指的是去除pad—ding內容的長度。
(4)data,數據包的具體內容。
PAD路由器主要實現各種數據的打包,通信數據中包含各種數據類型,如整形,浮點型,字符串等類型,為了實現數據庫的快速處理,需要對數據包進行快速的打包或者解包,對于變長的data部分,采用長度加內容的方式。數據包的打包和解包方式如下:

表1 數據的打包方式

對于采集信息結構體來說,數據通過上述方法打包進數據包中,然后加上包頭,padding,type,data_len等,然后通過無線方式傳輸到區域匯聚模塊。