TOP5 之PID指令输出为零的5大原因
放眼PID 调试中的常见问题,无论是FB58还是FB41,PID的输出值为零一直困扰许许多多的客户,今天我们评选出来导致输出为零的5大原因。

图1
TOP.5
参数MAN_ON用于切换手动和自动状态,MAN_ON=1 PID处于手动状态,此时的输出LMN=MAN。大多数初次使用的客户有一个误区,FB引脚不写参数,参数就应该是0,其实不然,FB41缺省MAN_ON=1处于手动状态,而手动值MAN =0,参考图2,相当于直接手动给输出“0”,所以如果您忽略了这一点,LMN=0就不足为奇了。

图2
易犯指数:9
难度指数:6
综合评定:7.5
TOP.4
参数P_SEL、 I_SEL 、D_SEL分别控制激活比例、积分、微分作用,初始状态FB41处于比例积分作用,见图3。但是如果其它地方对这几个参数作了复位操作,则相当于取消了PID的作用,比例分量LMN_P、 积分分量LMN_I、微分分量LMN_D将都是“0”,那么PID的输出LMN自然也为零。这种情况常出现在程序中其它地方的地址复用或是上位组态系统的误操作,千万要注意啊!
图3
易犯指数:8
难度指数:8
综合评定:8
TOP.3
参数LMN_HLM、 LMN_LLM是对PID输出的限幅,分别代表上限和下限,缺省情况限制在0.0-100.0,如图4。但是如果我们给FB41引脚LMN_HLM、 LMN_LLM赋实参,如图5,这个时候LMN_HLM、 LMN_LLM的实际值就由MD2和MD6决定了,但很多用户忘了给MD2 MD6赋值,上下限就都成了“0”,见图6。可想而知,这个时候不管您怎么设置参数,LMN必然为零。
图4
图5
图6
易犯指数:9
难度指数:8
综合评定:8.5
TOP.2
参数COM_RST=1执行完全复位操作,比例、微分分量的输出为零,积分分量恢复为积分初值(默认为0),我们常常在OB100中执行,见图7,只在CPU重新上电的时候对PID复位。但是要注意了,COM_RST置位后不会自己复位,如果我们不手动复位它,COM_RST会一直为1,PID始终处于复位状态,如图8,这样LMN当然输出“0”了。所以OB100中执行完FB41,一定注意要复位COM_RST,见图9。
图7
图8

图9
易犯指数:9
难度指数:9
综合评定:9
TOP.1
见图10,PID手动,手动输出值50.0,貌似没有任何问题,但是输出LMN确是“0”,见图11。我们再仔细检查程序,经常发现FB41执行了多次,可是使用的是同一个背景数据块DB41,见图12,这种情况就会使得不同的PID回路互相影响,LMN输出就很可能是一个随机的不可预测的数了,象图12中的情况输出LMN等于0。所以,如果使用多路PID,一定要给每个回路分配一个背景数据块,千万不要使用同一背景数据块,必须的!
图10

图11
图12
易犯指数:10
难度指数:10
综合评定:10
以上举出了PID FB41输出为0的5个常见易犯的错误,但是客观上来说,所有的错误都是对参数含义不了解或是粗心造成的。经常会有客户问,FB41哪些参数是有用的,我想说,所有的参数都是有用的!因为只有您了解了参数的含义,才知道自己的系统到底用不用得到