图2 如果FC1执行出错(除数Party2为零,见图2的右图),它的ENO端没有能流流出。ENO可以作为下一个方框的EN输入,即几个方框可以串联。只有前一个方框被正确执行,与它连接的后面的程序才能被执行,这种连接方式具有连锁的功能。 状态字中的二进制结果位BR对应于梯形图中方框指令的ENO。BR位为 1,ENO端有能流流出,反之ENO端没有能流流出。 图1中右边的SAVE指令对BR位的处理是至关重要的,如果没有它,FC1的ENO不能反映FC1的执行是否出错。 下面是删除图1中的SAVE指令后,对应的语句表程序。 A( L #IN_VAL L #Par1 *D T #MID_VAL AN OV SAVE CLR A BR ) JNB _001 L #MID_VAL L #Par2 /D T #OUT_VAL _001: NOP 0 在后两条指令之间添加下面的3条指令,FC1的ENO就能反映FC1的执行是否出错。 AN OV SAVE CLR 执行指令“AN OV”后,如果除法指令没有出错(溢出位OV为0),RLO为1;如果除法指令出错(溢出位为1),RLO为0。SAVE指令将RLO送给BR位,CLR指令将RLO清零。 除了SAVE指令,还有两条指令影响BR位。 当RLO=1时,JCB指令中断程序的顺序执行,并跳转到跳转目的地。如果 RLO = 0, 则不跳转。 当RLO=0时,JNB指令中断程序的顺序执行,并跳转到跳转目的地。如果 RLO = 1, 则不跳转。