A #IN8
A [AR1,P#8.0]
S DBX [AR1,P#8.6]
A [AR1,P#8.1]
R DBX [AR1,P#8.6]
A BR
A DBX [AR1,P#8.6]
JCN M008
L W [AR1,P#6.0]
+ 200
T W [AR1,P#6.0]
M008: NOP 0
A(
L W [AR1,P#6.0]
L 600
>I
)
A DBX [AR1,P#8.6]
AN #IN8
A #IN16
S [AR1,P#9.1]
此程序为一段,不影响我的提问,我想问:
1 :A #IN8
A [AR1,P#8.0]
S DBX [AR1,P#8.6]
A [AR1,P#8.1]
R DBX [AR1,P#8.6]
此五行 若复位 DBX [AR1,P#8.6],是否仅需 [AR1,P#8.1]为1,与其他无关??
2:A BR
A DBX [AR1,P#8.6]
此两句,每一句执行后,RLO为多少?分BR为1和为0两种情况。此步的RLO值影响下一步A DBX [AR1,P#8.6] 操作吗?
3:若M008可以跳转,则是否仅与A BR
A DBX [AR1,P#8.6] 此两句有关?
4:M008能否跳转,需要什么条件?是否仅需要BR为0或者东南向[AR1,P#8.6]为0即可?
5:S [AR1,P#9.1]什么时候执行,说具体点。
这段程序,是否M008中的 S [AR1,P#9.1]永远无法执行?由于倒数3,4行 A DBX [AR1,P#8.6]
AN #IN8 与正数1,5行矛盾
最佳答案
1.由于R、S等指令执行完后会复位首次检测位/FC,所以后面的指令开始新的逻辑
A [AR1,P#8.1]
R DBX [AR1,P#8.6]
不受前面指令的影响,即复位 DBX [AR1,P#8.6],仅需 [AR1,P#8.1]为1,与其他无关。
2. A BR
A DBX [AR1,P#8.6]
这里句代码就是一个与操作,即BR和DBX[AR1,P#8.6]与运算,结果RLO会影响后面的跳转指令。
3. 因为A BR前面是一条R指令,这个和第一项一样,即跳转只和
A BR
A DBX [AR1,P#8.6]
这两句有关。
4. 跳转条件仅需BR为0或DBX[AR1,P#8.6]为0。
5. S [AR1,P#9.1]的执行条件是前面运算结果RLO为1,即
W [AR1,P#6.0] 大于600
DBX [AR1,P#8.6]为1
#IN8为0
#IN16为1
以上条件全部满足。
M008中的 S [AR1,P#9.1]不一定无法执行,因为#IN8为0不会影响DBX[AR1,P#8.6],DBX[AR1,P#8.6]是否被复位由 [AR1,P#8.1]决定。
提问者对于答案的评价:
谢谢,非常详细,GOOD LUCK
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc295075.html