在对汇川中型 PLC AM401 进行调试的时候,突然间就出现了 CPU 停止运行的状况:CPU 的 RUN 灯灭了,底部“程序加载 - 异常”的红灯一闪一闪的。
看了手册,在网上也搜了,啥线索都没找到。CPU 使用率和内存使用率都不高,肯定不是资源方面的问题。CPU 的系统软件还在运行,那问题应该是在用户程序这块儿。换了个 CPU,软件下载后的初始状态,啥事儿没有。进行工艺参数设定,把各项功能都启用后,也正常。断电再重启,又停止运行了。
给汇川工程师打电话,人家说可能是程序死机了,让检查有没有死循环、指针越界之类的问题。检查了一遍,啥异常都没发现。我都懵了!
第二天,又接着研究。因为编程软件还能在线,所以登录进去开始研究,一次按了下顶部的运行按钮,虽说没运行起来,但是,程序自动跳到了这个状态:
看第 30 条程序,左边有个箭头(就是调试标志),而且程序上出现了黄色的提示,仔细瞅瞅,原来是个除法指令,分母居然是 0 。接着追查,发现这个 DoorPosMux 变量在断电保存区里,虽说给了初始值,可就是没给物理地址。一下子就明白了“上电启动的时候,初始值被弄成了 0 ,所以运行就出错了”,而且这段程序是在某个工艺功能启用后才执行的。
查到原因了,修正起来就简单多了,把这个变量挪到非断电保存区域,还给了个非零的初始值,再次断电重启,就正常了。(程序修正并且同步后,如果不断电,还是不能运行,可能是我自己本事不到家!)
总结一下哈:
1、要是 CPU 停掉了,又找不出原因,那就在线运行试试,说不定就能自动找到异常的地方。2、只是用户程序不运行了,CPU 没死机,对外通讯还是好好的。
汇川AM系列PLC“程序加载-异常”,你碰到过吗?
http://bbs.plcjs.com/forum.php?mod=viewthread&tid=507053&fromuid=17
(出处: PLC论坛-全力打造可编程控制器专业技术论坛)