故事作者:Automann

最近创作

看看TA的故事

为什么不能在OB1中调用PID程序?

已锁定

Automann

  • 帖子

    6291
  • 精华

    139
  • 被关注

    292

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

为什么不能在OB1中调用PID程序?

2084

19

2012-04-17 09:02:11

有网友说:我觉得(将PID程序)放在主程序OB1中应该也是没有问题的吧,好像OB1是循环周期扫描的,而像OB35是中断扫描的,对于PID调节来讲有一定的滞后性,所以放在了中断扫描,隔一定时间才采集一次,这是我的理解,如有偏差请各位高手纠正。
下面是我的回帖:
        PID功能块(例如FB41)的核心是一个计算比例、积分、微分的程序。输入量是误差,输出量是误差的比例、积分、微分三部分之和。除了增益、积分时间和微分时间,PID功能块还有一个很重要的参数——采样周期。它是调用PID程序的时间间隔。计算机和PLC对积分和微分的计算是近似的,用矩形面积(误差乘以采样周期)之和来近似积分,用前后两次误差的差值与采样周期的比值来近似微分。从近似公式可知PID运算与采样周期有很大的关系。采样周期越小,积分、微分的计算误差越小。但是采样周期也不宜过小,例如大惯性的温度控制的采样周期可能长达数十秒。
        如果将PID程序放在OB1,执行PID程序的时间间隔(采样周期)等于PLC的扫描循环周期,这样带来两个问题:
        1)PLC的扫描循环周期大致只有几ms到几十ms,对于要求很长的采样周期的系统,PID计算的频率太快,不必要地加重了CPU的负担,还使PLC的扫描循环周期增大,响应变慢。对于温度这类缓慢变化的物理量,前后两次计算的误差的差值极小,可能小于误差的波动值,导致微分计算失败。
        2)PLC的扫描循环周期是波动的,它与是否调用中断OB和执行跳转指令的情况有关,在CPU的模块信息可以看到最大、最小和上一次的扫描周期。如果将PID程序放在OB1,由PID计算公式可知会产生积分、微分计算的误差。
        如果将PID控制的功能块放在OB35,上述问题迎刃而解。OB35可以保证调用PID程序的时间间隔的精度,还可以方便地调节PID的采样周期。
为什么不能在OB1中调用PID程序? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3233条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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