s7-1200PID调节
(2010-10-12 16:35:33)
标签:
杂谈 |
分类: 西门子设备 |
S7-1200中提供了被称为Compact
PID的回路控制功能,Compact
PID定位于中低段回路控制应用。
从易用性角度来讲,Compact
PID比以前有了很大进步,下面把Compact
PID的使用方法简单介绍一下。
Compact PID的控制功能通过一个FB块实现,每条回路的参数则保存在所谓的"Technological
object"中,以下简称TO。要控制几条回路就要添加相应数量的TO。每控制一条回路就需要调用一次FB块。通过在FB调用时指定使用不同的TO来实现对不同回路的控制。
第一步:添加TO并作基本设置
在PLC站下有一个"Technological
objects"的文件夹,双击其中的"Add new
object"
选择添加"PID
controller"。
如果左下角的"Add new and
open"是勾选的,添加TO后会自动打开TO编辑器。也可以通过双击TO下的"Configuration"来打开TO编辑器。在TO编辑器中对控制回路作基本的设置。
几点说明:
1、"Invert PID
controller output":当PID输出增大会导致输入减小时需要勾选(比如通过控制冷却设备来控制温度时)
2、"Input_PER(analog)":当PID输入直接来自模拟量输入模块时选择。
3、"Input":当PID输入来自于PLC内部变量时选择,如来自于DB块或M区变量
4、"Output_PER":当PID输出直接输出直模拟量输出模块时选择
5、"Output":当PID输出输出至PLC内部变量时选择
6、"Output_PWM":当输出至PWM时选择
7、为什么setpoit,
Inputvalue和Output
Value的实际值都是灰的?
答:这些要在FB调用并选择了该TO时才能填写。
第二步:在循环中断OB中调用Compact
PID的FB块
在添加了"PID
controller"的TO后,用于Compact
PID控制的FB块会自动被添加到"Program
blocks"文件夹下。该FB块也可以从"Extended
instructions"中手动添加。
Compact PID需要在循环中断OB中调用以保证采样周期和输出时间间隔的确定性。因此,首先添加一个循环中断OB。
双击"Add new
block",在弹出对话框中选择添加"Cyclic
interrupt"。"Scan
time"以毫秒为单位,指该OB中的程序在PLC运行时每隔多少毫秒执行一次,这也就是你PID控制的采样周期。
将Compact
PID的FB块拖到新添加的循环中断OB中。熟悉Step7的人都知道,FB块在调用时要指定instance
DB(一直以来翻译成背景数据块,但是我个人习惯把它称为iDB),而对于Compact
PID,它的iDB就是TO。因此,要控制哪条回路,就选择那条回路的TO作为iDB。实际上TO本质上就是一个DB块,只不过不能用普通的DB编辑器编辑罢了。
第三步:填写Compact
PID管角
Compact PID的属性页里提供了一个配置界面,以帮助用户填写管角。这个配置界面与TO的编辑器实际上是一回事,但在这里"setpoit,
input, output"是可以编辑的,不过与TO编辑器相比少了"Advanced
settings"选项页。
总体来讲,这个配置界面使用起来还是比较容易的。只有一点比较迷惑人的地方需要说明,就是其中的"Value from
instance data block"和"Value at
function block"选项
我相信,绝大多数用户都习惯于将变量或数值直接填写到FB的管角上,因此对于绝大多数用户,只要选择"Value at
function block"就可以了。实际上在程序执行时,管角上的变量或数值会自动copy到iDB的相应位置上。
对于少部分高手,他们不屑于在管角上填写变量或数值,因为他们知道这些变量或数值最终会copy到iDB里,所以他们索性自己动手,这样他们的程序别人不容易读懂。比如用户可以在setpoint管角上填写"MD100",也可以用move指令将MD100的值写到"PID_Compact_1"."Setpoint"里,最终的效果是一样的。其实在配置界面里提供这个选项有点多此一举,因为绝大多数普通用户都用不到,而对于真正的高手,即使没有这个选项他们也会这么作的。
配置界面还有一个选项页叫"Input
scaling"用于将输入值进行量程转换。我不知道为什么在这里没有提供
启用/禁用
的选项,所以输入值的量程一直是被转换的。如果你确实不需要量程转换,只要把原始值和"scaled
value"设置成一样就行了。
所有参数添好以后就可以将程序下载到PLC了。
第四步:整定PID参数
下载之后,打开在线监控,你会发现FB看起来在正常运行,但是无论怎么改变设置值(setpoint),输出始终是0。
这是因为你还没有对PID进行整定。Compact
PID只有在进行整定之后才可以正常运行。
点击Compact
PID上的"commissioning"按钮或者双击TO下的"commissioning"打开调试工具。
在调试工具中首先点击"Start
measurement",再点击"Start
tuning",系统便开始对PID进行自动整定
Compact PID有两种自整定模式,一种是"Startup
tuning",另一种是"Tuning in
run"。两种模式到底有什么区别我不太清除,只知道"Tuning in
run"的算法更复杂一些,需要的时间也更长。有时候"Startup
tuning"无法找到优化的PID参数时,系统会提示用户使用"Tuning in
run"模式进行自整定。
整定过程中:
整定结束,自动切换为自动模式:
注意:这时,整定好的PID参数还只保存在CPU中,可以通过点击左下角的"Upload PID
parameters to project"把参数上载到项目中以便以后下载直接使用。如果你忘记了上载PID参数,再次下载项目后就需要重新走一遍自整定过程。点击"Upload PID
parameters to project"按钮后系统没有任何反馈,这确实是个易用性问题,以后会改进,不过当你打开TO编辑器选择PID
parameter选项页时,可以看到参数已经上载回来了。
对于Compact
PID,建议大家不要使用手动的PID参数,因为它并不是标准的PID算法,手动PID参数不会得到很好的效果。即使是你把上载的PID参数抄下来原封不动的放到另一个TO里控制同一个对象,效果也未必会理想,因为有一些参数是没有显示出来了。所以唯一的办法就是保存好。