加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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, InputvalueOutput Value的实际值都是灰的? 答:这些要在FB调用并选择了该TO时才能填写。

第二步:在循环中断OB中调用Compact PIDFB
在添加了"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 PIDFB块拖到新添加的循环中断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"就可以了。实际上在程序执行时,管角上的变量或数值会自动copyiDB的相应位置上。
对于少部分高手,他们不屑于在管角上填写变量或数值,因为他们知道这些变量或数值最终会copyiDB里,所以他们索性自己动手,这样他们的程序别人不容易读懂。比如用户可以在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里控制同一个对象,效果也未必会理想,因为有一些参数是没有显示出来了。所以唯一的办法就是保存好。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有