大家都知道受控系统需要一个确定的采样和计算时间来对输出值的变化做出响应,那么这个确定的时间就非常重要了。
在西门子PLC中OB1由于受到通信、高优先程序的中断,扫描周期并不确定,而循环中断则可以保证扫描周期的确定性,同时循环中断的周期时间也可以根据受控对象的响应进行调整。
PID中的积分和微分时间也与这个确定的时间相关,扫描周期不稳定,设定参数的PID回路就不可能完成控制任务!
如果在OB1中调用PID会有什么影响呢?
这是真实发生的事件:现场使用的是老型号的S7-300,CPU升级替换后,受控系统的速度输出突然发生剧烈的震荡,生成的产品报废,加上不菲的原材料,大概20W,可谓损失惨痛!
用户认为新的CPU有BUG,非要找老型号的CPU替换,帮忙查找问题,最后发现是使用PID控制速度的,PID工艺块是在OB1中调用的,那么PID的参数就是一个调试结果而非正确的设定值。
那么为什么会发生这样的事故呢?
原因就是新CPU比老CPU运算速度提高了将近7倍,原有PID参数就失效了!
目前西门子PLC S7-1500的PID控制工艺块,在参数整定时系统会自动检查设定与实际的采用周期是否与匹配,这样可能就会避免上述的问题了。
作者:崔坚带