您好,欢迎访问三七文档
如何使用S7-200CPU的PID控制S7-200能够进行PID控制。S7-200CPU最多可以支持8个PID控制回路(8个PID指令功能块)。PID是闭环控制系统的比例-积分-微分控制算法。PID控制器根据设定值(给定)与被控对象的实际值(反馈)的差值,按照PID算法计算出控制器的输出量,控制执行机构去影响被控对象的变化。PID控制是负反馈闭环控制,能够抑制系统闭环内的各种因素所引起的扰动,使反馈跟随给定变化。根据具体项目的控制要求,在实际应用中有可能用到其中的一部分,比如常用的是PI(比例-积分)控制,这时没有微分控制部分。1、PID算法在S7-200中的实现PID控制最初在模拟量控制系统中实现,随着离散控制理论的发展,PID也在计算机化控制系统中实现。计算机化的PID控制算法有几个关键的参数:●Kc:Gain,增益●Ti:积分时间常数●Td:微分时间常数●Ts:采样时间在S7-200中PID功能是通过PID指令功能块实现。通过定时(按照采样时间)执行PID功能块,按照PID运算规律,根据当时的给定、反馈、比例-积分-微分数据,计算出控制量。PID功能块通过一个PID回路表交换数据,这个表是在V数据存储区中的开辟,长度为36字节。因此每个PID功能块在调用时需要指定两个要素:PID控制回路号,以及控制回路表的起始地址(以VB表示)。由于PID可以控制温度、压力等等许多对象,它们各自都是由工程量表示,因此有一种通用的数据表示方法才能被PID功能块识别。S7-200中的PID功能使用占调节范围的百分比的方法抽象地表示被控对象的数值大小。在实际工程中,这个调节范围往往被认为与被控对象(反馈)的测量范围(量程)一致。PID功能块只接受0.0-1.0之间的实数(实际上就是百分比)作为反馈、给定与控制输出的有效数值,如果是直接使用PID功能块编程,必须保证数据在这个范围之内,否则会出错。其他如增益、采样时间、积分时间、微分时间都是实数。因此,必须把外围实际的物理量与PID功能块需要的(或者输出的)数据之间进行转换。这就是所谓输入/输出的转换与标准化处理。《S7-200系统手册》上有详细的介绍。S7-200的编程软件Micro/WIN提供了PID指令向导,以方便地完成这些转换/标准化处理。除此之外,PID指令也同时会被自动调用。1.1调试PID控制器PID控制的效果就是看反馈(也就是控制对象)是否跟随设定值(给定),是否响应快速、稳定,是否能够抑制闭环中的各种扰动而回复稳定。要衡量PID参数是否合适,必须能够连续观察反馈对于给定变化的响应曲线;而实际上PID的参数也是通过观察反馈波形而调试的。因此,没有能够观察反馈的连续变化波形曲线的有效手段,就谈不上调试PID参数。观察反馈量的连续波形,可以使用带慢扫描记忆功能的示波器(如数字示波器),波形记录仪,或者在PC机上做的趋势曲线监控画面等。新版编程软件STEP7-Micro/WINV4.0内置了一个PID调试控制面板工具,具有图形化的给定、反馈、调节器输出波形显示,可以用于手动调试PID参数。对于没有“自整定PID”功能的老版CPU,也能实现PID手动调节。PID参数的取值,以及它们之间的配合,对PID控制是否稳定具有重要的意义。这些主要参数是:●采样时间:计算机必须按照一定的时间间隔对反馈进行采样,才能进行PID控制的计算。采样时间就是对反馈进行采样的间隔。短于采样时间间隔的信号变化是不能测量到的。过短的采样时间没有必要,过长的采样间隔显然不能满足扰动变化比较快、或者速度响应要求高的场合。编程时指定的PID控制器采样时间必须与实际的采样时间一致。S7-200中PID的采样时间精度用定时中断来保证。●增益(Gain,放大系数,比例常数)增益与偏差(给定与反馈的差值)的乘积作为控制器输出中的比例部分。过大的增益会造成反馈的振荡。●积分时间(IntegralTime)偏差值恒定时,积分时间决定了控制器输出的变化速率。积分时间越短,偏差得到的修正越快。过短的积分时间有可能造成不稳定。积分时间的长度相当于在阶跃给定下,增益为“1”的时候,输出的变化量与偏差值相等所需要的时间,也就是输出变化到二倍于初始阶跃偏差的时间。如果将积分时间设为最大值,则相当于没有积分作用。●微分时间(DerivativeTime)偏差值发生改变时,微分作用将增加一个尖峰到输出中,随着时间流逝减小。微分时间越长,输出的变化越大。微分使控制对扰动的敏感度增加,也就是偏差的变化率越大,微分控制作用越强。微分相当于对反馈变化趋势的预测性调整。如果将微分时间设置为0就不起作用,控制器将作为PI调节器工作。1.2常见问题1.对于某个具体的PID控制项目,是否可能事先得知比较合适的参数?有没有相关的经验数据?虽然有理论上计算PID参数的方法,但由于闭环调节的影响因素很多而不能全部在数学上精确地描述,计算出的数值往往没有什么实际意义。因此,除了实际调试获得参数外,没有什么可用的经验参数值存在。甚至对于两套看似一样的系统,都可能通过实际调试得到完全不同的参数值。2.PID控制不稳定怎么办?如何调试PID?闭环系统的调试,首先应当做开环测试。所谓开环,就是在PID调节器不投入工作的时候,观察:●反馈通道的信号是否稳定●输出通道是否动作正常可以试着给出一些比较保守的PID参数,比如放大倍数(增益)不要太大,可以小于1,积分时间不要太短,以免引起振荡。在这个基础上,可以直接投入运行观察反馈的波形变化。给出一个阶跃给定,观察系统的响应是最好的方法。如果反馈达到给定值之后,历经多次振荡才能稳定或者根本不稳定,应该考虑是否增益过大、积分时间过短;如果反馈迟迟不能跟随给定,上升速度很慢,应该考虑是否增益过小、积分时间过长……总之,PID参数的调试是一个综合的、互相影响的过程,实际调试过程中的多次尝试是非常重要的步骤,也是必须的。S7-200的新一代产品提供了自整定的PID细调功能。3.没有采用积分控制时,为何反馈达不到给定?这是必然的。因为积分控制的作用在于消除纯比例调节系统固有的“静差”。没有积分控制的比例控制系统中,没有偏差就没有输出量,没有输出就不能维持反馈值与给定值相等。所以永远不能做到没有偏差。4.如何实现PID反作用调节?参见PID向导中的常问问题。5.S7-200控制变频器,在变频器也有PID控制功能时,应当使用谁的PID功能?可以根据具体情况使用。一般来说,如果需要控制的变量直接与变频器直接有关,比如变频水泵控制水压等,可以优先考虑使用变频器的PID功能。6、《S7-200系统手册》上的附录H.14“用S7-200实现PID控制”的例子,是否可以直接使用?《S7-200系统手册》中的附录H在英文原版中并不存在。H.14的PID例子是在第一代产品还不支持PID运算指令时的产物。现在用户可以使用PID指令块,或者PIDWizard(PID向导)编辑PID控制程序。1.3PIDWizard-PID向导Micro/WIN提供了PIDWizard(PID指令向导),可以帮助用户方便地生成一个闭环控制过程的PID算法。此向导可以完成绝大多数PID运算的自动编程,用户只需在主程序中调用PID向导生成的子程序,就可以完成PID控制任务。PID向导既可以生成模拟量输出PID控制算法,也支持开关量输出;既支持连续自动调节,也支持手动参与控制。建议用户使用此向导对PID编程,以避免不必要的错误。如果用户不能确定中文编程界面的语义,我们建议用户使用英文版本的Micro/WIN,以免对向导中相关概念发生误解。建议用户使用较新的编程软件版本。在新版本中的PID向导获得了改善。1.4PID向导编程步骤在Micro/WIN中的命令菜单中选择ToolsInstructionWizard,然后在指令向导窗口中选择PID指令:图1.选择PID向导在使用向导时必须先对项目进行编译,在随后弹出的对话框中选择“Yes”,确认编译。如果已有的程序中存在错误,或者有没有编完的指令,编译不能通过。如果你的项目中已经配置了一个PID回路,则向导会指出已经存在的PID回路,并让你选择是配置修改已有的回路,还是配置一个新的回路:图2.选择需要配置的回路第一步:定义需要配置的PID回路号图3.选择PID回路号第二步:设定PID回路参数图4.设置PID参数图4中:a.定义回路设定值(SP,即给定)的范围:在低限(LowRange)和高限(HighRange)输入域中输入实数,缺省值为0.0和100.0,表示给定值的取值范围占过程反馈量程的百分比。这个范围是给定值的取值范围。它也可以用实际的工程单位数值表示。参见:设置给定-反馈的量程范围。以下定义PID回路参数,这些参数都应当是实数:b.Gain(增益):即比例常数。c.IntegralTime(积分时间):如果不想要积分作用,可以把积分时间设为无穷大:9999.99d.DerivativeTime(微分时间):如果不想要微分回路,可以把微分时间设为0。e.SampleTime(采样时间):是PID控制回路对反馈采样和重新计算输出值的时间间隔。在向导完成后,若想要修改此数,则必须返回向导中修改,不可在程序中或状态表中修改。注意:关于具体的PID参数值,每一个项目都不一样,需要现场调试来定,没有所谓经验参数。第三步:设定回路输入输出值图5.设定PID输入输出参数在图5中,首先设定过程变量的范围:a.指定输入类型●Unipolar:单极性,即输入的信号为正,如0-10V或0-20mA等●Bipolar:双极性,输入信号在从负到正的范围内变化。如输入信号为±10V、±5V等时选用●20%Offset:选用20%偏移。如果输入为4-20mA则选单极性及此项,4mA是0-20mA信号的20%,所以选20%偏移,即4mA对应6400,20mA对应32000b.反馈输入取值范围●在a.设置为Unipolar时,缺省值为0-32000,对应输入量程范围0-10V或0-20mA等,输入信号为正●在a.设置为Bipolar时,缺省的取值为-32000-+32000,对应的输入范围根据量程不同可以是±10V、±5V等●在a.选中20%Offset时,取值范围为6400-32000,不可改变此反馈输入也可以是工程单位数值,参见:设置给定-反馈的量程范围。然后定义输出类型c.OutputType(输出类型)可以选择模拟量输出或数字量输出。模拟量输出用来控制一些需要模拟量给定的设备,如比例阀、变频器等;数字量输出实际上是控制输出点的通、断状态按照一定的占空比变化,可以控制固态继电器(加热棒等)d.选择模拟量则需设定回路输出变量值的范围,可以选择:●Unipolar:单极性输出,可为0-10V或0-20mA等●Bipolar:双极性输出,可为正负10V或正负5V等●20%Offset:如果选中20%偏移,使输出为4-20mAe.取值范围:●d为Unipolar时,缺省值为0到32000●d为Bipolar时,取值-32000到32000●d为20%Offset时,取值6400-32000,不可改变如果选择了开关量输出,需要设定此占空比的周期。第四步:设定回路报警选项图6.设定回路报警限幅值向导提供了三个输出来反映过程值(PV)的低值报警、高值报警及过程值模拟量模块错误状态。当报警条件满足时,输出置位为1。这些功能在选中了相应的选择框之后起作用。a.使能低值报警并设定过程值(PV)报警的低值,此值为过程值的百分数,缺省值为0.10,即报警的低值为过程值的10%。此值最低可设为0.01,即满量程的1%b.使能高值报警并设定过程值(PV)报警的高值,此值为过程值的百分数,缺省值为0.90,即报警的高值为过程值的90%。此值最高可设为1.00,即满量程的100%c.使能过程值(PV)模拟量模块错误报警并设定模块于CPU连接时所处的模块位置。“0”就是第一个扩展模块的位置第第五步:指定PID运算数据存储区图7.分配运算数据存储区PID指令(功能块)使用了一个120个字
本文标题:西门子200PID
链接地址:https://www.777doc.com/doc-5081750 .html