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