逻辑控制指令是指逻辑块内的跳转和循环指令,这些指令可以中断原有的线性程序扫描,并跳转到目标地址处重新执行线性程序扫描。目标地址由跳转指令后面的标号指定,该地址标号指出程序要跳往何处,可向前跳转,也可以向后跳转,最大跳转距离为-32768或32767字。标号最多为4个字符,第一个字符必须是字母,其余字符可为字母或数字。与它相同的标号还必须写在程序跳转的目的地前,称为目标地址标号。在一个逻辑块内,目标地址标号不能重名。在语句表中,目标标号与目标指令用冒号分隔。在梯形图中目标标号必须在一个网络的开始。由于STEP7的跳转指令只能在逻辑块内跳转,所以,在不同逻辑块中的目标标号可以重名。
1.无条件跳转指令
无条件跳转指令JU执行时,将直接中断当前的线性程序扫描,并跳转到由指令后面的标号所指定的目标地址处重新执行线性程序扫描。无条件跳转指令见表3-59,应用举例如图3-56所示。
表3-59 无条件跳转指令
(续)
图3-56 无条件跳转指令应用举例
说明:图中的“L1”符号即是标号,每一个跳转指令必须有一个跳转标号。
2.多分支跳转指令
多分支跳转指令JL的指令格式:JL<标号>。
多分支跳转指令的特点是程序从一个公共点开始分支,在各分支执行各自程序之后,又汇总到另一个公共点。多分支跳转指令JL必须与无条件跳转指令JU一起使用。多分支的跳步目标号在累加器1的低字节中,且最多有255个分支,每个跳转目标由一条JU指令和一个标号组成。
如果累加器1低字中低字节的内容小于JL指令和由JL指令所指定的标号之间的JU指令的数量,JL指令就会跳转到其中一条JU处执行,并由JU指令进一步跳转到目标地址;如果累加器1低字中低字节的内容为0,则直接执行JL指令下面的第一条JU指令;如果累加器1低字中低字节的内容为1,则直接执行JL指令下面的第二条JU指令;如果跳转的目的地的数量太大,则JL指令跳转到目的地列表中最后一个JU指令之后的第一个指令。
例3-15 多分支跳转。
程序目的:设置累加器中的值为2,则程序执行时跳到sub2,这时Q0.2得电为“1”。以下是例程的语句表程序:(www.xing528.com)
3.条件跳转指令
条件跳转指令见表3-60,应用举例如图3-57所示。
表3-60 条件跳转指令
图3-57 条件跳转指令应用举例
说明:当I0.0与I0.1同时为“1”时,则跳转到L2处执行;否则,到L1处执行(顺序执行)。
4.循环指令
循环指令的格式:LOOP<标号>。
使用循环指令(LOOP)可以多次重复执行特定的程序段,由累加器1确定重复执行的次数,即以累加器1的低字为循环计数器。LOOP指令执行时,将累加器1低字中的值减1,如果不为0,则继续循环过程,否则执行LOOP指令后面的指令。循环体是指循环标号和LOOP指令间的程序段。由于循环次数不能是负数,所以程序应保证循环计数器中的数为正整数(数值范围:0~32767)或字型数据(数值范围:W#16#0000~W#16#FFFF)。
例3-16 用循环指令求5!(5的阶乘)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。