基于ATmega128单片机的智能蒸柜控制系统设计
扫描二维码
随时随地手机看文章
摘要:基于ATmega128单片机设计了智能蒸柜控制系统。由于蒸柜系统之前采用西门子PLC,目前这一系列已经停产,为了实现控制系统优化,采用以ATmega128单片机为控制核心单元,取代原来由PLC及触摸屏组成的控制系统,并在软件程序部分将原来的PID算法改进为模糊自整定PID算法。经过软硬件测试,控制系统与原系统相比更简单、准确、稳定、经济、智能,值得在实际应用中广泛推广。
关键词:智能蒸柜;ATmega128单片机;485/FC协议;模糊自整定PID算法
智能蒸柜控制系统是一个蒸柜控制系统的改造与优化,之前采用的控制单元部件为西门子S5系列PLC和MP370触摸屏。S5系列模块已经停产,触摸屏操作也由于使用时间过长出现不灵敏现象,现使用的PLC模块与s5系列模块存在不兼容现象,并且PLC控制成本较高,故决定采用基于AVR单片机实现系统的节能优化。
1 系统简介
本次设计采用Atmel公司的AVR系列ATmega128单片,由于此单片机吸收了PLC及51单片机的优点,同PLC一样可以重设和复位;特别是AT mega128单片机具有128 KB FLASH,4 KB E2PROM,4 KB RAM,多达48个I/O,口,34个中断源,以及ISP下载及JTAG仿真口。CS5464作为模拟量转换芯片,ADM2483作为485通信模块,并做了重大改进,程序的编写可串行在线下载擦写(ISP),内置高精度的A/D转换器;基于C语言完成AVR固件程序和用户程序等软件设计,结果验证系统成本低、运行相对稳定,系统结构如图1所示。
2 蒸柜系统的工作原理及硬件实现
2.1 系统工作原理
(1)首先设定系统输出量——温度与压力,再设定系统输入量,包括阀门开度上限、上限、阀门工作时间、抽气时间,系统时间等等;
(2)按启动按钮,若已关门(光电开关有信号),开始工作(工作指示灯亮、工作继电器闭合),工作时间倒计时;
(3)工作期间,采集蒸房内温度、压力值,并与设定值比较,通过模糊自整定PID算法串级控制,实现系统对阀门开度的调整,最终达到预期的自动控制与节能效果;
(4)当压力、温度超标时,报警(指示灯亮、蜂鸣器响),当压力恢复时,报警停止;
(5)若工作期间检测到门打开,或按停止按钮,则停止工作并开始抽气,抽气完成结束。
2.2 硬件电路
硬件电路总共分为模拟量采集电路、电源电路部分、CPU处理模块、键盘电路、液晶显示电路、通信电路、模拟量输出电路等几部分,本文主要对以下几个部分的硬件电路做重点设计。具体的I/O量见表1。
模拟量采集电路有两路采集温度,一路采集压力,两种电路不同的原因是:由于压力传感器采用的是PT1000,要将产生的电流信号通过三极管电路转换成电压信号做处理,而压力变送器输出的就是标准的4~20 mA标准信号,CS5464是一个常用的功率芯片,此处A/D模块选用它的主要原因是成本较低,处理速度满足控制要求。
电源是电子设备的核心部分,其质量的好坏直接影响着电子设备的可靠性,为了避免干扰,本设计电源电路采用相互隔离的两路+5 V输出:第一路输出给单片机MCU、储存芯片及LED数码管供电;第二路输出给RS 485通信芯片MAX485供电,电路如图2所示。
主CPU板采用了Atmel公司的AVR单片机ATmega128,作为控制核心,主CPU板利用ATmega128的两个USART和电平转换芯片实现RS 232,RS 485通信、包含键盘处理、显示屏处理、模拟量处理、时钟口、JTAG口、继电器输出口等。
16×16键盘驱动电路如图3所示,可实现如下功能:
(1)线状态一:列输出,行输入,列输出0000,读行,如果行有口线为低电平,则有键盘按下。
(2)线状态二:列输出,行输入,列依次输出1110/1101,1011/0111,读行,如果行有口线为低电平,确定当时的列输出状态,可判定是哪一列键盘按下。
(3)线状态三:列输入,行输出,行依次输出1110/1101/1011/0111,只读状态二确定的列线,如果行有口线为低电平,确定当时的行输出状态。可判定具体是哪一个按键按下。
(4)本电路16个键的功能是:上翻up、下翻down、输入input、清除clear、确定enter、返回ese、数字键:0~9。8个ATmega128的I/O口引脚分别对应16个按键,ATmega128直接检测8个I/O口的变化,完成对时、报警限值设定、报警信息查询,每路按键加RC电路去抖。
液晶屏选用LM240128CFW,该设计采用串口方式连接,LM240128CFW的引脚RS、R/W和E分别与ATmega128的PB0,PB3和PB1连接,同时ATme ga128对液晶屏进行初始化、设置和显示等操作。R27和CL组成复位电路给液晶屏提供复位信号,电路如图4所示。
通信电路采用AD2483通信芯片实现ABB标准的485协议与HLP专用的FC协议,RS 485的通信接口是由MAX485芯片构成,通过USART与MCU实现通信。采用3只光耦器件对单片机电路和RS 485接口电路进行隔离,提高系统的抗干扰能力,电路如图5所示。
3 软件设计
ATmega128单片机集成的指令功能非常丰富,内存等资源也都比较丰富,为了提高代码的可读性、可移植性、可维护性和编程效率,本系统使用C语言开发系统软件。采用的编程软件为ICC AVR6.25A,仿真环境为AVR Studio 4.10。
系统上电后,首先初始化各底层硬件(包括LCD设备、串口参数等)。初始化完成后,执行分段增量式PID控温算法、温度控制程序及人机交互程序,其中系统软件流程图如图6所示,循环来等待中断输入,在此循环中,异常状况检测被定为具有最高优先级的任务,其次是外部设备的手动输入,最后是外部输入信号。
4 测试结果及分析
4.1 温度的校准与标定
首先在端口TIN处连接温度传感器,温度计量得室内温度为27℃。初步上电在界面显示正常情况,硬件电路测得信号电压在计算范围内,显示界面仍然为0℃,单步执行A/D采集程序,用示波器量得信号JSCK,MI,MO,发现JSCK为高电平,给MI一个标准方波,MO并没有收到等同波形,显示没有规则的波形,差的最后的原因为A/D初始化程序,延时贴片光耦P781的动作时间,在将延时改为120 ms后,显示界面出现一个不准确的温度值,但此刻已经说明能检测到电路信号,关于PT1000的具体标定对应标定表格进行,标定方法较为复杂,其结果为与室温有±0.15%的误差,比厂家要求1%误差有绝对高的精度。
4.2 通信的测试及结果
由于厂家变频器采购的是HLP的NV系列变频器,此系列变频器遵循Modbus通信协议和自己的标准FC协议,本设计主要采用FC通信规约,标准Modbus暂且不作考虑,部分调试命令如下:
对于ModBus协议来说,按照地址分为4类:
0x为开关量表示该区域地址空间可读可写;1x为开关量表示该区域地址空间只读;3x为模拟量表示该区域地址空间只读;4x为模拟量表示该区域地址空间可读可写。
按照功能码来说,01~255都可以,这些功能码可以对应地操作地址空间中。
测试结果分析:通过标准FC规约参与变频器485通信,实现对食品切刀、输送机、进气阀门的控制,实现频率设定、正反转启动、变频控制、七段速选择、电机额定参数的显示等。
5 结语
基于ATmega128芯片设计的智能蒸房控制系统基本满足原系统所有功能,并加入了新的控制算法,控制精度更高、更准确、更节电,并在结构上更为简易,在硬件上通过主板、按键和显示屏组装成简单的可视化仪表,操作界面简单明了,并添加了报警界面以便更为简单地查找机器故障。