資源描述:
《基于nio的水質(zhì)監(jiān)測系統(tǒng)研究與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、基于nio的水質(zhì)監(jiān)測系統(tǒng)研究與實(shí)現(xiàn)摘要:本文從數(shù)據(jù)采集處理、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)等方面論述了水質(zhì)監(jiān)測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)細(xì)節(jié)。探討了搭建基于NI0的異步非阻塞模型的方法。關(guān)鍵字:nio;socket;水質(zhì)監(jiān)測中圖分類號(hào):A715文獻(xiàn)標(biāo)識(shí)碼:A引言隨著社會(huì)發(fā)展,水污染日趨嚴(yán)重,水質(zhì)監(jiān)控設(shè)施與管理水平比較落后,需要通過信息化建設(shè)為突破口,推動(dòng)水質(zhì)監(jiān)測信息數(shù)字化、信息采集自動(dòng)化、信息傳輸網(wǎng)絡(luò)化、信息技術(shù)應(yīng)用普及化?;谏鲜瞿繕?biāo),筆者參與了水質(zhì)監(jiān)測信息化項(xiàng)目,主持設(shè)計(jì)并實(shí)現(xiàn)了自動(dòng)化的水質(zhì)監(jiān)測系統(tǒng)。NI0是javanonblocking(非阻
2、塞)10的簡稱。該水質(zhì)監(jiān)測系統(tǒng)采用了NI0技術(shù),搭建了一個(gè)異步非阻塞模型,通過該模型可以處理不同測站實(shí)時(shí)發(fā)送的水質(zhì)指標(biāo)數(shù)據(jù)。1、數(shù)據(jù)采集與處理遠(yuǎn)程測控終端RTU對(duì)接水位傳感器、水質(zhì)傳感器等設(shè)備,通過GPRS通信模塊接入GPRS網(wǎng)絡(luò),通過專線接入監(jiān)測系統(tǒng)內(nèi)網(wǎng)?;贜I0的水質(zhì)監(jiān)測系統(tǒng)部署在內(nèi)網(wǎng)的應(yīng)用服務(wù)器中,污染物信息通過DAO程序持久化至數(shù)據(jù)庫中。實(shí)現(xiàn)了水質(zhì)數(shù)據(jù)的采集。通過數(shù)據(jù)庫的查詢分析可以形成水質(zhì)歷史情況分析,通過數(shù)據(jù)挖掘技術(shù)研判污染趨勢。水質(zhì)監(jiān)測數(shù)據(jù)遵循中華人民共和國環(huán)境保護(hù)行業(yè)標(biāo)準(zhǔn)HJ/T212-2005《污染源在線自
3、動(dòng)監(jiān)控(監(jiān)測)系統(tǒng)數(shù)據(jù)傳輸標(biāo)準(zhǔn)》,上位機(jī)與現(xiàn)場下位機(jī)之間,基于TCP/IP協(xié)議進(jìn)行傳輸通信。通信類型采用GPRS。數(shù)據(jù)信息中附帶校驗(yàn)碼,通過CRC校驗(yàn)保證數(shù)據(jù)完整性和正確性。通訊協(xié)議數(shù)據(jù)結(jié)構(gòu):所有的通訊包都是由ASCII碼字符組成。其中數(shù)據(jù)段包含了請求編號(hào)、包號(hào)、命令編號(hào)、設(shè)備標(biāo)識(shí)、指令參數(shù)等,命令編號(hào)又分成初始化命令、參數(shù)命令、交互命令、數(shù)據(jù)命令、控制命令等。指令參數(shù)部分根據(jù)命令編號(hào)的類別可以附帶查詢信息和結(jié)果信息。下位機(jī)根據(jù)上位機(jī)請求,返回查詢水質(zhì)指標(biāo)的結(jié)果,根據(jù)污染物指標(biāo)值分類。[1]污染物指標(biāo)在本系統(tǒng)中可以靈活配置,按
4、照行業(yè)標(biāo)準(zhǔn)規(guī)定,B01代表污水瞬時(shí)流量,101代表總磷。數(shù)據(jù)返回值樣例為:##0142ST=20;CN=2011;PW=123456;MN=88888880000001;CP=&&DataTime=20040516020111;B01-Rtd=100,B01-Flag=N;101-Rtd=l.l,101-Flag=N;102_Rtd=2.2,102_Flag=N&&8BBC。其中污染物B01的實(shí)時(shí)采樣數(shù)據(jù)表示為BOl-Rtd=lOO;通過異步非阻塞模型實(shí)時(shí)解析收到的字符串,即可抽取所需的污染物指標(biāo)數(shù)值。根據(jù)上位機(jī)的請求命令,下
5、位機(jī)可以按時(shí)發(fā)送數(shù)據(jù)信息。所示:2、系統(tǒng)設(shè)計(jì)系統(tǒng)整體設(shè)計(jì)如下NI0系統(tǒng)位于業(yè)務(wù)層,分為server端和client端。一個(gè)客戶端對(duì)應(yīng)一個(gè)與水質(zhì)測站進(jìn)行socket通信的進(jìn)程。NI0采用輪詢的工作方式,處理多線程水質(zhì)通信數(shù)據(jù)。2.1需求分析接收管理站水質(zhì)監(jiān)測污染因子數(shù)據(jù),包括常規(guī)PH值、溫度、溶解氧、電導(dǎo)率、濁度、高錳酸鹽指數(shù),可以設(shè)置預(yù)警值,對(duì)達(dá)到預(yù)警值的監(jiān)測點(diǎn)進(jìn)行報(bào)警,每5分鐘采集一次,每小時(shí)上報(bào)服務(wù)器,支持召測2.2系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)系統(tǒng)分為client端和server端,通過server端的控制臺(tái)可以管理client端進(jìn)程
6、,通過命令控制臺(tái)可以實(shí)現(xiàn)召測命令的拼裝,加密和選擇性發(fā)送,通過優(yōu)先級(jí)管理制定不同測站的發(fā)送順序。通過數(shù)據(jù)解析器解析分解污染物指標(biāo)值,持久到數(shù)據(jù)庫。通過配置管理可以進(jìn)行權(quán)限,日志,審計(jì)監(jiān)控等輔助功能。Client端監(jiān)聽水質(zhì)終端連接情況,可以進(jìn)行心跳包發(fā)送,保證物理鏈路聯(lián)通,通過心跳監(jiān)測診斷設(shè)備連接情況。2.3數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫分為實(shí)時(shí)庫和歷史庫,每天的數(shù)據(jù)量將近2000條數(shù)據(jù),必須進(jìn)行分庫存儲(chǔ)。數(shù)據(jù)備份系統(tǒng)采用LAN方式將數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器的關(guān)鍵數(shù)據(jù)備份至備份服務(wù)器的磁盤上。數(shù)據(jù)庫表分為日志表、命令配置表、污染物指標(biāo)表、策略
7、表、注冊信息表、發(fā)送優(yōu)先級(jí)表、測站屬性表、污染物字典表、污染物預(yù)警閥值表等。2.4程序設(shè)計(jì)系統(tǒng)采用單線程多客戶端思想,在N10異步非阻塞基礎(chǔ)上進(jìn)行擴(kuò)展和開發(fā),系統(tǒng)在server端只占用一個(gè)進(jìn)程,通過輪詢的工作方式。所謂非阻塞就是線程執(zhí)行方法時(shí),不必一直等待操作就緒,所謂異步輸入輸出,就是不必等待輸入輸出處理完畢才返回。[2]模型包括如下代碼類:ServerSocketChannel:可以配置阻塞或者非阻塞模式。socketChannel:支持提供read和write緩沖方法。Selector:為ServerSocketChan
8、nel監(jiān)控接收連接就緒事件,為socketChannel監(jiān)控連接就緒、讀就緒和寫就緒事件。系統(tǒng)運(yùn)行過程將socketChannel狀態(tài)為0P_READ的client進(jìn)程讀取信息流放入緩存隊(duì)列中,為socketChannel狀態(tài)為0P_WRITE的client進(jìn)程寫入緩存隊(duì)列中