主控继电器(mastercontrolrelay)简称mcr。
主控继电器用来控制mcr区内的指令是否被正常执行,相当于一个用来接通和断开“能量流”的主令开关。有关指令:
mcra:激活mcr区指令;
mcrd:取消mcr区指令;
mcr(:打开mcr区指令,在mcr堆栈中保持该指令之前的逻辑运算结果rlo(即mcr位);
mcr):关闭mcr区指令,从mcr堆栈中取出保存的逻辑运算结果rlo;
mcr(,mcr)指令必须成对使用,以表示受控临时“电源线”的形成与终止。
例:
mcra//激活mcr区
ai0.2
mcr(//rlo保存到mcr堆栈,打开mcr区,i0.2=1则mcr位为1,反之为0
ai3.1
=q4.0//如mcr位为0,不管i3.1的状态如何,q4.0被置为0
ai0.5
jnb-001
lmw20
tqw10//如mcr位为0,mw20内容送入qw10
-001:nop0
)mcr//结束mcr控制区
mcrd//关闭mcr区
ai1.1
=q4.1//这两条指令在mcr区之外,不受mcr位的控制
在此,在转帖有关例题:
mcr指令叫做主控指令,简单地讲是有这么一个mcr的栈区。在这个栈区内的操作不仅受分步条件控制,还可以用mcr的on或off来进行总控制!如:
stlexplanation
mcra//activatemcrarea.
ai1.0
mcr(//saverloinmcrstack,openmcrarea.mcr=onwhenrlo=1(i?.0=1);mcr=offwhenrlo=0(i1.0=0)
ai4.0
=q8.0//ifmcr=off,thenq8.0issetto0regardlessofi4.0.
lmw20
tqw10//ifmcr=off,then0istransferredtoqw10.
)mcr//endmcrarea.
mcrd//deactivatemcrarea.
ai1.1
=q8.1//theseinstructionsareoutsideofthemcrareaandarenotdependentuponthemcrbit.
在上例中,用i1.0来作为mcr取激活的条件,既将ai1.0逻辑结果rlo存入mcr区,mcr区是否为no取决于rlo,rlo=0时mcr区为no,在此条件下,区内的逻辑结果受mcr总控,既如ai4.0=q8.0一句,只要mcr区为no,q8.0即为零,而不管i4.0的状态如何!