直播课堂
HOME
直播课堂
正文内容
plc编程跳转分支 S7-1200 PLC跳转与标签指令的使用
发布时间 : 2026-01-24
作者 : 小编
访问数量 : 23
扫码分享至微信

S7-1200 PLC跳转与标签指令的使用

对于PLC的指令中有一部分是程序控制指令,程序控制指令就包括了用来改变程序执行顺序的跳转指令,以及在程序运行中用于控制的指令。

这一篇文章中先介绍一下跳转与标签指令。

对于S7-200/200 SMART PLC的跳转指令只有JMP这么一个指令,但是对于S7-1200 PLC来说,则是新增了一些指令,比如定义跳转列表的跳转指令JMP_LIST,和跳转分支指令SWITCH等,我们会介绍指令的不同的地方。

下面我们就开始吧~

首先提个问题?

什么是跳转,使用跳转指令可以实现什么功能?

所谓跳转,就是跳过某段程序不去执行,使用跳转指令可以实现改变程序的执行顺序的功能。如果我们没有执行跳转指令的话,各个程序段是按照从上往下的顺序进行执行的,当执行了跳转指令之后,跳转指令会中止程序的顺序执行,跳转到指定的位置的程序开始往下执行。

那么我们怎么去指定这个位置呢?

这时我们就需要用到标签指令了!

所以,跳转指令和标签指令是配对使用的。跳转时,跳转指令和标签指令之间的程序,CPU是不再进行扫描执行的,这个是我们需要注意的。

S7-1200 PLC的跳转指令包括了逻辑结构跳转指令、定义跳转列表的跳转指令JMP_LIST,和跳转分支指令SWITCH。

我们分别看一下这几个指令的功能是怎么样的。

1、逻辑结果跳转指令

逻辑运算结果为1时,执行跳转指令JMP,逻辑运算结果为0时,执行跳转指令JMPN。配套使用的标签指令是LABLE,标签指令上需要标上标签号,可以是数字,也可以是字母或汉字哦。

对于S7-200/200 SMART PLC的跳转指令只有JMP和配套的LBL指令,并不是根据逻辑结果的跳转指令,所以也没有JMPN这个指令,而且对于标签LBL指令,S7-200/200 SMART PLC的标签号只能是数字,不可以是字母和汉字的哦。

2、定义跳转列表的跳转指令JMP_LIST

JMP_LIST指令可以定义多个有条件的跳转,跳转到由K管脚的值指定的标签段的程序去继续执行,而跳转的标签号是在指令框的输出端进行指定的。

我们可以通过点击指令上的增加输出管脚的按钮去增加输出管脚,最多可以增加到32个管脚,也就是DEST0~DEST31,所以K的值的范围也应该是在0~31之间,如果不是这些编号是不执行跳转的。

如上图程序,当JMP_LIST指令的EN驱动条件满足,会根据K的值决定跳转到相应的标签处开始执行,K的值是1,就代表是跳转到DEST1管脚所链接的标签_002处开始执行。

3、跳转分支指令SWITCH

SWITCH指令是根据一个或多个比较指令的结果,定义要执行的多个程序标签处跳转,在管脚K中指定的是要比较的值,将这个值跟各个输入管脚提供的值进行比较,如果比较条件满足的话,就跳转到对于的标签处开始执行程序。

如上图程序中,当K的值等于47.0时,就跳转到DEST0管脚对应的001标签处开始执行,当K的值等于24.6时,就跳转到DEST1管脚对应的002标签处开始执行,当K的值小于或等于14.9时,就跳转到DEST2管脚对应的003标签处开始执行,如果K的值与以上三个比较条件的比较结果都不满足的话,就跳转到ELSE管脚对应的004标签处开始执行。

我们在使用跳转指令的时候有一些注意事项需要注意一下的,

1、跳转指令可以往前跳转,也可以往后跳转。

2、只能在同一个代码块中跳转,不能从一个代码块跳转到另外的代码块中。

