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

S7-300/400PLC逻辑控制指令

来源:艾特贸易2017-10-30

简介逻辑控制指令是指逻辑块中的跳转和循环指令。在没有执行跳转和循环指令之前,各语句按先后顺序执行,这种执行方式称为线性扫描。而逻辑控制指令终止了线性扫描,跳转到地址标


    逻辑控制指令是指逻辑块中的跳转和循环指令。在没有执行跳转和循环指令之前,各语句按先后顺序执行,这种执行方式称为线性扫描。而逻辑控制指令终止了线性扫描,跳转到地址标号( Label)所指定的目的地址。然后,程序再次开始线性扫描。需要注意的是:跳转指令不执行跳转指令和标号之间的程序;跳转可以是从上至下,也可以反向;跳转指令只能在同一逻辑块内跳转,而不能在不同逻辑块之间跳转;在同一块中,跳转目的地址只能出现一次,否则,程序将不知道究竟往哪里跳转。

    跳转和循环指令的操作数是地址标号,标号最多有四个字符,第一个字符必须是字母,其余的可以是字母或数字。由于标号是指目的地址,所以又称为目的地址标号。在语句表

中,目的标号与目的指令之间用“:”分隔,而在梯形图中目的地址标号必须在一个网络的开始。

    跳转指令有几种形式:无条件跳转指令、多分支跳转指令、与RLOBR有关的跳转指令、与信号状态位有关的跳转指令、与条件码CCOCC1有关的跳转指令。

逻辑控制指令如表3-37所示。

3-37逻辑控制指令

 表3-37逻辑控制指令

    只能在同一逻辑块内跳转,即跳转指令与对应的跳转目的地址应在同一逻辑块内。在一个块中,同一个跳转目的地址只能出现一次。最长的跳转距离为程序代码中的-32768+32767个字。实际可以跳转的最多语句条数与每条语句的长度(13个字)有关。跳转指令只能在FBFCOB内部使用,即不能跳转到别的FBFCOB中去。

    1.无条件跳转指令

    无条件跳转(Jump Unonditional)指令的格式为JU<跳转标号>JU指令中断程序的线性扫描,跳转到标号所在的目的地址,无条件跳转与状态字的内容无关。

    2.多分支跳转指令

    多分支跳转指令JL (JumpVia Jump to List)必须与无条件跳转指令JU -起使用,指令格式为JL<跳转标号>,多分支的路径参数在累加器1中。跳步目标表最多255个入口通道,从JL指令的下一行开始,在JL指令中指定的跳步标号之前结束。每个跳步目标由一条JU指令和一个标号组成。跳步目标号在累加器1的最低字节ACCU 111中。

    当累加器1最低字节ACCU l-LL中的跳步目标号小于JL指令和它给出的标号之间的JU指令的条数时,执行JL指令后将根据跳步目标号跳到对应的JU指令指定的标号。ACCU1-LL=0时跳转到第一条JU指令指定的标号,ACCU l-LL=1时跳转到第二条JU指令指定的标号……如果跳步目标号过大,JL指令将跳到跳步目标表中最后一条JU指令后面的第一条指令。跳步目标表必须由在JL指令中的跳步标号之前的JU指令组成,其他任何指令都是非法的。

    3.与RLOBR有关的跳转指令

这些指令检查前一条指令执行后RLO(逻辑运算结果)和BR(二进制结果位)的状态,满足条件时则中断程序的线性扫描,跳转到标号所在的目的地址,不满足条件时不跳转。

    如果逻辑运算结果RLO =1,跳转指令JC将跳转到标号所在的目的地址。

    如果逻辑运算结果RLO=0,跳转指令JCN将跳转到标号所在的目的地址。

    如果逻辑运算结果RLO =1,且BR=1,跳转指令JCB将跳转到标号所在的目的地址。

    如果逻辑运算结果RLO=0,且BR=1,跳转指令JNB将跳转到标号所在的目的地址。

    4.与信号状态位有关的跳转指令

    这些指令检查前一条指令执行后信号状态位BR(二进制结果位)、OV(溢出位)和OS(溢出状态保持位)的状态,满足条件时则中断程序的线性扫描,跳转到标号所在的目的地址,不满足条件时不跳转。

    如果BR=1,跳转指令JBI将跳转到标号所在的目的地址。

    如果BR=O,跳转指令JNBI将跳转到标号所在的目的地址。

    如果OV=1,跳转指令JO将跳转到标号所在的目的地址。

    如果OS=1,跳转指令JOS将跳转到标号所在的目的地址。

    5.与条件码CCOCCI有关的跳转指令

    这些指令根据前一条指令执行后与运算结果有关的条件码CCOCCI的状态,确定是否中断程序的线性扫描,跳转到标号所在的目的地址。

    如果运算结果为0 (CCO=OCCl=0),跳转指令JZ将跳转到标号所在的目的地址。

    如果运算结果非0CCl=O/CCO=1CCl=1/CCO=O),跳转指令JN将跳转到标号所在的目的地址。

    如果运算结果为正(CCl=1CCO =0),跳转指令JP将跳转到标号所在的目的地址。

    如果运算结果为负(CCl=0CCO=1),跳转指令JM将跳转到标号所在的目的地址。

    如果运算结果大于等于0CCl=O/CCO=OCCl=1/CCO=O),跳转指令JPZ将跳转到标号所在的目的地址。

    如果运算结果小于等于0CCl=O/CCO=OCCl=1/CCO=O),跳转指令JMZ将跳转到标号所在的目的地址。

如果CCO =CCl=1,表示指令出错(除数为0;使用了非法的指令;浮点数比较时使用了非法的格式),跳转指令JUO将跳转到标号所在的目的地址。

    6.梯形图中的跳转指令

    梯形图中有3条用线圈表示的跳转指令,如图3-59所示。无条件跳转(UnconditionalJump)指令与条件跳转(Conditional Jump)指令的助记符均为JMP (Jump),其区别在于跳转指令是否受触点电路的控制。

    无条件跳转指令直接与右边的垂直电源线相连,执行无条件跳转指令后马上跳转到指令给出的标号处。

    条件跳转指令的线圈受触点电路的控制,它前面的逻辑运算结果RLO=1时,跳转线圈“通电”,跳转到指令给出的标号处。

JMPN(Jump-If-Not)指令在它右边的电路断开(RLO=O)时跳转,如图3-60所示。

 图3-59 条件跳转指令

3-59  条件跳转指令

 图3-60 JMPN跳转指令

3-60 JMPN跳转指令

    标号用于指示跳转指令的目的地址,它最多由4个字符组成,第一个字符必须是字母或下画线。标号必须放在一个网络开始的地方。可以向前跳,也可以向后跳。双击梯形图编辑器右边的指令测览器窗口中的“Jumps”文件夹中的“LABEL”图标,一个空的标号框将出现在梯形图编辑区光标所在的地方。也可以用鼠标左键按住LABEL图标,将它到梯形图中。