回复:应用探讨—软件PID功能块的使用

Zane

版主 西门子1847工业学习平台

  • 帖子

    21047
  • 精华

    399
  • 被关注

    1484

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2010-07-11 20:25:55

37楼

西门子标准PID功能块的介绍

a) FB41/42/43/58/59,SFB41/42/43的区别

STEP 7从V3.2开始在标准软件库中开始提供免费版的FB41/42/43标准PID功能块,从STEP 7 V5.0开始在标准软件库中开始提供免费版的FB58/59温度PID模块(带参数自整定功能),可以在任何S7-300/400的符合版本要求CPU上运行,用户可以从 STEP 7 Standard Library PID Blocks中拷贝并调用。

SFB41/42/43是集成在S7-300C CPU中的系统功能块,功能同FB41/42/43,两者参数和数据结构完全相同,S7-300C的用户可以直接在程序中调用。出于程序通用性及可移植性的考虑,用户可以只用FB41/42/43。

FB41/42/58/59 SFB41/42均可通过STEP 7 PID Control Parameter Assignment工具进行参数设置并调试。FB58/59因自带自整定功能,用户还可以通过该工具进行在线参数整定;而FB/SFB 41/42则需要另外安装PID Self Tuner软件才能实现在线的参数整定工作。

b) Continuous controller 与 Step controller 的区别

Continuous controller 指输出为连续变量的PID控制器,比如SFB/FB41或FB58,输出可以是模拟量,也可与FB43脉宽调制功能块组合使用PWM脉冲输出,适用于比例执行器,例如比例阀,变频器,调功器,固态继电器等。

而Step controller 是指输出为开关量信号的PI控制器,比如SFB/FB42或FB 59,适用于积分型执行器,例如电机驱动的阀门或液压执行机构等。

c) FB41/42/43/58/59,SFB41/42/43的适用范围
i. 压力,流量控制 FB/SFB41/42
ii. 速度控制,位置控制 FB/SFB41
iii. 张力控制 FB/SFB41
iv. 温度控制 FB/SFB41/42/43 FB58/59

虽然FB41和FB58都可以应用与温度控制,但纯线性的温度控制系统很少,一般都是3阶以上的高阶系统,这时FB58的CONTROL ZONE的功能针对高阶大惯性系统,认为以设定值为中间值的CONTROL ZONE 为线性区,在线性区外实行开环控制,在线性区内实现闭环控制,提高了系统的响应特性和控制精度。

d) PID功能块的调用

i.定时中断与PID功能块采样周期CYCLE的关系

软件PID属于数字PID范畴,因此其采样周期必须是等间隔的。通常我们采用定时中断来保证相同的采样周期,因此一般情况下PID功能块都必须在定时中断中调用。定时中断周期T与PID采样周期CYCLE的关系应该是CYCLE=n*T (n=1,2,3,4,…….)。对于一些慢响应过程,当CPU的扫描周期OB1_CYCLE < CYCLE * 1% 时,PID功能块可以在OB1中调用(调用触发标志位必须在中断中产生)。

一般,控制器的采样时间CYCLE不超过计算所得控制器积分时间TI的10%。

ii.定时中断与PID功能块输出控制精度的关系

 对于连续控制器Continuous Controller,如FB/SFB41,FB58使用PMW输出时,脉冲调制周期应等于控制器采样周期PER_TM=CYCLE,定时中断应与脉冲发生器采样周期满足CYCLE或CYCLE_P = n*T (n=1,2,3,4,…….),PER_TM >= 20* CYCLE_P。

例:OB35的中断周期T=10ms,脉冲发生器采样周期CYCLE_P=10ms,控制器采样周期CYCLE=2s,输出控制精度为0.5%。

 对于步进控制器Step Controller,如FB/SFB42,FB59,MTR_TM为电动执行机构从一个极限位运行到另一个极限位所需的时间,比如为50s,如果需要达到0.1%的输出精度,则控制器采样周期CYCLE=50ms。最小脉冲时间(指脉宽时间)指电动执行机构的单位执行时间,PULSE_TM= n*CYCLE(n=1,2,3,4,…….),比如PULSE_TM=1s。同时,应满足TI > = MTR_TM。控制器采样周期与定时中断的关系应该是CYCLE = n*T(n=1,2,3,4,…….)

iii.PID功能块的初始化

PID功能块都有一个初始化例行程序,当置位输入参数COM_RST = TRUE时执行该例行程序。在处理完初始化例行程序后,功能块将COM_RST 重新设置成FALSE,所有输出都被设置成各自的初始值。

如果需要在CPU 重启时执行初始化,则可在OB100 中通过COM_RST = TRUE 调用该功能块。

iv.PID功能块的工作模式,及模式切换

所有的PID功能块都有手动/自动切换功能,通过MAN_ON = TRUE使能PID功能块的手动模式,MAN参数可设定手动输出值。默认状态下,PID功能块置于手动模式,并且手动输出值为0的安全模式下。这也是初学者编程时总是遇到PID没有输出的原因之一。

我们总是希望在手自动切换时对系统的扰动最小,这就是无扰切换。从自动模式无扰切换到手动模式:在自动模式下把控制输出值LMN送到手动值MAN即可,那切换到手动模式时的输出值就是切换瞬间自动模式下最后的输出值。从手动模式无扰切换到自动模式:在手动模式下把控制输出值LMN送到积分初始值I_ITLVAL,并且I_ITL_ON=TRUE,可能的话让设定值SP_INT等于反馈值PV。

v.PID功能块的各主要输入、输出变量的定义与关系

变量名 数据类型 单位
采样周期: CYCLE Time ms
脉冲采样周期: CYCLE_P Time ms
脉宽调制周期: PER_TM Time ms
给定值: SP_INT Real
计算反馈值: PV_IN Real
模拟量反馈: PV_PER Word
增益: Gain Real
积分: TI Time ms
微分: TD Time ms
死区: DEAD_W Real
线性控制区: CON_ZONE Real
手动给定: MAN Real
控制值: LMN Real 0-100%
模拟量输出: LMN_PER Word

CYCLE <= TI/10
CYCLE_P <= PER_TM/50
PER_TM <= TI/5
CON_ZONE <= 250/Gain
Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。