发表于:2011-07-09 14:16:58
楼主
PID的调用要在OB35中完成. 在ob35里面插入FB41,方框顶上会有红字,输入一个DB块如“DB20”。系统会问你要不要生成这个DB,选yes就可以。 大部分参数不要填,默认就行,下面是常用参数,用变量连接:
1、MAN_ON:用一个bool量,如m0.0,为true则手动,为false则自动;
2、cycle:T#100MS,这个值与ob35默认的100ms一致;
3、SP_INT:MD2,是hmi发下来的设定值,0-100.0的范围,real型;
4、PV_IN:MD6,实际测量值,比如反馈的氧浓度,要从piw×××转换为实际的工程量(使用FC105);
5、MAN:MD10 (该地址也可以是从上位机设定的地址),是手动状态下的输入值,real型。手动设多少输出将为多少。
6、GAIN: MD100(该地址也可以是从上位机设定的地址如DB 块的地址,这样可以从上位机设P 参数了),默认写1-2吧(系统默认是2),调试的时候再改。
7、TI:MW120, 默认可以写T#30S吧,调试的时候改;
8、DEAD_W:MD122,死区,就是sp和pv的偏差死区,0-100.0的范围,默认0,调试的时候改;
输出:((死区:又叫死区宽度,在控制系统中,某些执行机构如果动作频繁,会导致小幅震荡,造成严重的机械磨损。从控制要求来说,很多系统又允许被控量在一定范围内存在误差。我们允许被控量的误差大小,被称为PID的死区宽度;
死区是如何工作的呢?
当误差的绝对值小于 死区宽度 时,死区非线性的输出量(即 PID控制器的输入量)为0 ,这时PID 控制器的输出分量中,比例部分和微分部分为0,积分部分保持不变,因此PID的输出保持不变,PID控制器起不到调节作用;当误差的绝对值超过 死区宽度 时 ,开始正常的PID 控制
在FB41 中,死区宽度是“DEADB_W”
PID的输入量 = 0 偏差的绝对值|ev|< "DEADB_W"
= ev 偏差的绝对值|ev|>= "DEADB_W" ))
9、LMN:MD126,把MD126再用fc106转换到pqw××,如果pid运算结果不再有工艺条件其他限制可以用LMN_PER更简单就不用fc106了。
三、用plcsim模拟
1、手动
man_on=true,看输出是否等于man;
2、自动
man_on=false,调整pv或者sp,使得有偏差大于死区,看输出变化,这里的模拟只能说明pid工作了,不能测试实际调节效果啊。
COM_RST: BOOL: 重新启动PID:当该位TURE时:PID执行重启动功能,复位PID内部参数到默认值;通常可以不用,因为一旦参数设定好不会有大的变动了。