首页 理论教育 程序流控制指令及应用

程序流控制指令及应用

时间:2023-06-16 理论教育 版权反馈
【摘要】:程序流控制指令用于程序执行流程的控制。子程序是为一些特定的控制编制的相对独立的程序。程序在编排时,主程序排在前,子程序排在后,并以主程序结束指令FEND将两部分分开。子程序P1安排在主程序结束指令FEND之后,标号P1和子程序返回SRET之间的程序构成了P1子程序的内容。中断子程序也是为实现某些特定的控制功能而设定的程序,这些特定的功能要求响应时间小于机器的扫描周期。表4-6 主程序结束指令主程序结束指令表示主程序结束。

程序流控制指令及应用

程序流控制指令有10条,分别是条件跳转(CJ)、子程序调用(CALL)、子程序返回(SRET)、中断返回(IRET)、允许中断(EI)、禁止中断(DI)、主程序结束(FEND)、警戒时钟(WDT)、循环开始(FOR)、循环结束(NEXT)。

程序流控制指令用于程序执行流程的控制。对于一个扫描周期,跳转指令可以使程序执行发生跳跃,以实现程序段的选择;子程序调用指令可以有选择地调用某个子程序;中断指令则用于中断信号引起的子程序的调用;循环指令可重复执行特定的程序段。

程序流控制指令可以影响程序执行的流向和内容。合理地安排程序结构,可以减少程序的冲突,缩短程序运行的时间,并提高程序运行的可靠性

1.条件跳转

(1)条件跳转指令 条件跳转指令的助记符、指令代码、操作数和程序步见表4-2。

表4-2 条件跳转指令

978-7-111-42922-7-Part02-10.jpg

CJ用于跳过顺序程序的某一部分,以减少扫描时间。若条件满足,则程序跳到Pn处执行;若条件不满足,则按顺序执行。

处于被跳过的程序段中的输出继电器、辅助继电器、状态元件等,由于该段程序不再执行,即使涉及的工作条件有变化,它们仍然保持跳转发生前的工作状态。一个标号只能使用一次,多条跳转指令可以使用同一个标号。跳转条件若为M8000,则称为无条件跳转。

(2)条件跳转指令的应用 条件跳转可用于选择执行一定的程序段,在工业控制中经常使用。一套设备在不同的条件下有多种工作方式,根据条件选择工作方式时可使用条件跳转指令。例如,为了满足设备自动运行和调试的需要,可以利用条件跳转指令实现设备手动与自动工作方式的转换。图4-3所示是手动与自动选择程序的梯形图,图中X7为手动、自动转换开关。当X7为“ON”时,执行自动程序;当X7为“OFF”时,执行手动程序。

2.子程序调用与返回

(1)子程序调用与返回指令 子程序调用与返回指令的助记符、指令代码、操作数和程序步见表4-3。

子程序是为一些特定的控制编制的相对独立的程序。程序在编排时,主程序排在前,子程序排在后,并以主程序结束指令FEND将两部分分开。

子程序指令在梯形图中的使用情况如图4-4所示。子程序调用指令安排在主程序段,X0是子程序调用的条件,当X0为“ON”时,CALL指令使标号为P1的子程序得以执行。子程序P1安排在主程序结束指令FEND之后,标号P1和子程序返回SRET之间的程序构成了P1子程序的内容。当有多个子程序时,子程序可依次列在主程序结束指令之后,并以不同的标号区别。

978-7-111-42922-7-Part02-11.jpg

图4-3 手动与自动选 择程序的梯形图

表4-3 子程序调用与返回指令

978-7-111-42922-7-Part02-12.jpg

(2)子程序指令的应用 在电梯单层、多层运行时,电梯电动机的控制不同。控制梯形图如图4-5所示。

当单层运行条件M10为“ON”时,调用单层运行子程序;多层运行条件M11为“ON”时,调用多层运行子程序。

3.中断控制

中断控制指令的助记符、指令代码、操作数和程序步见表4-4。

表4-4 中断控制指令

978-7-111-42922-7-Part02-13.jpg

978-7-111-42922-7-Part02-14.jpg

图4-4 子程序调用

978-7-111-42922-7-Part02-15.jpg

图4-5 电梯电动机转速控制梯形图

中断控制是指程序运行中中断主程序的运行而转去执行中断子程序的工作方式。中断子程序也是为实现某些特定的控制功能而设定的程序,这些特定的功能要求响应时间小于机器的扫描周期。能引起中断的信号称为中断源,FX系列PLC有二类中断源,外部中断和定时中断。为了区分不同的中断并在程序中标明中断子程序的入口,规定了中断标号。FX系列PLC的中断标号见表4-5。

表4-5 中断标号及相关辅助继电器

978-7-111-42922-7-Part02-16.jpg

