煤气退火炉控制系统设计汇总.doc

上传人:牧羊曲112 文档编号:4267086 上传时间:2023-04-12 格式:DOC 页数:16 大小:167.50KB
返回 下载 相关 举报
煤气退火炉控制系统设计汇总.doc_第1页
第1页 / 共16页
煤气退火炉控制系统设计汇总.doc_第2页
第2页 / 共16页
煤气退火炉控制系统设计汇总.doc_第3页
第3页 / 共16页
煤气退火炉控制系统设计汇总.doc_第4页
第4页 / 共16页
煤气退火炉控制系统设计汇总.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《煤气退火炉控制系统设计汇总.doc》由会员分享,可在线阅读,更多相关《煤气退火炉控制系统设计汇总.doc(16页珍藏版)》请在三一办公上搜索。

1、目 录1. 设计内容.12总体方案设计32.1.系统设计方案的提出32.2.方案比较及确定43. 控制系统的设计.64系统硬件设计74.1.系统硬件电路设计74.2单元模块设计7 4.2.1.电源模块7 4.2.2. 控制模块8 4.2.3.执行模块9 4.2.4.温度采集模块9 4.2.5.显示模块114.3.元器件清单125.系统软件设计135.1.软件流程图137.总结158.参考文献189.程序.19 1.设计内容 煤气罩式退火炉主要用于对冷轧钢板进行热处理,采用高炉煤气作为燃料。炉体分内罩和外罩,在内罩内放入退火钢卷,并投入保护性气体防止氧化。燃烧在内罩和外罩之间进行。12个喷嘴分为

2、上下两层,每层6个环绕排列。煤气和空气的喷燃比由连接两个阀门的连杆所固定,这样在燃烧时,其空燃比不变。煤气和空气阀均为蝶阀,由一台电动执行器通过连杆共同带动。设计系统保护气体温度为输入及控制量,以电动执行器带动的蝶阀开度(对应于煤气输入量)为输出的一个单输入单输出的温度控制系统。设计系统要求温度在升温、保温过程中按一定的工艺曲线升温和保温,在400温度内,保护气体温度在供气阀门开到最大情况下,以自由升温的速率再最短的时间内升到400。从400开始到700的保温点,温度按4575/h的速率上升,此段为升温段。到达700点,则开始进入保温段,以700为恒值温度进行保温。钢卷保温一定时间后停火,进入

3、降温段,而降温过程为自由降温,在此段中温控系统停用。选择合适的控制算法进行控制。2总体方案设计2.1.系统设计方案的提出本设计是基于51单片机的控制及显示电路设计,从系统的设计功能上看,系统可分为五大部分,即控制部分、传感器部分、数字显示部分、电源部分和执行部分,对于每一个部分都有不同的设计方案,起初我们组拟订了下面两种方案:1控制部分(1)AT89C52单片机 (2)其他 2传感器部分(1) (J型热电偶)铁-铜镍热电偶(2) (T型热电偶)铜-铜镍热电偶3.数字显示部分(1) 采用LED 数码管显示,利用多个数码管来显示数字。(2)LCD液晶屏显示。4电源部分:(1)购买开关电源。(2)自

4、制电源。5.执行部分(1)用交流电机。(2)用直流电机,采用集成芯片LM298与LM297组成驱动电路。2.2.方案比较及确定(1)本设计中我们采用AT89C52单片机作为主控芯片,AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS 8位单片机,而且可编程性好。(2)J型热电偶具有线性度好,热电动势较大,灵敏度较高,稳定性和均匀性较好,价格便宜等优点,广为用户所采用。其温度范围为0750,符合我们的要求。虽然T型热电偶也具有这些优点,但是其测量温区为-200350,不能满足我们的要求。(3)若用LED数码管显示,LED数码管亮度高、小

