微控.docx
《微控.docx》由会员分享,可在线阅读,更多相关《微控.docx(34页珍藏版)》请在冰豆网上搜索。
微控
微型计算机控制技术
课程设计
造纸原料蒸煮过程压力微机控制系统
设计报告
学院:
信息工程
专业:
自动化
班级:
0704班
学生姓名:
学号:
指导教师:
目录
一.摘要--------------------------------------------------------------------------------------------------4
二.控制工艺分析---------------------------------------------------------------------------------5
1.工艺要求---------------------------------------------------------------------------------------------5
2.要求实现基本功能-----------------------------------------------------------------------------6
三、控制系统分析与设计---------------------------------------------------------------------6
1、执行机构的选择--------------------------------------------------------------------------------6
2、.系统分析------------------------------------------------------------------------------------------7
四、系统硬件设计----------------------------------------------------------------------------------7
1.压力变送及A/D转换电路-----------------------------------------------------------------7
2D/A转换及隔离输出电路---------------------------------------------------------------------9
3显示电路----------------------------------------------------------------------------------------------11
4.数字控制器---------------------------------------------------------------------------------------12
5外围电路---------------------------------------------------------------------------------------------13
6.上下限报警--------------------------------------------------------------------------------------14
7控制系统总电路---------------------------------------------------------------------------------14
五、系统软件程序设计-------------------------------------------------------------------------15
1、主程序设计-------------------------------------------------------------------------------------15
2、A/D转换器设计-------------------------------------------------------------------------------20
3、D/A转换器设计-------------------------------------------------------------------------------21
4、数字控制器设计------------------------------------------------------------------------------22
5.显示与按键设计--------------------------------------------------------------------------22
6.滤波程序------------------------------------------------------------------------------------30
7.标度变换程序------------------------------------------------------------------------------31
六、系统基本设计-----------------------------------------------------------------------------31
1.主程序基本设计---------------------------------------------------------------------------31
2.A/D转换器基本设计-------------------------------------------------------------------33
3.D/A转换器基本设计-------------------------------------------------------------------34
4.数字控制器基本设计--------------------------------------------------------------------35
5.显示与按键基本设计--------------------------------------------------------------------36
6.定时中断控制基本设计-----------------------------------------------------------------37
7.内存地址分配-------------------------------------------------------------------------------38
七、系统调试--------------------------------------------------------------------------------------38
1.压力变送器量程调整------------------------------------------------------------------38
2.给定参数设定----------------------------------------------------------------------------38
3.采样周期的调整------------------------------------------------------------------------38
4.PID参数的整定------------------------------------------------------------------------39
八、设计总结-------------------------------------------------------------------------------------39
九、参考文献-------------------------------------------------------------------------------------39
一.摘要
蒸煮过程是制浆造纸生产中的关键工序之一,对于整个造纸生产过程中纸浆得率和纸的质量有很大影响。
它要求根据原料的特点、纸浆的质量和生产设备的实际情况制定出合理的蒸煮工艺,确定装球量、用碱量、蒸煮温度和压力。
造纸厂蒸煮车间有五个蒸球,依靠调节其进气量以达到控制蒸球工作压力和温度,调节喷料阀控制装料量。
人工控制准确性和实时性差,浪费能源。
因此需要用微机控制技术实现该过程的自动控制。
要求实现的基本功能:
微机自动调节:
正常工况下,系统投入自动;模拟手动操作:
当系统发生异常,投入手动控制;微机监控功能:
显示当前被控量的设定值、实际值,控制量的输出值,参数报警时有灯光报警。
对实验先进行审题分析,然后进行硬件选择,再是软件设计。
通过流程图可以清晰的反映设计思路。
关键词:
压力控制,设计
二.控制工艺分析
1.工艺要求
蒸煮过程是制浆造纸生产中的关键工序之一,对于整个造纸生产过程中纸浆得率和纸的质量有很大影响。
它要求根据原料的特点、纸浆的质量和生产设备的实际情况制定出合理的蒸煮工艺,确定装球量、用碱量、蒸煮温度和压力。
造纸厂蒸煮车间有五个蒸球,依靠调节其进气量以达到控制蒸球工作压力和温度,调节喷料阀控制装料量。
人工控制准确性和实时性差,浪费能源。
因此需要用微机控制技术实现该过程的自动控制。
压力控制系统示意图
控制要求
蒸球的实际工作压力准确跟踪给定压力曲线,允许偏差为±0.01Mpa。
典型的蒸煮过程工艺压力曲线如图所示。
P1——低压保压值,P2——高压保压值,T1——空转时间,T2——升低压时间,
T3——低压保压时间,T4——升高压时间,T5——高压保压时间
被控过程传递函数
2.要求实现基本功能
微机自动调节:
正常工况下,系统投入自动。
模拟手动操作:
当系统发生异常,投入手动控制。
微机监控功能:
显示当前被控量的设定值、实际值,控制量的输出值,参数报警时有灯光报警。
三.控制系统分析与设计
1.执行机构的选择
执行机构是微机控制的重要组成部分。
执行机构的选择一方面要与控制算法匹配,另一方面要根据被控对象的实际情况决定。
常用的有电动执行机构、气动薄膜调节阀、和液压伺服机构。
由于电动执行机构具有响应快能源获取方便,与计算机接口容易等优点,因而成为计算机控制系统的主要执行机构。
所以本设计采用电动执行器
选用3610系列电子式电动调节阀其主要特点:
1.伺服控制器和执行器合二为一,集机电于一体,控制精度高,可构成高品质的调节系统。
2.伺服控制器功能多,高度集成化,可靠性高,操作简便。
3.具有选择功能:
控制信号:
DCO~10mA/DC4~20mA.动作方向:
正作用/反作用。
4.位置检测采用高可靠性器件,并有间隙补偿装置,通过发送器可输出DCO-10MA、DC4-20MA阀位信号。
具有自诊断及处理和指示功能。
5.具有状态设定功能,断信号后自动进入设定状态(开启、保持原位、关闭)。
6.在运行过程中,遇到断电,具有自锁功能,保持其原位。
7.行程零位及满位、死区、反馈零位及满位调整方便。
型号
量程范围
传感器
应变式
变送器
DBY-131型压力变送器
输出0mA~10mA
执行器
3610系列
输入4mA~20mA
2.系统分析
采用Atmel公司的AT89S51单片机作为控制核心,AT89S51是低功耗的8位CMOS单片机,具有8K字节在线可编程Flash存储器,内部有带看门狗。
通过其ISP接口线可以方便地在线调试程序。
A/D转换器采用具有8通道输入的ADC0809。
DBY-131型压力变送器将0-1.28Mpa的压力信号转换为0-10mA的电流输出,通过500Ω电阻转化为0-5V的电压信号供给A/D转换器采样。
单片机定时(预定值为5s,用户可根据实际在调试时进行修改)依次对5个蒸球的压力进行采样。
采样值经过内部程序数字滤波后与给定值进行比较(给定值通过程序计算按照用户给定的压力曲线变化),得到的偏差信号经PID算法程序后输出8位的阀门控制数字量。
该数字量经D/A转换器AD558转换成0-10V的电压信号,0-10V的电压信号再经隔离放大器ICISO1002与工业现场隔离,输出4-20mA的标准电流信号控制蒸汽调节阀的开度。
当蒸球的压力大于给定值时,偏差信号E=R-C小于零,经PID运算后输出量减小,蒸汽调节阀的开度随之减小,从而使蒸球内的压力降低,重新回到平衡状态。
通过对PID参数的整定可以使蒸球的实际工作压力准确跟踪给定压力曲线。
四.系统硬件设计
1.压力变送及A/D转换电路
电路图如下:
压力变送器为DBY-131型,其量程可调范围为0~1Mpa至0~3Mpa。
本系统中调整为0~1.28Mpa。
ADC0809的每个输入通道前对地接有一500Ω的电阻,用于将压力变送器送来的0~10mA电流信号转换为0~5V的电压信号,ADC0809八个输入通道的地址为FE00H~FE07H。
单片机执行写总线指令后启动A/D转换,通过查询EOC的状态判断转换是否结束。
执行读总线指令后将转换后的数据读入单片机内部。
被测压力与输出量关系:
压力(Mpa)
输出数字量
0
0.635
1.275
00000000
10000000
11111111
DBY-131压力变送器性能指标:
输出电流
0~10mADC
振幅
≤0.1mm(双向)
灵敏限
0.1%
供电电源
220V 50Hz
负载电阻
0~1.5kΩ
消耗功率
≤6W
来回变差
不大于基本误差的绝对值
结构形式
现场安装式
工作条件
环境温度:
-10~C~55~C
仪表重量
约15Kg
相对湿度
≤85%
仪表管结头螺纹
M20×1.5/M18×1.5
工作振动频率
≤25Hz
ADC0809技术指标
供电电源
单一+5V
模拟量输入范围
0-5V
分辨率
8位
最大不可调误差
<±1LSB
功耗
15mW
转换速度
取决于芯片的时钟频率
2.D/A转换及隔离输出电路
D/A转换器采用8位电压输出型D/A转换器DAC0832
DAC0832数/模转换器的内部,具有两极输入数据缓冲器和一个R-2RT型电阻网络。
即包括一个数据寄存器、DAC寄存器和D/A转换器三大部分。
数据寄存器和DAC寄存器实现两次缓冲,故在输出的同时,还可以接收一个数据,提高了转换速度。
当多芯片工作时,可用同步信号实现各模拟量的同时输出。
该器件采用先进的CMOS工艺,功耗低,输出漏电流误差小,主要特性有:
输出电流线性度可在满量程下调节;
转换时间为1μs;数据输入可采用双缓冲、单缓冲或直通方式;增益温度补偿为0.02%FS/℃;每次输入数字为8为二进数;功耗为20mW;
逻辑电平与TTL兼容;单一电源供电,可在5~15V内。
DAC0832可工作在单,双缓冲器方式。
单缓冲器方式即输入寄存器的信号和DAC寄存器的信号同时控制,使一个数据直接写入DAC寄存器。
这种方式适用于只有一路模拟量输出或几路模拟量不需要同步输出的系统;双缓冲器方式即输入寄存器的信号和DAC寄存器的信号分开控制,这种方式适用于几路模拟量需要同步输出的系统。
为了提高转换精度,可增加D/A转换器的位数。
隔离放大器采用ISO1002,ISO系列隔离放大器在同一芯片上提供了电源及信号的隔离,该混合集成芯片在同一芯片上集成了一个磁电耦合DC/DC变换电源及一个电流/电压输出的光电耦合隔离放大器。
该芯片除为内部放大电路供电外,还可向外部输出一路隔离电压,供外部电路扩展使用。
这一特点可方便地为外部电路基准电源及外部放大电路或其他用户应用电路供电。
输入及输出侧宽爬电距离及内部隔离措施使该芯片可提供3000VAC绝缘电压。
ISO系列产品使用非常方便,几乎无需外部元件,即可实现信号电流源长线传输(如图)。
3.显示电路
LED显示器是由发光二极管显示字段的显示器件,常使用七段LED。
这种显示块有共阴极与共阳极两种接法。
N位LED显示器有N根位选线和8×N根段选线。
根据显示方式不同,位选线与段选线的连接方法不同。
段选线控制字符选择,位选线控制显示器的亮暗。
LED显示方式有静态显示方式(因其占用I/O资源较多,故在位数较多时不采用)和动态显示方式,如八位LED动态显示电路只需要两个8位I/O口。
其中一个控制段选码,另一个控制位选码。
由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,八位LED只可能显示相同的字符,必须采用扫描显示方式。
即在每一瞬间只使某一位显示相应字符。
在此瞬间,段选控制I/O口输出相应字符段选码,位选控制I/O口在该显示位送入选通电平以保证该位显示相应字符。
如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。
段选、位选码每送一次后延时1~5ms。
本控制系统的采用8255A进行I/O扩展,而后接LED数码管电路加以显示,各数码管含义及电路如图所示:
4.数字控制器
本设计采用最小拍随动系统数字控制器
因为
所以
(T=0.5s)
所以
(式1-1)
由式1-1知,该数字控制器为最少拍无波纹随动系统控制。
假设输入为单位阶跃,取
,所以
又取采样周期T=0.5s,
得
(式1-2)
从而有
由差分方程得控制器输出为:
(式1-3)
最少拍随动系统的误差为:
其中
分为:
1)碱液设定值
与实际输出碱液
之差
2)水设定值
与实际输出水
之差
因为
=1.5
所以
为第k次采样时实际输出碱液或实际输出水
5.外围电路
此次设计采用AT89S51作为主控芯片,内有2K的RAM和60K的FLASH在程序运行中已经足够了不需扩展RAM了,扩展一片AT24C128,以保存一些断电时的RAM的值和一些报警信息值以便查询,AT24C128采用I2C总线进行传输数据方便且占用端口少,可用MSP149的I/O端口的一位即可实现。
键盘采用非编码键盘,设计5个按键,其中一个+键,一个-键,用于设定数据时的数据值的加和减,一个菜单键按一下进入设定模式,用+键-键查找需要设定的模式选项(模式有设定手自动控制,设定报警限度,),还有一个确定键,确定键按下后系统将按照设定值运行,和一个显示切换按键,以显示不同组的温度值。
显示部分采用数码管显示,采用两片4级联的共阳极数码管实现,用以显示温度值,通信端口采用单片机内部的串行异步通信模块用RS485标准通信,实现下位机到上位机的通信,以使数据传入计算机,通过计算机可实现联网,从而实现远程监控。
键盘:
采用独立式键盘中断法接口电路,,如有键闭合,则消除抖动,再判断键号,然后转入相应的键处理。
6.上下限报警
控制系统采用8255A进行I/O扩展,报警输入信号由PA口输入,由PB口输出以提示报警及正常工作状态,电路如图所示:
7.控制系统总电路
五.系统软件程序设计
1.主程序设计
#include
#include
#defineuncharunsignedchar
#defineunintunsignedint
#definePORT_4A8255XBYTE[0X4000]
#definePORT_4B8255XBYTE[0X4001]
#definePORT_4C8255XBYTE[0X4002]
#definePORT_4COM8255XBYTE[0X4003]//定义4口8255的地址端
#definePORT_0A8255XBYTE[0X0000]
#definePORT_0B8255XBYTE[0X0001]
#definePORT_0C8255XBYTE[0X0002]
#definePORT_0COM8255XBYTE[0X0003]//定义0口8255的地址端
#defineADC0809IN_0XBYTE[0x1000]
#defineADC0809IN_1XBYTE[0x1001]
#defineADC0809IN_2XBYTE[0x1002]
#defineCHANNELS3//3个通道,IN0接液位检测,INT1接水流量变送器信号,IN2接碱液流量变送器信号
#defineDAC0832BUFFXBYTE[0X2000]//DAC转换地址
#defineCD4051IN_1XBYTE[0X3001]//输出通道1
#defineCD4051IN_2XBYTE[0X3002]//输出通道2
#defineP1XBYTE[0x5000]//碱液控制手动操作地址
#defineP2XBYTE[0x6000]//水控制手动操作地址
#defineSet_waterDBYTE[0X60]//定义水设定值地址
#defineSet_lyeDBYTE[0X61]//定义碱液设定值地址
#defineSet_up_alarmDBYTE[0X62]//定义上限报警设定值地址
#defineSet_down_alarmDBYTE[0X63]//定义下限报警设定值地址
#defineReal_waterDBYTE[0x64]//定义水实际输出值地址
#defineReal_lyeDBYTE[0x65]//定义碱液实际输出值设定值地址
#defineHighDBYTE[0X66]//定义液位高度值地址
#defineWater_SampleDBYTE[0x67]//定义水采样值起始地址,采样6个值,67H~6CH为存放采样值地址,
#defineLye_SampleDBYTE[0x6D]//定义碱液采样值起始地址,采样6个值,6DH~72H为存放采样值地址
#defineHigh_SampleDBYTE[0x73]//定义液位采样值起始地址,采样6个值,73H~78H为存放采样值地址
uncharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F
0x6F};//共阴极LED显示数字0~9
unintT_count=0;//定义一个定时器定时0.5s计数单元
uncharsam_count=0;//定义一个采样数的单元
unchardata*Water_sam,*Lye_sam,*HIGH_sam;//定义分别指向水、碱液、液位采样值的指针
floatWater_control,Lye_control;//定义水和碱液控制器输出单元
bitADCheck(void);
bitDACheck(void);//定义A/D和D/A自检程序
voidset_init(void)//设定值初值子程