程序如下
MAIN: LD SM0.0 //无条件调用SBR0;
CALL SBR0
SBR0: LD M0.0 //以M0.0为条件调用SBR1;
CALL SBR1
SBR1: LD M0.0 //以M0.0*M0.1为条件启动定时器T40;
LPS
A M0.1
TON T40,100
LPP
A T40 //以M0.0*T40为条件置位M0.2;
S M0.2,1
这样每当M0.0=1,M0.1=1的瞬间T40会导通一个周期,从而置位M0.2,T40没有起到延时作用。而当我将SBR1中的内容移到SBR0中时则不会出现上述现象,这是什么原因呢?如果我一定要用子程序嵌套去启动定时器的话,要怎样才能避免这种现象呢?请高手解惑。