:fb41的pid:
一、在ob35里面插入fb41,方框顶上会有红字,输入一个类似“db120”的,系统会问你要不要生成这个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×××转换为0-100.0的量程;
5、man:md10,op值,也就是手动状态下的阀门输出,real型,0-100.0的范围;
6、gain:md14,pid的p啊,默认写1-2吧(系统默认是2),调试的时候再改
7、ti:mw20,pid的i啊.默认写t#30s吧,调试的时候改;
8、dead_w:md22,死区,就是sp和pv的偏差死区,0-100.0的范围,默认0,调试的时候改;
输出:
9、lmn:md26,0-100。0,最终再用fc106转换为word型move到pqw×××,如果pid运算结果不再有工艺条件其他限制可以用lmn_per更简单就不用fc106了。
三、用plcsim模拟
1、手动
man_on=true,看输出是否等于man;
2、自动
man_on=false,调整pv或者sp,使得有偏差大于死区,看输出变化,这里的模拟只能说明pid工作了,不能测试实际调节效果啊。
2、在pid中有不同的物理量,例如温度、压力及阀门开度等,它们的量纲单位均不同,所以要进行规格化工作。
规格化概念及方法:
pid参数中重要的几个变量,给定值,反馈值和输出值都是用0.0~100.0之间的实数表示,
而这几个变量在实际中都是来自与模拟输入,或者输出控制模拟量的
因此,需要将模拟输入转换为0.0~100.0的数据,或将0.0~100.0的数据转换为模拟输出,这个过程称为规格化
规格化的方法:(即变量相对所占整个值域范围内的百分比对应与27648数字量范围内的量)
对于输入和反馈,执行:变量*100/27648,然后将结果传送到pv-in和sp-int
对于输出变量,执行:lmn*27648/100,然后将结果取整传送给pqw即可;
d:pid的调整方法:
一般不用d,除非一些大功率加热控制等惯大的系统;仅使用pi即可,
一般先使i等于0,p从0开始往上加,直到系统出现等幅振荡为止,记下此时振荡的周期,然后设置i为振荡周期的0.48倍,应该就可以满足大多数的需求。