外部中断信号从X0~X5输入,用于机外突发随机事件引起的中断。定时中断是机内中断,使用定时器引出,多用于周期性工作场合。中断是脱离程序扫描执行机制的,多个突发事件出现时必须有顺序,即中断的优先权。FX系列PLC设置9个中断点,其优先权由中断号的大小决定,号数小的中断优先权高。外部中断的优先权高于机内定时中断。

PLC一般处在禁止中断状态。允许中断指令EI与禁止中断指令DI之间的程序段为允许中断区间。当程序处理到该区间并且出现中断信号时,停止执行主程序,而去执行相应的中断子程序。处理到中断返回指令IRET时,返回断点,继续执行主程序。

中断封锁辅助继电器M8050~M8058用于控制中断子程序的执行。例如,M8050为“OFF”时,标号为I000或I001的中断子程序允许执行;当M8050为“ON”时,标号为I000或I001的中断子程序禁止执行。(www.xing528.com)

外部中断实例如图4-6所示,当程序处理到允许中断区间,X010为“OFF”时,X000输入上升沿信号,执行一次标号为I001的中断子程序,执行完毕,返回主程序。定时中断实例如图4-7所示,定时中断1610是中断序号为6,时间周期为10 ms的定时器中断,从梯形图的内容来看,每执行一次中断子程序将使数据寄存器D10中数据加1,当加到600时,使Y011置1。主程序定时器T0的设定值为60,定时器控制Y010输出,当X010由“ON”到“OFF”并经历6s后,Y010、Y011应同时为“ON”。

978-7-111-42922-7-Part02-17.jpg

图4-6 外部中断

4.主程序结束

主程序结束指令的助记符、指令代码、操作数和程序步见表4-6。

表4-6 主程序结束指令

978-7-111-42922-7-Part02-18.jpg

主程序结束指令表示主程序结束。程序执行到FEND时,进行输出处理、输入处理和监视定时器刷新,完成后返回第0步。

5.警戒时钟

警戒时钟指令的助记符、指令代码、操作数和程序步见表4-7。

表4-7 警戒时钟指令

978-7-111-42922-7-Part02-19.jpg

978-7-111-42922-7-Part02-20.jpg

图4-7 定时中断

警戒时钟指令用于程序监视定时器的刷新,如果扫描时间超过100 ms,PLC将停止运行。在这种情况下,应将WDT指令插到合适的程序步中刷新警戒时钟,以便程序继续执行至END。

警戒时钟指令的使用如图4-8所示。图中将一个扫描时间为120ms的程序分为两个60 ms的程序,在两个程序之间插入警戒时钟指令。

6.循环

循环指令的助记符、指令代码、操作数和程序步见表4-8。

978-7-111-42922-7-Part02-21.jpg

图4-8 警戒时钟指令的使用

表4-8 循环指令

978-7-111-42922-7-Part02-22.jpg

循环指令由FOR和NEXT两条成对出现的指令构成。如图4-9所示,三条FOR指令与三条NEXT指令相互对应。从图中可以看出,每对循环指令间都包括了一段程序,这就是程序执行中需按一定次数进行循环的部分。循环次数由FOR指令后的参数值给定。该程序最中心的循环内容是使D10加1,循环次数为4,它的外层循环次数为3,最外层循环次数为2。最内层指令循环次数是各层循环次数的乘积。本例中的加1指令在一个扫描周期就要使D10加24次1。

7.程序结构

程序是由多条指令构成的,一系列指令的集合完成一定的功能,构成一个程序模块。在控制要求复杂时,需要将具有不同功能的程序模块进行合理的组织,程序的组织方式就是程序结构。

常见的程序结构有以下几种:

(1)简单顺序结构 这是一些简单小程序采用的结构,指令顺序平铺地写下去,运行时也是顺序地一条条执行。简单顺序结构的特点是每个扫描周期中每条指令都要被扫描执行。

(2)循环、跳跃结构 根据控制要求,程序有选择地执行跳转指令。这时在某个扫描周期中就不一定扫描执行所有程序。循环可以看成是多次相反方向的选择,其他程序相当于被跳过。

(3)模块式结构 模块式结构程序是由功能块、数据块、组织块等组成的。组织块、功能块的子程序仍是简单顺序结构。功能块解决局部的、单一的控制功能,相当于独立的子程序;数据块为程序提供所需的数据;组织块决定程序流控制,常作为主程序。多个功能块、数据块相对于组织块来说是并列式结构。模块式结构的编程思想是先分解,各个击破,再综合编程。模块式结构程序为编程提供了清晰的思路,编程时先将复杂的控制分解为若干需要解决的局部问题,通过编辑子程序解决局部控制问题,然后解决数据组织、程序流控制等问题。

模块式结构编程有利于程序的编写、阅读和检查,有利于程序运行和减少程序冲突,并能提高程序的可靠性。

978-7-111-42922-7-Part02-23.jpg

图4-9 循环指令

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

我要反馈