STL语言中 JC和JCB的区别
刘玉蓉
发布于2014-10-30 17:51
5
0
标签:
看说明上说是JCB是带BR位,不理解BR位的意思,这两个跳转用起来有什么区别?
佳答案
JC和JCB的区别:
JC 若 RLO = 1,则跳转;
JCB 若 RLO = 1,则连同BR 一起跳转
举例说明BR位,没有找到JCB的例子,找到了中应用了JNB (若 RLO = 0,则连同BR 一起跳转),与JCB逻辑相反,但可以说明问题。
转帖:下述程序是由梯形图转换而来的:
A(
L "MT510".Powder1
BTI
T #temp1
SET
SAVE
CLR
A BR
)
JNB _005
L 9
T #temp10
_005: NOP 0
上述程序中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位目的