在石油化工、水利水电、农田灌溉、环境监测以及自来水厂、污水处理厂等众多领域,液位(水位)是一个重要的技术参数。目前常用的液位传感器有:旋转编码浮子式传感器(机械式和光电式)、非接触式超声波传感器、压力式传感器、磁浮子接点式传感器(连续式和液位开关式)等。其分辨率从毫米级到厘米级不等,测量范围从几十厘米到几十米。除磁浮子接点式传感器外,其余传感器均比较适合测量范围较宽的应用场合。一般压力式和超声波传感器均带有变送部分,即将液位信号转换成标准电流信号(4~20mA)。旋转编码浮子式传感器分为机械式和光电式两种,光电式又分为绝对型和增量型。这类传感器输出通常为并行二进制码、串行二进制码和脉冲信号。除智能型一体化传感器外(压力式或超声波),一般没有就地显示和数字通信功能。
对于诸如农田灌溉、环境监测、污水处理等公益性部门,除测量精度、可靠性、可维护、易安装等技术性能要求外,价格也是直接影响传感器选用的重要因素之一。为此,我们研制了一种基于磁浮子接点式小量程(≤150cm)就地显示、并具有RS-485通信接口和4~20mA输出的廉价液位传感器。
传感器组成及原理
传感器主要由以1cm间隔均匀分布的干簧管阵列、全密封不锈钢防护管、球型磁浮子、检测电路、变送电路及LCD显示器等组成。其基本原理是检测干簧管阵列中某一个或几个干簧管触点闭合状态来表示球型磁浮子位置,即液面位置。一般的检测方法是采用电阻分压方式,其输出电压Vo是第i个闭合干簧管的分压值。这种测量方法需精确稳定的电源Ve和分压电阻R,通过适当的变换电路(V/I),可获得4~20mA标准电流输出。但是,如果多个干簧管同时接通,就会影响其分压电阻比,产生较大的测量误差。若在测量中产生一个或多个干簧管永久性导通(干簧管失效),则测量无法正常进行。为避免这种情况发生,增强传感器的适应性(现场显示和通信),我们结合工程实践,提出了采用类似键盘扫描的一种新检测方法,有效解决了这一问题。
检测电路由一片89C2051单片机和若干分布在测杆内干簧管阵列电路板上的串—并移位寄存器74HC164构成类似扫描键盘阵列电路结构。干簧管位于行和列的交叉点上。
通过控制移位寄存器的输出,使各列依次变为低电平(“0”)状态,然后检测各行(P1.0~P1.3)的状态。如果某行为低电平(“0”)状态,则该行与处于低电平状态列的交叉点上的干簧管为闭合状态,由此就确定了浮子的位置,即液面位置。由于任一干簧管的位置是唯一确定,故对应于任一干簧管的液位也就唯一确定了。
变送器电路采用美国AD公司的高性能数模转换器AD421芯片。其采用Σ-ΔDAC结构,16位分辨率,标准三线串行数据输入接口,4~20mA电流环路输出。变送器24V电源经过片内电压调整电路和调整管(DN25D),可提供+5V、+3.3V或+3V的外部电路工作电源。同时还能提供+1.25V、+2.5V基准电源。
电容C1、C2、C3与片内DAC后时序滤波器相联,CPU可以在时钟端CLOCK的上升沿将数据装入数据端DATA,输入至内部移位寄存器,在LATCH上升沿锁存到DAC锁存器,从而完成数字信号到4~20mA标准电流信号的转换。
软件设计
89C2051内置2K Flash程序存储器,用来存放用户程序。程序采用模块化设计方法,主要包括干簧管接点扫描子程序、液位计算子程序、D/A输出控制子程序、LCD显示子程序以及RS-485通信子程序等。干簧管接点扫描子程序通过逐列扫描,按行读入各干簧管触点状态,并将其映射到20H开始的内部数据存储单元中,其程序如下:
干簧管接点扫描子程序
SCAN:MOV R7,X;设置循环计数初值=74HC164芯片数×4
MOV R0,#20H;设置存储单元指针初值
CLR P1.5;使74HC164串行输入为“0”
NOP
SCA: CLR P1.4
NOP
SETB P1.4;74HC164时钟输入端产生一个移位脉冲
MOV A,P1;读入行值
ANL A,#0FH ;保留低4位
MOV B,A;暂存
CLR P1.4
NOP
SETB P1.4;再移一位(扫描下一列)
MOV A,P1
ANL A,#0FH
SWAP A
ORL A,B;将相邻两列状态合并成一个字节
MOV @R0,A;存入映像存储单元
INC R0;指向下一映像存储单元
DJNZ R7,SCA;循环
RET;返回
由于受磁浮子磁场分布范围的影响,在相应液面位置上可能会导致相邻几个干簧管同时闭合,因此对于各种不同的状态组合,程序中考虑了不同的处理结果。对于个别干簧管可能出现的永久性导通,软件上采用了相应的处理措施,也就是利用接点的变化来确定当前磁浮子的位置(即液位)。