菜鸟:
调用子程序时,用监控表监控定时器,发现定时器的值保持不变,请同行老师解答一下!
大虾:
手册和帮助里说的很清楚,三种定时器的刷新机制。
甲类 执行= Txx指令的时候刷新。
乙类 执行END指令的时候刷新。
丙类 执行每1毫秒刷新。
请对比一下你的程序,你认为你子程序里面的计时器,应该在上述的三种情况中的哪一种里面,令计时器的值发生变化?
菜鸟:
不好意思是我没说明白,当我调用子程序运行同时,某条件置位Q0.0,I1.0常开点动作时T37 100mS定时器计时30S,此定时器的常开点去置位Q0.1并复位Q0.0,此时状态表里T37的当前值位30,当子程序退出后再次调用此子程序时,T37的当前值还是30,程序没有定时直接置位Q0.1复位Q0.0了,也就是定时器T37没有定时直接跳过了。
大虾:
甲类 执行= Txx指令的时候刷新。
请对比一下你的程序,你认为你子程序里面的计时器,哪里令计时器的值发生变化?
菜鸟:
退出子程序时将定时器值赋值0就没问题。
大虾:
如果有很多定时器,每一个都需要在退出子程序时赋0,好麻烦。如果用主控指令,定时器就自动清零了。