首页 百科知识 功能指令的格式及说明

功能指令的格式及说明

时间:2022-10-21 百科知识 版权反馈
【摘要】:每种功能指令都有规定的指令格式,例如,位右移SFTR功能指令的指令格式如下::源元件,其数据或状态不随指令的执行而变化的元件。功能指令执行的过程比较复杂,通常要程序步较多,例如,SFTR功能指令的程序步为9步。功能指令最少为1步,最多为17步。在指令格式中没有P的表示该指令只能是连续执行型。用变址寄存器对功能指令中的源元件和目的元件进行修改,可以大大提高功能指令的控制功能。

3.4.2 功能指令的格式及说明

1)功能指令使用的软元件

功能指令使用的软元件有字元件和位元件两种类型:

字元件 img192

位元件 img193

能表达数值的元件叫做字元件,字元件有以下三种类型:

(1)常数:“K”表示十进制常数,“H”表示十六进制常数,如K1369、H06C8;

(2)位元件组成的字元件:如KnX、KnY、KnM、KnS,再如K1X0、K4M10、K3S3;

(3)数据寄存器:D、V、Z、T、C,如D100、T0。

在功能指令中可以将4个连续编号的位元件组合成一组组合单元,KnX、KnY、KnM、KnS中的n为组数,例如,K2Y0是由Y7~Y0组成的2个4位字元件。Y0为低位,Y7为高位。用它可以表示2位十进制数或2位十六进制数,也可以表示8位二进制数。

在执行16位功能指令时n=1~4,在执行32位功能指令时n=1~8。

例如,执行图3-71所示的梯形图时,当X1=1时,将D0中的二进制数传送到K2Y0中,其结果是D0中的低8位的值传送到Y7~Y0中,即Y7~Y0=01000101BIN,其中Y0、Y2、Y6三个输出继电器得电。

img194

图3-71 位元件组成的字元件的应用

2)功能指令的指令格式

每种功能指令都有规定的指令格式,例如,位右移SFTR(SHIFT RIGHT)功能指令的指令格式如下:

指令格式img195

可使用软

元件范围img196

(S):源元件,其数据或状态不随指令的执行而变化的元件。如果源元件可以变址用(S.)表示,如果有多个源元件可以用(S1.)、(S2.)等表示。

(D):目的元件,其数据或状态将随指令的执行而变化的元件。如果目的元件可以变址用(D.)表示,如果有多个源元件可以用(D1.)、(D2.)等表示。

m、n:既不做源元件又不做目的元件。当元件数量多时用m1、m2、n1、n2等表示。

功能指令执行的过程比较复杂,通常要程序步较多,例如,SFTR功能指令的程序步为9步。功能指令最少为1步,最多为17步。

每种功能指令使用的软元件都有规定的范围,例如,上述SFTR指令的源元件(S.)可使用位元件为X、Y、M、S;目的元件(D.)可使用位元件为Y、M、S;等等。

3)元件的数据长度

FX2N系列PLC中的数据寄存器D为16位,用于存放16位二进制数。在功能指令的前面加字母D就变成了32位指令,例如:

img197表示将D0中的16位二进制数据传送到D2中。

img198表示将(D1、D0)中的32位二进制数据传送到(D3、D2)中。

在指令格式中,功能指令中的“(D.)”表示该指令加D为32位指令,不加D为16位指令,在功能指令中的“D”表示该指令只能是32位指令。

功能指令的指令格式参见附录B。

4)执行形式

功能指令有脉冲执行型和连续执行型两种执行形式。

指令中标有“(P)”的表示该指令可以是脉冲执行型也可以是连续执行型。如果在功能指令后面加P为脉冲执行型。在指令格式中没有P的表示该指令只能是连续执行型。

脉冲执行型指令在执行条件满足时仅执行一个扫描周期,这点对数据处理有很重要的意义。比如一条加法指令,在脉冲执行时,只将加数和被加数做一次加法运算。而连续执行型加法运算指令在执行条件满足时,每一个扫描周期都要相加一次,这样就失去了控制。为了避免这种情况,对需要注意的指令,在指令的旁边中用“img199”加以警示,参见附录B。

img200为16位脉冲执行型指令,

img201为32位脉冲执行型指令。

5)变址操作

功能指令的源元件(S)和目的元件(D)大部分都可以变址操作,可以变址操作的源元件用(S.)表示,可以变址操作的目的元件用(D.)表示。

变址操作使用变址寄存器V0~V7、Z0~Z7。用变址寄存器对功能指令中的源元件(S)和目的元件(D)进行修改,可以大大提高功能指令的控制功能。如图3-72所示。

img202

图3-72 变址寄存器应用

图3-72(a)中用4位输入接点K1X0(X3~X0)表示4位二进制数0000~1111,如X3、X2、X1、X0=0101,则V=6。如X7、X6、X5、X4=1100,则Z=12。当M0=1时,则执行把D6(0+6=6)中的数据传送到D32(20+12=32)中。

图3-72(b)中用K1X0给V赋值,同样当V的值在0~15之间变化时,就可以把C0~C15中的任一个计数器的当前值以BCD数的形式在输出端Y 17~Y0显示出来。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