5、巧轻便,但是电路复杂,显示信息量较小;LCD的优点是:工作电流较小、功耗很低,而且可以清晰显示大量信息,趣味性强。所以选用LCD液晶显示。(4)购买的开关电源带负载的能力比较好,比较稳定,但是为了提升自己的动手能力,我们选择自己焊接所需的电路。(5)若用交流电机,转动速度固定,一般为水平转动速度为4/秒6/秒,垂直转动速度为3/秒6/秒。其缺点是无法大电流驱动.降低了工作效率且不容易实现。若选用集成芯片LM298驱动直流步进电机,具有转速高、可变速的优点,十分适合需要快速捕捉目标的场合。其水平最高转速可达4050/秒,垂直可达1024/秒。这种电路通过芯片产生正反向电压.开关速度很快.稳定性极

6、强.效率也非常高。基于上述考虑.我们拟选用方案二。3. 控制系统的设计 AT89C52单片机作为主控模块,通过传感器进行温度的采集,采集的数据经过A/D转换变成计算机能够接收的数字信号,然后在经过D/A转换将数字信号转变成模拟信号去控制执行机构(直流电机)的转动,并且电机的转动分为三个阶段: 第一阶段:当采集到的数据在(0400)范围内时,单片机就会控制直流电机转动,而且转动的非常快。电机转动带动阀门,从而控制阀门的开度,使温度快速升高。 第二阶段:当采集到的数据在(400700)范围内时,单片机就会控制直流电机转动,而且转动速度减慢。电机转动带动阀门,从而控制阀门的开度,并且使速率控制在45

7、75/h之间,温度由400升温到700。 第三阶段:当采集的数据达到700时,电机就停止转动。 同时系统整个过程都通过LCD液晶屏对温度进行实时跟踪与显示。4系统硬件设计4.1.系统硬件电路设计图2 系统硬件电路图4.2单元模块设计根据系统要实现的功能,本系统分为五个模块:电源模块、控制模块、执行模块、温度采集模块和显示模块。分别将各单元模块功能介绍如下:4.2.1.电源模块稳压电源模块我们采用三端集成线性稳压集成块:L7805CV芯片。本设计中我们所需的5V电源使用L7805CV芯片完成。因为它的外围电路比较简单,并且工作比较稳定。它的稳压精度为2%,工作电流1.5A,封装为TO-220(A

8、),工作温度也很不错,并且具有过温保护和短路保护,最大输入电压为35V,能对电路的长时间工作有很大的保障,故用其作为稳压芯片。4.2.2. 控制模块本设计中我们采用AT89C52单片机作为主控芯片,AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您

9、提供许多较复杂系统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。其引脚图如下所示:图3 引脚图主要功能特性: 兼容MCS51指令系统 8k可反复擦写(1000次)Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2

10、个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 4.2.3.执行模块 执行机构我们采用直流电机作为被控对象,直流电机是电机的主要类型之一。一台直流电机即可作为发电机使用,也可作为电动机使用,用作直流发电机可以得到直流电源,而作为直流电动机,由于直流电机的启动性能好,具有良好的调速性能,运行稳定;直流电动机的调速范围宽广,调速特性平滑,而且直流电动机的过载能力较强,热动和制动转矩较大。在许多调速性能要求较高的场合,仍得到广泛使用。尤其是在调速性能要求较高的大型设备,比如轧钢机上都采用直流电动机拖动。在本

11、实验中直流电机的作用是:根据电动机转动的快慢来反映煤气退火炉温度上升的快慢。在0400时,电动机快速转动打开供气阀门快速供气,使火炉在最短的时间内快速升温到400;从400700为火炉的保温点,此时直流电机的转速将慢慢降低;当温度上升到700时,阀门供气量将会下降,使火炉进入保温阶段。这时直流电机将停止转动4.2.4.温度采集模块在本次实验中用到的A/D转换器是ADC0808,其原理图及控制原理如下:(1)模拟量输入; A/D 转换器;数据输出 图4 ADC0808的原理框图 (2)引脚介绍: :主电源输入端。 REF ( + )、 REF ( - ):基准电源输入端,使用中 REF ( -

12、)一般接地, REF ( + )最大可接 ,要求不高时, REF ( + )接 的 电源。 GND :模拟地数字地共用的接地端。 CLK :时钟输入引脚,时钟频率范围 ,典型值 ,此时转换时间约为 。 : 8 路模拟量单极性电压的输入引脚。 ADD A 、 ADD B 、 ADD C : 8 选 1 模拟开关的三位通道地址输入端。用来选择对应的输入通道,其对应关系如图 9-4 所示。比如 CBA=011 ,则选中 引脚的输入电压。 C 、 B 、 A 通常与系统数据总线的 、 、 连接。但也有与系统地址总线相连的,此种用法需小心处理端口地址的组织。 ALE :为通道地址锁存允许选通控制端,输入

