我有现场项目用226CN,原来一直没有问题,后来用户要求加个功能,增加了一个子程序,结果在运行时,偶尔出现问题,PLC自动停机,检查错误代码为12:比较指令非常错误,只有这一个错误。
我查了程序,网上资料,本来准备找西门子技术支持,但电话一直占线,请各位大侠帮忙分析下。
程序代码比较复杂,就不贴了,只说现象。
查找PLC信息,给出了错误代码,但指向错误,指向的子程序和网络号对应的梯形图,并没有比较指令,只是一个M继电器驱动Q输出位,这个不会出错。只能是新增子程序的问题。
新增子程序中用到了临时变量(REAL类型),并且有多个”>R"指令,其中有使用了临时变量,也有使用了全局变量。
查找说明书以及网上的说法,均指出如果在进行实数比较时,如果临时变量数据类型出错,不管能流有没有经过此比较指令,比较指令均会执行,如果类型出错,那么会导致12错误,PLC停机。
但是,我通过强制改变全局变量类型,或者不对临时变量进行初始化,使比较指令中的数据类型出错,在线监测已经发现比较指令中的变量显示为”NAN“,但是PLC既不报错,也不停机。现场出现的故障现象就是模拟不出来。
请大侠们指点。