谁帮忙看下300PLC的PID程序怎么没动静?

通过一个流量计去控制罐内压力的PID程序。
压力传感器经FC105处理后,为0-100.0的值,送到PID的Pv-in。
PID的LM输出MD132一直在线监测是0,没变化。MD132经FC106处理后去PQW342,也没变化。
通过变量表设定DB6.DBD58为0或100,输出都没变化。
PLC关电再上电也是如此。
OB100中是初始化,OB1是处理输入输出,OB34是FB41,中断周期是200ms,我没用OB35。

图片说明:

谁帮忙看下300PLC的PID程序怎么没动静?    谁帮忙看下300PLC的PID程序怎么没动静?    谁帮忙看下300PLC的PID程序怎么没动静?    谁帮忙看下300PLC的PID程序怎么没动静?    谁帮忙看下300PLC的PID程序怎么没动静?   

最佳答案

变量表设定DB6.DBD58为0或100,输出都没变化?
一、注意,SP_INT:是0-100.0的范围,real型;例如,MD、DBD的32位的变量。
二、常用参数,用变量连接:
  1、MAN_ON:用一个bool量,如m0.0,为true则手动,为false则自动;
  2、cycle:T#100MS,这个值与ob35默认的100ms一致;
  3、SP_INT:如MD2,设定值,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了。
三、有关规格化:
转帖:
在PID中有不同的物理量,例如温度、压力及阀门开度等,它们的量纲单位均不同,所以要进行规格化工作。
规格化概念及方法:
  PID参数中重要的几个变量,给定值,反馈值和输出值都是用0.0~1.0之间的实数表示,
  而这几个变量在实际中都是来自与模拟输入,或者输出控制模拟量的
  因此,需要将模拟输入转换为0.0~1.0的数据,或将0.0~1.0的数据转换为模拟输出,这个过程称为规格化  
  规格化的方法:(即变量相对所占整个值域范围内的百分比 对应与27648数字量范围内的量)
  对于输入和反馈,执行:变量*100/27648,然后将结果传送到PV-IN和SP-INT
  对于输出变量 ,执行:LMN*27648/100,然后将结果取整传送给PQW即可;

提问者对于答案的评价:
今天周六,还有许多人在这帮忙解答问题,很感动~~
设定值和反馈值不一定要在0-1之间,只要两者在相同的量纲就行。然后,用FC105和FC106了,便不要再100/27648了等等,两者其实是一个事情。
不过,我也不肯定是哪儿的问题。是在上位机监测修改了SP和PV,就好了。难道是在线赋值SP和PV不行?

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc234454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午2:27
下一篇 2018年12月1日 下午2:27

相关推荐