尹淑欣,王雪,曹洪軍
(黑龍江八一農(nóng)墾大學(xué)信息技術(shù)學(xué)院,大慶163319)
地下水水位測(cè)量是灌區(qū)測(cè)水量水工作中最重要的一項(xiàng)組成部分。對(duì)地下水的合理開發(fā),可以有效地緩解供水不足的問題,帶來一系列生態(tài)與經(jīng)濟(jì)效益。由于水稻的產(chǎn)量和商品價(jià)值高,黑龍江墾區(qū)建三江分局利用地理優(yōu)勢(shì),大力發(fā)展水稻種植,水田面積占該分局耕地面積60%以上,80%灌溉用水來自地下水[1]。但過量開采地下水則會(huì)引起地面沉降和生態(tài)環(huán)境惡化,對(duì)生產(chǎn)和生活會(huì)造成極大的危害。因此,對(duì)地下水水位的變化進(jìn)行監(jiān)測(cè)和預(yù)測(cè),充分了解地下水資源的狀況,進(jìn)行合理規(guī)劃和利用才能真正做到持續(xù)利用地下水資源。
根據(jù)建三江管理局的地理環(huán)境特點(diǎn),對(duì)地下水水位的觀測(cè)點(diǎn)比較分散、距離遠(yuǎn)、位于野外無(wú)法提供動(dòng)力電及有線通信的情況,以往對(duì)地下水水位監(jiān)測(cè)更多依靠于人工、半人工的監(jiān)測(cè)手段,工作量大、效率低下、數(shù)據(jù)處理繁雜易錯(cuò)、信息傳輸不及時(shí)等問題,設(shè)計(jì)實(shí)現(xiàn)低功耗、自動(dòng)化的無(wú)線遠(yuǎn)程地下水水位監(jiān)測(cè)系統(tǒng)是十分必要的。
灌區(qū)地下水水位遠(yuǎn)程監(jiān)測(cè)系統(tǒng)采用了下位機(jī)分散采集水位數(shù)據(jù),通過GPRS進(jìn)行遠(yuǎn)程數(shù)據(jù)傳送,由上位機(jī)集中進(jìn)行數(shù)據(jù)處理的集散式模式。由分散在整個(gè)管局的下轄農(nóng)場(chǎng)為單位,每個(gè)農(nóng)場(chǎng)的又分設(shè)多個(gè)采集數(shù)據(jù)的下位機(jī)系統(tǒng)和集中進(jìn)行管理的上位機(jī)系統(tǒng)組成。下位機(jī)部分負(fù)責(zé)地下水水位數(shù)據(jù)采集,系統(tǒng)電源采用交流市電和太陽(yáng)能供電的雙電源設(shè)計(jì),并且進(jìn)行了低功耗設(shè)計(jì)。上位機(jī)則負(fù)責(zé)集中管理各個(gè)下位機(jī)的工作,負(fù)責(zé)與下位機(jī)通信、讀取數(shù)據(jù)、制作數(shù)據(jù)報(bào)表、繪制水位數(shù)據(jù)曲線圖。由于各監(jiān)測(cè)點(diǎn)都位于較為偏遠(yuǎn)的地方,因此數(shù)據(jù)傳輸采用了G200型GPRS模塊的無(wú)線網(wǎng)絡(luò)數(shù)據(jù)通訊方式,數(shù)據(jù)傳輸距離遠(yuǎn)、數(shù)據(jù)準(zhǔn)確、可靠、費(fèi)用低。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 地下水水位遠(yuǎn)程監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure of groundwater level remotemonitoring system
上位機(jī)是整個(gè)監(jiān)測(cè)系統(tǒng)的控制和管理中心,它負(fù)責(zé)在設(shè)定的時(shí)間喚醒各個(gè)下位機(jī),與其通信獲取水位數(shù)據(jù)并進(jìn)行數(shù)據(jù)匯總、處理和分析。根據(jù)上位機(jī)的具體職責(zé),整個(gè)軟件體系可分成數(shù)據(jù)通信和數(shù)據(jù)管理兩個(gè)主要部分。
上位機(jī)負(fù)責(zé)喚醒各個(gè)下位機(jī)并與下位機(jī)進(jìn)行通信、接收采集的數(shù)據(jù)、進(jìn)行數(shù)據(jù)處理等功能。選用了G200型GPRS模塊進(jìn)行遠(yuǎn)距離數(shù)據(jù)傳輸,G200模塊屏蔽了GPRS模塊的射頻電路部分和AT指令集,只需要用熟悉的串口通信方式就可以通過GPRS網(wǎng)絡(luò)進(jìn)行通信,因此上位機(jī)首先只需要進(jìn)行串口參數(shù)初始化[3-4]。同時(shí)因?yàn)橄挛粰C(jī)在測(cè)量空閑時(shí)處于省電模式,上位機(jī)需要按設(shè)定的時(shí)間間隔主動(dòng)喚醒下位機(jī)系統(tǒng)進(jìn)行工作。對(duì)獲取的數(shù)據(jù)進(jìn)行分析處理,并進(jìn)行動(dòng)態(tài)存儲(chǔ)和實(shí)時(shí)曲線繪制。圖2為上位機(jī)監(jiān)測(cè)中心程序流程圖。
圖2 上位機(jī)監(jiān)測(cè)中心程序流程圖Fig.2 Flow chartof user-control software ofmonitoring center
數(shù)據(jù)通信是通過TTL-232接口與無(wú)線模塊G200進(jìn)行數(shù)據(jù)交換。上位機(jī)的G200模塊為主模塊,工作方式為主動(dòng)模式。下位機(jī)的G200模塊為分模塊,工作方式為被動(dòng)模式,即當(dāng)G200模塊收到數(shù)據(jù)后不是將數(shù)據(jù)立刻送到串口,而是將數(shù)據(jù)送到模塊內(nèi)的緩沖區(qū),當(dāng)上位機(jī)需要數(shù)據(jù)時(shí)再向G200模塊詢問是否有接收到的數(shù)據(jù)。模塊與上位機(jī)間的通信是靠串口連接的。串口采用有格式傳輸方式。在設(shè)置通信中的串口格式時(shí),需要在字段中設(shè)定站點(diǎn)編號(hào)(模塊的身份地址),其傳輸數(shù)據(jù)包格式如圖3所示。
圖3 數(shù)據(jù)傳輸格式Fig.2 Data transmission format
上位機(jī)監(jiān)測(cè)中心利用Timer控件來定時(shí)向各遠(yuǎn)程下位機(jī)發(fā)送喚醒命令,喚醒命令中包含下位機(jī)監(jiān)測(cè)點(diǎn)的站點(diǎn)編號(hào)(數(shù)據(jù)傳輸格式中的第3部分)。因此首先需要對(duì)上位機(jī)和下位機(jī)的通信模塊進(jìn)行站點(diǎn)編號(hào),以便進(jìn)行通信。上位機(jī)需要以輪詢的方式向各個(gè)下位機(jī)發(fā)送喚醒命令,并對(duì)下位機(jī)的狀態(tài)進(jìn)行監(jiān)測(cè)。如果能喚醒下位機(jī)并獲得數(shù)據(jù),則處理獲得的數(shù)據(jù)并進(jìn)行適當(dāng)處理(換算成實(shí)際的水位數(shù)值并進(jìn)行高程轉(zhuǎn)換)后存入數(shù)據(jù)庫(kù)并顯示。如果不能及時(shí)喚醒下位機(jī)模塊,需要再次發(fā)送喚醒命令,超過5次喚醒失敗后系統(tǒng)應(yīng)提示下位機(jī)通信模塊出現(xiàn)錯(cuò)誤。巡檢數(shù)據(jù)流程圖如圖4所示。
圖4 巡檢數(shù)據(jù)流程圖Fig.4 Flow chartof routing inspection data
由于使用Windows API編程非常煩瑣、冗長(zhǎng),系統(tǒng)上位機(jī)軟件采用了C#語(yǔ)言在Visual Studio 2008.NET環(huán)境下編程完成。.NET集成了大量實(shí)用類庫(kù),系統(tǒng)主要使用Serial Port類來實(shí)現(xiàn)串口通信功能,Serial Port類為應(yīng)用程序提供了通過串口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法,具有功能強(qiáng)大、通信快速、實(shí)時(shí)性好等特點(diǎn)。由于系統(tǒng)進(jìn)行通信和數(shù)據(jù)處理時(shí)的操作較為耗時(shí),而且占用了系統(tǒng)資源,考慮到系統(tǒng)工作的穩(wěn)定性和可靠性,采用了多線程的程序設(shè)計(jì)方法。在這里使用Thread類完成多線程編程,大大提高了程序的執(zhí)行效率。
數(shù)據(jù)庫(kù)模塊采用廣泛使用的SQL Server2000作為后臺(tái)數(shù)據(jù)庫(kù)軟件。使用Visual Studio 2008.NET中的ADO.NET組件開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序。ADO.NET組件提供了連接數(shù)據(jù)庫(kù)存儲(chǔ)器檢索、操作和更新數(shù)據(jù)所必須的類,應(yīng)用DataGrid控件與數(shù)據(jù)庫(kù)綁定,能夠在應(yīng)用界面實(shí)時(shí)接收水位數(shù)據(jù)信息。
該系統(tǒng)于2011年4月份在黑龍江農(nóng)墾總局建三江分局的八五九農(nóng)場(chǎng)進(jìn)行安裝測(cè)試,一個(gè)上位分別管理5個(gè)測(cè)試點(diǎn),主機(jī)地址為1001,測(cè)試地址分別為1002~1006,測(cè)試時(shí)間為每天兩次,分別為早8點(diǎn)整和晚8點(diǎn)整。表1為1~5號(hào)下位機(jī)在4月20日、21日、22日三天的早8點(diǎn)和晚8點(diǎn)整,系統(tǒng)在指定時(shí)間喚醒下位機(jī)并獲取采樣數(shù)據(jù)的時(shí)間。由表中數(shù)據(jù)可見,系統(tǒng)運(yùn)行良好,沒有出現(xiàn)缺測(cè)現(xiàn)象,數(shù)據(jù)傳輸良好,沒有出現(xiàn)數(shù)據(jù)丟失故障。正常測(cè)試時(shí)能夠在3分鐘內(nèi)完成對(duì)所有下位機(jī)的喚醒及數(shù)據(jù)處理,完全滿足應(yīng)用需求。在對(duì)設(shè)備進(jìn)行故障測(cè)試時(shí),也能夠在5分鐘內(nèi)完成通信設(shè)備故障提醒,運(yùn)行效果良好。
表1 1~5#井獲取采樣數(shù)據(jù)時(shí)刻Table1 Arrival instants from 1~5#observation well/hh:mm:ss
系統(tǒng)采用GRPS技術(shù)完成了遠(yuǎn)程地下水水位監(jiān)測(cè)系統(tǒng)的上位機(jī)部分的研制,已成功在農(nóng)場(chǎng)進(jìn)行應(yīng)用??梢詫?shí)現(xiàn)測(cè)點(diǎn)組網(wǎng)、可任意增刪網(wǎng)絡(luò)節(jié)點(diǎn)(測(cè)點(diǎn)),遠(yuǎn)距離數(shù)據(jù)傳輸穩(wěn)定、費(fèi)用低廉、覆蓋范圍廣等優(yōu)點(diǎn)。同時(shí)數(shù)據(jù)處理簡(jiǎn)潔、便利,顯示內(nèi)容更為豐富、直觀,上位機(jī)軟件運(yùn)行良好、性能穩(wěn)定、操作簡(jiǎn)單。可以使農(nóng)場(chǎng)的地下水水位測(cè)量工作及時(shí)、準(zhǔn)確、便利,另外對(duì)其他監(jiān)測(cè)系統(tǒng)也具有指導(dǎo)性意義。
[1]付強(qiáng),梁川,楊廣林.三江平原井灌水稻發(fā)展?jié)摿μ轿鯷J].農(nóng)業(yè)系統(tǒng)科學(xué)與綜合研究,2002,18(1):23-27.
[2]趙斌,匡麗紅,黃操軍,等.灌區(qū)地下水水位遙測(cè)系統(tǒng)的研究[J].黑龍江八一農(nóng)墾大學(xué)學(xué)報(bào),2011,23(3):58-61.
[3]馬斌,張娜,郭強(qiáng),等.C#串行類在PC機(jī)與IC卡讀寫器串行通信中的作用[J].沈陽(yáng)建筑大學(xué)學(xué)報(bào),(自然科學(xué)版),2008,24(3):508-511.
[4]李強(qiáng).基于API函數(shù)的Windows多線程串口通信[J].科技信息:科學(xué)教研,2008(17):66-68.
[5]王曉亮,譚峰,曹洪軍.基于GSM模塊的信息服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].黑龍江八一農(nóng)墾大學(xué)學(xué)報(bào),2009(6):74-76.
[6]刁偉偉,鄭桂萍,趙鳳亮,等.水稻節(jié)水保護(hù)性耕作的土壤理化性狀及產(chǎn)量效益的研究[J].黑龍江八一農(nóng)墾大學(xué)學(xué)報(bào),2007(6):14-17.