这方面西门子手册里提及的不多,三菱手册里倒是对这个原理有些解释。
其实就一句话:所有计时、计数、沿指令的正确执行,都需要基于上一次的执行结果。
所以,首次执行的沿指令不能被触发(比如启动时,比如子程序中);同一计时、计数、沿指令在一个循环中多次执行会产生特殊结果,前两会立即+1,沿指令在for循环或子程序中多次执行结果不好判断,特别是有指针参与时;同一计时、计数、沿指令如果跳循环执行(比如子程序的间断调用),都能正确执行,也就是延迟一下。只要明白以上都是基于上一次的执行结果就成(计时器的时间会正确刷新)。
不得不提一句,西门子的计时器,分类太多,上述结论仅适用于100ms计时器。
另外out指令也是类似上述原理的执行方式