利用ATmega16设计电热锅炉温度控制器的方法
本控制器主要针对过程控制实验室的控制装置而设计的,对浙大中控的AE2000B过程控制实验装置中电热锅炉的温度进行控制、显示,具有手动、自动功能,带有漏电、超温、超压及缺水保护和报警系统。 智能仪表的研制开发 智能仪表是以单片机为核心的仪表,其设计要点大致有两点,即模块化设计和模块的连接。 ● 模块化设计 依据仪表的功能、精度要求等,自上而下按仪表功能层次把硬件和软件分成若干个模块,分别进行设计与调试,然后把它们连接起来,进行总调,这是设计仪表最基本的思想。 硬件部分包括主机电路、过程输入/输出通道(模拟量输入/输出通道和开关量输入/输出通道)、人机联系部件和接口电路以及串行数据通信接口等。软件部分包括监控程序(包括初始化、键盘和显示管理、中断管理、时钟管理、自诊断等),中断处理程序以及各种测量(数字滤波、标度变换、非线性校正等)和控制算法等功能模块。模块化设计的优点是:无论是硬件还是软件,每个模块都相对独立,故能独立地进行研制和修改,使复杂的研制工作得到简化,从而提高工作教益和研制速度。 ● 模块的连接 上述各种软、硬件研制、调试之后还需要将它们按一定的方式连接起来,才能构成完整的仪表,以实现数据采集、传输、处理和输出等各项功能。为实现既定的各种功能,软件模块的连接一般是通过监控主程序调用各种功能模块,或采用中断的方法实时地执行相应的服务模块来实现的。 硬件模块连接方法有两种:一种是以主机模块为核心,通过设计者自行定义的内部总线(数据总线、地址总线和控制总线)连接其他模块;另一种是用标准总线连接其他模块,这种方式可选择标准化、模块化的典型电路,使配接灵活、方便。
图1 智能控制器硬件系统原理图 温度控制器硬件的开发 ● 单片机的选择 选用高性能、低功耗的8位ATMEGA16单片机,它具有如下特点:16KB的系统内可编程Flash(具有同时读写的能力,即RWW);512B EEPROM;1KB SRAM;32个通用I/O口线;32个通用工作寄存器;3个具有比较模式的灵活的定时器/计数器(T/C);可编程串行接口;低功耗空闲和掉电方式等。ATMEGA16的主电路如图2所示。
图2 ATMEGA16电路图 ● 外部设备的选择 一台智能仪表往往需要有多种外部设备。根据功能模块划分,外部设备通常指过程输入/输出通道、人机接口(键盘、显示器、连接电路)等。 (1)模拟量输入通道 A/D转换器采用MEGA16芯片上的5~8路10位AD转换。ATmega16有一个10位的逐次逼近型ADC。ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。单端电压输入以0V(GND)为基准。器件还支持16路差分电压输入组合。两路差分输入(ADC1、ADC0与ADC3、ADC2)有可编程增益级,在A/D转换前给差分输入电压提供0dB(1x)、20dB(10x)或46dB(200x)的放大级。七路差分模拟输入通道共享一个通用负端(ADC1),而其他任何ADC输入可作为正输入端。ADC包括一个采样保持电路,以确保在转换过程中输入到ADC的电压保持恒定。 (2)开关量输出通道 在测控系统中,被控设备的驱动常常采用模拟量输出驱动和数字量(开关量)输出驱动两种方式。前者由于其输出受模拟器件的信号漂移等影响,很难达到较高的控制精度。随着电子技术的迅速发展,特别是单片机进入测控领域后,数字量输出控制的应用日益广泛。精度控制上,开关量输出控制比模拟输出控制高。利用开关量输出控制往往无须改动硬件,而只需改变程序就可用于不同的控制场合。 本设计采用开关量输出,并提供2种输出方式由用户选择: 继电器控制输出(AC 220V/3A,DC 24V/5A)阻性负载;SCR(可控硅)输出400V/0.5A。PWM输出电路如图3所示。
图3 PWM电路输出电路 (3)数码显示电路 显示屏驱动电路的主要作用是接受来自控制系统的数字信号,将发光二极管点亮,实现在LED显示屏上的信息的显示。在显示电路中采用双4位LED显示,测量值和目标值同时显示,LED显示屏使用的驱动电路是基于通用型集成电路移位寄存器74HC595和6B595来设计的,如图4所示。
图4 数码显示电路 (4)键盘输入电路 键盘输入的功能主要包括设定温度、在LED显示中进行显示实际温度和显示工作时间这两者循环显示的时候进行选择。同时考虑避免误操作而引起的设定温度的改变,所以系统专门增加一个确定键。因此该系统具有4个按键:模式选择、增加按钮、减少按钮及确定按钮。电路如图5所示。
图5 键盘输入电路 (5)通信接口电路 通信传输采用标准的RS485或RS232计算机数据串行通信方式,通过串口按一定的通信协议接收来自计算机串口RS232的信号,经过处理后按一定的规律传送到显示屏上显示。通信接口电路如图6所示。
图6 通信接口电路 系统软件研制 系统软件主要采用了PID控制实现,全部软件都是用C语言编写的,软件流程图如图7,由一些功能模块组成。
图7 主程序 初始化模块完成I/O的设置、数据存储器分配(包括A/D采样的结果、输入按键的键码、程序标志等) 、定时器、A/ D的设置并开中断;循环扫描模块检测是否有键盘输入、A/D转换完成否、是否定时中断等判别任务。若有则转跳至相应的子程序或中断程序;中断处理模块依据状态完成定时计数、A/D采样、键盘扫描等任务;显示驱动模块依据状态完成温度或系数的显示;键盘处理模块检测键码并进入相应处理程序;定时中断模块完成定时计数,定时间隔约为1s,为系数的设置提供数码;温度控制模块依据测得的数据和预置数的差确定控制信号的输出。 在实验装置中的应用 用ATMEGA16单片机实现的智能温度控制器,主要有如下功能: (1)能对电热锅炉进行升温、恒温的控制; (2)系统能方便地设定指定温度和恒温时间。系统工作时能循环显示工作时间、实际锅炉温度,给定温度,可随时进入或退出系统; (3)系统应具有温度超限、防干烧报警功能,当延迟1分钟后,则自动断电退出工作状态; (4)系统应具有二位式控制和PID控制功能,系统应具有与PC机的通信功能; (5)系统应具有较强的抗干扰能力。 将研发的智能温度控制器应用于浙大中控的AE2000B型过程控制实验装置中,具有稳定性好、精度高、抗干扰能力强等特点,满足实验所需的各项指标的要求,达到了预期的效果。 结束语 通过实践运行表明,所设计的系统能够可靠、稳定、无扰动地完成手动、自动切换的功能,并且在系统出现超温、超压、缺水以及漏电等紧急情况时能报警并自动切断系统。以PID算法为核心的控制器能很好地满足系统的稳定性和精度要求,并且具有开发周期短、成本低、性能高、功能易扩大的优点。 |