C语言跳转指令(让plc一个程序重复循环的命令分享)

C语言跳转指令(让plc一个程序重复循环的命令分享)

S7-200西门子除了有常见的基本操作指令外,还具有丰富的功能指令。这些功能指令能拓宽PLC的应用范围,增强PLC编程的灵活性。它可以完成更为复杂的控制程序的编写,使程序设计更加方便。

跳转指令就属于常用功能指令中的一种。跳转指令要用于较复杂程序的设计,使用该类指令可以用来优化程序结构,增强程序功能。跳转指令可以使PLC编程的灵话性大大提高,它的作用就是使PLC可根据不同条件的判断,选择不同的程序段去执行程序。

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。

图中,网络1的I0.0接通,则跳转到标号为1的网络3,执行网络3以后的程序,即执行网络5的程序。I0.2接通时,Q0.0、Q0.1同时接通,网络2的程序不执行。当I0.0断开,则执行网络4的跳转指令,网络5的程序不执行,而执行网络2的程序,I0.1接通时,00.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所示。

分析如下:当I0.0为OFF时,把自动程序跳过,只执行手动程序。就是执行网络1(JMP标1的)与网络4(LBL也标1的)之间的程序。这一对跳转程序之间的就是网络2和网络3两条程序。这两条程序就是手动分别控制两只灯的开、关。当I0.0为ON时,把手动程序跳过,只执行自动程序,即网络5(JMP标2的)与网络10(LBL也标2)之间的程序,这里面的程序就是自动控制灯亮、灯灭、并实现了两只灯能每隔1s交替闪亮。

发表评论

登录后才能评论