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的条件跳转,子程序调用等指令使用方法。
为了让大家掌握更多PLC指令的使用方法,所以本章还是继续为大家介绍PLC功能指令。
条件跳转指令:
指令名称,助记符,指令代码,程序步如下表:
程序步可以是连续执行或者是脉冲执行,CJ执行的为3步,CJ(P)为1步。
指令格式:
当我们按下X000后,程序跳转指令开始运行,程序所跳转的位置为程序指针所在的位置,也就是标号10,在这里我们要注意程序指针写在左母线的左边。当我们启动跳转指令后,X001这段程序就会被跳过不执行。
当X0为ON时,被跳转CJ命令到标号之间的程序不子执行。在跳转过程中如果Y、M,S被OUT、SET. RST指令驱动使输入发生变化则仍保持跳转前的状态。例如,通过X1驱动输出Y10后发生跳转,在跳转过程中即使X0变为ON,但输出Y10仍有效。
注意 :1.对于T、C,如果跳转时定时器或计数器正发生动作,则此时立即中断计数或停止计时,直到跳转结束后继续进行计时或计数。但是,正在动作的定时器T192~T199与高速计数器C235~ C255. 不管有无跳转仍旧维续工作。
2.功能指令在跳转时不执行,但PLSY、 PLSR、PWW指令除外。
子程序调用与返回指令:
指令名称,助记符,指令代码,程序步如下表:
指令格式:
图中FEND表示主程序结束,在FEND前面的我们称为主程序,在FEND后面的我们称为子程序。SRET表示子程序结束,或者叫子程序返回。我们要注意,在FEND与SRET之间的程序,我们称为第一个子程序,在第二个SRET之前的我们称为第二个子程序。当我们按下X001的时候,指针调用到P11,程序开始从P11这个地方从上往下开始执行,当碰到第一个SRET的时候,程序又返回到主程序中,但是在这个程序中如果X002被接通,那么程序指针则调用到P12,程序开始从上到下运行,当碰到第二个SRET的时候,程序返回到P12这个地方,然后在碰到第一个SRET的时候,返回到主程序。因为P12这个程序是嵌套在P11这个程序中的,所以我们要注意,在PLC中这种程序嵌套最多只能使用5级。
中断指令:
中断指令总共有3条,我们用一个表格来详细说明:
指令格式:
在这里FEND前面的为主程序,FEND后面的为中断子程序,中断子程序能否进行与中断条件与中断指针有关,所以在这里我们得给大家说说中断指针的格式:
中断指针:
定时中断:
程序示例:
我们先给大家介绍一下这个程序:FEND前面的程序表示主程序,后面的表示中断子程序,EI表示允许中断,IRET表示中断返回指令,I610指针表示,中断时间为10mm,6表示最高中断级别。.
当我们按下X000后K1的数据被传送到D1里面去,K255的数据被传送D2里面去,M1被置位接通,中断子程序运行。RAMP 表示斜坡指令,表示产生一个数据D3,而D3的变化范围是从D1到D2也就是从1到255,由于这是一个定时中断程序,当M1接通的时候,每隔10ms中断一次程序,K1000表示1000个扫描周期,因为D3的范围是从1变到255,而它所需要的时间为1000个10ms,也就是说从X0接通到D3变成255的时间为1000X10ms=10秒,当D3等于255的时候M8029接通,M1被复位断开,然后中断指令与斜坡指令被断开。然后碰到IRET指令程序返回。
喜欢更多PLC知识,关注小编不迷路噢!
相关问答
三菱plc编程,在for循环中加入跳转指令,能否跳出该循环指令?
For指令在一个周期内执行完毕,你这样做显然是不对的,你需要使用计数器加跳转指令来实现循环4次的功能。For指令在一个周期内执行完毕,你这样做显然是不对的,...
我用状态转移指令写交通灯plc程序,请问怎么控制绿灯闪烁3秒啊?
0LDM80021ZRSTS0S1006SETS08STLS09OUTT0K20012LDS013OUTY00014LDT015SETS117...
欧姆龙PLC跳转指令JMP04JME05的功能?
OFF跳转,中间的程序不会动作,同时也不会扫描。OFF跳转,中间的程序不会动作,同时也不会扫描。
三菱跳转指令详解?
三菱跳转指令是用来在程序运行中实现置位或清零操作的指令。具体地说,如果跳转条件成立,该指令可以实现从当前程序跳转到指定地址,跳转后该地址的PLC输出点会...
plc往复循环程序怎么写?
PLC往复循环程序的编写方法如下:PLC往复循环程序可以通过使用计数器和跳转指令来实现。往复循环程序的目的是使PLC在一定条件下反复执行一段程序。为了实现这...
西门子系统向后跳转指令?
二、跳转指令跳转指令根据"跳转"的机理,首先可分为"无条件跳转"和"条件跳转",除此之外,还有一个特殊的跳转指令,可实现分支跳转。1、...
信捷plc步进指令如何实现不相临状态的跳转?
可以在流程S10里面直接跳到S20里的直接SETS20就跳转了。可以在流程S10里面直接跳到S20里的直接SETS20就跳转了。
西门子plc程序控制指令?
关于这个问题,以下是一些常见的西门子PLC程序控制指令:1.LD:加载指令,将一个变量或者寄存器的值加载到一个寄存器中。2.AND:逻辑与指令,将两个逻辑值进...
请教三菱PLC自动/手动切换程序?
你这个程序要求用三菱IST指令完全可以满足需要的。比SFC指令要容易一点如果使用cj指令的话,使用跳转指令也行,跳转指令适用于手动和自动切换比较好。你是有三...
为何欧姆龙PLC编程时输入LD时会出现转移到注释条的对话框?
1、在左侧导航里双击注释,找到元件,修改后面的注释2、在程序中,双击元件,点击确定后,会出现注释,可以修改1、在左侧导航里双击注释,找到元件,修改后面的注释...