基于语句表编程的温度控制程序设计.docx
《基于语句表编程的温度控制程序设计.docx》由会员分享,可在线阅读,更多相关《基于语句表编程的温度控制程序设计.docx(51页珍藏版)》请在冰点文库上搜索。
![基于语句表编程的温度控制程序设计.docx](https://file1.bingdoc.com/fileroot1/2023-7/2/10088328-62ed-4684-aa26-baa74b64cd93/10088328-62ed-4684-aa26-baa74b64cd931.gif)
基于语句表编程的温度控制程序设计
提供全套毕业论文,各专业都有
南阳理工学院
本科生毕业设计(论文)
学院:
电子与电气工程学院
专业:
电气工程及其自动化
学生:
指导教师:
完成日期2013年5月
南阳理工学院本科生毕业设计(论文)
基于语句表编程的温度控制程序设计
DesignofTemperatureControlProgramBasedonInstruction
ListProgramming
总计:
31页
表格:
4个
插图:
27幅
南阳理工学院本科毕业设计(论文)
基于语句表编程的温度控制程序设计
DesignofTemperatureControlProgramBasedonInstruction
ListProgramming
学院:
电子与电气工程学院
专业:
电气工程及其自动化
学生姓名:
学号:
指导教师(职称):
评阅教师:
完成日期:
南阳理工学院
NanyangInstituteofTechnology
基于语句表编程的温度控制程序设计
电气工程及其自动化专业谢志强
[摘要]本课题在S7-300PLC中用语句表编程调用FB41PID模块和FB43PWM模块对模拟工业对象电加热锅炉的水温进行控制。
设计过程分别进行了定值控温设计和对升温曲线跟踪的程序控温设计。
分别使用P、PI、PD、PID等规律进行控制测试,在对监控曲线对比分析的基础上,得到加入控制带和输出死区辅助算法的定值控温PID调节规律,以及加入变参数的拐点控制的程序控温PID调节规律。
这两种规律有效地克服了传统PID控制器在温控过程中因温控惯性和积分饱和而出现的滞后与超调现象并使系统调节时间变短。
采用语句表编程,大大提高了编程效率,和梯形图编程相比,源程序短,程序执行效率高。
[关键词]语句表;温度控制;控制带;输出死区;钝角拐点
DesignofTemperatureControlProgramBasedonInstruction
ListProgramming
ElectricalEngineeringandAutomationSpecialtyXIEZhi-qiang
Abstract:
ThedesignusetheinstructionlistprogrammingofSiemensS7-300PLC,callingFB41PIDmodulesandFB43PWMmodulestocontrolthesimulatedindustrialobjectaboutelectricheatingboilerwatertemperature.Thedesignprocessincludesthedesignofconstantvaluetemperaturecontrolandtheheatingcurvetrackingprogramtemperaturecontrol.WiththecontrolstudyusingthelawofPPIPDandPID,andbasedonthecomparativeanalysisofmonitoringcurves,wecangettherulesofconstantvaluecontrolPIDregulationwhichaddedthecontrol-zoneandoutputdead-zoneauxiliaryalgorithm,andprogramtemperaturecontrolPIDregulationwhichaddedtheobtuseangleinflectionpointcontrolofvariableparameters.WhenthetraditionalPIDcontrollerintheprocessoftemperaturecontrol,bothoftheselawseffectivelyovercomethelagandovershootingphenomenonarisingfromthetemperatureinertandintegralsaturation.Andinheattemperatureovershoot,itachievedtheobtuseanglecontroleffectofinflectionpointwhichisnon-overshottingandnolesstemperatureandmakethesystemadjustingtimeshorter.Wecangreatlyimprovetheefficiencyusingthestatementslistprogramming.Comparedwiththetheladderdiagramprogramming,theInstructionlistprogramisshort,theprogramexecutionisefficient.
Keywords:
Instructionlist;temperaturecontrol;control-zone;outputdead-zone;obtuseangleinflectionpoint
目 录
1引言
1.1课题的意义
温度是工业对象中主要的被控对象之一。
任何物理变化和化学反应过程都与温度密切相关。
在科学研究和生产实践的诸多领域中,温度控制占有着极为重要的地位,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足轻重的作用。
对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方案也有所不同。
例如冶金、机械、食品、化工等各类工业生产中广泛使用的各种加热炉、热处理炉、反应炉等。
如果温度控制系统有控制精度低、超调量大等缺点,就很难生产出高质量的产品,但是对于积分温度对象,由于它的积分特点,使得它的控制易出现欠条或超调,且超调后难以消除稳态误差[1]。
国内还没有一套较好的针对积分温度对象的控制规律和参数整定技术。
一般的参数整定技术如临界比例度和继电反馈法适合于惯性对象,而不适合积分对象。
语句表(InstructionList,IL)是用助记符来表达PLC的各种操作功能的,类似于计算机的汇编语言的文本语言,指令通过语句表程序使用PLC内存的累加器来执行,多条指令组成一个程序段,一个复杂的控制功能是用较长的语句表来描述,这种语言比较抽象,不如梯形图和功能块图那样形象、直观,但可以编写梯形图和功能块图无法实现的程序,语句表比较适合经验丰富的程序员使用,其中ACC累加器和标志位操作的存在提高了工作效率但却使编程变得较困难[2]。
所以语句表编程是一个自动化工程师应该掌握的一门设计技术。
1.2本课题包含的主要工作
本课题以过程控制实验室自制过程控制实验装置为平台,设计了锅炉温度加热控制系统。
本课题介绍了控制系统的主要硬件以及控制电路的设计,介绍了FB41“CONT_C”连续控制模块、FB43“PULSEGEN”脉冲输出模块的工作原理,以及实现基于语句表编程的温控程序的编写。
并对温度对象进行数学模型的测试,并对传统P、PI、PD、PID的控制规律和本设改进后的PID控制规律进行控制。
结果表明改进后的PID的控制有效的克服了传统PID控制器在温控过程中因温控惯性和积分饱和而出现的滞后与超调现象。
程序控温过程的中穿越幅度小,在温变拐点处实现了既无超调又无欠温的钝角拐点的控制效果。
本课题共分五章,内容组织如下:
第1章主要介绍了课题研究的背景和意义。
第2章介绍了控制系统的主要硬件,控制系统的结构和配置,以及传感变送和加热回路的设计。
第3章介绍了项目软件SIMATICSTEP7和SIMATICWinCC及其组态。
第4章介绍了FB41“CONT_C”连续控制器和FB43“PULSEGEN”脉冲发生器的工作原理、介绍了主程序、中断服务和初始化程序的编写,其中主程序编写又包含程序控温算法的设计。
第5章介绍了温度对象数学模型以及对控制规律进行测试和总结。
2锅炉温控系统硬件设计
2.1硬件介绍
2.1.1传感器
控制系统的传感器是J型热电偶,型号为WRF-120/Ⅱ250,它是铁-铜镍热电偶,它的正极(JP)的化学成分为纯铁,负极(JN)的化学成分为铜镍合金。
它具有线性度好,热电动势较大,灵敏度较高,稳定性和均匀性较好,J型热电偶的参数如表1所示。
表1J型热电偶的参数表
温度范围
安装方式
接线盒
精度等级
插入深度
保护套直径
防护套材料
0-750℃
无固定方式
防溅式
Ⅱ
250mm
16mm
不锈钢
2.1.2变送器
AI-818是常用又很普遍的智能仪表,可以处理温度、压力、流量、液位、湿度。
本课题中被用作变送器,它把接收热电偶0-20mV的电势信号转变为标准电流信号送给SM33模拟量输入模块。
在仪表参数设置方面,控制方式CtrL=0,采用位式调节(ON/OFF),表示适用于要求不高的场合进行控制时采用。
输出周期Ctl=3,采用SSR、可控硅、电流输出时的建议设置。
输入规格Sn=5,表示仪表接收的是J型热电偶0-20mV电压信号。
小数点位置dIP=1,线性输入时,定义的小数点位置,表示温度显示分钱率为0.1℃。
输入下线显示值dIL=0.0,对外给定、变送输出均有效,用于定义线性输入信号下限刻度。
输入上线显示值dIH=100.0,用于定义线性输入信号上限刻度,与dIL配合使用。
输出方式OPt=4,表示4-20mA线性限流输出,主输出模块上安装线性电流输出模块[3]。
2.1.3S7-300PLC
SIMATICS7-300是模块化小型PLC系统,大范围的各种功能模块可以非常好地满足和适应自动控制任务,各种单独的模块之间也可进行广泛组合以用于扩展。
由于S7-300简单实用的分散式结构和多界面网络能力,使得应用十分灵活[4]。
(1)中央处理单元(CPU)
CPU模块为CPU314,订货号为6ES7314-1AE04-0AB0。
技术数据如表2所示:
表2CUP314的技术数据表
额定电压
输入电流
功率损失
工作存储器
装载存储器
缓冲
带电池
DC24V
1000ma
8W
24KB
40KB(集成)
存在
是
(2)信号模块(SM)
信号模块是数字量输入、输出模块和模拟量输入、输出模块的总称,它们使不同的过程信号电压或电流与PL内部的信号电平匹配。
信号模块主要有数字量输入模块SM321和数字量输出模块SM322,模拟量输入模块SM331和模拟量输出模块SM332。
其中模拟量输入模块可以输入热电阻、热电偶、DC4-20mA和DC0-10V等多种不同类型和不同量程的模拟信号。
本次设计的控制系统选用的有以下两种SM模块:
数字量输出模块SM322,16点输出,点订货号:
6ES7322-1BH01-0AA0。
模拟量输入模块SM331,订货号为:
6ES7331-7KF02-0AB0,是具有8个模拟量输入通道,12位A/D转换精度。
2.2控制电路设计
2.2.1控制回路设计
本课题实现的是对模拟工业对象电加热锅炉水温的控制。
其过程如图1所示,控制系统回路的反馈通道中使用J型热电偶检测现场电加热锅炉水温得到电压0-20mV信号,送入AI-818智能仪表,然后变送4-20mA标准直流电流信号,SM331模拟量输入通道检测变送的标准直流电流信号,经A/D转换成对应的数字量(0-27648)送入S7-300CPU参与FB41“CONT_C”连续控制器进行PID运算,输出0.0-100.0的浮点数据,送入FB43“PULSEGEN”脉冲发生器进行单极性二级控制,得到脉冲信号来控制继电器的通断,实现对电加热锅炉的水温的控制。
图1锅炉水温控制系统的框图
2.2.2加热主回路的设计
加热主回路的设计主要是在控制系统硬件已经确定的基础上,对加热回路线径进行选用。
其中回路电流I的计算公式为
(1)
式1中,I为负载电流(A),P为功率(W),U为相电压(V),cosφ为功率因数。
(1)加热回路电流I估算
由于锅炉为功率为1.5KW的加热丝进行电加热,为纯阻性负载,所以功率因数cosφ为1,所以加热回路电流I为
(2)
(2)导线的选用
表3铜导线载流量与截面积之间的关系表
导线截面积(
)
1
1.5
2.5
4
6
10
16
25
载流是截面倍数
9
8
7
6
5
4
载流量(A)
9
14
23
32
42
60
80
100
220V电功率(W)
1.5kw
2.5kw
4.0kw
6.0kw
7.0kw
11.0kw
15.0kw
18.0kw
380V电功率(W)
2.0kw
3.5kw
6.0kw
8.5kw
11.0kw
15.5kw
21.0kw
26.0kw
由表3铜导线载流量与截面积之间的关系可知道,加热回路导线选用BVV2*1(载流量为A)铜芯聚氯已烯绝缘聚氯已烯护套两芯每芯截面积为1
;则锅炉水温控制系统的制回路接线图如图2所示。
图2锅炉水温控制系统的制回路接线图
3软件设计和组态
3.1SIMATICSTEP7
习惯上将STEP7称为编程软件,西门子称之为标准工具。
实际上STEP7的功能已经远远地超过了编程软件的范畴。
STEP7对于整个控制系统(包括PLC、远程I/O、HMI、驱动装置和通信网络等)进行组态、编程和监控。
在本次设计中的参数设置:
CPU接口类型为MPI,地址为2,传输率为18.7Kbps;SM33模块测量类型为4DMU,测量范围为4-20mA;硬件组态如图3所示。
图3PLC硬件组态画面
3.2SIMATICWinCC
在设计思想上,SIMATICWinCC秉承西门子公司博大精深的企业文化理念,性能最全面、技术最先进、系统最开放的HMI/SCADA软件是WinCC开发者的追求。
WinCC是按世界范围内使用的系统进行设计的,因此从一开始就适合于世界上各主要制造生产商生产的控制系统,如A-B,Modicon,GE等,并且通讯驱动程序的种类还在不断地增加。
通过OPC的方式,WinCC还可以与更多的第三方控制器进行通讯[5]。
WinCC的变量系统是变量管理器。
WinCC使用变量管理器来组态变量。
变量管理器对项目所使用的变量和通讯驱动程序进行管理。
WinCC与自动化控制系统间的通讯依靠通讯驱动程序来实现。
本次设计所建立的变量组(部分变量截图)如图4所示。
图4变量管理器建立的变量组图
变量记录也称为变量归档或者过程值归档,主要是用于获取,处理和记录工业设备的过程数据。
变量记录可以降低危险,对错误状态进行早期检查,从而提高生产力和产品质量,优化维护周期等。
组态的过程值归档如图5所示。
图5过程值归档组态图
在WinCC中,通过构建与实际生产过程相关联的过程画面,可以实时而形象地反映出当前的生产状态,从而可以更加直观地对产品的生产流程进行监控和管理,而这一过程中的画面组态主要是通过图形编辑器来实现的[6]。
图形编辑器是用于创建过程画面并使其动态的编辑器,图6为WinCC组态的过程画面,包括趋势画面、过程值归档、I/O域和控制按钮的组态。
图6WinCC过程画面的组态
4控制程序的设计
4.1功能块简介
4.1.1FB41“CONT_C”连续控制器
(1)PID控制器的数字化
PID调节器的传递函数为
(3)
模拟量PID控制器的输出表达式为
(4)
式4中,控制器的输入量(误差信号)ev(t)=sp(t)-pv(t);sp(t)为设定值;pv(t)为过程变量(反馈值);mv(t)是控制器的输出信号;
为比例系数;
和
分别为积分时间常数和微分时间常数;M是积分部分的初始值。
等号右边的3项分别是比例、积分、微分部分。
如果取其中的一项、两项或三项,可以组成P、PI、PD或PID调节器。
需要较好的动态品质和较高的稳态精度时,可以选用PI控制方式;若控制对象的惯性滞后较大时,应选择PID控制方式[7]。
对积分部分的近似处理,执行PID控制功能块的时间间隔(PID控制的采样周期)为
,第n次PID运算时的时间为
,因为PID程序运行时为
常数,可以将
时PID控制器的输入量
简写为ev(n),输出量
简写为mv(n)。
式子(4)中的积分对应与图7中曲线与坐标轴包围的面积,一般用矩形积分来近似精确积分,每块矩形的面积为
。
为了书写方便将
简写为ev(j),各块矩形面积为
。
当
较小时,积分的误差不大。
图7积分的近似运算
式(4)中的微分用差分方程来近似,即令
(5)
式5中,ev(n-1)是第n-1次采样的误差值,将积分和微分的近似表达式带入表达式中,第n次采样控制器的输出为
(6)
(2)FB41“CONT_C”连续控制模块
S7-300/400为用户提供了功能强大、使用简单方便的模拟量闭环控制功能。
除了专用的闭环控制模块,S7-300/400也可以用PID控制功能块来实现PID控制。
其中FB41“CONT_C”连续控制器的输出为连续变量。
可以用其作为独立的PID恒值控制器,其功能基于模拟信号采样控制器的PID控制算法,若需要的话,可以用脉冲发生器进行扩展,产生脉冲宽度调制的输出信号,来控制比例执行机构的二级或三级控制器。
PID控制的系统功能块的参数很多,可以通过功能块的框图(见图8)学习和理解这些参数。
FB41“CONT_C”是采用位置式PID算法思想设计的控制软件模块。
FB4的算法设计完善,使用灵活。
它的比例运算、积分运算(INT)和微商运算(DIF)是并行连接的,可以单独激活或取消。
这就允许组态成P、PI、PD和PID调节器。
它的积分分量可以清零、保持,这就方便实现抗积分饱和或积分分离。
微分分量可以直接输出,也可以延迟衰减输出[8]。
图8FB41“CONT_C”方框图
4.1.2FB43“PULSEGEN”脉冲发生器
图9PLC模拟量闭环控制系统框图
FB43“PULSEGEN”脉冲发生器与PID调节器配合使用(见图9),用脉冲输出来控制比例执行机构。
该功能一般与连续控制器“CONT_C”一起使用,用FB43可以构建脉冲宽度调制的二级(twostep)或三级(threestep)PID控制器。
PLC模拟量闭环控制系统框图。
FB43通过调制脉冲宽度,将输入变量INV(即PID控制器的输出量LMN)转换为具有恒定周期的脉冲列,该恒定周期用周期时间PER_TM来设置,PER_TM应与“CONT_C”的采样周期CYCLE相同。
每个周期输出的脉冲宽度与输入变量INV成正比,PER_TM与FB43的处理周期是不同的,“PER_TM”是FB43处理周期的若干倍(见图10)。
每个PER_TM周期调用FB43的次数反映了脉冲宽度的精度。
图10脉宽调制波形图
脉冲宽度调制简称为脉宽调制,设每个PER_TM周期调用10次FB43,如果输入变量为最大值的30%,则前3次调用(10次调用的30%)时脉冲输出QPOS_P为1状态。
其余7次调用(10次调用的70%)时脉冲输出QPOS_P为0状态。
在这个例子中,“采样比率”(调用FB41与FB43次数之比)为1:
10,因此控制值得精度为10%,即输入值INV只能映射为以10%为量化单位的脉冲输出QPOS_P的占空比。
在调用FB41的一个周期内增加调用FB43的次数,可以提高精度。
例如调用FB43的次数增加为100次时,控制值的分辨率将达到1%,一般分辨率不大于5%为佳。
本课题控制值的分辨率为1%。
4.2控温程序的编写
4.2.1主程序OB1的编写
语句表写的控制程序中,在OB1编写的程序中加入使控制系统既可以进行定值控温又可以进行温度跟随曲线动态产生的恒温、升温、恒温的程序控温过程,同时又可以进行定值控温与程序控温的自由切换,同时加入拐点控制作用的触发条件。
对于程序控温来说,STEP7中并无相应可用的功能块,所以在温度控制程序中编写一个来实现温度曲线随时间动态产生的的功能块。
图11为温度-时间曲线设置格式,由图可以看出,X轴即时间轴,根据设定曲线的段数将X轴划分为不同时间长度的时间段。
系统功能SFC1(READ_CLK)可以读出CPU的系统时间,所以在编写程序时调用一次SFC1(READ_CLK)读取系统时间作为程序控温程序运行时的起始时刻(格式DT),同时再调用一个SFC1(READ_CLK)读取系统当前的时刻(格式DT),而功能FC34可以将两个格式DT为时间值相减得到TIME格式的时间,可以把这个初值为零的连续的时间作为X轴的时间T。
这样则对于AB段方程的求解,设定点
和设定点
的坐标便是已知的,根据方程两点式求法,可计算AB段的一线方程为
(7)
而直线段BC、CD的方程同样方法得出。
图11设定值曲线示意图
编写曲线控温程序时,由于功能FC没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区,又由于AB、BC、CD段计算公式相同,为了简化设计过程、增加程序的可读性,计算公式在功能FC中编写,在FB中进行多次调用功能FC1,来实现对AB、BC、CD段控温曲线的计算。
程序控温算法流程图如图12所示。
图12程序控温算法流程图
如图13所示为语句表下调用的程序控温算法功能块FB1和功能FC1,FB1输入参数包括START、tm1、tm2、tm3、T1、T2、T3、T4,分别表示启动该块、各段的运行时间(以ms为时间单位)和温度设定点(浮点格式)。
本算法同样适用于任何其他相关控制系统,若如控制要求中有更多段升温、恒温或降温过程,只需要在FB1在进行多次调用FC1即可。
同时为了增加该块的可利用性,在该块的输出参数中除了有对各段进行线性计算所的结果的输出参数T_sp外,还有系统运行时间输出参数T_time(分钟格式)和各控温段运行时间结束标志输出参数x1、x2、x3,可以分别用来在上位机上显示程序控温运行的时间长度和实现在任意段运行结束时温控程序的结束。
图13程序控温功能块FB1和功能FC1
主程序OB1的流程图如图14。
图14主程序OB1流程图
4.2.2中断服务程序OB35的编写
在通过脉宽调制来控制执行机构的通断时,需要通过中断组织块OB35周期性中断过程来实现PID算法模块和PWM算法模块的时序配合[9]。
对于PID算法和PWM算法,可以直接调用SIEMENSSTEP7平台中有专用的PWM算法模块FB43“PULSEGEN”脉冲发生器和PID算法模块FB41“CONT_C”连续控制器,但是对于FB41“CONT_C”连续控制器来说