首页 理论教育 基本控制指令简介

基本控制指令简介

更新时间:2025-01-10 工作计划 版权反馈
【摘要】:基本控制指令在PLC的指令系统中占有重要的位置,可以用来决定程序的执行顺序和流程。当触发信号X1接通时,MC和MCE之间的指令执行,X0控制Y1,X2控制Y2;在X1断开时,Y1和Y2断开。图7-9 主控指令嵌套5)输出Y0不受MC和MCE指令控制。3)LBL可供相同编号的JP和LOOP指令使用。3)不能重复使用同一标号的SUB指令。表7-22 SUB和RET间各指令运行状态6.步进控制指令SSTP、NSTP、NSTL、CSTP和STPE指令功能SSTP:表示进入步进程序。

基本控制指令在PLC的指令系统中占有重要的位置,可以用来决定程序的执行顺序和流程。可以根据系统的要求设计成一个按一定流程执行的程序,使得程序更加整齐清晰,逻辑过程更加易读。

1.MC和MCE(主控和主控结束)指令

(1)指令功能

当预置的触发信号接通时,MC和MCE之间的指令执行;否则不执行。

(2)编程实例

梯形图、指令表和时序图见表7-17。

(3)程序解释:

输出Y0不受MC和MCE指令控制。当触发信号X1接通时,MC和MCE之间的指令执行,X0控制Y1,X2控制Y2;在X1断开时,Y1和Y2断开。

(4)指令使用说明

1)当预置的触发信号接通(ON)时,执行MC和MCE间的程序。

2)当预置的触发信号接通(OFF)时,MC和MCE间的程序操作见表7-18。

表7-17 梯形图、指令表和时序图

978-7-111-40642-6-Chapter08-25.jpg

表7-18 MC和MCE之间的指令操作

978-7-111-40642-6-Chapter08-26.jpg

注:此时该段程序只是处于停控状态,PLC仍然扫描这段程序。

3)MC指令不能直接从母线开始,在MC指令前必须有接点输入。

4)在程序中,主控指令可以嵌套,但MC和MCE必须成对出现且编号相同,也不能颠倒顺序。更不允许出现两个或多个相同编号的主控指令对。如图7-9所示。

978-7-111-40642-6-Chapter08-27.jpg

图7-9 主控指令嵌套

5)输出Y0不受MC和MCE指令控制。当触发信号X1接通时,MC和MCE之间的指令执行,X0控制Y1,X2控制Y2;在X1断开时,Y1和Y2断开。

2.JP和LBL(跳转和标号)指令

(1)指令功能

当JP指令前的预置触发信号接通时,跳转到与JP指令同编号的LBL处,并执行后续程序。而JP与LBL之间的指令不执行。

(2)编程实例

梯形图、指令表和时序图见表7-19。

表7-19 梯形图、指令表和时序图

978-7-111-40642-6-Chapter08-28.jpg

(3)程序解释:

当控制条件X0接通(ON)时,程序由JP0跳转至LBL0,接着执行下面的程序。

(4)指令使用说明

1)JP指令跳过位于JP和编号相同(编号为0~63)的LBL指令间的所有指令。当执行JP指令时,跳转指令执行的时间不计入扫描时间。

2)程序中可以使用多个编号相同的JP,但不允许出现相同编号的LBL。

3)LBL可供相同编号的JP和LOOP指令使用。

4)在一对JP和LBL指令中间可以嵌套使用,如图7-10所示。

978-7-111-40642-6-Chapter08-29.jpg

图7-10 跳转指令嵌套

5)不能从结束指令ED以前的程序跳转到ED以后的程序中去;不能在子程序或中断程序与主程序之间跳转;不能在步进区和非步进区进行跳转。

例7-7 跳转指令应用:图7-11所示为一手动/自动工作方式切换梯形图

978-7-111-40642-6-Chapter08-30.jpg

图7-11 手动/自动工作方式切换梯形图

例题说明:

图7-11所示的梯形图中,X0表示手动、自动方式选择开关。当X0闭合时,转移条件成立,程序将跳过手动程序,直接执行自动程序然后执行公共程序;若X0断开,则执行手动程序后跳过自动程序去执行公共程序。这种用一个按钮进行手动、自动工作方式切换的编程方法广泛用于生产线上自动循环和手动调节之间的切换。

3.LOOP和LBL(循环和标号)指令

(1)指令功能

预置触发信号接通时,反复执行LOOP指令和同编号的LBL指令之间的程序,每执行一次,预置数据寄存器的内容减“1”直到DT0中的数据为“0”时退出循环。

操作数为:WY、WR、SV、EV、DT、IX和IY。

(2)编程实例

梯形图和指令表见表7-20。

表7-20 梯形图和指令表

978-7-111-40642-6-Chapter08-31.jpg

(3)程序解释:

