基于S7-300的工业锅炉PID控制
2011-05-11赵桂清
赵桂清
(聊城大学 东昌学院,聊城 252000)
基于S7-300的工业锅炉PID控制
赵桂清
(聊城大学 东昌学院,聊城 252000)
0 引言
锅炉能够提供热源,还可以作为动力源,为达到要求并保证锅炉本体的安全、经济的运行,锅炉的控制系统就应具备很好的自动检测功能、程序控制功能、保护功能等。考虑锅炉工作系统是个复杂的生产系统,扰动源又比较多,为了保证供给外界达标的蒸汽并满足负荷的运转,对其工作过程中主要工艺参数必须实行严格的控制,在此论述基于S7-300的PID控制模块调节设计。
1 SIMATIC S7-300简介
在各种应用场合上,SIMATIC S7-300通用型可编程控制器均能适合自动化工程,它是一种中小型模块化的PLC控制系统。CPU可以多种性能递增,并且有丰富的带有许多方便用户功能的加扩展模块,用户就很容易的可以根据实际应用需要选择合适的功能模块。如果当前的任务规模需扩大并且变得更加复杂时,可以随时调用附加模块对PLC进行需求扩展。在我国,S7-300已经成为各种控制任务方便又经济的解决方案,这是因为其具有模块化、无排风扇结构、易于实现分布、易于用户掌握等优点,能很好的满足从小规模到中等规模的不同层次的控制需求[2]。
2 STEP7简介
西门子系列PLC的CPU中运行有两个程序,一个操作系统程序另一个是用户程序。期中的用户程序是由用户在STEP7中生成的,然后将其下载到CPU[1]。Step 7是用于SIMATIC可编程逻辑控制器组态和编程的标准软件包。通过Step7,用户能够进行系统配置和程序的编制与调试,也可以进行在线诊断PLC的硬件配置状态,还可以控制PLC的通道状态和PLC的运行状态等。
其(Step7)用户程序允许线性化编程、结构化编程和模块化编程。此处的线性化编程是指整个可调用程序均都写在OB1模块中,这种方法仅在编写简单的程序并且只在需要较少存储区域时才可以使用。目前普遍应用的结构化编程是将复杂的自动化任务分解成可以反映过程的工艺、功能或能够反复使用的小任务.并且将对应的程序分别编在不同的程序模块(OB,FC或FB中)[2]中。
根据上述分析及实际编程需要本文采用的是结构化编程模式,能够实现对单一程序部分进行标准化,简化程序组织,使程序修改变得更加容易,这样,对于大规模的程序更容易被理解。在该编程模式中所使用的各程序块的功能叙述为:
OBl:主循环程序,主要用来调用每个子程序,每个子程序中的报警操作同时也放在这里。
FC9:主要用来控制整个锅炉在工作过程中的连锁动作,其中的FC5功能块进行的星-三角启动的操作也放在该程序中调用。
FC2:用于对各模拟信号的转换、修正和比较,各控制量相应的上、下限标志也在该程序中设置。
FC8:实现对蒸汽流量的计算,其执行过程中在对于饱和蒸汽的密度计算时调用FC7。
FC4:用于调节水位、转速等,其中需要调用子程序FC3用于模拟量限幅。
FB41(CONT_C):做为PID控制功能块。
FB43(PULSEGEN):做为脉冲输出功能块。
FB50(TUN_EC):做为PID参数在线整定功能块和FC1(LP_SCHED)的回路调度功能[3]。
在整个程序设计中,对水位、转速等进行调节时,为FB41分别分配了DBl-DB5和DBl4共六个背景数据块,同时,也为FB43分别分配了DB6和DBl5共两个背景数据块,同样的为FB50也分配了DB50一个背景数据块。其中在背景数据块DB7、DB8、DB9中,分别存放着蒸汽流量计的压力与密度对照表,对于其它的一些参数也都一一存放在不同的数据块中。
比如,学完比例的知识后,教师为学生留下课后作业,将学校的平面示意图画出来。为了将这个作业完成,不仅要使用到比例的知识,还要学生自己测量学校各个部位的长宽,在图纸上清晰地标注出各部位的位置。这种课后作业紧密联系学生生活实际,囊括课堂所学的数学知识,还富有趣味性,激发出学生学习数学思想的积极性。待学生将学校平面图画出来后,教师可以让学生通过课余时间制作沙盘,再次将平面图立体展示出来,学生可以经历思维过渡流程,让学生接触到数学的本质,实现学生全方位发展的目的。
图1 FB41(CONT_C)控制框图
3 PID控制模块设计
在STEP7的标准程序库中提供了PID控制功能块。以误差e和误差变化量ec作为控制器的输入变量,以满足不同e和ec对控制器参数的不同要求而产生的。在锅炉汽包水位控制系统中,输入变量选择为汽包水位的偏差值和偏差值的变化量ec,输出变量选择为PID参数的校正值 ,即Δkp,Δki和Δkdd。
利用STEP7进行项目的组态与编程,通过采用语句表编程方式编程实现PID控制算法。采集误差信号和误差变化量信号,将其转化到语言变量的区域,采用离线计算的方式将算法规则制成数据查询表,通过在线的方式查询控制量输出,将校正的PID参数值与基准值相加,获得瞬时的PID参数值,最后进行相应的PID控制运算,运算所得控制量输入到控制对象执行器。在PLC中,使用FB功能块和DB数据块来实现PID控制算法。只要在程序中调用PID功能块,它相当于程序中的一个子程序。PID功能块使用的一些数据和参数,可以在它的背景数据块中进行设置或修改,只要对PID功能块正确组态,就可完成一个回路的PID控制。在单闭环PID控制的基础上,可以组合实现串级控制和前馈控制等复杂回路控制算法。
在Step7中集成了PID调节功能块FB41、FB42和脉冲转换功能块FB43。FB41称为连续控制的PID,用于控制连续变化的模拟量,与FB42的差别在于后者是离散型的,同时还提供了功能块FB50(连续量)和FB51(开关量)以及调度功能块FCl,主要是用于这些PID功能块参数的在线整定,这样也方便用户调用其调节功能。接下来,在这里将对程序中所要用到的功能模块作简单介绍。
3.1 FB41(CONT_C)
FB41(CONT_C)在S7 PLC中用于控制连续输入和输出变量的工艺参数,参数在分配期间,用户可以对PID控制器的子功能进行激活或者取消激活,以使控制器适合实际的工艺过程[4]。可以将控制器用作PID固定设定值控制器,或者在多回路中作级联、混合或比率控制器。控制器的基本功能居于采样PID控制算法,采样控制器带有一个模拟信号;如果需要的还可以扩展控制器的功能,增加一个脉冲生成器环节,以产生脉宽调制的输出信号,用于带有比例执行器的两步或三步控制器。其控制框图如图1所示。
框图中的SP、PV是指经过线性处理后的设定值与过程值,在“误差信号处理”中经由控制死区来限定,交给“PID算法”来处理,其过程的输出值经过和限幅和再次线性处理,以模拟量模板认可的字形式 (LMN_PER)或者实数的形式 (LMN)输出。当然在处理过程中,也可以选择手动模式,把设定的手动值作为控制器的输出。
利用FB41实现串级PID控制的部分程序如图2所示。
3.2 FB43 (PULSEGEN)
使用连续控制器FB41(CONT_C)与脉冲发生器FB43 (PULSEGEN),可以实现一个固定设定值控制器,以产生开关量输出,用于比例执行器,图3说明了控制回路的基本信号顺序。连续PID控制器CONT_C产生调节值LMN,它被脉冲发生器PULSEGEN转换成脉冲-中断信号QPOS_P或QNEG_P。在Step 7中的具体操作如图4所示。
图2 FB41实现PID控制的STL程序
图3 基本信号控制回路图
图4 FB41与FB43的编程应用
3.3 FC1 (LP_SCHED)
在调用多个PID功能块时FC1( LP_SCHED)显得尤其重要,在弥补PLC中断数量的不足时,它能有效地安排各PID功能模块的取样时间。如图5的PID功能模块通过LP_SCHED的调用过程。
3.4 FB50(TUN_EC)
FB50(TUN_EC)功能块是西门子公司提供的,是能够在线调节PID功能块参数的功能模块,它主要应用在对流量、液位、温度等的控制系统中,此功能块具有以下功能:
1)手动模式功能:能强制把PID控制器设为手动模式,并且将相关的手动参数传递给此功能块。
2)预设输出值功能:在对前期参数优化的基础上,可以实现手动模式向自动模式稳定且快速的切换。
3)优化控制器功能:其具有对参数的初始识别、反向调节寻优、在线优化等功能。
4)跟随设定点优化功能:包括控制器的结构分割、控制器的结构变更以及设定误差的控制区。如果设定点变化时,则通过这些参数的设置会使控制器的响应加速。
图5 PID功能块通过LP_SHED的调用过程
5)恢复和保存控制器的优化参数:当对FB41 (CONT_C) 进行优化的时候,控制器的结构分割功能是不可以用的,只有在使用西门子的标准PID控制以及PID的控制模板时该项功能才可以使用。但是是能够使用控制器的结构变更功能的,也就是说在参数调节的开始阶段就进行增加比例值、取消积分功能的具体操作。若是接近了设定点,将会自动恢复到正常的PID控制结构上来。
当使用FB50 (TUN_EC)优化P功能块的时候,将会有初始识别的一个操作过程。其执行过程就像控制器结构变更功能开始的阶段一样,总共经过四个操作阶段,而获得控制对象的信息并且优化控制器的相关连的参数。在此基础上FB50(TUN_EC)就可以实现对PID功能块进行在线优化的功能。在参数优化过程中,部分进程信息由FB50 (TUN_EC) 提供,其中包括是否检测到优化曲线的拐点,根据这些信息用户可以采取相应的措施,确保控制器始终以正确的参数进行系统控制。
至此有关STEP7标准程序中提供的PID控制模块的调用设计完毕。程序监控会在下一阶段继续论述。
4 结束语
本文对S7-300作了简单介绍,而后重点介绍了STEP7软件包,采用了STEP7允许的结构化编程方式,使检测、调试与修改变得容易;同时充分利用了Step 7的多个功能块,重点PID功能块、PID参数在线整定功能块、PID回路调度功能块等,对锅炉的主要控制过程进行了设计,这样就节约了硬件PID模块的费用,而且对输入、输出信号增加了预处理与判断。
[1]陆秀银.基于S7-300的多电机神经网络控制系统的研究[D].江苏大学,2006,12.
[2]郑凤翼,张继研.图解S7-300/400系列PLC入门[M].北京:电子工业出版社 2009:257-260.
[3]高溥,孟建军.电器控制基础与可编程控制器应用教程[M].西安:西安电子科技大学出版社,2007:247-248.
[4]黄鸿年.PLC在锅炉控制系统中的稳定性分析[J].民营科技,2009,4:21-22.
[5]庄涛.工业蒸汽锅炉的自动化控制研究与实现[D].山东济南:山东大学,2008.
Pid control for industrial boilers based on S7-300
ZHAO Gui-qing
介绍S7-300,后重点介绍STEP7软件包,采用STEP7允许的结构化编程方式,使检测、调试与修改变得容易。充分利用Step 7的多个功能块,重点PID功能块、PID参数在线整定功能块、PID回路调度功能块等,对锅炉控制过程进行设计,事实证明节约了硬件PID模块的费用。
STEP7;结构化编程;功能块;PID功能块
赵桂清(1977 -),女,山东聊城人,讲师,硕士,主要从事计算机控制与仿真研究工作。
TP272
A
1009-0134(2011)5(上)-0024-04
10.3969/j.issn.1009-0134.2011.5(上).09
2011-01-01