基于单片机的汽包液位检测系统设计.docx
《基于单片机的汽包液位检测系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的汽包液位检测系统设计.docx(20页珍藏版)》请在冰点文库上搜索。
基于单片机的汽包液位检测系统设计
《计算机控制技术》课程论文
基于单片机的汽包液位检测系统设计
院系:
计算机与信息工程学院
专业:
计算机科学与技术
姓名:
xx
班级:
控制xxx班
任课教师:
xxx
Xxxxxxxxx
2014年6月
基于单片机的汽包液位检测系统设计
摘要
汽包水位是影响锅炉安全运行的一个重要参数,汽包水位过高或者过低的后果都非常严重,因此对汽包水位必须进行严格控制。
PLC技术的快速发展使得PLC广泛应用于过程控制领域并极大地提高了控制系统性能,PLC已经成为当今自动控制领域不可缺少的重要设备。
本文从分析影响汽包水位的各种因素出发,重点分析了锅炉汽包水位的“假水位现象”,提出了锅炉汽包水位控制系统的三冲量控制方案。
按照工程整定的方法进行了PID参数整定,并进行了仿真研究。
根据控制要求和所设计的控制方案进行硬件选型以及系统的硬件设计,利用PLC编程实现控制算法进行系统的软件设计,最终完成PLC在锅炉汽包水位控制系统中应用。
关键词:
汽包水位三冲量控制PLCPID控制
第1章绪论
1.1应用环境简介
蒸汽锅炉是企业重要的动力设备,其任务是供给合格稳定的蒸汽产品,以满足负荷的需要。
锅炉是一个十分复杂的控制对象,为保证提供合格的蒸汽产品以适应负荷的需要,与其配套设计的控制系统必须满足各主要工艺参数的需要。
保持锅炉汽包水位在正常范围内是锅炉运行的一项重要的安全性能指标,由于负荷、燃烧状况及给水流量等因素的变化,汽包水位会经常发生变化[1]。
因此锅炉汽包水位应当根据设备的运行状况进行实时调节加以严格控制以保证锅炉的安全运行。
工业蒸汽锅炉汽包水位控制的任务是控制给水流量使其与蒸发量保持动态平衡,维持汽包水位在工艺允许的范围内,是保证锅炉安全生产运行的必要条件,锅炉汽包水位也是锅炉运行中一个重要的监控参数,它间接地体现了锅炉负荷和给水之间的平衡关系。
传统的控制方法是以各种分立器件的应用为基础,利用各种检测器件对被控参数实时进行检测并反馈给控制器件,再根据自动控制理论的有关算法完成相应的运算并驱动调节机构完成相应的动作,从而达到自动控制的目的。
但是这种控制方式受分立器件的性能影响大,系统各部分之间影响较大,自动化水平不高,控制效果并非十分理想,而且容易出现故障,不利于系统的长期安全、高效运行。
现在广泛使用的控制技术还有DCS集散控制系统[2],但由于DCS系统适合有多个控制回路同时工作的复杂系统,而且集散控制系统往往价格昂贵,对于像汽包水位这样的控制系统来说性价比太高,因此对于汽包水位控制系统来说并非理想的选择。
PLC是70年代发展起来的中大规模的控制器,是集CPU、RAM、ROM、I/O接口与中断系统于一体的器件[3],已经被广泛应用于机械制造、冶金、化工、能源、交通等各种行业。
随着计算机在操作系统、应用软件、通信能力上的飞速发展,大大增强了PLC通信能力,丰富了PLC编程软件和编程技巧,增强了PLC过程控制能力。
因此,无论是单机还是多机控制、生产流水线控制及过程控制都可以采用PLC技术。
PLC控制锅炉技术是近年来开发的一项新技术。
它是PLC软、硬件、自动控制、锅炉节能等几项技术紧密结合的产物。
作为锅炉控制装置,其主要任务是保证锅炉的安全、稳定、经济运行,减轻操作人员的劳动强度。
采用PLC控制技术,能实现对锅炉运行过程的自动检测、自动控制等多项功能。
它的被控量是汽包水位,而调节量则是汽包给水流量,通过对汽包水位的实时检测并进行反馈,PLC对反馈信号和给定信号进行比较,然后根据控制算法对二者的偏差进行相应的运算,运算结果输出给执行机构从而实现给水流量的调节,使汽包内部的物料达到动态平衡,汽包水位变化在允许范围之内。
第2章硬件电路设计
2.1硬件电路工作原理
该系统以AT89C51作为核心控制部件,外加传感器,一片A/D转换芯片和数码管来完成系统的预期任务,即液位的检测、显示和超限报警。
传感器实现液位信号到电压信号的转换,再由8位A/D转换芯片ADC0809将模拟信号转换为数字信号,实现液位信息的输入,AT89C51从ADC0809读取液位信息后进行数据处理和超限判断,随后将处理过的数据输出到数码管显示,设置最高液位和最低液位,若液位超限则由单片机报警。
2.2硬件电路设计
2.2.1系统总体设计框图
图2—1系统总体设计框图
2.2.2核心芯片的介绍
(1)单片机AT89C51
频率基准源计数器
中断控制并行I/O口串行输入串行输出
图2-28051单片机框图
(2)A/D转换器ADC0809
A/D转换芯片ADC0809为8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs左右。
1.
ADC0809的内部结构:
图2—3ADC0809的内部逻辑结构图
图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。
地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,
图2—4ADC0809的通道选择表图2—5ADC0809引脚图
2.ADC0809功能介绍:
分辨率为8位;最大不可调误差小于+_1LSB;单一+5V供电,模拟输入范围0~5V;具有锁存控制的8路模拟开关;可锁存三态输出,输出与TTL兼容;功耗为15mw;不必进行零点和满度调整;转换速度取决芯片的始终频率,它的时钟为10kHZ~1.2MHZ.当时钟为500KHZ,转换速度为100us。
3.ADC0809的原理
ADC0809是一款8位AD转换器,数据获取的关键部分是它的8位模/数转换器。
这个部分主要由N位逐次逼近寄存器SAR,D/A转换器,比较器,置数选择电路组成。
转换过程如下:
A.选选置数电路置SAR的最高位为“1”,其余位为“0”,经D/A转换器转换成的模拟电压Uo与输入模拟电压Ui在电压比较器进行比较,若Ui大于等于Uo,则保留最高位“1”,若Ui小于Uo,则最高位为“0”。
B.置次高位为“1”,低位全为“0”,按上述步骤进行转换,比较,判断。
C.重复此过程,直到确定SAR的最低位的值取“1”,还是“0”为止。
此时,SAR内容就是对应的输入模拟电压转换后的数字量。
(3)液压传感器
常用基本的液位传感器原理,分为差压式水位计,电极式水位计和电容式液压传感器
1.差压式水位计
根据液体静力学原理,通过测量变动水位和恒定水位之间的静压差,将差压值转换为水位值,再通过差压变送器将汽包水位转换为随水位连续变化的电信号,作为自动给水控制系统中的重要参数。
实际应用中差压式水位计存在的问题是:
测量锅炉汽包水位时,汽包压力变化使得“水位差压”的关系也发生变化,因而给测量带来很大的误差。
现在普遍采用具有汽包压力补偿作用的平衡容器测量方法,但其准确度仍受到很大限制。
因为设计计算的平衡容器补偿装置是按水位处于零水位情况下得出的,而运行中锅炉水位偏离零水位时,就会引起测量误差。
当蒸汽压力突然下降时,正压容器内的凝结水被蒸发掉还会导致仪表指示失常。
这些都给锅炉运行操作造成很大困难,尤其投入自动给水调节时将产生错误动作,导致锅炉事故发生。
差压式水位计比较适合于锅炉稳定运行时的水位测量,当运行参数变化很大时误差也就很大。
因此在实际运行中尽量避免在差压测量系统上工作(例如排污、校验时等)。
2.电极式水位计
利用饱和蒸汽与饱和蒸汽凝结水的电导率的差异,将非电量的锅炉水位变化转换为电信号,并由二次仪表远距离地显示水位。
电极式水位计基本上克服了汽包压力变化的影响,可用于锅炉启停及变参数运行中。
电极式水位计离汽包很近,电极至二次仪表全部是电气信号传递,所以这种仪表不仅迟延小而且误差小,不需要进行误差计算与调整,使得仪表的检修与校验大为简化。
3.电容式液压传感器
图3-1-2为传感器部分的结构原理图。
它主要是由细长的不锈钢管(半径为R1)、同轴绝缘导线(半径为R0)以及其被测液体共同构成的金属圆柱形电容器构成。
该传感器主要利用其两电极的覆盖面积随被测液体液位的变化而变化,从而引起对应电容量变化的关系进行液位测量
图2-6
由图2-6可知,当可测量液位H=0时,不锈钢管与同轴绝缘导线构成的金属圆柱形电容器之间存在电容C0,根据文献得到电容量为:
(1)
(1)式中,C0为电容量,单位为F;ε0为容器内气体的等效介电常数,单位为F/m;L为液位最大高度;R1为不锈钢管半径;R0为绝缘导线半径,单位为m。
当可测量液位为H时,不锈钢管与同轴绝缘电线之间存在电容CH:
(2)
(2)式中,ε为容器内液体的等效介电常数,单位为F/m。
因此,当传感器内液位由零增加到H时,其电容的变化量ΔC可由式
(1)和式
(2)得
(3)
由式(3)式可知,参数ε0,ε,R1,R0都是定值。
所以电容的变化量ΔC与液位变化量H呈近似线性关系。
因为参数ε0,ε,R1,R0,L都是定值,由式
(2)变形可得:
CH=a0+b0H(a0和b0为常数)(4)。
可见,传感器的电容量值CH的大小与电容器浸入液体的深度H成线性关系。
由此,只要测出电容值便能计算出水位。
2.3硬件电路各模块设计
2.3.1电源电路设计
图2—7电源电路
本系统供电为市电AC220v,经变压器TR1降为交流6v,经整流桥堆BR1整流后得到脉动直流电压6v,再经三端稳压器LM7805得到VCC(+5v),其中电解电容C4、C6、起滤波作用,C5、C7是旁路电容,起抑制干扰的作用。
2.3.2单片机最小系统电路设计
图2—8单片机最小系统电路
RST:
复位输入。
在单片机工作期间,当此引脚上出现连接2个机器周期的高电平时可实现复位操作。
复位电路除了具有上电复位功能外,还可通过复位键迫使RESET为高电平。
当系统通电时,RESET引脚获得高电平,随着电容的充电,RESET引脚的高电平将逐渐下降。
RESET的高电平只有保持足够的时间(2个机械周期),单片机才可以进行复位操作。
时钟电路采用12MHz的晶振,因为ADC0809的工作时钟最高允许值为12MHz,单片机ALE管脚2分频后为500KHz,可以作为ADC0809转换器的时钟信号CLK。
XTAL1:
反向放大振荡器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
XTAL1脚是内部反相放大器的输入端,而XTAL2脚是该放大器的输出端。
在晶体振荡中,晶体工作于基本响应模式,它作为一个感抗与外部电容形成并联谐振,使正反馈放大器维持震荡。
所选电容为瓷片电容22PF,因为22PF对于工作于1MHZ以上的晶振都能获得良好的效果。
2.3.3显示电路设计
图2—9显示电路
本设计由P1口控制七段发光二极管亮或灭,使用共阴极8段数码管,由图2.9可知,要使七段显示器的某一段亮,则应该是与该段相连的段选寄存器即P1口的某位线输出为1。
若使某段熄灭,则必须输出0。
例如要显示数字4。
则应使P1口的P1.7-P1.0输出为11100110B,若用一个字节表示该输出值,即字形代码为66H,依此类推,可以得到0—9一共10个十进制数的字形代码依次为3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。
本设计由P2.0,P2.1,P2.2,P2.3做位选,以控制哪一位七段数码管显示,例如,要求第一位数码管显示,则应设置P2.0为“1”,P2.1,P2.2,P2.3为“0”。
PNP型三极管9012起到增加驱动电流的目的。
电阻R12~R19控制通过数码管的电流,R20~R23控制通过三极管9012的电流,R4~R11为单片机P1口的上拉电阻。
2.3.4液位传感器的接口电路设计
图2—10电位器RV1与ADC0809接口
设计所选液位传感器能够根据不同的液位产生不同的电压,电压值大小范围为0.5~4.5V,且能够便于远距离传输。
由于芯片ADC0809的输入为0~5V的电压,仿真时需要将输入信号转换为电压信号,为此外接一电位器R=1kΩ,把电压转换成0~5V电压。
在设计中,把电位器的1,3脚接+5V电压和地线,调节滑钮2能够很好的得到0~5V电压,因此可以用电位器模拟液位传感器。
2.3.5AT89C51与ADC0809的接口电路设计
图2—11AT89C51与ADC0809的接口电路
ADC0809与AT89C51相连接,ADC0809中的START与ALE相连通,ALE——地址锁存允许信号,对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
当ALE上升沿时,ALE锁存数据,A/D转换截止,当ALE下降沿时,START低电平,ALE低电平,不锁存,A/D转换开始。
P2.4,P2.5,P2.6,P2.7分别控制CLK,START和ALE,EOC,OE信号,其控制A/D转换的开始和截止。
CLK使用AT89C51内部时钟信号。
ADDA,ADDB,ADDC相连通接地,信号输入为000,表示输入通道选择为IN0口。
8位数据信号线2-1~2-8与单片机的P1.0~P1.7相连,实现ADC0809与AT89C51的数据传输。
Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(Vref(+)=+5V,Vref(-)=0V)。
2.3.6报警电路设计
图2—12报警电路
本电路的P3.0,P3.1作为高位和低位的报警控制线,通过设置高低液位报警线来实现报警功能。
如果当前液位高于设置的高位报警线时,P3.0置低电平,高位报警灯亮。
如果当前液位低于于设置的低位报警线时,P3.1置低电平,低位报警灯亮。
如果当前液位低于设置的高位液位且高于低位液位时,高位报警灯和低位报警灯灭。
第3章软件设计
3.1AT89C51的I/O口应用
AT89C51共有P0,P1,P2,P3,4个8位的并行双向I/O口。
各个I/O口实现不同的功能,详细情况如下。
3.1.1P0口的信号输入
在程序中将P0口做为段选口使用,显示十位数字的段选信号,下例为显示十位数字的指令:
MOVDPTR,#TABLE;取段码表首址。
MOVA,LED_2;取显示的十位数字。
MOVCA,@A+DPTR;取段码。
MOVP0,A;输出段码的显示。
TABLE:
DB3FH,06H,5BH,4FH,66H;共阴极数码管表
DB6DH,7DH,07H,7FH,6FH
3.1.2P1口的信号输入
在程序中将P0口作为输入口,用来读A/D转换值。
设计中,要求选通通道0,并把转化后得到数字量存入内部RAM的35H单元中,下例为把转化后的数字量存入内部RAM中的指令:
CLRP2.5,;SRART置0,
MOVA,P1;
MOVR7,A
MOV35H,R7
3.1.3P2口的信号输入
P2.0,P2.1,P2.2,P2.3做数码管的位选信号用,要哪个数码管亮,则置相应位高电平,就可将其选中。
例如要求显示第一个数码管,端口设置指令为:
CLRP2.0
CLRP2.1
CLRP2.2
CLRP2.3
P2.4,P2.5,P2.6,P2.7作为通用I/O口使用,与ADC0809连接。
P2.4作为A/D转换的CLK信号,P2.5作为开始A/D转换的启动信号,P2.6作为查询A/D转换是否完成的判断信号,P2.7作为输出A/D转换的数字量允许信号。
下例为P2.4,P2.5,P2.6,P2.7作为通用I/O口使用的指令:
CLOCKBITP2.4
STBITP2.5
EOCBITP2.6
OEBITP2.7
3.1.4P3口的信号输入
P3.0、P3.1、P3.7作为通用I/O口使用,与LED灯和蜂鸣器相连,输出报警信号,如果当前液位高于设置的高位报警线时,P3.0置低电平,高位报警灯亮。
如果当前液位低于于设置的低位报警线时,P3.1置低电平,低位报警灯亮。
如果当前液位低于设置的高位液位且高于低位液位时,高位报警灯和低位报警灯灭。
H_ALMBITP3.0
L_ALMBITP3.1
LALM:
CLRL_ALM;低位报警
SETBTR1
CLRFLAG
LJMPPROC
HALM:
CLRH_ALM;高位报警
SETBTR1
SETBFLAG
LJMPPROC
3.2软件模块设计
3.2.1主程序的设计
系统分为初始化,A/D转换,十进制转换,LED显示,电机控制和报警电路。
因此整个程序需要包含上述六个子程序。
其中,LED_0定义地址30H,以存放显示十进制的小数点后十位数字。
LED_1定义地址31H,以存放显示十进制的小数点后个位数字。
LED_2定义地址32H,以存放显示十进制的个位数字。
ADC定义地址35H,以存放经A/D转换后的数字。
流程图如下:
图3—1主程序流程图
3.2.2A/D转换的设计
ADC0809芯片实现A/D转换的时间为0.1ms左右,A/D转换后得到的数字量应及时传送到单片机进行处理。
OE——输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST。
CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号。
EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
CLOCKBITP2.4
STBITP2.5
EOCBITP2.6
OEBITP2.7
CLRST
SETBST
CLRST;启动转换
JNBEOC,$;等待输出结果
SETBOE;允许输出
MOVADC,P1;读取A/D转换结果
CLROE;关闭输出
MOVA,ADC;将A/D转换结果转换成BCD码
图3—2A/D转换程序流程图
3.2.3显示子程序的设计
设计中采用动态扫描法,实现四位数码管的数值显示,并显示小数点。
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低
通过逐次选通P2.0,P2.1,P2.2,P2.3依次送十进制的相应字段码给P1口,并延时5ms完成显示。
显示程序:
MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVLED_3,#00H
MOVDPTR,#TABLE;送段码表首地址
DISP:
MOVA,LED_2
MOVCA,@A+DPTR
ORLA,#80H;显示小数点
MOVBUFFER+2,A;送显示缓存
CLRP2.1
MOVP0,A
LCALLDELAY
SETBP2.1
SETBP2.0
MOVA,LED_1
MOVCA,@A+DPTR
CLRP2.0
MOVP0,A
LCALLDELAY
RET
DELAY:
MOVR6,#10;延时5ms
图3—3显示子程序流程图
3.2.4报警子程序的设计
本电路的P3.0,P3.1作为高位和低位的报警控制线,通过设置高低液位报警线来实现报警功能。
本设计要求为:
液位在小于1.5米时低位报警灯亮进行低位报警,液位在1.5~4米时灯都不亮,液位在大于4米时高位报警灯亮进行高位报警。
报警程序:
MOVH_TEMP,#153;204/255=0.6高于80%报警
MOVL_TEMP,#77;77/255=0.3低于30%报警
MOVA,ADC;将A/D转换结果转换成BCD码
SUBBA,L_TEMP;判断是否低于下限
JCLALM
MOVA,H_TEMP
MOVR0,ADC
SUBBA,R0;判断是否高于上限
JCHALM
CLRTR1
LJMPPROC
LALM:
CLRL_ALM;低位报警
SETBTR1
CLRFLAG
LJMPPROC
HALM:
CLRH_ALM;高位报警
SETBTR1
SETBFLAG
LJMPPROC
图3—4报警子程序流程图
第4章结论
在本次毕业设计中完成了电路原理图设计,PCB板设计,电路焊接,程序的设计,软、硬件的联机调试。
硬件电路的各个模块,包括单片机最小系统电路,A/D转换电路,数码管显示电路,报警电路等都能够正常工作。
在与软件进行联机调试时,通过改变电位器阻值的变化来模拟液位的变化,液位数值在数码管上显示,液位在小于1.5米时低位报警灯报警,液位在1.5米到4.0米时不报警,液位大于4.0米时高位报警灯报警。
芯片ADC0809的转换精度为1/256,所以本电路的最小分辨率为1/256V。
本次毕业设计完成了任务书下达的所有任务,实现了液位的检测及液位的显示,并实现了超限报警。
显示液位范围为0~5m,显示的最小分辨率为1/256V。
它是一个可以应用于一般工业的液位检测及显示系统的设计方案,测量范围和测量精度满足课程设计需要。
参考文献
【1】王再英等,过程控制与仪表,机械工业出版社,2006
【2】潘新民,王燕芳,微型计算机控制技术,高等教育出版社,2001
【3】李建忠,单片机原理及应用,西安电子科技大学出版社,2008
【4】杨居义,单片机课程设计指导,清华大学出版社,2009
【5】王锦标,方崇智,过程计算机控制,清华大学出版社,1992