用ATMEL89單片機(jī)構(gòu)建的水文纜道測(cè)驗(yàn)系統(tǒng)
早期的中小河道水文測(cè)驗(yàn)一般是采用人工操作的水文纜道測(cè)驗(yàn)系統(tǒng),操作時(shí)間長(zhǎng)、勞動(dòng)強(qiáng)度大、主觀誤差大。為此我們對(duì)原有的人工測(cè)驗(yàn)系統(tǒng)進(jìn)行了改造,采用單片機(jī)控制替代人工進(jìn)行自動(dòng)水文測(cè)驗(yàn)。本文介紹了基于ATMEL89單片機(jī)的水文纜道自動(dòng)測(cè)驗(yàn)系統(tǒng),系統(tǒng)的設(shè)計(jì)是構(gòu)建在原有設(shè)施基礎(chǔ)上,而且盡量不改變系統(tǒng)結(jié)構(gòu)并能兼容手動(dòng)操作方法,自動(dòng)地完成流量的測(cè)驗(yàn)計(jì)算和打印,適用于中小河道的懸索和懸桿兩種類型的水文纜道。
根據(jù)水利部頒發(fā)的《水文纜道測(cè)驗(yàn)規(guī)范》及人工控制水文纜道的結(jié)構(gòu)和測(cè)驗(yàn)要求,單片機(jī)控制系統(tǒng)的主要功能有:自動(dòng)進(jìn)行河道斷面的面積、平均流速、流量測(cè)驗(yàn)和計(jì)算打印;河道斷面任一垂線上水深、水面偏角、河底偏角、垂線平均流速的自動(dòng)測(cè)驗(yàn);干繩、濕繩和位移修正;測(cè)驗(yàn)期間水位自動(dòng)監(jiān)測(cè)等。系統(tǒng)的硬件以單片機(jī)為核心以及輸入/輸出接口,存儲(chǔ)器系統(tǒng)和打印顯示電路等部分組成;軟件部分由系統(tǒng)控制、數(shù)據(jù)采集存儲(chǔ)、誤差修正、流量計(jì)算4個(gè)主要軟件模塊組成。
下面介紹本系統(tǒng)的原理和設(shè)計(jì)要點(diǎn)。
1 系統(tǒng)構(gòu)成
系統(tǒng)框圖如圖1所示。
采用AT89S8252單片機(jī)。由于河道測(cè)驗(yàn)的數(shù)據(jù)量大且運(yùn)算比較復(fù)雜,而單片機(jī)內(nèi)部的存儲(chǔ)器容量有限。故增加外部存儲(chǔ)器RAM6116和ROM6264。外部信號(hào)的輸入采集接口是以多路A/D片ADC0809為核心,將纜道信號(hào)和水位信號(hào)送到單片機(jī)P1口和P3口承擔(dān)其他輸入、輸出信號(hào)的接口。下面根據(jù)水文測(cè)驗(yàn)的特點(diǎn),介紹主要的接口電路和工作過(guò)程。
1.1 ADC0809接口電路
以ADC0809為中心的接口電路如圖2所示。
他將電傳水位計(jì)的水位變化信號(hào)和纜道送來(lái)的流速、偏角、水面水底信號(hào)經(jīng)變換后傳送到單片機(jī)。該接口具有電路簡(jiǎn)單、穩(wěn)定可靠、抗干擾強(qiáng)等特點(diǎn)。
1.1.1 水位信號(hào)的獲取
電傳水位計(jì)是用來(lái)監(jiān)測(cè)水位的變化,為了獲取水位信號(hào)對(duì)電傳水位計(jì)的傳感器部分進(jìn)行了改造。在傳感器內(nèi)部增加了干簧繼電器J3,J4,J5,取消內(nèi)部電池而直接由系統(tǒng)供電。電阻R5~R8組成分壓器,分壓器輸出到ADCIN2口電路如圖2所示。當(dāng)水位變化時(shí)浮子隨之升降,浮子升降3 cm,傳感器內(nèi)部的磁鋼旋轉(zhuǎn)一周,即每變化1 cm有一個(gè)干簧繼電器會(huì)通斷一次。J3,J4,J5分別吸合時(shí)IN2口的電壓分別為1.6 V,2.5 V,3.2 V左右,無(wú)繼電器吸合時(shí)IN2口電壓為+5 V。根據(jù)ADCIN2口的電壓數(shù)值可以判斷是哪個(gè)干簧繼電器通斷,由IN2端電壓變化規(guī)律可以知道水位的上升或下降如圖3所示,圖3中(a)為上升,(b)為下降。
1.1.2 水面水底信號(hào)的獲取
進(jìn)行垂線水深測(cè)量時(shí),鉛魚運(yùn)行到河道斷面的指定垂線位置后開始下降,一旦鉛魚接觸水面則啟動(dòng)水深計(jì)數(shù)器開始水深計(jì)數(shù),當(dāng)鉛魚繼續(xù)下降接觸水底時(shí),水底開關(guān)閉合停止計(jì)數(shù),該計(jì)數(shù)值即為本條垂線的水深初值。工作過(guò)程如下:在鉛魚下降過(guò)程中單片機(jī)不斷地讀取ADCIN1口電壓,鉛魚入水前繼電器J1,J2處于常閉位置,ADC0809輸入端IN1的電壓是由R3,R4分壓決定為2.5 V,一旦鉛魚接觸水面+5 V電壓通過(guò)水下極板→河水→鉛魚→副索1→ADC0809使IN1端電壓上升到3 V以上。單片機(jī)根據(jù)IN1口的電壓判斷鉛魚已接觸水面啟動(dòng)水深計(jì)數(shù),同時(shí)令P3.4輸出高電平繼電器J1接通常開觸點(diǎn),由電路圖可知河水電阻與R4并聯(lián)使IN1口的電壓為1.5 V左右。當(dāng)鉛魚繼續(xù)下降直到接觸河底,河底開關(guān)K2被壓通,鉛魚內(nèi)部4.5 V電池E1接入電路中ADCIN1口電壓下降到0 V以下,單片機(jī)判斷已達(dá)到河底停止水深計(jì)數(shù)并通過(guò)P1口輸出信號(hào)使水深電動(dòng)機(jī)停止運(yùn)行。
1.1.3 偏角信號(hào)的獲取
懸索纜道配有專門的偏角儀,用來(lái)修正水流導(dǎo)致鉛魚不能垂直下降到水底而產(chǎn)生的水深測(cè)量誤差。偏角儀可以測(cè)量出鉛魚受水流影響偏離正常位置的角度,再根據(jù)偏角的大小通過(guò)查表或公式計(jì)算來(lái)修正水深誤差。人工測(cè)量是用眼睛根據(jù)偏角儀的刻度估測(cè)偏角的大小,誤差較大。我們對(duì)偏角儀稍做改動(dòng)增加一個(gè)電位器W1和相應(yīng)的電路如圖1所示,通過(guò)機(jī)械聯(lián)動(dòng)裝置將偏角的位移轉(zhuǎn)換成電位器的轉(zhuǎn)動(dòng)從而改變W1的阻值,利用副索2將因偏角變化導(dǎo)致的電壓變化送到ADCIN0口。考慮到野外工作的特殊性,采用性能穩(wěn)定密封性好的線繞電位器,由于IN0口的電壓變化與偏角之間不是線性關(guān)系用軟件查表方式確定偏角值。為了減少機(jī)械位移、纜索電阻等因素的影響,實(shí)際操作時(shí)當(dāng)鉛魚未入水時(shí)測(cè)一次偏角作基準(zhǔn),達(dá)到水面和水底時(shí)分別測(cè)一次水面偏角和水底偏角,經(jīng)修正后即得到較精確的偏角值。
1.1.4 流速信號(hào)的獲取
流速的測(cè)量是由流速儀完成,測(cè)量流速時(shí)繼電器J1,J2均接通常開觸點(diǎn)-5 V電壓加于水下極板,K1為流速儀內(nèi)部開關(guān),流速儀每轉(zhuǎn)動(dòng)一圈K1通斷一次。K1斷開時(shí)ADCIN0口的電壓為1.5 V左右,K1接通后ADCIN0口的電壓變化大于0.5 V,只要監(jiān)測(cè)IN0口的電壓差就可以判斷流速儀的轉(zhuǎn)動(dòng)情況。實(shí)際測(cè)量中IN0口的電壓差大小與測(cè)點(diǎn)垂線的距離和水質(zhì)有關(guān),距離越大電壓差越小,在150 m的河道中流速信號(hào)的電壓差大于0.5 V。用ADC0809監(jiān)測(cè)流速信號(hào),當(dāng)VREF=5V時(shí)分辨率為0.02 V足以區(qū)別流速儀的轉(zhuǎn)動(dòng),考慮到某些不確定的干擾因素將電壓差的分辨率定在0.1 V,可以滿足一般中、小河道的測(cè)驗(yàn)要求。對(duì)于較寬的河道可以通過(guò)改進(jìn)電路或提高工作電壓的方法來(lái)增加電壓差。與PC機(jī)通信接口等部分組成的接口信息如:
??? (1)行程信號(hào)如水深、水平距離;
?。?)水位信號(hào);
?。?)輸出控制信號(hào)用來(lái)控制電動(dòng)機(jī)進(jìn)行正轉(zhuǎn)、反轉(zhuǎn)、停止,使鉛魚按要求運(yùn)動(dòng)做定點(diǎn)測(cè)量。
接口電路如圖1所示,電路充分利用ADC0809多路模數(shù)變換器將復(fù)雜的接口信息轉(zhuǎn)換成數(shù)字信號(hào)。同時(shí)還利用光電門將工作索行程(水深和水平距離的移動(dòng))轉(zhuǎn)換成電脈沖信號(hào),送到ATMEL89單片機(jī)進(jìn)行處理、顯示、控制完成自動(dòng)測(cè)驗(yàn)。
1.2 行程信號(hào)的獲取接口電路
鉛魚的行程信號(hào)包括鉛魚水平往返移動(dòng)的行程信號(hào),和鉛魚測(cè)量水深時(shí)垂直移動(dòng)的水深信號(hào)。位移信號(hào)的獲取如圖4所示。他是由加裝在機(jī)械傳動(dòng)裝置上的切光板和光電門獲得。設(shè)計(jì)為纜索每移動(dòng)1 cm切光板遮光一次,光電門產(chǎn)生一個(gè)脈沖。水深和往返信號(hào)分別從光敏二極管D3,D4上取出,經(jīng)過(guò)異或門后加到單片機(jī)P3.2外部中斷0輸入端,每移動(dòng)1 cm產(chǎn)生一個(gè)中斷,中斷服務(wù)程序可以區(qū)別鉛魚此時(shí)作水平往返移動(dòng)還是垂直移動(dòng),兩者只取其一。
1.3 其他電路部分
P1口的輸入功能是從控制面板讀入操作命令和初始化數(shù)值,輸出功能是輸出控制信號(hào)。一是控制行程電動(dòng)機(jī)正、反轉(zhuǎn)和停機(jī),使鉛魚按測(cè)驗(yàn)要求進(jìn)行垂直和水平運(yùn)動(dòng);二是在水深測(cè)量過(guò)程中控制繼電器J1、J2的閉合與斷開獲取水面水底信號(hào)。顯示打印電路部分用6個(gè)LED管顯示和微型打印機(jī)進(jìn)行簡(jiǎn)單打印。用 P3.1串口與PC機(jī)相連可以進(jìn)行數(shù)據(jù)的轉(zhuǎn)存和進(jìn)一步處理,顯示和打印。
2 系統(tǒng)軟件流程圖
本系統(tǒng)的軟件約占7 kB,系統(tǒng)程序流程圖如圖5所示。
程序分為系統(tǒng)管理、運(yùn)算處理、測(cè)驗(yàn)控制3大模塊。系統(tǒng)管理模塊包括:初始化、系統(tǒng)監(jiān)控、操作切換、緊急處理等程序。運(yùn)算處理模塊包括:數(shù)據(jù)運(yùn)算、誤差修正、顯示打印等程序。測(cè)驗(yàn)控制模塊是由包括:測(cè)垂線到起始點(diǎn)距離、測(cè)垂線水深、測(cè)垂線流速、測(cè)垂線水位、接口數(shù)據(jù)采集等諸多子程序組成。
為了盡量減少測(cè)量誤差保證測(cè)量精度嚴(yán)格符合水文規(guī)范要求,在測(cè)垂線水深子程序中采用了二次入水操作,程序流程如圖6所示。
實(shí)際水深測(cè)量中由于鉛魚的運(yùn)動(dòng)會(huì)引起纜索的起伏跳動(dòng)而造成測(cè)量誤差,我們?cè)诔绦蛑性O(shè)定的操作是:當(dāng)鉛魚入水后暫停在水面10 s不進(jìn)行水深計(jì)數(shù),待其穩(wěn)定后升出水面20 cm,再第二次進(jìn)入水面。鉛魚第二次到達(dá)水面后啟動(dòng)水深計(jì)數(shù)暫停下降,測(cè)量水面偏角θA,鉛魚繼續(xù)下降直到河底停止水深計(jì)數(shù),測(cè)量水底偏角θB。最后根據(jù)干繩長(zhǎng)度(纜索到水面的高度)、濕繩長(zhǎng)度(水深初值)、θA,θB計(jì)算出實(shí)際的該條垂線水深值。
3 結(jié) 語(yǔ)
ATMEL89單片機(jī)水文纜道測(cè)驗(yàn)系統(tǒng)具有較強(qiáng)的兼容性,適合中、小河道的自動(dòng)或半自動(dòng)測(cè)驗(yàn),操作方便性能穩(wěn)定,測(cè)驗(yàn)精度達(dá)到部頒《規(guī)范》要求,有效地減少了操作者的勞動(dòng)強(qiáng)度和工作時(shí)間。
參考文獻(xiàn)
[1] 余永權(quán).ATMEL89系列單片機(jī)應(yīng)用技術(shù)[M].北京:航空航天大學(xué)出版社,2002.
[2] 胡漢才.單片機(jī)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,1996.
[3] 李廣第.單片機(jī)基礎(chǔ)[M].北京:航空航天大 學(xué)出版社,1998.
[4] 何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:航空航天大學(xué)出版社,1998.
評(píng)論