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编程方法之跳转指令的应用
S7-200西门子除了有常见的基本操作指令外,还具有丰富的功能指令。这些功能指令能拓宽PLC的应用范围,增强PLC编程的灵活性。它可以完成更为复杂的控制程序的编写,使程序设计更加方便。
跳转指令就属于常用功能指令中的一种。跳转指令要用于较复杂程序的设计,使用该类指令可以用来优化程序结构,增强程序功能。跳转指令可以使PLC编程的灵话性大大提高,它的作用就是使PLC可根据不同条件的判断,选择不同的程序段去执行程序。
1、跳转指令的格式 (见图1所示)
图 1
与跳转有关的指令有两条:跳转指令JMP和标号指令LBL。
跳转指令(JMP):跳转指令使能输入有效时,使程序跳到同程序中的指定标号N处执行。
标号指令(LBL):标号指令用来标记程序段,作为跳转指令执行时跳转到目标位置。
标记目标的操作数N为0-255的数字。
使用说明:
(1) 跳转指令和标号指令必须配合使用,而且只能使用在同一程序块中,如主程序、同一主程序或同一个中断程序。不能在不同的程序块中相互跳转。
(2) 执行跳转后,被跳过程序段中的各元件状态为:1)Q、M、S、C等元件的位保持跳转前的状态; 2)计数器C停止计数,当前值存储器保持跳转前的计数值。 3)对定时器来说,在跳转期间,分辨率为1ms和10ms的定时器会直保持跳转前的工作状态,原来工作的继续工作,到设定值后,其位的状态才会改变,输出触点动作。对分辨率为100ms的定时器来说,跳转期间停止工作,但不会复位,存储器里的值为跳转时的值,跳转结束后,若输入条件允许,可继续计时,但已失去了准确计时的意义,所以在跳转段里的定时器要慎用。
2、跳转及跳转标号指令应用举例。 见图2。
图 2
图中,网络1的I0.0接通,则跳转到标号为1的网络3,执行网络3以后的程序,即执行网络5的程序。I0.2接通时,Q0.0、Q0.1同时接通,网络2的程序不执行。当I0.0断开,则执行网络4的跳转指令,网络5的程序不执行,而执行网络2的程序,I0.1接通时,Q0.0、Q0.1同时断开。
3、跳转指令应用实例
用跳转指令编程来控制两只灯,灯分别接于Q0.0、 Q0.1。控制要求如下:
(1) 要求能实现自动与手动控制的切换,切换开关接于I0.0,若I0.0为OFF则为手动操作,若I0.0为ON,则切换到自动运行。
(2) 手动控制时,能分别用一个开关控制它们的启停,两个灯的启停开关分别为I0.1、I0.2。
(3) 自动运行时,两只灯能每隔1s交替闪亮。设计程序如图3所示。
图 3
分析如下:当I0.0为OFF时,把自动程序跳过,只执行手动程序。就是执行网络1(JMP标1的)与网络4(LBL也标1的)之间的程序。这一对跳转程序之间的就是网络2和网络3两条程序。这两条程序就是手动分别控制两只灯的开、关。当I0.0为ON时,把手动程序跳过,只执行自动程序,即网络5(JMP标2的)与网络10(LBL也标2)之间的程序,这里面的程序就是自动控制灯亮、灯灭、并实现了两只灯能每隔1s交替闪亮。
大家看看,是不是非常简单好用!
相关问答
plc编程最后循环到第一步怎么编?
plc编程实现循环有多种方法,可以用到跳转指令,蛮方便的,也可以用调用指令,看个人习惯,跳转和调用指令都可用来做手动自动的转换,不过用它们的话,手动和自动的...
三菱plc编程,在for循环中加入跳转指令,能否跳出该循环指令?
For指令在一个周期内执行完毕,你这样做显然是不对的,你需要使用计数器加跳转指令来实现循环4次的功能。For指令在一个周期内执行完毕,你这样做显然是不对的,...
欧姆龙PLC跳转指令JMP04JME05的功能?
OFF跳转,中间的程序不会动作,同时也不会扫描。OFF跳转,中间的程序不会动作,同时也不会扫描。
西门子200plc如何复制程序段?
回答如下:要复制程序段,可以按照以下步骤操作:1.在STEP7软件中打开要复制的程序。2.选择要复制的程序段,可以使用鼠标选中或使用键盘快捷键。3.按下...
西门子PLC怎么完成循环啊S7-200我是用定时器来完成程序的,我TOF以后程序就完成了,怎么回到开头啊?
循环控制吗,那不是很简单,一般都是顺序控制,只要你在最后步执行完了跳转到需要循环开始点就可以了。如果需要多个这样的循环,另外编程,可以调用子程序方式实...
plc自动循环程序自动跳?
PLC自动循环程序自动跳是指在程序循环执行过程中,当遇到特定条件时,程序会自动跳转到指定的位置继续执行。这种自动跳转的功能可以使程序逻辑更加完善和灵活,...
三菱plc中cj指令如何输入开始和结束呀?
CJ是条件跳转指令,(功能号是FNC00Pxx,Pxx是程序指针标志,在要跳转到的地方前面加程序标号,标号任选P0~p127),软件直接输入cj空格Pxx,当CJ的执行条件满足时...
三菱plc恒压pid编程实例?
以下是一个三菱PLC恒压PID控制的程序实例:```MC+GB10#10=2000//设置计算周期为2000ms(示例)MC+S1#1=0//PV实际值#2=0//SV...
西门子plc程序控制指令?
关于这个问题,以下是一些常见的西门子PLC程序控制指令:1.LD:加载指令,将一个变量或者寄存器的值加载到一个寄存器中。2.AND:逻辑与指令,将两个逻辑值进...
plc结构化编程格式?
PLC(可编程逻辑控制器)结构化编程格式主要包括以下几个部分:1.程序结构:PLC结构化编程格式通常采用类似于流程图的结构,包括主程序(Mainprogram)、子程...P...