继续求助stl语句 各位大神来指点指点

在下面这段程序中,是一个面积的算法,只是在程序中我不懂前面两个A(的含义 ,以及每段后面的set save clr三个词在语句中的作用,希望大神可以给这段程序做个注释,有劳各位大神了。
_006: NOP   0
      A(    
      A(    
      A     L      0.0
      JNB   _007
      L     #Data_A2
      ITD   
      T     #Data_A3
      SET   
      SAVE  
      CLR   
_007: A     BR
      )     
      JNB   _00a
      L     #Data_A3
      DTR   
      T     #Data_A4
      SET   
      SAVE  
      CLR   
_00a: A     BR
      )     
      JNB   _00b
      L     #Data_A1
      L     #Data_A4
      *R    
      T     #Data_A5
_00b: NOP   0
      A(    
      A     L      0.0
      JNB   _00f
      L     #Data_A5
      TRUNC 
      T     #Data_A6
      AN    OV
      SAVE  
      CLR   
_00f: A     BR
      )     
      JNB   _012
      L     #Data_A6
      OPN   DB ["MW 210"]
      T     DBW   48
_012: NOP   0

最佳答案

1、楼主的程序是从梯形图转换为STL的,楼主将程序转换为梯形图,就看明白了。
2、不懂前面两个A(的含义?
这是嵌套的“逻辑与”操作,遇到这种结构,就找好配对的”(“和”)“。例如下面的程序:
A(  //——-1
A(   //——-2
A(     //——-3
程序A
)       //——3
A(      //——4
程序B
)     //——-4
)  //——-2
)   //——-1
=逻辑结果
3、set save clr三个词在语句中的作用?
由梯形图转换而来的,系统自动给加上的。
首先弄清BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。
、因为上面的那段代码是由梯形图转换而来的。出现了“SET、SAVE及CLR”。就此而论,SET与SAVE两指令。SET即将状态字RLO置位;SAVE将RLO保存到状态字的BR位。此时表示功能被正确执行,即BR位为1.
、CLR    /  将状态字RLO复位,以免影响下面的指令。
    A     BR  /  此时BR位为1,RLO=0
    )     
    JNB   _00a/ 若BR=1且RLO=0,则跳转到_00a。
、在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理? 
、 一般不要顾及用SAVE指令保存RLO。在下面的情况可用:
 在一个逻辑块中需检另一查逻辑块的BR位。
例如:在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。

提问者对于答案的评价:
嗯  大概明白了set save clr的作用,如果前面程序正确执行   则set置位rlo  save将rlo结果保存至br位  clr又清零  以至于到下一个程序执行时a  br可以检测到上个程序执行情况。但是a(这些需要再琢磨琢磨,可惜不知道大神扣扣  我扣扣893356795  大神赏脸的话可以加一下

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

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

相关推荐