文獻標(biāo)識碼: A
文章編號: 0258-7998(2015)02-0048-03
0 引言
石油化工企業(yè)在生產(chǎn)過程中使用的原料、半成品及制成品多屬易燃、易爆、有毒有害、腐蝕性的化學(xué)物質(zhì),這些化學(xué)性毒物在生產(chǎn)加工過程中,多數(shù)以氣態(tài)存在車間空氣中,比如硫化氫、苯、液化氣體等有毒氣體。雖然屬于低濃度接觸,但也可以引起機體急性或慢性病理變化;另外,生產(chǎn)過程中的噪聲污染不僅影響聽覺系統(tǒng),還會對心血管及消化系統(tǒng)產(chǎn)生影響。有調(diào)查顯示,困擾石油職工的主要疾病情況中消化系統(tǒng)、呼吸系統(tǒng)、心血管系統(tǒng)和運動器官疾病排在前四位, 各種職業(yè)病患者占總?cè)藬?shù)4.4%[1]。石油化工產(chǎn)業(yè)生產(chǎn)過程的不安全因素大大超過其他行業(yè),危險事故發(fā)生的概率較高[2]。
國內(nèi)外對面向石油化工安全預(yù)警系統(tǒng)進行了大量的研究,如西門子公司的SIMATIC PCS7,Matricon公司的Alarm Manager及其配套工具;戴靚等人研發(fā)的石油化工設(shè)備智能預(yù)警系統(tǒng)[3];潘紅磊研發(fā)石油石化企業(yè)預(yù)警系統(tǒng)[4],諸多產(chǎn)品主要應(yīng)用在設(shè)備和廠區(qū)環(huán)境等方面,對于石化廠區(qū)職工健康安全預(yù)警系統(tǒng)鮮見報道。
本文針對石油化工生產(chǎn)環(huán)境復(fù)雜、存在威脅人身安全的多種環(huán)境參數(shù)的問題,設(shè)計了石化廠區(qū)職工健康安全預(yù)警系統(tǒng)。通過在普通頭盔上搭載傳感器(溫度、濕度、可燃氣、二氧化硫、硫化氫、心率、GPS定位)檢測生產(chǎn)人員周邊環(huán)境參數(shù)、生命體征以及地理位置,利用無線射頻芯片nRF24L01傳輸?shù)酵蟊砩巷@示,以供查看。同時腕表可以接收來自監(jiān)控中心的通信信息以及當(dāng)危險事故發(fā)生時的撤離警報。
1 系統(tǒng)總體框圖
本系統(tǒng)由安全預(yù)警頭盔、腕表以及監(jiān)控中心的PC組成。系統(tǒng)總體框圖如圖1所示。通過傳感器檢測人員周邊環(huán)境,并利用射頻技術(shù)實時將數(shù)據(jù)傳輸?shù)酵蟊怼M瑫r監(jiān)測人員的心率,通過攝像頭拍攝圖像,利用WiFi技術(shù)將心率、環(huán)境參數(shù)和視頻流發(fā)送到監(jiān)控中心。監(jiān)控中心播放及保存?zhèn)骰氐囊曨l和環(huán)境參數(shù),可發(fā)送信息到腕表顯示以及觸發(fā)頭盔上的語音報警。數(shù)據(jù)傳輸采用WiFi無線傳輸模塊以及nRF24L01無線射頻傳輸模塊。
2 系統(tǒng)硬件設(shè)計
2.1 安全預(yù)警頭盔硬件設(shè)計
安全預(yù)警頭盔的硬件框圖如圖2所示,設(shè)備以STM32F103芯片為主要處理芯片,在主處理芯片上搭載了如圖所示的各種傳感器模塊,主處理芯片將傳感器模塊的數(shù)據(jù)采集了之后由nRF24L01無線射頻模塊和RT5350 WiFi模塊發(fā)送出去。同時,主處理芯片接收來自無線射頻模塊的LED照明燈的控制命令和來自RT5350 WiFi模塊的語音報警控制命令。
2.2 腕表硬件設(shè)計
同樣以STM32F103芯片為主要處理芯片,由主處理芯片控制TFT_LCS觸摸屏模塊,并根據(jù)nRF24L01無線射頻模塊接收到的數(shù)據(jù),在TFT_LCD觸摸屏上顯示出相應(yīng)數(shù)據(jù)。nRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4 GHz~2.5 GHz ISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強型ShockBurst 技術(shù),其中輸出功率和通信頻道可通過程序進行配置。nRF24L01功耗低,在以-6 dBm的功率發(fā)射時,工作電流也只有9 mA;接收時,工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設(shè)計更方便[5]。
3 軟件系統(tǒng)設(shè)計
本系統(tǒng)的軟件設(shè)計整體圖如圖3所示。
3.1 頭盔軟件設(shè)計
頭盔開機啟動后,初始化硬件,并開始監(jiān)測各個傳感器參數(shù),通過nRF24L01發(fā)送到腕表上,同時將數(shù)據(jù)通過WiFi發(fā)送到監(jiān)控中心上。當(dāng)監(jiān)控中心發(fā)來信息時,頭盔便進入了最高優(yōu)先級的中斷,以監(jiān)控中心的命令為最高優(yōu)先級,實時地將監(jiān)控中心命令反饋給頭盔穿戴者。
3.2 腕表軟件設(shè)計
腕表啟動時,優(yōu)先初始化nRF24l01,準(zhǔn)備接收頭盔發(fā)送過來的信息,然后開啟屏幕并監(jiān)聽nRF24l01是否收到數(shù)據(jù)。一旦收到數(shù)據(jù)則判斷其數(shù)據(jù)的類型,用以更新顯示。腕表啟動后不停地輪詢監(jiān)聽是否有信息發(fā)送到,有則顯示,沒有則繼續(xù)輪詢。
3.3 監(jiān)控中心軟件設(shè)計
監(jiān)控中心的應(yīng)用軟件使用Qt中心編寫,Qt是一個跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架,具有優(yōu)良的跨平臺特性、面向?qū)ο?、豐富的API等優(yōu)點。運行監(jiān)控中心應(yīng)用軟件時,當(dāng)有數(shù)據(jù)通過TCP協(xié)議上行至監(jiān)控中心軟件監(jiān)聽的網(wǎng)絡(luò)端口時,觸發(fā)接收信號槽,就會執(zhí)行網(wǎng)絡(luò)端口讀取數(shù)據(jù)的操作。接收完數(shù)據(jù)后校驗數(shù)據(jù)的完整性以及正確性,如果數(shù)據(jù)正確,則執(zhí)行數(shù)據(jù)分類存儲及分析;如果校驗接收的數(shù)據(jù)是錯誤的,則將數(shù)據(jù)丟棄。接著進行數(shù)據(jù)分析、存儲,對達到報警條件的數(shù)據(jù)進行報警。
4 關(guān)鍵技術(shù)設(shè)計
4.1 nRF24L01無線射頻模塊設(shè)計
頭盔與腕表之間的通信使用nRF24L01無線射頻模塊進行數(shù)據(jù)的傳輸,頭盔為通信主機,配置為發(fā)射模式。腕表為通信從機,配置為接收模式。
當(dāng)發(fā)射數(shù)據(jù)時,首先通過配置模塊的寄存器位PRIM_RX為低電平,當(dāng)要進行數(shù)據(jù)發(fā)送時,通過SPI接口將接收的節(jié)點地址TX_ADDR和有效數(shù)據(jù)(TX_PLD)寫入nRF-24L01模塊,把發(fā)送數(shù)據(jù)的長度寫入TX_FIFO。當(dāng)CSN為低電平時,數(shù)據(jù)會一直寫入發(fā)送端直到發(fā)送完成。之后將通道設(shè)置為接收模式來接收應(yīng)答信號,接收地址(RX_ADDR_P0)應(yīng)與接收端地址(TX_ADDR)相同,否則無法接受信號。最后,將CE設(shè)置為高電平,啟動發(fā)射。CE高電平持續(xù)時間最小為10 s。發(fā)送部分關(guān)鍵代碼如下:
while(1) {
Transmit(Tx_Buf);
Delay(10);
sta=SPI_Read(READ_REG + STATUS);
if(TX_DS){
Status=sta; //當(dāng)前發(fā)送的STATUS狀態(tài)
Delay(100);
SPI_RW_Reg(WRITE_REG + STATUS,sta);
}
if(MAX_RT){ //如果是發(fā)送超時
Status = false; //發(fā)送超時時是false
Delay(150);
SPI_RW_Reg(WRITE_REG + STATUS,sta);
}
}
當(dāng)接收數(shù)據(jù)時,首先通過設(shè)置寄存器中PRIM_RX位為高電平來選擇,使能EN_RXADDR寄存器打開準(zhǔn)備接收數(shù)據(jù)通道,以及使能EN_AA寄存器來啟動數(shù)據(jù)通道的自動應(yīng)答功能,通過設(shè)置RX_PW_Px寄存器來設(shè)置有效數(shù)據(jù)寬度。之后,設(shè)置CE為高電平來啟動接收模式,等待130 s后開始檢測信號。當(dāng)接收到數(shù)據(jù)包后,進行地址匹配以及CRC檢驗,若正確時,將數(shù)據(jù)存儲在RX_FIFO中,并將RX_DR位置為高電平,產(chǎn)生中斷通知處理器。相應(yīng)的通道信息會存儲在狀態(tài)寄存器RX_P_NO中。最后,如果有使能EN_AA寄存器,則會自動發(fā)送確認(rèn)接收的信號;若沒有使能,則直接退出接收。
4.2 WiFi數(shù)據(jù)傳輸模塊設(shè)計
本設(shè)計采用OpenWrt系統(tǒng)來進行WiFi路由器開發(fā),OpenWrt可以被描述為一個嵌入式的Linux發(fā)行版,而不是試圖建立一個單一的、靜態(tài)的系統(tǒng)。OpenWrt的包管理提供了一個完全可寫的文件系統(tǒng),從應(yīng)用程序供應(yīng)商提供的選擇和配置,并允許自定義的設(shè)備,以適應(yīng)任何應(yīng)用程序。由于OpenWrt具有以上優(yōu)點,故采用該系統(tǒng)進行WiFi數(shù)據(jù)傳輸。
由于OpenWrt系統(tǒng)是基于Linux的,在進行數(shù)據(jù)讀寫時完全和Linux下的設(shè)備讀寫一樣。首先定義一個句柄,用于TCP socket通信的控制以及判斷,開辟數(shù)據(jù)緩沖區(qū),并定義目標(biāo)設(shè)備IP地址以及端口。接著客戶程序發(fā)起連接請求,若成功才可以進行讀寫操作,失敗則返回負值。
部分關(guān)鍵代碼如下:
sockfd=socket(AF_INET,SOCK_STREAM,0);
//客戶程序開始建立 sockfd描述符
connect(sockfd,(struct sockaddr *)(&server_addr),sizeof
(struct sockaddr);//客戶程序發(fā)起連接請求
write(sockfd,sendData,strlen(sendData);//寫入數(shù)據(jù)
nbytes=read(sockfd,buffer,1024);//讀取數(shù)據(jù)
4.3 基于QT監(jiān)控中心模塊設(shè)計
4.3.1 數(shù)據(jù)庫存儲數(shù)據(jù)以及查詢數(shù)據(jù)流程
在構(gòu)造函數(shù)里,首先定義一個數(shù)據(jù)庫對象,并創(chuàng)建相應(yīng)數(shù)目的表和表中的各項元素及其類型,使用數(shù)據(jù)庫命令:create table 表名(類型 元素)建立表;當(dāng)需要插入數(shù)據(jù)到對應(yīng)的表,使用命令:insert into表名values(元素)來插入數(shù)據(jù)到對應(yīng)的表;查詢數(shù)據(jù)時,使用命令:select 元素from表名where元素 查詢條件;若有符合條件的元素時,會以鏈表的形式返回,直接獲得數(shù)據(jù)的地址。
4.3.2 視頻播放使用開源項目Opencv進行視頻數(shù)據(jù)處理以及顯示
使用mingw32-make編譯套件編譯出適合Qt使用的工具插件,便可以供Qt調(diào)用。文字通信功能和緊急撤離現(xiàn)場警報使用WiFi技術(shù)實現(xiàn),發(fā)送特定的字符串到頭盔上,頭盔接收后判斷,采取相應(yīng)的操作。
監(jiān)控中心部分關(guān)鍵代碼如下:
tcpServer->listen(QHostAddress::Any,10008);
//監(jiān)聽任何連接上本機10008端口的設(shè)備
connect(tcpServer,SIGNAL(newConnection()),this,SLOT
(newConnect()));//連接建立信號槽
tcpSocket = tcpServer->nextPendingConnection();
//建立新的連接
tcpSocket->readAll();//讀取所有數(shù)據(jù)
5 系統(tǒng)調(diào)試運行
開啟上位機,設(shè)置串口1波特率9 600 b/s;串口2波特率19 200 b/s;定時器采用8位的定時器3,操作模式采用Clear Timer On Compare,通道模式采用Output Compare比較輸出模式,設(shè)置每1 ms產(chǎn)生一次定時中斷,中斷中實現(xiàn)Count變量的累加,當(dāng)累加到設(shè)定的值時便產(chǎn)生一個任務(wù)事件,實現(xiàn)定時采集數(shù)據(jù)、定時發(fā)送數(shù)據(jù)、定時進入休眠、定時喚醒等一系列有序的工作。實驗裝置由智能腕表、智能頭盔和計算機三部分組成。系統(tǒng)調(diào)試分為數(shù)據(jù)接收測試和監(jiān)控中心測試。
5.1 智能腕表數(shù)據(jù)測試
腕表是通過nRF24l01接收來自頭盔的數(shù)據(jù),頭盔每隔1 s就會發(fā)送一次數(shù)據(jù)給腕表,這個信息是可能包含著傳感器數(shù)據(jù)的數(shù)據(jù)包,也可能是包含著時間信息的數(shù)據(jù)包,也可能是監(jiān)控中心通過WiFi發(fā)送到頭盔有頭盔轉(zhuǎn)發(fā)的通信數(shù)據(jù)包。測試結(jié)果表1所示。
從表1數(shù)據(jù)看出,數(shù)據(jù)接收雖然有丟包,但是丟包率在可承受的范圍內(nèi),不影響使用效果。
5.2 監(jiān)控中心測試
監(jiān)控中心支持實時視頻播放、視頻錄制、實時數(shù)據(jù)顯示、歷史數(shù)據(jù)查詢、文字通信功能以及緊急撤離現(xiàn)場警報等功能。監(jiān)控中心效果圖如圖4所示。圖4(a)清晰顯示頭盔攝像頭傳來的視頻,并有視頻錄制、自動保存的功能;圖4(b)顯示溫度、濕度、CO、可燃氣體、體征參數(shù)的實時數(shù)據(jù),當(dāng)心率出現(xiàn)異常時,會發(fā)生報警信息;圖4(c)顯示歷史數(shù)據(jù)以及歷史數(shù)據(jù)查詢時間。
6 結(jié)束語
系統(tǒng)在成功研發(fā)后,在廣東石油化工學(xué)院工業(yè)安全實驗室運行1年,實現(xiàn)了預(yù)期功能,主要包括:(1)實時監(jiān)測佩戴頭盔的生產(chǎn)人員周邊的環(huán)境參數(shù)、生命體征參數(shù)、運動軌跡、視頻等信息,當(dāng)某種危險參數(shù)超過正常范圍時,進行報警;(2)實時地將人員前方的情況畫面通過WiFi發(fā)送至生產(chǎn)監(jiān)控中心,管理人員在監(jiān)控軟件上進行實時視頻瀏覽、監(jiān)控以及存儲管理;(3)職工與生產(chǎn)監(jiān)控中心雙向通信,可接收來自監(jiān)控中心的撤離生產(chǎn)現(xiàn)場的警報信息,實現(xiàn)監(jiān)控中心與生產(chǎn)人員的聯(lián)系;(4)佩戴頭盔的的生產(chǎn)人員能通過腕表觀察當(dāng)前自身存在的環(huán)境和身體的狀況,以對自身的狀況做出正確的判斷。
本設(shè)計為石化廠區(qū)的生產(chǎn)人員提供安全保障和及時報警信息,更好地保護生產(chǎn)人員的健康安全。同時也為石化廠處理危險情況提供了一定的參考價值,可以通過在廠區(qū)布置無線網(wǎng)絡(luò),將每一個安全預(yù)警頭盔聯(lián)網(wǎng),可以在危險情況發(fā)生時及時的通知疏散人員,準(zhǔn)確地找出事故發(fā)生原因,將危險和損失降低。
參考文獻
[1] 高香.某精細化工廠職工健康體檢結(jié)果分析[J].職業(yè)與健康,2006,22(11):1805-1806.
[2] 胡相明,張樂濤.石油化工企業(yè)常見危險源分析及其安全對策研究[J].安全與環(huán)境工程,2011,18(2):96-99.
[3] 戴靚,張禮敬,陶剛.石油化工智能預(yù)警系統(tǒng)[J].科技與產(chǎn)業(yè),2014,14(8):150-154.
[4] 潘紅磊.石油石化企業(yè)預(yù)警系統(tǒng)研究[J].中國安全生產(chǎn)科學(xué)技術(shù),2011,7(2):142-145.
[5] 時志云,蓋建平,王代華,等.新型高速無線射頻器件nRF-24L01及其應(yīng)用[J].國外電子元器件,2007(8):42-44.