发布于 2008-07-04 21:30:51
0楼
上升沿是和上一次指令执行时的RLO进行比较的。只有当上一次执行是是0,这次执行时是1,才会产生上升沿。
比如:
NETWORK 1
LD SM0.0
R M0.0 1
NETWORK 2
LD SM0.0
S M0.0 1
NETWORK 3
LD M0.0
EU
S M0.1 1
虽然在这个程序中,NETWORK 1执行后M0.0为0,Network 2执行后M0.0为1,看上去M0.0从0变到了1,但在Network 3中,他是检测上一次执行时M0.0的状态和当前的比较的,由于在Network 3中M0.0始终为1,所以M0.1不会为1。
另外,如果上升沿用在子程序中,而子程序又是条件调用的,如果不注意,可能也会出问题。
例如:
Main
LD I0.0
CALL SBR_1
SBR_1
LD I0.0
EU
S Q0.0 1
这时,Q0.0 也不会被置1。因为每次SBR_1被调用的时候,I0.0 都是1,检测不到I0.0从0->1的变化。