0 前言
液位是许多工业生产中的重要参数之一,在化工、冶金、医药、航空等领域里,对液位的测量和控制效果直接影响到产品的质量。由于单片微型计算机具有体积小,耗电少,控制精度高,运行可靠等的特点,
清华微电子推出高频管分立器件裸片,已做到9G截止频率
所以广泛应用于生产实际中。本文讨论了一种以AT89C51为核心研制的液位控制系统,该系统不仅能对液位进行巡回检测、显示和报警,同时也能对液位进行智能控制。
1 系统硬件设计
系统硬件组成框图如图1所示。主要由AT89S51、输入电路组成和输出电路组成。
1.1 微机系统
系统的核心部分是一片AT89S51微处理器。这是一种与MCS ?C51系列芯片兼容,带有4KB闪速可擦除只读存储器的低功耗、高性能CMOS结构的8位微处理器。它除正常工作外还可工作于低功耗的闲置和掉电模式,进一步减少了芯片的功耗。其内部除了配有4K的FLASH,还具有128字节的RAM、2个16位定时器/计数器,5个两级中断源结构,32位并行输入/输出口和一个全双工的串行口,看门狗定时电路等。由于AT89C51集FLASH、RAM、I/O、串行口于一体,所以只须配置少量的外围电路,就能构成液位智能控制系统,整个系统的结构十分紧凑。这种紧凑的结构,有助于降低功耗、提高系统的可靠性。
1.2 键盘、显示和报警部分
P1.0 ~ P1.5作为键盘的接口,连接一个2×4的键盘。分别实现液位上、下限显示、液位上、下限的设定等功能。显示器由4位LED组成,用于实时显示各个液位的高度,以及显示液位的上、下限值。
报警功能是当液位的高度超出设定值范围时,进行声、光报警。
1.3 数据采集和输出控制部分
数据采集部分由液位变送器、放大电路和A/D转换器组成。液位变送器的输出为4 ~ 20mA的电流信号,经过转换放大电路转换成A/D0809所能接收0 ~ 5V电压信号。在AT89C51单片机的控制下,实时采集液位数据,并对数据进行处理。
输出控制部分根据PID算法所的结果,通过步进电机对流量阀进行控制,实现液位控制的目的。
2 软件设计
系统软件主要由主程序、采样程序和PID算法程序和一些子程序组成。
2.1 主程序
主程序的流程图如图2所示。
图2主程序流程图
主程序的主要功能是完成AT89C51的初始化,设置液位的上限和下限,显示实时液位值,键扫描等工作。
2.2 采样和数据处理模块
本系统利用定时循环轮流对8个液位进行实时采样,对实时数据进行数据处理,并采用PID控制方案。
由于本系统的执行机构是步进电机,所以我们采用了增量式PID控制。根据递增原理可得
根据以上推导,得到增量式PID控制算法的程序流程图如图3所示。
图3 增量式PID控制算法的流程图
2.3其他功能
用户可以通过键盘设定液位的上限值和下限值,以及在任意时候显示液位的上下限值。当液位的高度超出或低于设定值时,进行声光报警,以提醒操作人员进行及时的处理。
3 抗干扰对策
3.1硬件抗干扰设计
系统电源是一个重要部件,又是与外部电网直接联系的部分,为了防止从电源系统引入干扰信号,在电源输入端设置低通滤波器,滤去高次谐波成份。另外还采用了AT89S51中的看门狗定时器,以进一步提高系统硬件抗干扰的能力。
3.2软件抗干扰设计
在程序设计时,将各程序模块分区存放,彼此之间空出一些存储单元,在这些单元中填充FF(RST指令)。同时对程序中重要的跳转和调用子程序指令前均加入三个NOP指令,以保证程序流向的正确性,因为PC只要错一个数码,那么整段程序就会面目全非,从而造成检测系统的混乱。
利用滑动平均滤波法求取平均值。将最近6次采样得到的液位值,去除最大值和最小值,剩下的4个数据求算术平均值。
4 结束
该液位智能控制系统采用了单片机作为主控制器,结构简单,可靠性高,抗干扰性强,由于应用了PID控制方案,系统的响应速度快,超调量小,系统稳定性好,具有一定的实用价值。