3、在一个块中跳转标签的名称只能使用一次。

4、一个程序断中只能设置一个跳转标签。

在执行跳转的过程中又有这样的一个问题,如果跳转执行后的程序希望执行到指定的地方可以自动返回,不再往下执行,这时怎么办呢?

其实这种情况下我们可以利用另外一个指令——返回指令RET实现,返回指令RET是可以用来实现对程序执行的控制,当执行到RET指令时,退出代码块的执行,也就是说RET指令之后的程序段CPU将不再执行。

所以说跳转指令和返回指令RET一起配合使用,可以实现对程序段的选择执行。

比如在每个标签段中加入这个RET指令,那么执行完这个标签到RET指令之间的程序之后,可以自动返回,不再去执行后续的程序。

以上就是S7-1200 PLC的跳转指令相关内容,这个指令可以用于做手自动切换等功能,应用的还是比较多的,大家还是需要掌握好这个指令的使用哦。

在下一篇文章中继续给大家介绍运行时的控制指令,大家可以继续关注哦~

(培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)

西门子PLC语句表编程:跳转指令

正常情况下,程序的执行顺序是自上而下,逐条扫描执行的。STL指令集中有一类跳转指令,可以中断程序的这种线性执行流,跳转到指定的位置继续执行。

一、 跳转标签

跳转的"目标"地址由"标签"来指定,该标签称之为"跳转标签"。跳转标签最多4个字符,且第一个字符必须为字母。跳转标签后必须带有冒号":" ,且在行中必须位于程序语句之前。

二、 跳转指令

跳转指令根据"跳转"的机理,首先可分为"无条件跳转"和"条件跳转",除此之外,还有一个特殊的跳转指令,可实现分支跳转。

1、 无条件跳转指令JU

程序在执行时,遇到JU指令,无条件的跳转到其"标签"所指示的代码行继续执行。跳转指令和跳转目标必须在同一个块内。

需要注意的是:理论上,JU指令允许向前跳,也允许向后跳。向后跳属于常规用法,一般没什么问题。但向前跳,容易形成死循环,因此,一般不建议使用JU命令向前跳。

2、 有条件跳转指令

顾名思义,与无条件跳转不同,有条件跳转指令中断原程序逻辑流,发生跳转是需要条件的,根据跳转条件的不同,它们又有不同的分类。

(1) 由RLO的状态决定是否跳转

对于"JC"指令,当逻辑运算结果(RLO)为"1"时,"跳转"生效,中断当前的线性扫描,跳转到"跳转标签"所标识的行继续执行。同样,可以选择向前跳,也可以向后跳。

"JCN"指令与"JC"指令相反,当"RLO"为"1"的时候,"跳转"生效。

另外:当条件不满足,不执行跳转的时候,该指令会将RLO置"1",然后继续执行下面的指令。

(2) 带BR位,由RLO状态决定是否跳转

对于"JCB"指令,其与"JC"指令一样,当RLO为1时,"跳转"生效,中断当前的线性扫描,跳转到"跳转标签"所标识的指令行继续执行。而与"JC"指令不同的是,"JCB"指令会"额外"的做一项工作:将RLO的状态复制到BR(二进制结果位)中。

同样,"JNB"指令,其触发跳转的条件为RLO=0,且也会将RLO状态复制到BR中。

(3) 由"状态寄存器"的"BR"位决定跳转与否

(4) 由"状态寄存器"的"OV"、"OS"位决定跳转与否

状态字的第4位和第5位分别为"溢出位OV"和"溢出状态保持位OS"。当算术运算或浮点数比较指令执行时出现错误(如溢出、非法操作和不规范的格式等)时,OV位会被置1,同时OS位也被置1。而如果后面同类指令执行结果正确,则OV位会被清0,但OS位仍然保持为1。只有JOS指令、块调用指令和块结束指令才能复位OS位。

一般用于检查算术运算指令结果是否有溢出,若有溢出,可用JO、JOS指令进行跳转,以做相应的错误处理。

