文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)02-0048-03
0 引言
石油化工企業(yè)在生產(chǎn)過程中使用的原料、半成品及制成品多屬易燃,、易爆,、有毒有害、腐蝕性的化學(xué)物質(zhì),這些化學(xué)性毒物在生產(chǎn)加工過程中,,多數(shù)以氣態(tài)存在車間空氣中,,比如硫化氫、苯,、液化氣體等有毒氣體,。雖然屬于低濃度接觸,但也可以引起機(jī)體急性或慢性病理變化,;另外,,生產(chǎn)過程中的噪聲污染不僅影響聽覺系統(tǒng),還會對心血管及消化系統(tǒng)產(chǎn)生影響,。有調(diào)查顯示,,困擾石油職工的主要疾病情況中消化系統(tǒng)、呼吸系統(tǒng),、心血管系統(tǒng)和運(yùn)動器官疾病排在前四位, 各種職業(yè)病患者占總?cè)藬?shù)4.4%[1],。石油化工產(chǎn)業(yè)生產(chǎn)過程的不安全因素大大超過其他行業(yè),危險事故發(fā)生的概率較高[2],。
國內(nèi)外對面向石油化工安全預(yù)警系統(tǒng)進(jìn)行了大量的研究,,如西門子公司的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),。通過在普通頭盔上搭載傳感器(溫度、濕度,、可燃?xì)?、二氧化硫,、硫化氫、心率,、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í)時將數(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)制器等功能模塊,,并融合了增強(qiáng)型ShockBurst 技術(shù),其中輸出功率和通信頻道可通過程序進(jìn)行配置,。nRF24L01功耗低,,在以-6 dBm的功率發(fā)射時,,工作電流也只有9 mA;接收時,,工作電流只有12.3 mA,,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設(shè)計更方便[5]。
3 軟件系統(tǒng)設(shè)計
本系統(tǒng)的軟件設(shè)計整體圖如圖3所示,。
3.1 頭盔軟件設(shè)計
頭盔開機(jī)啟動后,,初始化硬件,并開始監(jiān)測各個傳感器參數(shù),,通過nRF24L01發(fā)送到腕表上,,同時將數(shù)據(jù)通過WiFi發(fā)送到監(jiān)控中心上。當(dāng)監(jiān)控中心發(fā)來信息時,,頭盔便進(jìn)入了最高優(yōu)先級的中斷,,以監(jiān)控中心的命令為最高優(yōu)先級,實(shí)時地將監(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)點(diǎn)。運(yùn)行監(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ù)后校驗(yàn)數(shù)據(jù)的完整性以及正確性,,如果數(shù)據(jù)正確,則執(zhí)行數(shù)據(jù)分類存儲及分析,;如果校驗(yàn)接收的數(shù)據(jù)是錯誤的,,則將數(shù)據(jù)丟棄。接著進(jìn)行數(shù)據(jù)分析,、存儲,,對達(dá)到報警條件的數(shù)據(jù)進(jìn)行報警,。
4 關(guān)鍵技術(shù)設(shè)計
4.1 nRF24L01無線射頻模塊設(shè)計
頭盔與腕表之間的通信使用nRF24L01無線射頻模塊進(jìn)行數(shù)據(jù)的傳輸,頭盔為通信主機(jī),,配置為發(fā)射模式,。腕表為通信從機(jī),配置為接收模式,。
當(dāng)發(fā)射數(shù)據(jù)時,,首先通過配置模塊的寄存器位PRIM_RX為低電平,當(dāng)要進(jìn)行數(shù)據(jù)發(fā)送時,,通過SPI接口將接收的節(jié)點(diǎn)地址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ù)包后,,進(jìn)行地址匹配以及CRC檢驗(yàn),,若正確時,將數(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)來進(jìn)行WiFi路由器開發(fā),OpenWrt可以被描述為一個嵌入式的Linux發(fā)行版,,而不是試圖建立一個單一的,、靜態(tài)的系統(tǒng)。OpenWrt的包管理提供了一個完全可寫的文件系統(tǒng),,從應(yīng)用程序供應(yīng)商提供的選擇和配置,,并允許自定義的設(shè)備,以適應(yīng)任何應(yīng)用程序,。由于OpenWrt具有以上優(yōu)點(diǎn),,故采用該系統(tǒng)進(jìn)行WiFi數(shù)據(jù)傳輸。
由于OpenWrt系統(tǒng)是基于Linux的,,在進(jìn)行數(shù)據(jù)讀寫時完全和Linux下的設(shè)備讀寫一樣,。首先定義一個句柄,用于TCP socket通信的控制以及判斷,,開辟數(shù)據(jù)緩沖區(qū),,并定義目標(biāo)設(shè)備IP地址以及端口。接著客戶程序發(fā)起連接請求,,若成功才可以進(jìn)行讀寫操作,,失敗則返回負(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進(jìn)行視頻數(shù)據(jù)處理以及顯示
使用mingw32-make編譯套件編譯出適合Qt使用的工具插件,,便可以供Qt調(diào)用,。文字通信功能和緊急撤離現(xiàn)場警報使用WiFi技術(shù)實(shí)現(xiàn),發(fā)送特定的字符串到頭盔上,,頭盔接收后判斷,,采取相應(yīng)的操作,。
監(jiān)控中心部分關(guān)鍵代碼如下:
tcpServer->listen(QHostAddress::Any,10008);
//監(jiān)聽任何連接上本機(jī)10008端口的設(shè)備
connect(tcpServer,SIGNAL(newConnection()),this,SLOT
(newConnect()));//連接建立信號槽
tcpSocket = tcpServer->nextPendingConnection();
//建立新的連接
tcpSocket->readAll();//讀取所有數(shù)據(jù)
5 系統(tǒng)調(diào)試運(yùn)行
開啟上位機(jī),,設(shè)置串口1波特率9 600 b/s,;串口2波特率19 200 b/s;定時器采用8位的定時器3,,操作模式采用Clear Timer On Compare,,通道模式采用Output Compare比較輸出模式,設(shè)置每1 ms產(chǎn)生一次定時中斷,,中斷中實(shí)現(xiàn)Count變量的累加,,當(dāng)累加到設(shè)定的值時便產(chǎn)生一個任務(wù)事件,實(shí)現(xiàn)定時采集數(shù)據(jù),、定時發(fā)送數(shù)據(jù),、定時進(jìn)入休眠、定時喚醒等一系列有序的工作,。實(shí)驗(yàn)裝置由智能腕表,、智能頭盔和計算機(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í)時視頻播放,、視頻錄制,、實(shí)時數(shù)據(jù)顯示、歷史數(shù)據(jù)查詢,、文字通信功能以及緊急撤離現(xiàn)場警報等功能,。監(jiān)控中心效果圖如圖4所示。圖4(a)清晰顯示頭盔攝像頭傳來的視頻,,并有視頻錄制,、自動保存的功能;圖4(b)顯示溫度,、濕度,、CO,、可燃?xì)怏w、體征參數(shù)的實(shí)時數(shù)據(jù),,當(dāng)心率出現(xiàn)異常時,,會發(fā)生報警信息;圖4(c)顯示歷史數(shù)據(jù)以及歷史數(shù)據(jù)查詢時間,。
6 結(jié)束語
系統(tǒng)在成功研發(fā)后,,在廣東石油化工學(xué)院工業(yè)安全實(shí)驗(yàn)室運(yùn)行1年,實(shí)現(xiàn)了預(yù)期功能,,主要包括:(1)實(shí)時監(jiān)測佩戴頭盔的生產(chǎn)人員周邊的環(huán)境參數(shù),、生命體征參數(shù)、運(yùn)動軌跡,、視頻等信息,,當(dāng)某種危險參數(shù)超過正常范圍時,進(jìn)行報警,;(2)實(shí)時地將人員前方的情況畫面通過WiFi發(fā)送至生產(chǎn)監(jiān)控中心,,管理人員在監(jiān)控軟件上進(jìn)行實(shí)時視頻瀏覽、監(jiān)控以及存儲管理,;(3)職工與生產(chǎn)監(jiān)控中心雙向通信,,可接收來自監(jiān)控中心的撤離生產(chǎn)現(xiàn)場的警報信息,實(shí)現(xiàn)監(jiān)控中心與生產(chǎn)人員的聯(lián)系,;(4)佩戴頭盔的的生產(chǎn)人員能通過腕表觀察當(dāng)前自身存在的環(huán)境和身體的狀況,,以對自身的狀況做出正確的判斷。
本設(shè)計為石化廠區(qū)的生產(chǎn)人員提供安全保障和及時報警信息,,更好地保護(hù)生產(chǎn)人員的健康安全,。同時也為石化廠處理危險情況提供了一定的參考價值,可以通過在廠區(qū)布置無線網(wǎng)絡(luò),,將每一個安全預(yù)警頭盔聯(lián)網(wǎng),,可以在危險情況發(fā)生時及時的通知疏散人員,準(zhǔn)確地找出事故發(fā)生原因,,將危險和損失降低,。
參考文獻(xiàn)
[1] 高香.某精細(xì)化工廠職工健康體檢結(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.