13、上跳沿有效;它有效时, C 、 B 、 A 的通道地址值才能进入通道地址锁存器, ALE 下跳为低电平(无效)时,锁存器锁存进入的通道地址。 START :启动 A/D 转换控制引脚,由高电平下跳为低电平时有效;即对该引脚输入正脉冲下跳沿后, ADC 开始逐次比较;也可将 START 与 ALE 连接在一起使用,安排一个 CPU 写端口地址;正脉冲上升沿通道地址(码)被写入通道地址锁存器,下降沿启动 A/D 转换。 EOC : ADC 转换状态输出信号引脚;未启动转换时, EOC 为高电平,启动转换后,正在逐次逼近比较期间 EOC 为低电平,低电平持续时间为 A/D 转换时间,约 (与时钟频率

14、有关),一旦转换完毕, EOC 端上跳为高电平,此信号可供 CPU 查询或向 CPU 发中断。 : 8 位数字量输出引脚, 为 ( MSB ), 为 ( LSB ),它是三态输出数据锁存器的输出引脚,未被选通时, 8 个引脚对片内均为高阻断开;因此可与系统数据总线 直接相连。 OE :数字量输出允许控制端,输入正脉冲有效;它有效时,数据输出三态门被打开,转换好的数字量各位被送到 引脚上;它无效时, 浮空(高阻隔离);显然 OE 端必须设置一个 CPU 读数据的端口地址,未访问时,必须为低电平。 (3)公式 单极性 图5 ADC0808/9 芯片的引脚图 双极性 可见此系列 ADC 本身是单极性

15、转换器,也可以通过外偏置电路方法,变成双极性输入电压的 A/D 转换器。 4.2.5.显示模块本系统我们采用LCD液晶显示屏进行显示。LCD为英文Liquid Crystal Display的缩写,即液晶显示器,是一种数字显示技术,可以通过液晶和彩色过滤器过滤光源,在平面面板上产生图象。LCD占用空间小,低功耗,低辐射,无闪烁,降低视觉疲劳。在系统中,LCD主要进行温度的显示。本设计中我们选用LCD1602进行显示,下面是1602的管脚功能说明。图6 引脚说明1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原

16、理与14脚的LCD完全一样,引脚功能如下:表1 引脚功能引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB2底4位三态、 双向数据总线 2

17、位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极4.3.元器件清单表2 器件清单器件名称个数单片机1A/D转换器1D/A转换器1LCD16021滑动变阻器1运算放大器1电流源5直流电动机1温度传感器15.系统软件设计5.1.软件流程图开始系统初始化温度传感器采样A/D转换AT89C52LCD显示D/A转换执行机构(直流电机)图为 软件流程图7.总结通过

18、本次的课程设计,我受益匪浅。不用说在其中学到的新知识是多么有价值,也不用说它拓宽了多少我的眼界,只是说它让我的能力得到的提高就已足以成为我努力付出的回报。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。虽然作的还不是很完善,但还是让我收获了很多的东西,在遇见问题的时候,应从总的方面找原因,不能一味的注意小环节,小环节再对大的方向不对也是没有意义的。同时了解了很多的硬件知识。很多涉及到实际问题时,感到了自己的知识的不足,完全不能满足需要。对于硬件的使用很多都时在同学的知道下才完成的。让我对学习的方向和方法有了新的认识。 8.参考文献【1】于海生 计算机控制技术 北京:机械工

19、业出版社2007.5【2】周泽魁.控制仪表与计算机控制装置.北京:化学工业出版社,2002.9【3】徐科军.传感器与检测技术.北京:电子工业出版社,2004.9【4】谢建英.微型计算机控制系统.北京:清华大学出版社,2004.9程序: 9.1 #include voidLcd_WriteData(unsignedcharTempData); voidLcd_WriteCmd(unsignedcharTempData,unsignedcharBuysC); void Lcd_ReadStatus(void); void Lcd_Init(void); /LCM初始化 unsigned char

