您现在的位置是:首页 > PLC技术 > PLC技术

FX系列PLC的功能指令的基本格式

来源:艾特贸易2017-06-04

简介FX 系列功能指令格式采用梯形图和指令助记符相结合的形式,如图 5-2 所示,这是一条传送指令, K125 是源操作数, D20 是目标操作数, X001 是执行条件。当 X001 接通时,就把常数 125 送

    FX系列功能指令格式采用梯形图和指令助记符相结合的形式,如图5-2所示,这是一条传送指令,K125是源操作数,D20是目标操作数,X001是执行条件。当X001接通时,就把常数125送到数据寄存器D20中去。
传送指令
    5-2    传送指令    一、功能指令的表示形式    功能指令按功能号FNC00FNC***编排。每条功能指令都有一个指令助记符,有的功能指令只需指定助记符,但大部分功能指令在指定助记符的同时还需要指定操作元件,操作元件由14个操作数组成。功能指令的表示如图5-3所示。
功能指令表示形式
    5-3    功能指令表示形式    在图5-3中,这是一条求平均值的功能指令,其功能号为FNC45,助记符为MEAND0为源操作数的首元件,K3为源操作数的个数(3个),D420为目标地址,存放计算的结果。    [S·]称为源操作数,其内容不随指令执行而变化,在可利用变址修改软元件的情况下,用加“·”符号的[S·]表示,源操作数的数量多时,用[S1·][S2·]等表示。    [D·]称为目标操作数,其内容随指令执行而改变,如果需要变址操作时,用加“·”的符号[D·]表示,目标操作数的数量多时,用[D1·][D2·]等表示。    [n·]称为其他操作数,它既不是源操作数,又不是目标操作数,常用来表示常数或者作为源操作数或目标操作数的补充说明。可用十进制K、十六进制H和数据寄存器D来表示。在需要表示多个这类操作数时,可用[n1][n2]等表示,若具有变址功能,可用加“·”的符号[n·]表示。此外,其他操作数还可用[m]来表示。    二、数据长度    功能指令可处理16位数据和32位数据,例如,在图5-4中,在功能指令MOV前加D,即DMOV指令,表示处理32位数据。处理32位数据时,用元件号相邻的两个元件组成元件对,元件对的首地址用奇数、偶数均可。
数据长度说明
    5-4    数据长度说明    另外要注意的是,32位计数器C200C255的当前值不能用作16位数据的操作数,只能用作32位数据操作数。    三、指令类型    FX系列PLC的功能指令有连续执行型和脉冲执行型两种形式。在指令助记符后加P表示脉冲执行型指令。    连续执行型指令如图5-5所示,当X001ON时,DMOV指令在每个扫描周期都被执行一次。    脉冲执行型指令如图5-6所示,MOVP指令仅在当X000OFF转变为ON时执行一次,以后就不再执行。
连续执行型指令举例
    5-5    连续执行型指令举例
脉冲执行型指令举例
    5-6    脉冲执行型指令举例    PD可同时使用,如DMOVP表示32位数据的脉冲执行方式。某些指令如XCHINCDECALT等,用连续执行方式或脉冲执行方式时要特别注意,因为不同的方式会得到不同的执行结果。    四、操作数    操作数按功能分有源操作数、目标操作数和其他操作数;按组成形式分有位元件、字元件和常数。    (1)位元件和字元件。只处理ON/OFF状态的元件称为位元件,如XYMS等。另外,TC的触点也是位元件。处理数据的元件称为字元件,如T(定时器的当前值)、C(计数器的当前值)、D等。但由位元件也可构成字元件进行数据处理,位元件组合用Kn加首元件号表示。    (2)位元件的组合。4个位元件为一组组合成单元。KnM0中的n是组数,16位操作时为K1K432位操作时为K1K8。如K2M0表示由M0M7组成的82组×4=8位)位数据,M0是低位,M7是高位。K4M10表示由M10M25组成的164组×4=16位)位数据,M10是最低位,M25是高位。    当一个16位的数据传送到K1M0K2M0K3M0时,只传送相应的低位数据,较高位的数据不传送。32位数据传送类似。    被组合的位元件的首元件号可以是任意的,但习惯上采用以0结尾的元件,如X0X10等。    (3)变址寄存器。变址寄存器是用来修改操作对象的元件号,其操作方式与普通数据寄存器一样。对于16位的指令,可用VZ表示。对于32位指令,VZ自动组合成对使用,V为高16位,Z为低16位。
变址寄存器举例
    5-7    变址寄存器举例    如图5-7所示,当X000ON时,把K10传送到V0K20传送到Z0,所以V0的数据为10Z0的数据为20。当执行(D5V0)+(D1520)(D4020)时,即执行(D15)+(D35)(D60),若改变V0Z0的值,则可完成不同数据寄存器的求和运算。这样,使用变址寄存器可以使编程简化。