PLC中的译码指令DECO,其原理其实就和上文所举的例子一样,将n位二进制编码的不同逻辑组合转换为2 n 种输出状态,其编程手册截图如下图所示。
该指令不能用于32位,有连续执行型和脉冲执行型两种,不能用组合位元件。其梯形图的形式如上图所示,其中n表示输入二进制编码有n位,即当源址S为字元件地址时,该n位二进制位就(S)的低n位;当S为位元件组合的首址时,表示它是n位位元件的组合终址D的位数指定为2 n 位 。
这里要注意的是,因为字元件为16位,所以当终址D是字元件时,1≤n≤4;当终址D为位元件时,1≤n≤8;当n=0,指令出错。
当驱动条件成立时,由S中的n位二进制数值m,使D中编号为m的位元件或bm位置ON。
例如:执行指令DECO X0 D0 K3,此时输入编码由X2、X1、X0组成,对应输出为D0中的b7~b0共8位。
若(X2,X1,X0)=010=K2,此时D0中的b2位就会置ON,如下图所示。
另外,当驱动条件为OFF后,指令不再执行,但之前执行的输出会保持不变,如下图中的b2位会保持为ON状态。
译码指令EDNO的实际应用有哪些呢?
其实我也不知道,也没办法产生联想,不过根据这个指令的特点,大家会不会有什么想法?
欢迎留言评论哟!知道了译码指令,我们继续看编码指令ENCO。
2.编码指令ENCO
编码指令ENCO为译码指令DECO的逆指令,它的功能正好和DECO指令相反,其编程手册截图如下图所示。
基于大家已经理解译码指令的前提下,我想编码指令理解起来是问题不大的。
和译码指令一样,编码指令ENCO也不能用于32位,有连续执行型和脉冲执行型两种,不能用组合位元件。
其梯形图的形式如上图所示,其中n表示二进制编码有n位,显然,与译码指令相反,此时源址S的位数就指定为2 n 位,当终址D为字元件地址时,该n位二进制位就(D)的低n位;当D为位元件组合的首址时,表示它是n位位元件的组合。
其指令的执行也与译码指令相反,当驱动条件成立时,由S中的置1的二进制位的位置编号值m,转换为二进制数传送到终址D中。
例如执行指令ENCO M0 D0 K4,由于n=K4,所以源址S由16位的M15~M0组成,若此时M7=ON,转换为二进制数为0111,传送到D0后,使得(D0)=0000 0000 0000 0111,如下图所示。
这里要注意的一点是,源址中原则上是只能有一个1的,但若有多个1,ENCO指令会对在高位的1进行编码,而把其他位的1忽略,例如执行指令ENCO M0 D0 K4,若此时M7、M4、M0都为ON状态,指令执行后D0的内容仍为H0007。
编码指令是实际应用应该比译码指令的多,例如红绿灯的控制是我能联想到的。总的来说,译码指令和编码指令不算常用指令,我们能理解它们的功能就行。
这次的分享先到这了,大家先消化一下,下篇文章继续。
注:本文章内容都是基于三菱FX PLC 2N
所写选自《三菱FX系列PLC功能指令详解》第五章第39~53课时