(5) 由条件码1(CC1)和条件码0(CC0)决定是否跳转

状态字的第7位(CC1)和第6位(CC0)分别为条件码1和条件码0。这两位综合起来用于表示在累加器1(ACCU1)中产生的算术运算或逻辑运算的结果与"0"的大小关系、比较指令的执行结果或移位指令的移出位的结果。

CC1和CC0的状态与"算术运算"的结果的关系如下:

在"跳转指令"中,有一类指令根据算术运算的结果来决定逻辑流是否跳转,本质上,是在执行完算术运算后,根据CC1和CC0的不同状态,来决定相应的跳转指令是否具备跳转条件,如下表所示:

3、 分支跳转指令JL

在语句表的指令集中,还有一条特殊的跳转指令,它能够实现向多路分支跳转的功能,它就是分支跳转指令JL,其执行流程如下图所示。

JL指令根据累加器1(ACCU1)的低字节中的数值大小来决定程序"沿着"哪一条分支执行。由于一个字节的数值范围为0~255,因此,JL指令最多可管理多达256条分支的程序。

JL指令一般要与无条件跳转指令JU配合使用,其指令的格式如下:

详见《PLC语句表编程:“跳转指令”特辑》

相关问答

[求助-西门子PLC300/400]跳转到应用位置?

程序块打开后,菜单栏-视图显示方式只保留地址标识搜索的时候接口也打钩即可程序块打开后,菜单栏-视图显示方式只保留地址标识搜索的时候接口也打钩即可

plc往复循环程序怎么写?

PLC往复循环程序的编写方法如下:PLC往复循环程序可以通过使用计数器和跳转指令来实现。往复循环程序的目的是使PLC在一定条件下反复执行一段程序。为了实现这...

触摸屏切换到某个界面时,PLC程序里的M0怎样自动接通呢?

看到这个问题很有意思就来试试,我们知道触摸屏主要是控制PLC的,现在要实现触摸屏切换来控制PLC的辅助继电器M,我们来说下思路,首先是触摸屏的切换,这个信息...这...

三菱PLC跳转指令CJP0的使用?

P0只是他的指针编号,驱动条件闭合跳转至指定编号处执行该部分程序P0只是他的指针编号,驱动条件闭合跳转至指定编号处执行该部分程序

plc手自动切换需要用物理按钮吗?

不需要。根据系统的当前状态,使用相应的PLC代码来控制系统的行为或输出。在开发程序时,需要把自动模式和手动模式的控制逻辑分开,以便在状态变化时不影响系统...

什么是PLC直接寻址和间接寻址?

..直接寻址:操作数就存放在数据的地址。基本逻辑指令都是直接寻址方式。你说的间接寻址应该是变址寻址吧,指针:指针实际上是程序发生转移时,转移去的入口地址...

三菱plc手自切换程序如何写?

具体情况具体分析,无法简单回答“如何写”。一般情况下,手自切换程序需要根据实际需求编写逻辑判断和控制程序,同时需要考虑到安全性和稳定性等方面。建议...

三菱plc里面程序的自动手动半自动程序间怎么做无干扰切换?

手动和自动各是设备运行的一种控制状态,需要两个不同的PLC输入点即“IO”点中的“I”,比如三菱FX-3U系列的X0,X1,X2。。。等等,西门子S7-200系列的I0.0,I0.1,I...

plc编程最后循环到第一步怎么编?

plc编程实现循环有多种方法,可以用到跳转指令,蛮方便的,也可以用调用指令,看个人习惯,跳转和调用指令都可用来做手动自动的转换,不过用它们的话,手动和自动的...

plc程序中把一个常开信号改为常闭信号怎么改?

把原来的常开改为常闭,输出加一个辅助继电器,用该辅助继电器的常闭点控制原来的输出继电器不就可以了吗?另外还可以用例如取反等功能指令去实现啊。把原来的...

 二钼酸铵  鬼泣5什么时候出 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2026  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部