内容提示:s7-200系列可编程序控制器
攵档格式:PPT| 浏览次数:0| 上传日期: 14:47:47| 文档星级:?????
全文阅读已结束如果下载本文需要使用
在S7-200中PID功能是通过PID指令功能块实现通过定时(按照采样时间)执行PID功能块,按照PID运算规律根据当时的给定、反馈、比例-积分-微分数据,计算出控制量本文详细介紹了S7-200的PID类型和各参数作用、通过PID指令功能块和PID向导两种方式实现PID编程,同时给出了PID的调节步骤、手自动无扰切换的实现方式此外还对通過自整定方式进行PID调节给出了控制面板启动和编程启动两种详细方案。如果想要了解更详细的PID算法请参考《S7-200系统手册》中PID指令部分的相關内容。
PID是闭环控制系统的比例-积分-微分控制算法控制器根据设定值(给定)与被控对象的实际值(反馈)的差值,按照PID算法计算絀控制器的输出量控制执行机构去影响被控对象的变化。
S7-200PID控制是负反馈闭环控制能够抑制系统闭环内的各种因素所引起的扰动,使反饋跟随给定变化
1.S7-200中PID功能实现方式有以下三种:
PID指令块:通过一个PID回路表交换数据, 只接受0.0 - 1.0之间的实数(实际上就是百汾比)作为反馈、给定与控制输出的有效数值
PID向导:方便地完成输入/输出信号转换/标准化处理。PID指令同时会被自动调用
根据PID算法自己編程(该文档不涉及)
2.S7-200 CPU最多可以支持8个PID控制回路(8个PID指令功能块),根据PID算法自己编程没有具体数目的限制,但是需要考虑PLC的存储空间以及掃描周期等影响
同一个程序里既使用PID指令块又使用向导,PID数目怎样计算
使用PID向导时,对应回路的指令块也会调用所以PID指令块与向导┅共支持8个。
指令块与向导使用的PID回路号是否可以重复
不可以重复,使用PID向导时对应回路的指令块也会调用,所以指令块与向导使用嘚PID回路号不能重复否则会产生预想不到的结果。
S7-200控制变频器在变频器也有PID控制功能时,应当使用谁的PID功能
可以根据具体情况使用。┅般来说如果需要控制的变量直接与变频器直接有关,比如变频水泵控制水压等可以优先考虑使用变频器的PID功能。
电压、电流、热电阻、热电偶或经过变换的实际工程量 |
模拟量输出用来控制一些需要模拟量给定的设备如比例阀、变频器等; |
数芓量输出实际上是控制输出点的通、断状态按照一定的占空比变化,可以控制固态继电器(加热棒等) |
表1.2.1. PID输入/输出支持的信号类型
在有些控制中需要PID反作用调节例如:在夏天控制空调制冷时,若反馈温度(过程值)低于设定温度需要关阀,减小输出控制(减少冷水流量等)这就是PID反作用调节(在PID正作用中若过程值小于设定值,则需要增大输出控制)
若想实现PID反作用调节,需要把PID回路的增益设为负数对于增益为0的积分或微分控制来说,如果指定积分时间、微分时间为负值则是反作用回路。
计算机化的PID控制算法有几个关键的参数Ts(采样时间)Kc(Gain,增益)Ti(积分时间常数),Td(微分时间常数)PID参数的取值,以及它们之间的配合对PID控制是否稳定具有重要的意义:
计算机必须按照一定的时间间隔对反馈进行采样,才能进行PID控制的计算采样时间就是对反馈进行采样的间隔。短于采样时间间隔的信號变化是不能测量到的过短的采样时间没有必要,过长的采样间隔显然不能满足扰动变化比较快、或者速度响应要求高的场合
编程时指定的PID控制器采样时间必须与实际的采样时间*。S7-200中PID的采样时间精度用定时中断(PID向导用SMB34)来保证
增益(Gain,放大系数比例常数)
增益与偏差(给定与反馈的差值)的乘积作为控制器输出中的比例部分。提高响应速度减少误差,但不能消除稳态误差当比例作用过大时,系统的稳定性下降
偏差值恒定时,积分时间决定了控制器输出的变化速率
积分时间的长度相当于在阶跃给定下,增益为“1”的时候輸出的变化量与偏差值相等所需要的时间,也就是输出变化到二倍于初始阶跃偏差的时间
如果将积分时间设为最大值,则相当于没有积汾作用
偏差值发生改变时,微分作用将增加一个尖峰到输出中随着时间流逝减小。微分时间越长输出的变化越大。微分使控制对扰動的敏感度增加也就是偏差的变化率越大,微分控制作用越强微分相当于对反馈变化趋势的预测性调整。
如果将微分时间设置为0就不起作用控制器将作为PI调节器工作。
提高响应速度减少误差,但不能消除稳态误差当比例作用过大时,系统的稳定性下降 (由小到大單独调节)
消除稳态误差,使系统的动态响应变慢积分时间越小,积分作用越大 偏差得到的修正越快,过短的积分时间有可能造成不穩定(将调好的比例增益调整到50%~80%后,由大到小减小积分时间)
超前调节能预测误差变化的趋势,提前抑制误差的控制作用从而避免叻被控量的严重超调。可以改善系统的响应速度和稳定性对噪声干扰有放大作用,对具有滞后性质的被控对象应加入微分环节。
在S7-200中PID功能是通过PID指令功能块实现通过定时(按照采样时间)执行PID指令块,按照PID运算规律根据当时的给定、反馈、比例-积分-微分数据,計算出控制量
PID指令块通过一个PID回路表交换数据,这个表是在V数据存储区中的开辟长度为80字节(Micro/WIN4.0之前老版本,未增加PID自整定时回路表长喥为36字节)只接受0.0 - 1.0之间的实数(实际上就是百分比)作为反馈、给定与控制输出的有效数值。
0 | 过程变量必须在0.0~1.0之间 |
设定值,必须在0.0~1.0之間 | |
输出值必须在0.0~1.0之间 | |
增益是比例常数,可正可负 | |
采样时间单位为秒,必须是正数 | |
积分时间或复位(Ti) | 积分时间或复位单位是分钟 |
微汾时间或速率(Td) | 微分时间或速率,单位为分钟 |
积分项前项必须在0.0~1.0之间 | |
过程变量前值(PVn-1) | 包含最后一次执行PID指令时存储的过程变量值 |
36~79 保留给自整定变量 |
通过指令块实现PID,需要自己编程实现采样较复杂,容易出错也不能用PID控制面板进行调节,不建议使用如果没有特殊偠求,尽量使用PID向导
由于PID指令块只接受0.0 - 1.0之间的实数(实际上就是百分比)作为反馈、给定与控制输出的有效数值。因此必须把外围实際的物理量与PID功能块需要的(或者输出的)数据之间进行转换。这就是所谓输入/输出的转换与标准化处理
下面简单做一个采样时间为250ms的PID唎程:
*步,主程序内实现250ms的定时中断如图2.2.1
第二步,在定时中断INT_0内调用PID指令块
第三步,根据PID回路表设置参数,在数据块设置各参数的初始值
图2.2.3. 数据块设置参数
第四步程序下载后根据反馈VD0与給定VD4观察输出VD8(直接通过状态表修改给定反馈即可,真正应用时需要将外围物理量做转换)
PID指令块可以在主程序/子程序里调用吗?
可以但是不推荐,主程序/子程序的循环时间每个周期都可能不同不能保证精确的采样,建议用定时中断例如SMB34/SMB35。
采样时间是1S要求PID指令块烸隔1S调用一次。可以先做一个250ms的定时中断然后编程累加判断每4次中断执行一次PID指令即可。
PID指令块怎样实现手动调节
可以简单地使用“調用/不调用”指令的方式控制自动/手动模式。不调用PID指令时可以手动给输出地址0.0-1.0之间的实数。
PID指令块实现数字量输出
1.通过PWM指令,将PID输絀值转换为所需时间基准的整数送到PWM的Pulse,控制脉宽(该法简单易用但是要求输出点只能是Q0.0或Q0.1)。
2.自己编程实现类似于PWM的输出(虽然鈈限制Q点,但编程较复杂不建议使用,可以直接考虑用PID向导)
在Micro/WIN中的命令菜单中选择工具 >指令向导,然后在指令向导窗口中选择PID指令:
在使用向导时必须先对项目进行编译在随后弹出的对话框中选择“是” ,确认编译如果已有的程序中存在错误,或者有没有编完的指令编译不能通过。
如果你的项目中已经配置了一个PID回路则向导会指出已经存在的PID回路,并让你选择是配置修改已有的回路还是配置一个新的回路:
图3.2. 选择需要配置的回路
*步:定义需要配置的PID回路号
第二步:设定PID回路参数
注意:关于具体的PID参数值,每一个项目都不一样需要现场调试来定,没有所谓经验参数
第三步:设定回路输入输出值
在图3.1.3中,首先设定过程变量的范围:
如果选择了开关量输出,需要设定此占空比的周期
第四步:设定回路报警选项
图3.1.4. 设定回路報警限幅值
向导提供了三个输出来反映过程值(PV)的低值报警、高值报警及过程值模拟量模块错误状态。当报警条件满足时输出置位为1。这些功能在选中了相应的选择框之后起作用
第五步:指定PID运算数据存储区
图3.1.5. 分配运算数据存储区
PID指令(功能块)使用了一个120个字节的V区参数表来进行控制回路的运算工作;除此の外PID向导生成的输入/输出量的标准化程序也需要运算数据存储区。需要为它们定义一个起始地址要保证该地址起始的若干字节在程序嘚其它地方没有被重复使用。如果点击“建议地址”则向导将自动为你设定当前程序中没有用过的V区地址。
自动分配的地址只是在执行PID姠导时编译检测到空闲地址向导将自动为该参数表分配符号名,用户不要再自己为这些参数分配符号名否则将导致PID控制不执行。
第六步:定义向导所生成的PID初使化子程序和中断程序名及手/自动模式
图3.1.6. 指定子程序、中断服务程序名和选择手动控制
向导已经为初使化子程序囷中断子程序定义了缺省名你也可以修改成自己起的名字。
此处可以选择添加PID 手動控制模式。在PID手动控制模式下回路输出由手动输出设定控制,此时需要写入手动控制输出参数一个0.0-1.0的实数代表输出的0%-100%而不昰直接去改变输出值。
第七步:生成PID子程序、中断程序及符号表等
一旦点击完成按钮将在你的项目中生成上述PID子程序、中断程序及符号表等。
图3.1.7. 生成PID子程序、中断程序和符号表等
第八步:配置完PID向导需要在程序中调用向导生成的PID子程序(如下图)
在用户程序中调用PID子程序时,可在指令树的Program Block(程序块)中用鼠标双击由向导生成的PID子程序在局部变量表中,可以看到有关形式参数的解释和取值范围
调用PID子程序时,不用考虑中断程序子程序会自动初始化相关的定时中断处理事项,然后中断程序会自动执行
第九步:实际運行并调试PID参数
没有一个PID项目的参数不需要修改而能直接运行,因此需要在实际运行时调试PID参数具体调节过程可以参考 PID调节
为了更好地悝解 PID向导的编程,可参考下面的例程
通过上述向导步骤实现PID,为求程序简单可读未设置回路报警选项,仅简单常用配置具体参见例程,关注程序注释以及符号表内容可帮助更快理解程序
注意:此指令程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担由于它是免费的,所以不提供任何担保错误纠正和热线支持,用户不必为 此联系西门子技术支歭与服务部门
PID向导完成后,自动生成的除PID子程序(上一节已经介绍)以外还有数据块、符号表以及中断程序等组件
完成PID Wizard配置后,会为每个PID回路生成一个数据块PIDx_DATA(x=0-7)图中可以看出数据块的内容实际就是PID回路表以及报警的高/低限位。实际也说明PID向导是基于PID指令块编程经过调整后呈现给用户
完成PID Wizard配置后,会为每个PID回路生成一个数据块PIDx_SYM(x=0-7)图中可以看出符号表内容也是回路表相关参数。
3.中断程序 PID向导生成的中断程序PID_EXE自动加密相关功能已经附在向导生成的子程序内,这里不涉及
查看Data Block(数据块),以及Symbol Table(符号表)相应的PID符号标簽的内容可以找到包括PID核心指令所用的控制回路表,包括比例系数、积分时间等等将此表的地址复制到Status Chart(状态表)中,可以在监控模式下在线修改PID参数而不必停机再次做配置。
参数调试合适后用户可以在数据块中写入,也可以再做一次向导或者编程向相应的数据區传送参数。
做完PID向导后如何知道向导中设定值,过程值及PID等参数所用的地址
做完PID向导后可在Symbol Table(符号表) 中,查看PID向导所生成的符号表(上例中为PID0_SYM)可看到各参数所用的详细地址,及数值范围
在Data Block(数据块) 中,查看PID指令回路表的相关参数
怎样在上位机或触摸屏上修改PID參数?
图3.2.1/3.2.2中均能查到对应参数地址在上位机获触摸屏中修改即可,注意数据类型
数据块内设定值与过程变量以及输出的范围是多少?
數据块内的变量范围完全与回路表内变量范围*即都是0.0-1.0之间的浮点数,如果向导里这些变量是模拟量或者实际工程量,向导会自动换算荿0.0-1.0的标准化数值通过这些变量也可以确认向导内设置的设定值与过程变量量程是否正确。
下图是PID向导生成的孓程序:
各参数在3.1章节中已经介绍这里对以下几个参数着重解释:
在这里,给定、反馈的入口参数不是PID指令功能块所需要的0.0 - 1.0之间的实数而可以是实际的反馈地址,或是其他变量例如,PV_I可以是模拟量输入地址AIW0也可以是存储器地址VW100等;Setpoint则往往来洎V变量存储区,这样可以从人机操作界面(HMI)设备输入给定值
对于PID控制系统来说,必须保证给定与过程反馈的*性:
给定与反馈(过程变量)的物理意义*
这取决于被控制的对象如果是压力,则给定也必须对应于压力值;如果是温度则给定也必须对应于温度。
给定与反馈(过程变量)的的数值范围对应
如果给定直接是摄氏温度值则反馈必须是对应的摄氏温度值;如果反馈直接使用模拟量输入的对应数值,则给定也必须向反馈的数值范围换算 如果给定与反馈的换算有特定的比例关系也可以。如给定也可以表示为以反馈的数值范围的百分仳数值
给定与反馈的数值具体是什么数值,其取值范围究竟如何完全取决于我们在使用“PID向导”编程时指定的给定与反馈的数值范围。其中反馈量的数值范围不能随便自己定义,而要取决于具体应用的模拟量输入模块
图3.3.2. 在图中a.处设置给定范围
图3.3.3. 在图中b.处设置反馈范圍
1. 假定一个PID控制系统的控制对象是压力,反馈元件的测量范围为0 - 16MPa反馈器件的信号经过变换,以0 - 20mA(或4 - 20mA)电流信号的形式输入到EM231模拟量输入模块中据此,我们可以按下表设置给定、反馈(过程变量)的的范围
百分比形式(占0 - 16MPa的百分比) |
---|
n 为比例系数,为了精度高些可以设置n=10等等
2. 一个温度控制的PID系统温度值直接由热电偶测量,输入到EM231 TC(热电偶)模块转换为温度值热电偶为J型,其测量范围为 -150.0°C - 1200.0 °C则可按如丅设置给定的范围。
在表3.3.2的例子中给定和反馈可以按照如下方法设置
STEP 7-Micro/WIN V4.0中提供了一个PID调节控制面板,具有图形化的给定、反馈、调节器输絀波形显示可以用于手动调试PID参数。另外从面板中还可以启动、停止自整定功能对于没有“自整定PID”功能的老版CPU,也能实现PID手动调节
要使用PID调节控制面板,PID编程必须使用PID向导完成
使用PID调节面板手动调整增益、积分时间、微分时间参數修改的数值能否进入到PLC?
可以,但是需要在参数设置完以后手动点击调节面板的Update PLC(更新PLC)按钮来更新PLC中的参数。
PID已经调整合适如何囸式确定参数?
可以在Data Block(数据块)中直接写入参数
做完PID向导后,能否查看PID生成的子程序中断程序?
PID向导生成的子程序中断程序用户昰无法看到的,也不能对其进行修改没有密码能够打开这些子程序,一般的应用也没有必要打开查看
PID向导生成的程序为何不执行或没囿输出?
如何根据工艺要求有选择地投入PID功能?
鈳使用“手动/自动”切换的功能PID向导生成的PID功能块只能使用SM0.0的条件调用。
PID控制的效果就是看反馈(也就是控制对象)是否跟随设定值(給定)是否响应快速、稳定,是否能够抑制闭环中的各种扰动而回复稳定要衡量PID参数是否合适,必须能够连续观察反馈对于给定变化嘚响应曲线;而实际上PID的参数也是通过观察反馈波形而调试的因此,没有能够观察反馈的连续变化波形曲线的有效手段就谈不上调试PID參数。观察反馈量的连续波形可以使用带慢扫描记忆功能的示波器(如数字示波器),波形记录仪或者在PC机上做的趋势曲线监控画面等。