发布于 2006-09-01 14:06:32
0楼
1、
A M10.0 新加的条件
L P#8.7
T MD2
对于以上语句,不论M10.0的状态如何,都会执行将P#8.7赋值给MD2的情况。 你可能把这个和S7-300里的条件赋值搞混了。 如果想做到和S7-200一样的效果(即只有M10.0为1时才会执行赋值),那么需要用跳转指令来配合,比如
A M10.0 新加的条件
JCN _001
L P#8.7
T MD2
_001:NOP 0
2、还是S7-300与S7-200的区别。 在200中不同的NetWork开始,会使/FC=0。而在300中并不是这样,S7-300中需要一些逻辑操作指令会导致/FC=0,比如赋值=、置位S、复位R、与组合A(等等... ... 因而你的指令代码和下面的程序等效:
NETWORK1
L P#8.7
T MD2
NETWORK2
A M10.0 新加的条件
A I[MD2]
= Q[MD2]
而使用如下程序,则是Q8.7=I8.7 与M10.0无关了!
NETWORK1
A M10.0 新加的条件
= Q0.0 //***增加这一条,用了赋值指令,导到/FC=0,从而不会影响下一段
L P#8.7
T MD2
NETWORK2
A I[MD2]
= Q[MD2]
I can do it