20、Lcd_ReadData(void); void DisplayString(unsigned char X, unsigned char Y, unsigned char *DData); void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); void Delay(unsignedintdelaytime); sbitLcd_RS=P20; sbitLcd_RW = P21; sbitLcd_E = P22; unsigned int dianya11=0,50,100,150,200,250,

21、300,350,400,450,500;/0-5V #defineLcd_DataP0 #defineDA_Data P3 /-sbit ST=P25;sbit EOC=P26;sbit OE=P27; sbit CLK=P24;#define ADC_OUT P1/-unsigned char b;unsigned int temp;unsigned char table3; /=DAC转换输出控制电热丝加热功率=voidDAConvert(unsignedlongintVoltage)Voltage=255*Voltage/500;DA_Data=Voltage;/-unsigned in

22、t ADC0808(); /- void main(void) Lcd_Init(); / lcd初始化 while(1) temp=ADC0808(); /temp=100; table2=temp%10; table1=(temp/10)%10; table0=(temp/100)%10; DisplayString(0,1, T:); DisplayOneChar(10,1,table0+0x30); DisplayOneChar(11,1,table1+0x30);/LCD显示测量值 DisplayOneChar(12,1,table2+0x30); DisplayOneChar(13

23、,1,C); if(temp400&temp=700) DAConvert(dianya5); else DAConvert(dianya0); unsigned int ADC0808() unsigned int adc; unsigned longint getdata; ST=0; OE=0; ST=1; ST=0; while(1) CLK=CLK ; if(EOC=1) break; /AD时钟脉冲 OE=1; getdata=ADC_OUT; OE=0; adc=getdata*704/255; / adc=adc; return(adc);voidLcd_WriteData(u

24、nsignedcharTempData)Lcd_ReadStatus(); Lcd_Data = TempData;Lcd_RS = 1;Lcd_RW = 0;Lcd_E = 0; Lcd_E = 0; Lcd_E = 1;Lcd_E = 0;/写指令voidLcd_WriteCmd(unsignedcharTempData,unsignedcharBuysC)if (BuysC) Lcd_ReadStatus(); Lcd_Data = TempData;Lcd_RS = 0;Lcd_RW = 0;Lcd_E = 0;Lcd_E = 0;Lcd_E = 1;Lcd_E = 0;Lcd_E =

25、 0;/读数据unsigned char Lcd_ReadData(void)Lcd_RS = 1;Lcd_RW = 1;Lcd_E = 0;Lcd_E = 0;Lcd_E = 0;Lcd_E = 0;Lcd_E = 1;Lcd_E = 0;return(Lcd_Data);void Lcd_ReadStatus(void) Delay(100);void Lcd_Init(void) /LCM初始化Lcd_Data = 0;Lcd_WriteCmd(0x38,0); /三次显示模式设置,不检测忙信号Delay(6000);Lcd_WriteCmd(0x38,0);Delay(6000);Lc

26、d_WriteCmd(0x38,0);Delay(6000);Lcd_WriteCmd(0x38,1); /显示模式设置,开始要求每次检测忙信号Lcd_WriteCmd(0x08,1); /关闭显示Lcd_WriteCmd(0x01,1); /显示清屏Lcd_WriteCmd(0x06,1); / 显示光标移动设置Lcd_WriteCmd(0x0C,1); / 显示开及光标设置/按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)Y &= 0x1;X &= 0xF; /限制X不

27、能大于15,Y不能大于1if (Y) X |= 0x40; /当要显示第二行时地址码+0x40;X |= 0x80; /算出指令码Lcd_WriteCmd(X, 0); /这里不检测忙信号,发送地址码Lcd_WriteData(DData);/按指定位置显示一串字符void DisplayString(unsigned char X, unsigned char Y, unsigned char *DData)unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1while (DDataListLength!=0) /若到达字串尾则退出if (X = 0xF) /X坐标应小于0xFDisplayOneChar(X, Y, DDataListLength); /显示单个字符ListLength+;X+;void Delay(unsignedintdelaytime)while(delaytime-);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号