茅飚,季瑞豐,林戟
(上海上電漕涇發(fā)電有限公司,上海 201540)
液氨是電廠脫硝的還原劑,具有重要的作用,但是液氨泄漏會引起嚴重事故。其事故種類一般有三種,第一管道破裂引起的大量泄漏容易發(fā)生燃燒、爆炸;二是液氨會蒸發(fā),變成氨氣并擴散后,周邊人員吸入身體會發(fā)生中毒事故;三是液氨泄漏發(fā)生氣化,會吸收周邊熱量,導(dǎo)致人員凍傷。所以有效合理的監(jiān)控可以降低事故發(fā)生的概率,而目前氨區(qū)監(jiān)控的方式主要是依靠人工。人工現(xiàn)場值班監(jiān)視存在諸多不確定性,疲勞或者脫崗等因素都會導(dǎo)致漏報或者誤報;人工監(jiān)視攝像機畫面,可靠性也會隨著監(jiān)視時間的增長和空間范圍的擴大而降低,相對應(yīng)的危險區(qū)域的安全性也會打折扣。
本次研究將攝像機區(qū)域入侵功能集成到智慧氨區(qū)平臺中,通過對畫面計算以及廠家SDK實現(xiàn)區(qū)域入侵監(jiān)測報警功能,即規(guī)劃固定區(qū)域,當發(fā)生人員入侵,平臺截取實時畫面產(chǎn)生報警信息并將信息推送到相關(guān)人員處。區(qū)域入侵功能報警主動性強、可長時間工作,有效降低事故發(fā)生的可能性;同時,根據(jù)產(chǎn)生的報警記錄的事件和通道等信息,可以對存儲的視頻記錄快速檢索,獲取指定的記錄。
氨區(qū)平臺網(wǎng)絡(luò)構(gòu)成如圖1所示,化水樓、輔控樓和氨區(qū)電子間三個站點通過光纖連通,服務(wù)器布置在化水樓,攝像機通過氨區(qū)電子間交換機接入氨區(qū)智慧化平臺網(wǎng)絡(luò)中,進行數(shù)據(jù)交換和計算。服務(wù)器雙網(wǎng)卡配置,分別接入氨區(qū)局域網(wǎng)交換機以及廠內(nèi)三區(qū)局域網(wǎng)交換機,可以實現(xiàn)廠內(nèi)計算機局域網(wǎng)訪問以及廣域網(wǎng)設(shè)備VPN訪問平臺。
圖1 氨區(qū)平臺網(wǎng)絡(luò)架構(gòu)圖
SDK即“軟件開發(fā)工具包”,是其基于??低曉O(shè)備自有通訊協(xié)議開發(fā)的,為攝像機、錄像機和門禁等設(shè)備進行二次開發(fā)使用的配套軟件開發(fā)包,??低昐DK主要包含設(shè)備網(wǎng)絡(luò)SDK和播放庫SDK,設(shè)備網(wǎng)絡(luò)SDK主要用于客戶端以及各類產(chǎn)品的通訊和交互,實現(xiàn)遠程配置以及調(diào)控等,播放庫SDK是用于實現(xiàn)實時預(yù)覽功能和錄像回放等[1]。通過軟件開發(fā)工具包功能模塊進行開發(fā),可以提升對設(shè)備的兼容性和穩(wěn)定性,降低開發(fā)工作量。
??低昐DK中含有不同功能庫的DLL(動態(tài)鏈接庫),封裝了??低暤墓δ芎瘮?shù)。通過軟件開發(fā)包進行功能實現(xiàn)需要調(diào)用其中的DLL函數(shù),包括DLL函數(shù)以及頭文件和庫文件。同時,需將設(shè)備網(wǎng)絡(luò)SDK中的RTSP通信庫、轉(zhuǎn)封裝庫、軟解碼庫和硬解碼庫中的文件和播放庫SDK中的文件配置到項目中[2]。在開發(fā)過程中,將頭文件、庫文件、函數(shù)文件復(fù)制至工程目錄下,通過菜單欄操作將庫文件和頭文件進行導(dǎo)入,完成SDK的導(dǎo)入工作。
調(diào)用海康SDK進行二次開發(fā),主要流程如圖2所示
圖2 SDK接口調(diào)用流程
通過調(diào)用SDK可以實現(xiàn)多個功能,而調(diào)用功能塊都需要進行初始化、注冊、注銷和釋放流程。在開發(fā)時首先需要調(diào)用初始化SDK對整個網(wǎng)絡(luò)軟件開發(fā)工具包系統(tǒng)進行重置和內(nèi)存分配;初始化成功后,進行用戶注冊流程,只有成功注冊才可以對功能模塊進行調(diào)用;在功能實現(xiàn)后,還需要進行設(shè)備注銷和釋放SDK資源,來幫助系統(tǒng)結(jié)束流程并且完成內(nèi)存的回收[3]。
3.2.1 報警開發(fā)
報警通過布防的方式實現(xiàn),完成區(qū)域入侵等功能,其流程如圖3所示。
圖3 報警模塊流程
“布防”報警方式是軟件開發(fā)包主動尋找并連接設(shè)備,給設(shè)備發(fā)送指令,使其及時上傳報警信息。由流程圖中看出,布防功能需要先進行用戶注冊函數(shù)(NET_DVR_Login),注冊成功之后,進行配置報警條件,這是實現(xiàn)報警信息上傳的前提。使用的接口有三個,NET_DVR_GetDVRConfig讀取報警參數(shù),NET_DVR_SetDVRConfig設(shè)置報警參數(shù),NET_DVR_PICCFG是區(qū)域入侵報警條件和處理方法的配置結(jié)構(gòu)體。參數(shù)可以通過接口進行配置,也可以通過設(shè)備WEB頁面或者設(shè)備軟件進行配置,配置完成后設(shè)置報警回調(diào)函數(shù),在報警回調(diào)函數(shù)調(diào)用成功后設(shè)置布防函數(shù)接口[4],完成整個布防報警流程的操作。
3.2.2 抓圖開發(fā)
抓圖功能可以通過播放器或者SDK開發(fā)進行實現(xiàn),SDK是調(diào)用接口實現(xiàn)設(shè)備抓圖上傳的功能,可以實現(xiàn)設(shè)備在非預(yù)覽狀態(tài)下進行抓圖。當服務(wù)端接收到報警模塊返回的報警事件后,觸發(fā)抓圖流程,在通過初始化和注冊后,軟件開發(fā)包對前端攝像機發(fā)送抓圖命令,攝像機對當前畫面進行抓取,以二進制數(shù)組的形式發(fā)送到服務(wù)器端,服務(wù)端對二進制數(shù)組進行解碼轉(zhuǎn)換,并且設(shè)置合適的圖片質(zhì)量、分辨率大小以及存儲地址進行本地保存[5]。在完成抓圖模塊調(diào)用后,同樣需要進行注銷和釋放資源。在智慧氨區(qū)平臺,通過設(shè)備報警信息觸發(fā)平臺的報警功能模塊,將報警設(shè)備的名稱、讀取到的系統(tǒng)時間、存儲的圖片等信息整合生成一條報警記錄,對相應(yīng)權(quán)限的人員進行推送。
布防報警以及抓圖流程結(jié)束后,需要在WEB端進行預(yù)覽,根據(jù)web控件封裝的javascript腳本實現(xiàn)網(wǎng)頁上預(yù)覽、回放等功能。控件使用B/S網(wǎng)頁開發(fā),可以支持多種設(shè)備和運行環(huán)境。在WEB端按照檢查插件、初始化插件、插入插件、檢查版本、登錄、獲取通道、預(yù)覽等步驟進行運行,可以獲取和配置攝像機參數(shù),并實現(xiàn)預(yù)覽功能。
如圖4所示為氨區(qū)卸氨區(qū)域,在氨罐旁邊規(guī)劃重點區(qū)域,藍色識別框顯示,并設(shè)置監(jiān)測靈敏度以及閾值,開始監(jiān)聽識別該區(qū)域的視頻流。當規(guī)劃區(qū)域內(nèi)發(fā)生人員進入并且停留時間超過設(shè)置的閾值后,藍色區(qū)域框會變成紅色并抓圖生成報警信息,并對平臺內(nèi)相應(yīng)權(quán)限的人員以區(qū)域入侵報警的形式進行推送至web或者移動端,推送信息包括時間、區(qū)域以及報警抓圖信息。
圖4 區(qū)域入侵報警
利用??礢DK進行二次開發(fā)實現(xiàn)氨區(qū)區(qū)域監(jiān)控智能化,對于重點區(qū)域進行規(guī)劃設(shè)置,通過算法對區(qū)域內(nèi)畫面進行計算處理,在發(fā)生區(qū)域入侵等事件可以主動報警,提高重點區(qū)域的安全性。該系統(tǒng)擴展較為簡單,根據(jù)不同的功能需要可以增加不同的功能模塊,并且平臺的可復(fù)制性和推廣性較高,在其他的系統(tǒng)都可以進行少量更改進行部署使用,目前可以實現(xiàn)實時預(yù)覽,區(qū)域入侵報警等功能,滿足智慧氨區(qū)平臺的需求,具有一定的實用性。