SET,SAVE,BR使用问题 。

已锁定

dakar

  • 帖子

    244
  • 精华

    0
  • 被关注

    24

论坛等级:奇侠

注册时间:2014-01-27

钻石 钻石 如何晋级?

SET,SAVE,BR使用问题 。

734

0

2017-05-14 13:31:56

 一个典型的问题:
A(    
      L     "MT510".Powder1
      BTI   
      T     #temp1
      SET   
      SAVE                                    
      CLR   
      A     BR                          
      )     
      JNB   _005
      L     9
      T     #temp10
_005: NOP   0
上面的那段代码是由梯形图转换而来的,首先将"MT510".Powder1
做BCD-I转换并存于temp1,然后将9传送到temp10,两个指令串联在一起。
现有如下问题向各位请教:
1、BTI指令执行完成后BR位自动置位吗?还是需要SAVE?
2、上段中的SET、SAVE及CLR用途何在?
3、在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?
回答:
首先弄清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位目的。

红字部分没有看懂,SET将RLO置位且SAVE将置位后的RLO保存到了BR位,然后CLR复位了RLO,到此BR=1且RLO=0,则跳转到005 ,那L9永远也无法传送到#temp10中去啊?


SET,SAVE,BR使用问题 。 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54798条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。