1.引言
在社會經(jīng)濟高速發(fā)展的今天,高大空間建筑越來越多,如展覽中心、影劇院、體育場館、倉庫等。大空間建筑由于其本身結(jié)構(gòu)特殊、設(shè)施復(fù)雜,火災(zāi)隱患較多,而且發(fā)生火災(zāi)后不易及時發(fā)現(xiàn)和有效撲救,往往會造成巨大的經(jīng)濟損失和人員傷亡。考慮到其它滅火劑的性能和用量的要求,水滅火仍然是大空間建筑最好的滅火方式[1]。因此,對于大空間建筑來說,采用具有火災(zāi)自動探測功能的智能消防水炮系統(tǒng)是一個較好的方案。
智能消防水炮系統(tǒng)的工作原理是通過前端探測系統(tǒng)采集現(xiàn)場紅外圖像,中央控制器采用圖像處理的手段對發(fā)生在控制區(qū)域內(nèi)的火災(zāi)進行偵測和定位,打開相應(yīng)的聯(lián)動設(shè)備并控制水炮進入噴水滅火操作[2]。系統(tǒng)各部分分布于控制現(xiàn)場不同的位置,因此,各個部分之間的通信是保證整個系統(tǒng)能夠正常工作的前提。
CAN總線作為一種技術(shù)先進、可靠性高、成本低且功能完善的通訊控制方式,已被汽車電子、自動控制、智能樓宇等各個領(lǐng)域廣泛采用。但是CAN-Bus只規(guī)定了物理層和數(shù)據(jù)鏈路層,其本身并不是一個完整的協(xié)議,要進行高效率的通信,必須有高層協(xié)議的支持。CANOPEN是由從事工業(yè)控制的CIA(CANinAutomation)會員開發(fā)一種開放的、標準化的高層CAN協(xié)議。在近年來獲得了迅猛的發(fā)展,尤其是在歐洲,CANOPEN協(xié)議在基于CAN的工業(yè)系統(tǒng)中占領(lǐng)導(dǎo)地位[3]。依靠CANOPEN協(xié)議的支持,可以使不同廠商的設(shè)備通過總線進行配置,從而大大增強了CAN網(wǎng)絡(luò)的通用性。
將CANOPEN協(xié)議應(yīng)用于智能消防炮系統(tǒng)中,不僅可以解決系統(tǒng)中各個部分之間的互聯(lián)問題,同時還可以提高整個系統(tǒng)通信的可靠性、實時性。此外,由于采用了CANOPEN協(xié)議,提高了整個系統(tǒng)的標準化開放化程度,因此,對整個系統(tǒng)進行擴充就更加方便。
2.CANOPEN協(xié)議的剖析
CANOPEN假定CAN網(wǎng)絡(luò)的節(jié)點硬件有ISO11898規(guī)定的一個CAN控制器和一個CAN收發(fā)器。該協(xié)議描述了標準的通訊機制、網(wǎng)絡(luò)管理及相關(guān)參數(shù)的設(shè)定等內(nèi)容。
2.1CANOPEN的核心——對象字典
在CANOPEN中,引入了對象字典的概念。CANOPEN網(wǎng)絡(luò)中的每個節(jié)點都有一個對象字典,而且每個設(shè)備的對象字典具有相同的結(jié)構(gòu)。對象字典描述了該設(shè)備和它的網(wǎng)絡(luò)行為的所有參數(shù)。它是一個有序的對象組,對象字典中的每個對象可以通過一個16位的主索引和一個8位的子索引來定位。
網(wǎng)絡(luò)節(jié)點的對象字典保存在電子數(shù)據(jù)單或者設(shè)備配置文件中,CAN總線不需要對每個節(jié)點的對象字典的全部功能都進行檢測,節(jié)點只需要能夠提供對象字典中必需的對象,以及其它可選擇的、構(gòu)成節(jié)點部分可配置功能的對象[4]。
2.2CANOPEN的通訊模式
CANOPEN協(xié)議中對總線上傳輸?shù)臄?shù)據(jù)進行了分類,即每一個傳輸數(shù)據(jù)都是某一特定類的對象,從而實現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計。在CANOPEN中定義了四類對象,分別是管理對象(NMT),服務(wù)數(shù)據(jù)對象(SDO),過程數(shù)據(jù)對象(PDO)和特殊功能對象。
2.2.1管理對象(NMT)
CANOPEN是基于主從式通訊模式的,所有從節(jié)點的工作都由網(wǎng)絡(luò)主節(jié)點來協(xié)調(diào),管理對象用于網(wǎng)絡(luò)主節(jié)點對從節(jié)點監(jiān)控和管理,完成諸如節(jié)點的初始化、節(jié)點參數(shù)配置、節(jié)點出錯保護等相關(guān)工作。
2.2.2服務(wù)數(shù)據(jù)對象(SDO)
服務(wù)數(shù)據(jù)對象用來建立兩個CANOPEN設(shè)備之間基于客戶/服務(wù)器機理的點對點通訊。通過服務(wù)數(shù)據(jù)對象,客戶方可以訪問服務(wù)器方的對象字典。一個服務(wù)數(shù)據(jù)對象用兩個帶有不同標識符的CAN數(shù)據(jù)幀。服務(wù)數(shù)據(jù)對象允許傳輸任意大小的數(shù)據(jù),有兩種傳送機制,加速傳送機制用來一次傳送小于等于四個字節(jié)的數(shù)據(jù),分段傳送機制用來傳送大于四個字節(jié)的數(shù)據(jù)。
2.2.3過程數(shù)據(jù)對象(PDO)
過程數(shù)據(jù)對象用來傳遞實時數(shù)據(jù),它是CANOPEN最基本的數(shù)據(jù)傳送方式,數(shù)據(jù)傳送限制在1到8個字節(jié)。數(shù)據(jù)由一個生產(chǎn)者發(fā)出,可以有一個或者多個消費者。PDO的通訊有兩種,讀PDO和寫PDO,寫PDO被映射到一個CAN數(shù)據(jù)幀,讀PDO被映射到一個CAN遠程幀,這個遠程幀被數(shù)據(jù)幀所響應(yīng)。觸發(fā)PDO傳輸?shù)姆绞接腥N:事件或定時器觸發(fā)模式;遠程請求觸發(fā)模式;同步觸發(fā)模式。在節(jié)點的對象字典中,對每個PDO都有明確的描述,這樣,發(fā)送方和接收方都可以解釋PDO的具體內(nèi)容。PDO的標識符具有高優(yōu)先級以確保良好的實時性。
2.2.4特殊功能對象
CANopen提供了三個特殊功能對象,同步對象(SynchronizationObject)時間戳對象(Time-Stamp)和緊急事件對象(Emergency)[5]。同步對象由同步發(fā)器定時廣播,用于PDO的同步通訊。時間戳對象為應(yīng)用設(shè)備提供一個微秒極的時鐘,使那些對時間要求十分苛刻的設(shè)備能夠精確同步。緊急事件對象由設(shè)備內(nèi)部出現(xiàn)致命的錯誤所觸發(fā),由發(fā)生錯誤的設(shè)備以最高的優(yōu)先級發(fā)送到網(wǎng)絡(luò)中的其它的設(shè)備,以通知其它設(shè)備不要再試圖和該設(shè)備通訊。
2.3CANOPEN的設(shè)備模型
CANOPEN的設(shè)備模型可以分為三個部分:通訊接口及協(xié)議軟件、對象字典、過程接口和應(yīng)用程序。其中,通訊接口和協(xié)議軟件提供通設(shè)備和總線之間的連接服務(wù),對象字典描述了所有的數(shù)據(jù)類型、通訊對象和設(shè)備用到的應(yīng)用對象,它提供了和應(yīng)用軟件的接口,過程接口和應(yīng)用程序提供了設(shè)備內(nèi)部的控制機制。它們之間的關(guān)系如圖1所示。
3.智能消防水炮系統(tǒng)通訊模型的實現(xiàn)
3.1智能消防水炮節(jié)點硬件設(shè)計
整個消防水炮系統(tǒng)包含了十四個節(jié)點,它們構(gòu)成一個CAN網(wǎng)絡(luò)。工業(yè)控制計算機為網(wǎng)絡(luò)主節(jié)點。由它來協(xié)調(diào)系統(tǒng)中各個分節(jié)點的動作。工控機通過一塊CAN通訊卡掛接在CAN網(wǎng)絡(luò)上。系統(tǒng)中一共包含了十二個消防炮分節(jié)點。在各個分節(jié)點中,包含一臺紅外CCD攝像機、一門消防水炮、兩臺步進電機和一臺直流電機。各個分節(jié)點中節(jié)點控制模塊的硬件系統(tǒng)如圖2所示。
CAN控制器采用了PHILIPS公司生產(chǎn)的應(yīng)用于汽車和一般工業(yè)環(huán)境的獨立CAN總線控制器,它支持基本型CAN模式和增強型CAN模式。它具有完成高性能CAN通信協(xié)議所要求的全部必要特性。CAN總線驅(qū)動器80C250是CAN控制器和物理總線之間的接口,可以提供對總線的差動發(fā)送和接收功能。而且,CAN控制器SJA1000和CAN總線驅(qū)動器80C250之間是通過高速光耦TL113相連,這樣就很好的實現(xiàn)了總線上各個CAN節(jié)點間的電氣隔離。不過,光耦部分電路所采用的兩個電源必須也完全隔離,否則就失去了采用光耦的意義。
3.2節(jié)點對象字典的建立
網(wǎng)絡(luò)中的每個設(shè)備都需要有一個對象字典。在本系統(tǒng)中,有一個主節(jié)點和十三個從節(jié)點。在各個節(jié)點中都采用預(yù)定義連接集中規(guī)定的十一位ID。它由四位功能碼和七位節(jié)點ID組成??紤]到系統(tǒng)今后的可擴展性,設(shè)定十三個子節(jié)點的節(jié)點號為8-20.下面以主節(jié)點為例介紹對象字典的創(chuàng)建。
從節(jié)點需要能夠訪問主節(jié)點的對象字典,因此,主節(jié)點需要一個SDO。主節(jié)點需要向十三個從節(jié)點發(fā)送數(shù)據(jù),因此需要十三個Tx—PDO和十三個Rx—PDO。每個PDO又由PDO通訊參數(shù)(PDOParameter)和PDO映射參數(shù)(PDOMapping)兩部分組成。如下表所示:
另外,主節(jié)點需要對網(wǎng)絡(luò)中的從節(jié)點進行管理,因此需要有管理對象(NMT)。系統(tǒng)還有緊急的信息需要發(fā)送,因此需要有一個緊急事件對象(EmergencyObject)。
一個節(jié)點的對象字典是在電子數(shù)據(jù)文檔(EDS:Electronicdatasheet)中描述的。節(jié)點本身只需要能夠提供對象字典中必需的對象以及其它可選擇、構(gòu)成節(jié)點部分可配置功能的對象。
3.3節(jié)點軟件實現(xiàn)
節(jié)點的軟件從內(nèi)容上可以分為一個組成部分:基本功能部分,包括節(jié)點的通訊初始化和硬件設(shè)備的初始化,定義和訪問對象字典,進行PDO通訊和SDO通訊;錯誤處理和節(jié)點的管理部分,當節(jié)點發(fā)生錯誤或者節(jié)點狀態(tài)發(fā)生改變時進行相應(yīng)的操作;擴展功能部分,用于在系統(tǒng)的硬件發(fā)生變化時對節(jié)點的狀態(tài)和相關(guān)參數(shù)進行再設(shè)置。
3.4網(wǎng)絡(luò)初始化流程
CANopen網(wǎng)絡(luò)的初始化流程如圖3所示:
在智能消防炮網(wǎng)絡(luò)中,每個節(jié)點在上電和內(nèi)部初始化后自動進入預(yù)操作狀態(tài)(Pre—operationalstate)。處于該狀態(tài)中的從節(jié)點可以通過SDO被配置參數(shù),但不允許進行PDO通訊。工控機主節(jié)點可以通過NMT使各個從節(jié)點進入操作狀態(tài)(Operationalstate)。在操作狀態(tài)中,允許PDO通訊。主節(jié)點還可以使從節(jié)點進入停止狀態(tài)(StoppedState)。在停止狀態(tài)中,既不允許PDO通訊也不允許SDO通訊,節(jié)點可以專業(yè)做自己的事情??梢詮耐V範顟B(tài)回到預(yù)操作狀態(tài)或者操作狀態(tài)。
4.結(jié)束語
智能消防水炮系統(tǒng)作為大空間建筑的重要消防設(shè)施,近年來越來越受到人們的重視。而CAN總線在各個領(lǐng)域都有很好的應(yīng)用前景,CANopen是一種公開的協(xié)議。將CANopen應(yīng)用層協(xié)議應(yīng)用于消防水炮系統(tǒng)的設(shè)計中,不僅可以提系統(tǒng)通訊的效率和通訊的可靠性,而且能夠據(jù)推動智能消防水炮系統(tǒng)以CANopen協(xié)議為平臺標準化。
本文作者創(chuàng)新點:首次將CAN總線和CANopen協(xié)議應(yīng)用于智能消防水炮系統(tǒng)的設(shè)計。