前天夜里,高线复产。 生产时发现3#活套不调节,始终输出0.造成拉钢,导致废品。 昨天去现场分析,现场的电气段长说是一阶滤波输出始终不变,他更换了一个MD地址,就能使用了。 原地址还保存着出故障时的值。 我看了下,16进制下是0x7FC00000. 并且在变量表中无法切换成浮点数显示。 百度查了一下,0x7FC00000表示无效浮点数,无穷大。
我检查了以下程序,可以排除地址复用,并且一阶滤波,y = y * k + act * (1 - k);仅仅设计乘法和 加减法,也可以排除掉浮点数除0的操作。 始终搞不懂道理哪里运算错误导致输出值编程0x7FC00000. 并且, 一旦出现这个值, 所有的浮点数运算都会无效,所以导致了调节器输出锁死。
想来想去, 可能是检修期间停电,上电时初始化出错, 或者cpu计算这条指令的时候出错导致。
大家有何高见?