工控工程师在现场,当在线程序时,会遇到这样的警告:西门子PLC的CPU有可能由于在线操作而停机!本文来告诉你原因,再给你2个解决方法!
因为在线程序时,博途会根据画面中的程序多少进行重新编译,生成可视的变量和状态用于显示,这必然会导致CPU的代码增多,造成CPU循环周期的增加,此外在线会导致CPU产生相应的通信负载,同样会导致CPU循环周期时间延长。
当超过了CPU循环周期的上限值,导致触发OB80,如果没有调用OB80,CPU会停机。即使调用OB80,如果连续超时两次,或者循环周期一次性超过2倍最大的循环周期,那么CPU仍会停机。
解决这样问题的方法有两个,一个是限制通信负载Communication load,例如从50%降到20%,这样的结果是限制通信的上限,保证CPU的循环周期变化较小,不会超过循环周期上限,但是这种情况不仅会导致程序中的通信任务变慢,也会使上传和在线监视程序的速度变慢,因为开放的通信负载减小了。
第二个方法是调整循环周期上限,即修改CPU属性中设置最大的循环周期,例如2000ms,从而保证CPU的循环周期不会超过周期上限,但是这种方式需要注意在线多个程序画面时,CPU循环周期变化过大,可能会影响现场的工艺控制。
同样上传程序也有可能因为程序过大,导致通信过大而CPU停机。
最后需要强调的是无论是哪种方式,只要CPU提示警告信息,这说明随后的操作可能造成CPU的停机,这时需要谨慎处理以免停机给生产造成损失。
作者:赵欣