发布于 2012-05-24 09:14:31
12楼
在一个周期内M0.2被两次赋值
第一次调用子程序,子程序中上跳沿检测结果为0,M0.2被赋值为0
第二次调用子程序,子程序中上跳沿检测结果为1,M0.2被赋值为1
如果没有其他地方对M0.2赋值,那么在整个扫描过程中,可以分为两个部分
两次子程序调用之间M0.2为0,第二次调用子程序到下一周期第一次调用子程序之间M0.2为1
如果在线监视,可以看到M0.2一直为1,因此监视的值是一次扫描周期结束时的值。
这个例子证明了shine版在9楼的论断,在子程序中正负跳变的状态是可以被保存的,两次调用子程序同样可以判断信号跳变,只不过该跳变的检测是以两次调用的时间差作为检测周期了。