基于LabVIEW的報警顯示系統(tǒng)的研究
隨著電子技術(shù)和計算機(jī)自動控制技術(shù)的引入,報警設(shè)施的自動化、智能化水平在不斷提高。同時,隨著高層建筑和大型綜合性建筑的增加,使報警系統(tǒng)更加復(fù)雜化和立體化,對報警系統(tǒng)提出了多功能性,即不單是防盜,還包括防火,有害氣體報警等一系列的要求。準(zhǔn)確、及時地獲取報警信息和記錄報警信息,有助于安防人員做出快速的反應(yīng),減少損失,也為日后分析原因提供了依據(jù)。當(dāng)前的圖形報警系統(tǒng)主要有以下幾種類型:一種是由分區(qū)控制器、報警器、總控制器等報警模塊組成的多級式報警系統(tǒng),PC機(jī)主要與總控制器進(jìn)行連接,只是負(fù)責(zé)報表、打印、顯示等功能;另一種是以視頻監(jiān)控為主的,通過捕捉處理圖像進(jìn)行報警,有專用的主機(jī)和設(shè)備,雖然功能強大,但是價格昂貴。根據(jù)上述背景情況,以PC機(jī)作為主控機(jī),開發(fā)了一款圖形報警系統(tǒng)。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是實驗室虛擬儀器集成開發(fā)平臺的簡稱,它是目前國際上應(yīng)用最廣泛的虛擬儀器開發(fā)環(huán)境之一,它具有工業(yè)標(biāo)準(zhǔn)的圖形化編程工具,主要用于開發(fā)測試、測量、和控制系統(tǒng)。LabVIEW和傳統(tǒng)的編程語言有很多相似之處,如:數(shù)據(jù)類型、數(shù)據(jù)運算、控制結(jié)構(gòu)等,但是LabVIEW采用圖形語言進(jìn)行編程,使編程更靈活、方便。本系統(tǒng)上位機(jī)軟件采用LabVIEW進(jìn)行編寫,可降低開發(fā)難度,縮短開發(fā)周期,并可以根據(jù)用戶的需要對系統(tǒng)做出快速的更改。
1 系統(tǒng)構(gòu)成
報警系統(tǒng)主要由硬件部分和軟件部分組成。硬件部分包括各種類型的傳感器、防區(qū)模塊、USB/RS-485轉(zhuǎn)接器、PC機(jī)及通信電纜;軟件部分主要是利用LabVIEW開發(fā)的圖形報警軟件。防區(qū)模塊主要由AT89C2051單片機(jī)、SN75176,總線收發(fā)器和地址編碼器組成。傳感器正常工作時I/O口是低電平,當(dāng)有警情時產(chǎn)生高電平。I/O口接收到報警信號后,把產(chǎn)生警情的傳感器的地址碼通過SN75176總線收發(fā)器經(jīng)過報警總線發(fā)送到上位機(jī)。報警總線包括兩條RS485數(shù)據(jù)線和兩條電源線。使用USB/RS485轉(zhuǎn)接器使系統(tǒng)既擁有了USB,總線較強的擴(kuò)展能力,又具有RS485總線較遠(yuǎn)的傳輸距離。當(dāng)上位機(jī)接收到防區(qū)模塊發(fā)送的地址碼后,將該地址碼傳入ACCESS數(shù)據(jù)庫,由數(shù)據(jù)庫中得到該地址碼所對應(yīng)的傳感器的詳細(xì)信息,然后以圖形、文字、聲音三種方式進(jìn)行報警。記錄模塊對該次報警進(jìn)行記錄,以便于今后的查詢。
2 軟件設(shè)計
2.1 數(shù)據(jù)庫連接
Access數(shù)據(jù)庫是一個關(guān)系型數(shù)據(jù)管理系統(tǒng),具有數(shù)據(jù)庫小巧,系統(tǒng)資源占用少,與Windows兼容性好的優(yōu)點,可以根據(jù)用戶定義的關(guān)系存儲、處理和管理數(shù)據(jù)信息。它由許多基本的表組成,用來存放不同的信息,同時可對表間的關(guān)系進(jìn)行設(shè)計。LabVIEW提供了豐富的外部程序接口,如ActiveX和.NET,所以可以通過AD0、DA0、AD0.NET等方法與數(shù)據(jù)庫進(jìn)行連接。采用LabSQL來進(jìn)行LabVIEW和Access數(shù)據(jù)庫的連接,LabSQL,是一個通過AD0開源的數(shù)據(jù)庫訪問工具,可以當(dāng)作普通的VI進(jìn)行調(diào)用。Access數(shù)據(jù)庫中的監(jiān)控點信息表由以下字段組成:傳感器地址碼、傳感器類型、傳感器所在樓層、傳感器所在區(qū)域、傳感器標(biāo)示、傳感器坐標(biāo)(X坐標(biāo),Y坐標(biāo))。報警信息記錄表由傳感器地址碼、類型、報警時間、報警日期等字段組成。管理人員權(quán)限表由人員編號、登陸記錄、權(quán)限代碼等字段組成。當(dāng)產(chǎn)生報警信息時,防區(qū)模塊會把產(chǎn)生警情的傳感器的地址碼發(fā)送到PC機(jī)。系統(tǒng)接收到該地址碼后,首先通過ADO Connection Create.vi與ADO建立連接,然后通過ADO Connection Open.vi打開DSN,DSN由ConnectionString指定。利用ConcatenateStrings字符串合成功能把地址碼組合成完整的SQL查詢語句。ADO SQL execute.vi通過該查詢語句,可以得到該傳感器的詳細(xì)信息。
2.2 圖形報警
圖形報警的主要功能是實現(xiàn)平面圖在屏幕上的顯示,并提示報警點?,F(xiàn)有的圖形報警系統(tǒng)普遍采用兩種方法,一種是程序內(nèi)建的繪圖程序,這種方法的優(yōu)點是不依靠其他繪圖軟件,使用方便,但是繪圖能力較弱,地圖效果不好。第二種是建立與其他專業(yè)的繪圖軟件(如:AUTOCAD)的連接,這種方法雖然可以得到高質(zhì)量的地圖,但是用戶很難獨自完成地圖,也不便于以后對地圖的更改。而本系統(tǒng)不再對繪圖軟件進(jìn)行限制,用戶可以使用任意的繪圖軟件進(jìn)行地圖的描繪,只要最后把圖片保存為JPG或者BMP的圖片格式,并釋放到指定位置,系統(tǒng)就會自動調(diào)用地圖文件。
報警點在地圖顯示為一個閃爍的圓點,對于圓的繪制采用了Bresenham算法生成圓弧,圓心位于原點的圓有四條對稱軸x=0,y=0,x=y,x=-y,則利用圓的對稱性可減少計算量。若已知圓弧上一點(x,y),則可以得到其關(guān)于四條對稱軸的其他7個點,這種性質(zhì)稱為圓的八對稱性。因此只要掃描轉(zhuǎn)換八分之一圓弧,就可以求出整個圓弧的像素集。Bresenham算法產(chǎn)生八分之一圓弧的遞推公式為:
當(dāng)查詢完該地址的詳細(xì)信息后,ADO SQL execute.vi將查詢后的結(jié)果以數(shù)組形式輸出。通過Index Array索引數(shù)組功能,可以獲得該地址碼所對應(yīng)的地圖文件名稱。然后通過Concatenate Strings字符串合成功能形成相對路徑,配合基路徑后就可以通過build path創(chuàng)建出完整的路徑。Read JPEG Fjle.vi通過該路徑可以讀取地圖文件,并將該地圖文件以圖像數(shù)據(jù)的形式傳送到Draw FlattendedPixmap.vi。同時,Index Array索引數(shù)組功能也獲得了傳感器的坐標(biāo),但是由于得到的結(jié)果是字符串,所以要通過Decimal string To Number先轉(zhuǎn)換成數(shù)字,通過Bundle捆綁后傳送到Draw Flattended Pixmap.vi。然后采用公式節(jié)點實現(xiàn)Bresenham算法后通過DrawFlattended Pixmap.vi實現(xiàn)報警點的圖形顯示。
2.3 通信模塊
通信模塊主要負(fù)責(zé)上位機(jī)和防區(qū)模塊之間的通信。通信模塊通過巡更檢查的方式對防區(qū)模塊進(jìn)行呼叫,防區(qū)模塊如果正常工作且沒有警情發(fā)生時,防區(qū)模塊給上位機(jī)一個應(yīng)答,上位機(jī)收到該應(yīng)答后繼續(xù)呼叫下一防區(qū)模塊。如過有警情發(fā)生,防區(qū)模塊則把產(chǎn)生警情探頭的地址碼發(fā)送到上位機(jī)。如果防區(qū)模塊在規(guī)定時間內(nèi)無應(yīng)答,則通信模塊重復(fù)呼叫一次,仍無應(yīng)答,則產(chǎn)生故障報警,并繼續(xù)呼叫下一防區(qū)模塊。通信模塊可以根據(jù)傳輸距離靈活設(shè)置傳輸速度,默認(rèn)狀態(tài)下傳輸速率設(shè)置為1200波特率,在這個速度下傳輸距離可達(dá)到2公里左右。
2.4 記錄模塊
記錄模塊主要負(fù)責(zé)對報警信息的記錄的存儲,并且能夠查詢和打印。報警信息的記錄包括報警探頭的ID、位置、類型和報警的日期和時間。存儲功能主要把報警記錄保存入數(shù)據(jù)庫或者是Excel文件,以便于日后的查詢和統(tǒng)計,操作員可以對數(shù)據(jù)查看和打印,但是不具有對數(shù)據(jù)進(jìn)行更改的權(quán)限。打印功能通過打印機(jī)實現(xiàn)。
當(dāng)產(chǎn)生報警信息時,GetData/Time In Sermonds.vi獲得當(dāng)前的日期和時間,通過Format Data/Timestring.vi把時間按照指定的格式進(jìn)行顯示,然后通過Build Array.vi把時間和其他信息通過數(shù)組進(jìn)行顯示。
3 結(jié)束語
圖形報警系統(tǒng)為安防人員提供了一種圖形化操作界面,有利于安防人員準(zhǔn)確、直觀地進(jìn)行監(jiān)控,并可以迅速做出判斷、減少損失。采用LabVIEW進(jìn)行開發(fā),降低了工作量,并且使程序靈活,有利于以后根據(jù)用戶的要求進(jìn)行修改。采用PC機(jī)作為控制機(jī)簡化了系統(tǒng)結(jié)構(gòu),降低了成本,而且對于PC機(jī)的性能要求不高,便于賓館學(xué)校等場所的使用。