狀態(tài)字的第8位為二進(jìn)制結(jié)果位br。
在梯形圖中,用方框表示功能(fc)、功能塊(fb)和某些指令。
圖1中的fc1有3個雙整數(shù)輸入?yún)?shù)和1個雙整數(shù)輸出參數(shù)。輸入變量in_val乘以系數(shù)par1,除以系數(shù)par2后,得到輸出參數(shù)out_val。save指令將rlo保存到br位中。
圖1
圖2是ob1調(diào)用fc1的程序。i0.0的常開觸點(diǎn)接通時,fc1的en(enable,使能輸入)輸入為1,才能執(zhí)行fc1。如果fc1的en端有能流流入,而且執(zhí)行時無錯誤(除數(shù)非零),使能輸出eno(enableoutput)端有能流流出。en和eno均為bool型。
圖2
如果fc1執(zhí)行出錯(除數(shù)party2為零,見圖2的右圖),它的eno端沒有能流流出。eno可以作為下一個方框的en輸入,即幾個方框可以串聯(lián)。只有前一個方框被正確執(zhí)行,與它連接的后面的程序才能被執(zhí)行,這種連接方式具有連鎖的功能。
狀態(tài)字中的二進(jìn)制結(jié)果位br對應(yīng)于梯形圖中方框指令的eno。br位為1,eno端有能流流出,反之eno端沒有能流流出。
圖1中最右邊的save指令對br位的處理是至關(guān)重要的,如果沒有它,fc1的eno不能反映fc1的執(zhí)行是否出錯。
下面是刪除圖1中的save指令后,對應(yīng)的語句表程序。
a(
l#in_val
l#par1
*d
t#mid_val
anov
save
clr
abr
)
jnb_001
l#mid_val
l#par2
/d
t#out_val
_001:nop0
在最后兩條指令之間添加下面的3條指令,fc1的eno就能反映fc1的執(zhí)行是否出錯。
anov
save
clr
執(zhí)行指令“anov”后,如果除法指令沒有出錯(溢出位ov為0),rlo為1;如果除法指令出錯(溢出位為1),rlo為0。save指令將rlo送給br位,clr指令將rlo清零。
除了save指令,還有兩條指令影響br位。
當(dāng)rlo=1時,jcb指令中斷程序的順序執(zhí)行,并跳轉(zhuǎn)到跳轉(zhuǎn)目的地。如果rlo=0,則不跳轉(zhuǎn)。
當(dāng)rlo=0時,jnb指令中斷程序的順序執(zhí)行,并跳轉(zhuǎn)到跳轉(zhuǎn)目的地。如果rlo=1,則不跳轉(zhuǎn)。