当前位置: 主页 > PLC控制

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

在下面这段程序中,是一个面积算法,只是在程序中我不懂前面两个A(的含义,以及每段后面的setsaveclr三个词在语句中的作用,希望大神可以给这段程序做个注释,有劳各位大神了。
_006:NOP0
A(
A(
AL0.0
JNB_007
L#Data_A2
ITD
T#Data_A3
SET
SAVE
CLR
_007:ABR
)
JNB_00a
L#Data_A3
DTR
T#Data_A4
SET
SAVE
CLR
_00a:ABR
)
JNB_00b
L#Data_A1
L#Data_A4
*R
T#Data_A5
_00b:NOP0
A(
AL0.0
JNB_00f
L#Data_A5
TRUNC
T#Data_A6
ANOV
SAVE
CLR
_00f:ABR
)
JNB_012
L#Data_A6
OPNDB["MW210"]
TDBW48
_012:NOP0

最佳答案

1、楼主的程序是从梯形图转换为STL的,楼主将程序转换为梯形图,就看明白了。
2、不懂前面两个A(的含义?
这是嵌套的“逻辑与”操作,遇到这种结构,就找好配对的”(“和”)“。例如下面的程序:
A(//——-1
A(//——-2
A(//——-3
程序A
)//——3
A(//——4
程序B
)//——-4
)//——-2
)//——-1
=逻辑结果
3、setsaveclr三个词在语句中的作用?
由梯形图转换而来的,系统自动给加上的。
首先弄清BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。
、因为上面的那段代码是由梯形图转换而来的。出现了“SET、SAVE及CLR”。就此而论,SET与SAVE两指令。SET即将状态字RLO置位;SAVE将RLO保存到状态字的BR位。此时表示功能被正确执行,即BR位为1.
、CLR/将状态字RLO复位,以免影响下面的指令。
ABR/此时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位目的。

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

  • 关注微信

猜你喜欢

微信公众号