一段程序求解????

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