指令说明:
ENCO是16位连续执行型编码指令,即每个扫描周期都执行一次编码运算。是将源操作数[S]开始的2n个位数进行编码,其结果用目标操作数[D]的n位二进制数置1来表示。
源操作数[S]为位软元件时,n的取值范围是1≤n≤8;目标操作数[S]为字软元件时,n的取值范围是1≤n≤4,n=0时不处理,n在取值范围之外时运算错误标志动作。
[S]的高位为1时,忽略低位为1的状态。
操作数:
S:X,Y, M, S,T,C,D, Z,V,LV,DT
D:T,C,D, Z,V,LV,DT
n:K,H,@
指令格式:[ENCO S D n ]
编程示例:
当源地址是位软元件M0时,X0闭合,ENCO指令执行,n=K3时,将M0的2n个位数M7~M0置1的状态进行编码后传送到D0的低3位b2~b0中。
例如M7=1时,转换成二进制数的低3位111传送到D0的低3位b2~b0中,D0的b2=1,b1=1,b0=1,D0为7。例如M5=1时,转换成二进制的低3位101传送到D0的低3位b2~b0中,所以b2=1,b1=0,b0=1,D0为5。如果M7与M5都为1时,只计算高位M7的ON位。