当预置触发信号断开时,跳过LOOP1和LBL1指令间的所有程序。在预置触发信号接通时,反复循环执行LOOP指令和同编号的LBL指令之间的程序,每执行一次,预置数据寄存器的内容减“1”直到DT0中的数据为“0”结束循环。

(4)指令使用说明

1)有LOOP指令必有同号的LBL指令,编号为0~63。

2)在同一程序段中,LOOP指令可以嵌套使用,但不允许出现相同编号的LBL。

3)如果数据区的预置值为“0”,LOOP指令无法执行(无效)。

4)LBL指令在LOOP指令上面,执行循环命令的整个过程包含在一个扫描周期内,所以不可以太长,否则会导致扫描周期过长影响到PLC的响应速度

5)循环跳转指令可以嵌套使用。

6)不能从结束指令ED以前的程序跳转到ED以后的程序中去;也不能在子程序或中断程序与主程序之间跳转;不能在步进区和非步进区进行跳转。

4.ED和CNDE(结束和条件结束)指令

指令功能:ED为无条件结束;CNDE为条件结束。

例7-8 如图7-12所示。

例题说明:

当控制触点X0闭合时,条件结束指令CNDE起作用,返回程序起始地址,当前的扫描结束,进入下一次扫描;否则,控制触点X0断开,继续执行下面的指令扫描,当遇到ED指令,才结束当前的扫描。CNDE指令只适用于主程序中使用。

978-7-111-40642-6-Chapter08-32.jpg

图7-12 梯形图

5.CALL、SUB和RET(子程序)指令

(1)指令功能

CALL:执行制定的子程序。

SUB:表示子程序的开始。

RET:表示子程序的结束。

(2)编程实例

梯形图和指令表见表7-21。

表7-21 梯形图和指令表

978-7-111-40642-6-Chapter08-33.jpg

(3)程序解释:

当X0接通时,程序从主程序转到编号为1的子程序的起始地址SUB 1处,开始执行子程序;当执行到RET处时,子程序执行完毕,返回到主程序调用处,从CALL 1指令的下一条指令继续执行随后的主程序。

当X0断开时,不调用子程序,继续执行主程序。

(4)指令使用说明

1)子程序必须在ED指令之后。由SUB开始,RET结束必不可少。

2)CALL指令可以用在主程序区、中断程序区和子程序区。同一程序可以多次使用同一标号的CALL指令。标号为0~15。

3)不能重复使用同一标号的SUB指令。(www.xing528.com)

4)子程序可以嵌套使用,但最多只可以嵌套4层。

5)使用一个RET指令可以控制多个子程序。

6)如果CALL指令的触发信号处于断开状态,不执行子程序。此时,SUB和RET间的各指令运行状态见表7-22。

表7-22 SUB和RET间各指令运行状态

978-7-111-40642-6-Chapter08-34.jpg

6.步进控制指令SSTP、NSTP、NSTL、CSTP和STPE

(1)指令功能

SSTP:表示进入步进程序。SSTP指令始终位于过程n的程序的起始地址处。

NSTP:以脉冲方式进入步进程序。当检测到控制触点的上升沿时,程序进入下一个步进程序段,并将前面的程序用过的数据区清除,输出关断,定时器复位。

NSTL:以扫描方式进入步进程序。只要控制触点闭合,程序进入下一个步进程序段,并将前面的程序用过的数据区清除,输出关断,定时器复位。

CSTP:清除指定标记的步进指令,当最后一个步进程序段结束时,使用这条指令清除数据区,输出关断,定时器复位。

STPE:结束整个步进过程。

(2)编程实例

梯形图和指令表见表7-23。

表7-23 梯形图和指令表

978-7-111-40642-6-Chapter08-35.jpg

程序解释:

当检测到X0的上升沿时,执行过程1(从SSTP1~SSTP2)。当X1接通时,清除过程1,并开始执行过程2(从SSTP2开始)。当X2通时,清除过程50,步进程序执行结束。

(3)指令使用说明

1)步进程序中允许输出OT直接同左母线相连。

2)步进程序中不能使用MC和MCE、JP和LBL、LOOP和LBL、ED和CNDE指令。

3)在步进程序区中,识别一个过程是从一个SSTP指令开始到下一个SSTP指令,或一个SS指令到STPE指令,即步进程序区全部结束。

4)当NSTP或NSTL前面的控制触点接通时,程序进入下一段步进程序。这里的控制触点和步进控制程序区结束指令STPE都是必需的。

5)下一个步进过程的开始同时也清除上一个步进过程。因为既没有下一个步进过程来清除,也不能自清除,所以,最后一个步进过程必须用CSTP指令清除,而且步进控制程序区结束应有STEP指令。

6)尽管在每个步进程序段中的程序都是相对独立的,但在各段程序中的输出继电器、内部继电器、定时器、计数器不能出现相同的编号,否则按出错处理。

7.中断指令:INT、ICTL、IRET

(1)指令功能

ICTL:中断控制指令,用于设定中断的类型及参数。

