欢迎访问文稿网!

功能指令的格式及说明

范文之家 分享 时间: 加入收藏 我要投稿 点赞

功能指令的格式及说明

    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显示出来。

221381
领取福利

微信扫码领取福利

微信扫码分享