早期的中小河道水文测验一般是采用人工操作的水文缆道测验系统,操作时间长、劳动强度大、主观误差大。为此我们对原有的人工测验系统进行了改造,采用单片机控制替代人工进行自动水文测验。本文介绍了基于ATMEL89单片机的水文缆道自动测验系统,系统的设计是构建在原有设施基础上,而且尽量不改变系统结构并能兼容手动操作方法,自动地完成流量的测验计算和打印,适用于中小河道的悬索和悬杆两种类型的水文缆道。
根据水利部颁发的《水文缆道测验规范》及人工控制水文缆道的结构和测验要求,单片机控制系统的主要功能有:自动进行河道断面的面积、平均流速、流量测验和计算打印;河道断面任一垂线上水深、水面偏角、河底偏角、垂线平均流速的自动测验;干绳、湿绳和位移修正;测验期间水位自动监测等。系统的硬件以单片机为核心以及输入/输出接口,存储器系统和打印显示电路等部分组成;软件部分由系统控制、数据采集存储、误差修正、流量计算4个主要软件模块组成。
下面介绍本系统的原理和设计要点。
1、系统构成
系统框图如图1所示。
采用AT89S8252单片机。由于河道测验的数据量大且运算比较复杂,而单片机内部的存储器容量有限。故增加外部存储器RAM6116和 ROM6264。外部信号的输入采集接口是以多路A/D片ADC0809为核心,将缆道信号和水位信号送到单片机P1口和P3口承担其他输入、输出信号的接口。下面根据水文测验的特点,介绍主要的接口电路和工作过程。
1.1、ADC0809接口电路
以ADC0809为中心的接口电路如图2所示。
他将电传水位计的水位变化信号和缆道送来的流速、偏角、水面水底信号经变换后传送到单片机。该接口具有电路简单、稳定可靠、抗干扰强等特点。
1.1.1、水位信号的获取
电传水位计是用来监测水位的变化,为了获取水位信号对电传水位计的传感器部分进行了改造。在传感器内部增加了干簧继电器J3,J4,J5,取消内部电池而直接由系统供电。电阻R5~R8组成分压器,分压器输出到ADCIN2口电路如图2所示。当水位变化时浮子随之升降,浮子升降3 cm,传感器内部的磁钢旋转一周,即每变化1 cm有一个干簧继电器会通断一次。J3,J4,J5分别吸合时IN2口的电压分别为1.6 V,2.5 V,3.2 V左右,无继电器吸合时IN2口电压为+5 V。根据ADCIN2口的电压数值可以判断是哪个干簧继电器通断,由IN2端电压变化规律可以知道水位的上升或下降如图3所示,图3中(a)为上升,(b)为下降。
1.1.2水面水底信号的获取
进行垂线水深测量时,铅鱼运行到河道断面的指定垂线位置后开始下降,一旦铅鱼接触水面则启动水深计数器开始水深计数,当铅鱼继续下降接触水底时,水底开关闭合停止计数,该计数值即为本条垂线的水深初值。工作过程如下:在铅鱼下降过程中单片机不断地读取ADCIN1口电压,铅鱼入水前继电器J1,J2处于常闭位置,ADC0809输入端IN1的电压是由R3,R4分压决定为2.5 V,一旦铅鱼接触水面+5 V电压通过水下极板→河水→铅鱼→副索1→ADC0809使IN1端电压上升到3 V以上。单片机根据IN1口的电压判断铅鱼已接触水面启动水深计数,同时令P3.4输出高电平继电器J1接通常开触点,由电路图可知河水电阻与R4并联使IN1口的电压为1.5 V左右。当铅鱼继续下降直到接触河底,河底开关K2被压通,铅鱼内部4.5 V电池E1接入电路中ADCIN1口电压下降到0 V以下,单片机判断已达到河底停止水深计数并通过P1口输出信号使水深电动机停止运行。
1.1.3偏角信号的获取
悬索缆道配有专门的偏角仪,用来修正水流导致铅鱼不能垂直下降到水底而产生的水深测量误差。偏角仪可以测量出铅鱼受水流影响偏离正常位置的角度,再根据偏角的大小通过查表或公式计算来修正水深误差。人工测量是用眼睛根据偏角仪的刻度估测偏角的大小,误差较大。我们对偏角仪稍做改动增加一个电位器W1和相应的电路如图1所示,通过机械联动装置将偏角的位移转换成电位器的转动从而改变W1的阻值,利用副索2将因偏角变化导致的电压变化送到ADCIN0口。考虑到野外工作的特殊性,采用性能稳定密封性好的线绕电位器,由于IN0口的电压变化与偏角之间不是线性关系用软件查表方式确定偏角值。为了减少机械位移、缆索电阻等因素的影响,实际操作时当铅鱼未入水时测一次偏角作基准,达到水面和水底时分别测一次水面偏角和水底偏角,经修正后即得到较精确的偏角值。
1.1.4流速信号的获取
流速的测量是由流速仪完成,测量流速时继电器J1,J2均接通常开触点-5 V电压加于水下极板,K1为流速仪内部开关,流速仪每转动一圈K1通断一次。K1断开时ADCIN0口的电压为1.5 V左右,K1接通后ADCIN0口的电压变化大于0.5 V,只要监测IN0口的电压差就可以判断流速仪的转动情况。实际测量中IN0口的电压差大小与测点垂线的距离和水质有关,距离越大电压差越小,在150 m的河道中流速信号的电压差大于0.5 V。用ADC0809监测流速信号,当VREF=5V时分辨率为0.02 V足以区别流速仪的转动,考虑到某些不确定的干扰因素将电压差的分辨率定在0.1 V,可以满足一般中、小河道的测验要求。对于较宽的河道可以通过改进电路或提高工作电压的方法来增加电压差。与PC机通信接口等部分组成的接口信息如:
(1)行程信号如水深、水平距离;
(2)水位信号;
(3)输出控制信号用来控制电动机进行正转、反转、停止,使铅鱼按要求运动做定点测量。
接口电路如图1所示,电路充分利用ADC0809多路模数变换器将复杂的接口信息转换成数字信号。同时还利用光电门将工作索行程(水深和水平距离的移动)转换成电脉冲信号,送到ATMEL89单片机进行处理、显示、控制完成自动测验。
1.2行程信号的获取接口电路
铅鱼的行程信号包括铅鱼水平往返移动的行程信号,和铅鱼测量水深时垂直移动的水深信号。位移信号的获取如图4所示。他是由加装在机械传动装置上的切光板和光电门获得。设计为缆索每移动1 cm切光板遮光一次,光电门产生一个脉冲。水深和往返信号分别从光敏二极管D3,D4上取出,经过异或门后加到单片机P3.2外部中断0输入端,每移动1 cm产生一个中断,中断服务程序可以区别铅鱼此时作水平往返移动还是垂直移动,两者只取其一。
1.3其他电路部分
P1口的输入功能是从控制面板读入操作命令和初始化数值,输出功能是输出控制信号。一是控制行程电动机正、反转和停机,使铅鱼按测验要求进行垂直和水平运动;二是在水深测量过程中控制继电器J1、J2的闭合与断开获取水面水底信号。显示打印电路部分用6个LED管显示和微型打印机进行简单打印。用 P3.1串口与PC机相连可以进行数据的转存和进一步处理,显示和打印。
2系统软件流程图
本系统的软件约占7 kB,系统程序流程图如图5所示。
程序分为系统管理、运算处理、测验控制3大模块。系统管理模块包括:初始化、系统监控、操作切换、紧急处理等程序。运算处理模块包括:数据运算、误差修正、显示打印等程序。测验控制模块是由包括:测垂线到起始点距离、测垂线水深、测垂线流速、测垂线水位、接口数据采集等诸多子程序组成。
为了尽量减少测量误差保证测量精度严格符合水文规范要求,在测垂线水深子程序中采用了二次入水操作,程序流程如图6所示。
实际水深测量中由于铅鱼的运动会引起缆索的起伏跳动而造成测量误差,我们在程序中设定的操作是:当铅鱼入水后暂停在水面10 s不进行水深计数,待其稳定后升出水面20 cm,再第二次进入水面。铅鱼第二次到达水面后启动水深计数暂停下降,测量水面偏角θA,铅鱼继续下降直到河底停止水深计数,测量水底偏角θB。最后根据干绳长度(缆索到水面的高度)、湿绳长度(水深初值)、θA,θB计算出实际的该条垂线水深值。
3、结语
ATMEL89单片机水文缆道测验系统具有较强的兼容性,适合中、小河道的自动或半自动测验,操作方便性能稳定,测验精度达到部颁《规范》要求,有效地减少了操作者的劳动强度和工作时间。