我对BR的理解对不对

我是一个新手,对BR理解不是很清楚,望看一下我的理解是不是正确的。
A(    
      L     "MT510".Powder1
      BTI   
      T     #temp1
      SET   
      SAVE                                    
      CLR   
      A     BR                          
      )     
      JNB   _005
      L     9
      T     #temp10
_005: NOP   0
在这个程序中用SET将RLO置1后保存到状态字的BR位。问题1就是BR位是不是只表示字操作是不是正确,不做位操作的判断?也就是这个程序中变量MT510和TEMP1不论是正确还是不正确都不影响程序往下执行。因为在两个变量下以经将BR们置1。变量TEMP10在程序BR置1的后面是不是如果这个变量错误。将要影响到程序的执行。?问题2如果将SET.SAVE.CLR写到程序的最前方的话,程序还和以前的完全一样吗?

问题补充:
还是不怎么明白,能说的简单些吗,最好能有举例

最佳答案

A、楼主的理解正确,BR位是表示字操作是不是正确。其他问题:
转帖:
首先弄清BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。
1. 因为上面的那段代码是由梯形图转换而来的。出现了“SET、SAVE及CLR”。就此而论,在做BCD-I转换并存于temp1后,SET与SAVE两指令。SET即将状态字RLO置位;SAVE将RLO保存到状态字的BR位。此时表示功能被正确执行,即BR位为1.
2. CLR    /  将状态字RLO复位,以免影响下面的指令。
    A     BR  /  此时BR位为1,RLO=0
    )     
    JNB   _005 / 若BR=1且RLO=0,则跳转到005。
L     9   /   此时BR=1且RLO=1
    T     #temp10
  _005: NOP   0
3. 在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理? 
 一般不要顾及用SAVE指令保存RLO。在下面的情况可用:
 在一个逻辑块中需检另一查逻辑块的BR位。
例如:在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。
B、问题2如果将SET.SAVE.CLR写到程序的最前方的话,程序还和以前的完全一样吗?
就这个程序来讲,是一样。

提问者对于答案的评价:
谢谢你的回答

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc249137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日
下一篇 2018年12月2日

相关推荐