STL与LAD编程跳转的方式相同,所有跳转指令必须定义跳转的标号,典型格式如下:

JC为跳转指令,M2为用户定义的标号,在跳转的程序标号后面,必须加上符号“:”,根据跳转的条件,STL编程语言可划分下面几种跳转指令。
1.无条件跳转指令JU、JL
JU指令的使用参考下面的示例程序:

JL指令根据累加器1的数值跳转到相应的标号程序段,指令的使用参考下面的示例程序:

上面为JL指令固定的编程格式,最多允许有255个跳转条目,例子程序中有4个跳转条目,每个条目有一个标号,条目的序号从0开始(JU的个数),如果累加器1的值大于所罗列的条目数,则跳转到JL指令指定的标号。
2.基于逻辑结果的跳转指令JC、JCN、JCB、JNB
如果RLO=1,JC指令执行,指令的使用参考下面的示例程序:


与JC指令相反,如果RLO=0,JCN指令执行,示例程序相同,如果I1.2为0时,触发JCN指令执行:

注意:
当指令JC和JCN执行时,如果跳转不执行,将RLO位置1并从下一个指令开始执行。
如果RLO=1,JCB指令执行,并将RLO位的状态复制到BR位,指令的使用参考下面的示例程序:

如果RLO=0,JNB指令执行,并将RLO位的状态复制到BR位,指令的使用参考下面的示例程序:(https://www.xing528.com)

3.基于状态字中位状态(除RLO位)的跳转指令JBI、JNBI、JO、JOS
JBI与JNBI指令根据BR位的状态跳转,如果BR位为1,则执行JBI指令,如果BR位为0,则执行JNBI指令。以JBI指令为例,指令的使用参考下面的示例程序:


如果运算结果溢出,状态字的溢出位OV=1,则JO指令通过判断OV位进行程序跳转,指令的使用参考下面的示例程序:

示例程序中,从位信号M4.0中,可以查询运算结果是否超上限(OV=1),若M4.0为1,指示运算结果超上限;若M4.0为0,指示运算结果正常。
如果运算结果溢出,状态字的溢出位OV=1,则运算结果正常;若溢出位OV=0,但是状态字的溢出保持位OS仍然为1,记录运算结果溢出是否出现。通过程序块调用或调用JOS复位OS状态位,JOS指令通过判断OS位进行程序跳转,指令的使用参考下面的示例程序:

与JO跳转指令程序相同,示例程序中,若M4.0为1,指示运算结果超上限;若M4.0为0,指示运算结果正常。
4.基于运算结果的跳转指令JZ、JN、JP、JM、JPZ、JMZ、JUO
这些跳转指令基于运算结果CC0和CC1的状态,不同的状态触发不同的跳转指令,CC0、CC1位的状态与条件跳转指令的关系见表6-15。
以JP为例,介绍跳转指令的使用,参考下面程序:
表6-15 CC0、CC1位的状态与条件跳转指令的关系


在程序中,如果变量IW8大于变量MW12中存储的值,则置位M4.1,否则置位M4.0。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
