那我可不可以这样认为:假设定时器设置为5s,5s后触发M0.0。那么要使M0.0成功触发,子程序的调用条件必须保持5s以上,若不到5s而子程序调用条件消失,则此时定时器无效?
追答一般来说,定时器的触发都是有触发条件的,没有触发条件的定时器没有意义。既然是这样,我们用延时接通的定时器举例。假如定时器T0的触发条件是M1.0,定时时间5s。根据定时器的工作要求,在这定时器延时的5S期间,触发条件M1.0不能为0,否则定时器复位。可见,要使定时器完成定时的时间,触发条件必须不能在定时未完成前失效。而这个触发条件要持续,离不开主程序的扫描支持;或者说,因为有激活的地址在子程序中,主程序的扫描必须调用该子程序。(每个周期都调用)。一旦这主程序中的定时时间完成,定时器置位,M0.0置1。如果定时器没有复位条件,或者触发条件依然保持,那么这子程序将持续被扫描调用,(事实上是把输出状态写入输出映像区)直到触发条件消失。(前提是该子程序是条件调用的)主程序就不在调用这子程序了。这只是大体的工作过程,具体的要比这复杂的多。结构化编程的方式要同步更新变化条件,这样就引入了输入输出映像区的概念,这不是几句话能说明白的了。
结束语:结构化编程的要求就是需要才调用,没有被激活的子程序不被调用。
我想你该明白了。