摘 要: 針對水資源監(jiān)測系統(tǒng)監(jiān)測站搭建調(diào)試工作艱難,線路管理維護(hù)不方便的問題,,設(shè)計了一款基于嵌入式的采用CDMA方式進(jìn)行無線采集和通信,,以Wince下的數(shù)據(jù)庫進(jìn)行信息管理工作的可移動水資源監(jiān)測系統(tǒng),。給出了系統(tǒng)工作原理及各模塊軟硬件設(shè)計的方法,并對基于Wince的智能設(shè)備下數(shù)據(jù)庫的使用作出了說明,。實驗證明,,該系統(tǒng)具有可靠性高、管理方便直觀的特點,。
關(guān)鍵詞: Wince,;數(shù)據(jù)庫;.NET技術(shù),;水資源
無論在任何時代,,水資源的使用以及水環(huán)境的治理都是關(guān)乎工業(yè)、農(nóng)業(yè)和人民日常生活的大問題,。而我國的水資源現(xiàn)狀為:水資源短缺,、水污染嚴(yán)重、水土流失嚴(yán)重,、水價嚴(yán)重偏低、水資源浪費嚴(yán)重,;南方水多,,北方水少,西部水少,,沿海水多,。所以,水資源的監(jiān)管和控制無論是深度和力度都必須有足夠的保證[1],。
2011年中央一號文件《中共中央國務(wù)院關(guān)于加快水利改革發(fā)展的決定》提出,,水是生命之源、生產(chǎn)之要,、生態(tài)之基,,不僅關(guān)系到防洪安全、供水安全,、糧食安全,,而且關(guān)系到經(jīng)濟(jì)安全、生態(tài)安全,、國家安全,。因此要全面加快水利基礎(chǔ)設(shè)施建設(shè),實行最嚴(yán)格的水資源管理制度,。
在中國城市水的使用中,,工業(yè)用水占總用水量的70%左右。如果能夠采用合適的科技手段率先將這部分用水實現(xiàn)自動化計量,、管理以及水質(zhì)監(jiān)測,,就可以將城市的水管理提高到一個比較高的層次,,有利于提高節(jié)約意識,進(jìn)一步節(jié)約能源,,同時帶來更多的經(jīng)濟(jì)效益,。
本文從實際應(yīng)用出發(fā),在目前廣泛采用的監(jiān)測站加中心站模式的基礎(chǔ)上設(shè)計了一個可移動的嵌入式通用型監(jiān)測管理平臺,。
1 系統(tǒng)工作方式及功能簡介
傳統(tǒng)的監(jiān)測網(wǎng)絡(luò)工作方式如圖1所示,,中心站通過網(wǎng)線接入CDMA或GPRS網(wǎng)絡(luò),發(fā)送指令到監(jiān)測站進(jìn)行監(jiān)測工作[2],。而本文設(shè)計了一款基于嵌入式的便攜式移動中心站,,該系統(tǒng)能夠替代中心站的功能進(jìn)行調(diào)試檢測等工作,既可以通過RS232與監(jiān)測站設(shè)備連接調(diào)試,,也可以通過CDMA方式進(jìn)行無線采集,,同時又可與中心站進(jìn)行通信。
這種工作模式的優(yōu)勢在于:(1)站點位置可隨時更改,,滿足管理人員隨時隨地查看現(xiàn)場,、監(jiān)測現(xiàn)場情況的需要;(2)工作人員在監(jiān)測站建立和維修時可以起到事半功倍的作用,,為無線網(wǎng)絡(luò)測試工作帶來了極大的便利,,可取代以電話通信來調(diào)試無線網(wǎng)絡(luò)的狀況;(3)小成本帶來高效率的工作方式,。
本文采用S3C2440處理器與Wince系統(tǒng)相結(jié)合進(jìn)行移動中心站的硬件和軟件設(shè)計,,可代替中心站實現(xiàn)主動招測、定時數(shù)據(jù)上報,、定時狀態(tài)上報,、上報信息入庫和查詢以及導(dǎo)出文檔記錄等功能。
2 系統(tǒng)框圖介紹
如圖2所示,,本系統(tǒng)主要結(jié)構(gòu)可分為供電模塊,、顯示模塊、存儲模塊,、通信模塊以及各類數(shù)據(jù)采集接口等,。其中通信部分主要以華為公司的mc323通信模塊作為主芯片,結(jié)合TCP/IP技術(shù)實現(xiàn)無線數(shù)據(jù)的點對點傳輸,,移動中心站既可作為服務(wù)器向監(jiān)測站發(fā)送指令,,也可以作為客戶端向中心站發(fā)送采集到的數(shù)據(jù),同時可對指定手機(jī)用戶以短信的方式發(fā)送實時采集到的數(shù)據(jù),。主要的數(shù)據(jù)采集接口包括USB接口,、RS232接口、RS485接口以及以太網(wǎng)口等[3-4],。電源模塊外部供電采用12 V鋰電池,,根據(jù)系統(tǒng)需要進(jìn)行電壓轉(zhuǎn)換,,在系統(tǒng)外圍留有充電器接口,可采用專用適配器進(jìn)行充電,,固定放置時也可外接太陽能電池板進(jìn)行充電,。其他模塊可根據(jù)系統(tǒng)功能進(jìn)行定制。
3 主動召測與實時上報
如圖3所示,,主動召測功能可測得當(dāng)前系統(tǒng)的水流量報警門限值,、一定時間內(nèi)的累計水流量值,以及產(chǎn)品規(guī)格和警報強(qiáng)度,,同時可通過該軟件對系統(tǒng)參數(shù)進(jìn)行配置,,如報警次數(shù)和警報強(qiáng)度等。
3.1 通信協(xié)議格式
由于采用RS485總線格式通信,,故協(xié)議中加入地址位,,以區(qū)分?jǐn)?shù)據(jù)來源或數(shù)據(jù)發(fā)送目的地[5-6]。格式如下所示:
3.2 主動上報功能
為了實時地從下位機(jī)中了解現(xiàn)場情況,,一般會讓下位機(jī)定時采集數(shù)據(jù)并上報,,同時還要上報設(shè)備的運行情況,但不可能總是守在上位機(jī)前查看信息,,這就要求控制終端設(shè)備上或上位機(jī)裝有強(qiáng)大的數(shù)據(jù)管理系統(tǒng),,也就是通常所說的數(shù)據(jù)庫,本系統(tǒng)在裝有Wince的智能設(shè)備上實現(xiàn)了定時上報的數(shù)據(jù)入庫,、數(shù)據(jù)庫按條件檢索顯示和數(shù)據(jù)庫導(dǎo)出等功能,成功解決了系統(tǒng)數(shù)據(jù)管理的問題,。
對于Wince下數(shù)據(jù)庫的使用,,可以借助Microsoft Visual Studio .NET和Microsoft SQL Server 2000 Windows CE Edition(SQL Server CE)共同開發(fā)。
如果系統(tǒng)中沒有任何SQL Server CE數(shù)據(jù)庫,,就需要在軟件加載時,,在Microsoft Visual Studio .NET項目中創(chuàng)建新的數(shù)據(jù)庫,同時要檢查系統(tǒng)是否缺失數(shù)據(jù)庫管理工具,,軟件將自動從SD卡中將Microsoft SQL Server Compact Edition的相關(guān)文件拷貝到系統(tǒng)的Programs目錄下,。
3.2.1 創(chuàng)建SQL Server CE數(shù)據(jù)庫
數(shù)據(jù)庫是容納存儲結(jié)構(gòu)化數(shù)據(jù)的表的容器,要存儲不同類別的數(shù)據(jù),,可以建立不同的表來管理,,但在這之前必須先建立數(shù)據(jù)庫。
在C#中,,可以使用System.Data.SqlCeEngine對象創(chuàng)建自己的空數(shù)據(jù)庫,,此處創(chuàng)建的數(shù)據(jù)庫名稱的文件擴(kuò)展名為.sdf。使用Microsoft SQL Server Compact Edition即可在Wince下查看修改此數(shù)據(jù)庫,。
SqlCeEngine eg = new SqlCeEngine ("Data Source =
\\SDMEM\\數(shù)據(jù)庫.sdf");
eg.CreateDatabase();
下面就可以鏈接該數(shù)據(jù)庫進(jìn)行修改操作了,。
SqlCeConnection Con1 = null;
Con1 = new SqlCeConnection("Data Source =
\\SDMEM\\數(shù)據(jù)庫.sdf");
Con1.Open();
3.2.2 創(chuàng)建表
有了數(shù)據(jù)庫文件后,,就可以創(chuàng)建自己需要的表了,這時需要調(diào)用SqlCeCommand類來加載SQL語句:
SqlCeCommand cmd = conn.CreateCommand();
"CREATE TABLE 數(shù)據(jù)上報庫(序號 int, 站號 int, 時間全 datetime default('2000-02-03 01:01:01'), 通道數(shù)據(jù) ntext,日期 int,時間 int)";
cmd.ExecuteNonQuery();
上述語句即完成了名為數(shù)據(jù)上報庫的表的創(chuàng)建,,表中包含序號,、站號(下位機(jī)編號)、通道數(shù)據(jù)等9個列,,涵蓋了下位機(jī)地址,、上報時間、上報數(shù)據(jù)通道號及數(shù)據(jù)內(nèi)容等信息的分類,。按照同樣的方法,,可以在數(shù)據(jù)庫中建立一個名為狀態(tài)上報庫的表,用以管理定時上報的設(shè)備電壓和信號強(qiáng)度等信息,。
3.2.3 數(shù)據(jù)入庫
將上報的數(shù)據(jù)按照上文中的協(xié)議標(biāo)準(zhǔn)核對后,,若確認(rèn)為定時上報的數(shù)據(jù)即可將數(shù)據(jù)存入表中。這里采用參數(shù)形式依次將數(shù)據(jù)插入到表中,,并限定參數(shù)的屬性和格式大?。?br />
cmd.CommandText = "INSERT INTO 數(shù)據(jù)上報庫(序號,
站號,時間全, 通道數(shù)據(jù),日期 ,時間)
VALUES ( ?, ?, ?, ?,?,?)";
cmd.Parameters.Add(new SqlCeParameter("p3",
SqlDbType.DateTime));
cmd.Parameters["p3"].Size = 500;
cmd.Prepare();
下面直接將變量的值賦給形參,就把變量“a0”的值插入到表“數(shù)據(jù)上報庫”中了,,以同樣的方式可以給表中其他的變量依次賦值,。
cmd.Parameters["p3"].Value ="2012-03-19 21:31:03";
3.2.4 按條件檢索
數(shù)據(jù)庫的一個重要功能就在于可以按條件檢索庫中的數(shù)據(jù),當(dāng)然大多數(shù)人并不習(xí)慣使用數(shù)據(jù)庫管理工具來檢索,,所以本系統(tǒng)中直接加入了按條件檢索數(shù)據(jù)的功能,,可以方便直觀地幫助管理員來查看某個時間段或某個站號的上報數(shù)據(jù)。圖5所示為條件檢索及檢索結(jié)果的系統(tǒng)截圖,。
使用SQL語句中的Select語句可對表中數(shù)據(jù)進(jìn)行檢索,,如:
string cc = "SELECT * FROM 數(shù)據(jù)上報庫 where 日期=
'{0}'and 站號='{1}'and 時間>='{2}'and 時間<'{3}'"
cmd.CommandText =(cc, rq, zh, sj, sj1);
上述語句可將搜索范圍縮小至:在日期=rq,時間段sj至sj1內(nèi)站號為zh的下位機(jī)上報的數(shù)據(jù),,同樣的方法可對狀態(tài)上報庫的數(shù)據(jù)進(jìn)行檢索,。
當(dāng)然,可以擴(kuò)大搜索范圍,,這里以Replace函數(shù)對SQL語句中的“cc”字符串進(jìn)行修改,,如不需要限定時間段,則可以修改“cc”語句為:
cc=cc.Replace("and 時間>='{2}'and 時間<'{3}'", "");
這樣Select語句就變?yōu)?ldquo;SELECT * FROM 數(shù)據(jù)上報庫 where日期='{0}'and 站號='{1}'”,,檢索結(jié)果就只有日期和站號了,。
3.2.5 數(shù)據(jù)庫導(dǎo)出
對于普通工作人員,一般不習(xí)慣查看和存檔數(shù)據(jù)庫文件,,這樣數(shù)據(jù)的導(dǎo)出則成為一項實用的功能,,由于Wince下智能設(shè)備不支持excel文件的生成和瀏覽,所以本系統(tǒng)將數(shù)據(jù)庫導(dǎo)出為txt文本,導(dǎo)出后可查看核對信息,,并可以將txt文本轉(zhuǎn)移至任意一臺PC機(jī)上使用,。在導(dǎo)出文件時借助System.Data.SqlServerCe.SqlCeDataReader和 FileStream對象對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行讀寫操作即可。
本文利用RS485總線技術(shù)和.NET技術(shù),,設(shè)計實現(xiàn)了水資源遠(yuǎn)程監(jiān)測系統(tǒng),,給出了系統(tǒng)體系結(jié)構(gòu)、工作原理并詳細(xì)介紹了Wince下數(shù)據(jù)庫的使用方法,。本系統(tǒng)在實踐中運行穩(wěn)定,,管理方便,有效地解決了大型取用水戶的遠(yuǎn)程監(jiān)測問題,。
參考文獻(xiàn)
[1] 朱虹.合理利用水資源,,建立節(jié)水型社會[J].江西能源,2003(4):9-10,,16.
[2] 胡勝利,,胡彪.基于GPRS無線技術(shù)的水資源計量監(jiān)測系統(tǒng)的設(shè)計[J].水利水電技術(shù),2010,,41(4):87-90.
[3] 李達(dá),,邢智慧.水資源監(jiān)測網(wǎng)絡(luò)研究[J].水資源研究,2009(3):9-10.
[4] 許燕萍,,楊代華.RS485串行總線可靠性的研究[J].電子科技,,2009,22(2):8-10.
[5] 杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,,2003.
[6] 金鵬,,陳鋒,張旭,,等.基于RS-485總線的嵌入式水質(zhì)監(jiān)測網(wǎng)絡(luò)[J].儀表技術(shù),,2010(8):14-16.