INT:中断程序开始标志。

IRET:中断程序结束标志。

为了提高PLC的实时控制能力,提高PLC与外部设备配合运行的工作效率以及PLC处理突发事件的能力,FP1设置了中断功能。中断就是中止当前正在运行的程序,去执行为要求立即响应信号而编制的中断服务程序,执行完毕再返回原先被中止的程序并继续运行。

(2)编程实例

梯形图和指令表见表7-24。

表7-24 梯形图和指令表

978-7-111-40642-6-Chapter08-36.jpg

程序解释:

当检测到中断控制触发信号X10的上升沿时,中断源X1被允许,其他中断源被禁止。在X10上升沿处正在执行的指令立即停止,转而执行INT1和IRET指令间的中断程序。中断程序执行完毕后,返回到ICTL指令处,按顺序执行ICTL指令下面的程序。

(3)指令使用说明

1)FP1的中断类型:FP1-C24以上机型均有中断功能,其中断功能有两种类型,一种是外部中断,又叫硬件中断,一种是定时中断,又叫软件中断。

①外部中断共有8个中断源X0~X7,对应中断入口为

X0-INT0 X4-INT4

X1-INT1 X5-INT5

X2-INT2 X6-INT6

X3-INT3 X7-INT7

其优先级别为INTO最高,INT7最低。FP1规定中断信号的持续时间应大于或等于2ms。

使用前应先通过对系统寄存器No.403的设置来设定8个中断源是否使能。No.403的低8位bit0~bit7对应输入继电器X0~X7。当某位设定成1时,则该位对应的输入继电器X就可以作为中断源使用;当某位设定成0时,则该位对应的输入继电器仍作为普通输入端使用。

②内部定时中断是通过软件编程来设定每间隔一定的时间去响应一次中断服务程序,定时中断的中断人口为INT24。

2)中断的实现:

①对于内部定时中断,是通过编程来实现的,定时中断的时间,由中断命令控制字设定。

②对于外部中断,应先设定系统寄存器No.403的值,然后再设定中断控制字,并按中断程序的书写格式编写程序。当中断源脉冲信号的上升沿到来后即响应中断,停止执行主程序,并按中断优先权的高低依次执行各中断服务子程序。子程序结束后,返回到主程序。值得指出的是:与普通微机不同,PLC的中断是非嵌套的,也就是说,在执行低级中断时,若有高级中断到来,并不立即响应高级中断,而是在执行完当前中断后,才响应高级中断。

3)中断控制字的设置:ICTL是中断控制字指令,有两个操作数S1和S2。它可以是常数H,也可以是某个寄存器的数据。其中S1设置中断类型,S2设置中断参数。ICTL指令必须和DF指令连用,以保证只在触发信号的上升沿时执行一次。

①S1的设定:S1设定中断的控制操作如图7-13所示。S1设定中断的类型和含义见表7-25。

978-7-111-40642-6-Chapter08-37.jpg

图7-13 S1的设定

表7-25 ICTL指令中S1的设定及含义

978-7-111-40642-6-Chapter08-38.jpg

②S2的设定:S2须根据S1中的控制字来设定中断状态。具体设定及含义见表7-26。

表7-26 ICTL指令中S2的设定及含义

978-7-111-40642-6-Chapter08-39.jpg

(4)指令使用注意事项

1)使用外部中断之前,首先设置系统寄存器No.403。

2)ICTL指令应和DF指令配合使用。

3)中断子程序应放在主程序结束指令ED之后。

4)INT和IRET指令必须成对使用。

5)中断子程序中不能使用定时器指令TM。

6)中断子程序的执行时间不受扫描周期的限制。

7)中断子程序中可以使用子程序调用指令。

例7-9 定时启动中断应用,如图7-14所示。

978-7-111-40642-6-Chapter08-40.jpg

图7-14 定时启动中断

a)梯形图 b)时序图

例题说明:

图7-14a中,中断指令参数S1设为H2,规定为“定时启动中断”。S2用来设定中断间隔,间隔时间=K1000×10ms=10s。当中断控制信号X0接通时,中断控制程序24(INT24)每隔12s执行一次。

例7-10 外部硬中断应用,如图7-15所示。

978-7-111-40642-6-Chapter08-41.jpg

图7-15 外部硬中断举例

例题说明:

图中7-15中包含2个中断程序(INT0和INT1)。主程序中,中断控制指令ICTL的第一个参数S1=H0,表示设置成外部硬中断;第二参数S2=H3,即允许X0、X1中断。

在程序运行之前,首先设定系统寄存器No.403的值为H3。上电后运行程序,无中断时Y1和Y2全为OFF状态。来中断时则应按如下方式响应:

X0中断则Y1为ON;X1中断则Y2为ON。

X0、X1同时来中断,则按优先权的排队顺序响应,即先响应X0,再响应X1。

X0、X1均中断,则按中断到来的先后顺序响应之。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