当前位置: 主页 > PLC控制

这段程序请帮我详细解释,谢谢

网络1:
A(
A#TEMP23
JNBM003
L#IN0
LW#16#FF00
AW
T#TEMP19
SET/什么意思
SAVE/什么意思
CLR/什么意思
M003:ABR/什么意思,是哪个数与BR位相与啊?
)/这个跳转程序怎么又多了半个括号啊?
JNBM004
L8/这个L8从哪里来?
L#TEMP19
SRW
T#TEMP21
M004:NOP0

ASs='html_titleimg_p' STyle='text-align:CEnter;'>b67349c4FC4eda67c05c113591115ea7

网络2
AL9.0/这个L9.0从哪里来啊?
=#OUT2

最佳答案

卖渔不卖鱼。转帖一个典型问题答案,楼主看后必定会解决了自己的问题。
一、问题:
A(
L"MT510".Powder1
BTI
T#temp1
SET
SAVE
CLR
ABR
)
JNB_005
L9
T#temp10
_005:NOP0

上面的那段代码是由梯形图转换而来的,首先将"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复位,以免影响下面的指令。
ABR/此时BR位为1,RLO=0
)
JNB_005/若BR=1且RLO=0,则跳转到005。
L9/此时BR=1且RLO=1
T#temp10
_005:NOP0
3.在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?
一般不要顾及用SAVE指令保存RLO。在下面的情况可用:
在一个逻辑块中需检另一查逻辑块的BR位。
例如:在用户编写的fb/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。
三、L8/将常数8,累加器1
L#TEMP19/将累加器1的内容装入累加器2,将#TEMP19中的累加器1
SRW//累加器2中8为移位的位数,即,将#TEMP19中右移8位。
T#TEMP21
M004:NOP0
网络2
AL9.0/这个L9.0要看你的整个程序了,有时由梯形图转STL时,系统会添加临时的单元。

提问者对于答案的评价:
谢谢大师

  • 关注微信

猜你喜欢

微信公众号