首页 理论教育 如何优化欧姆龙PLC的多任务组织?

如何优化欧姆龙PLC的多任务组织?

时间:2023-06-16 理论教育 版权反馈
【摘要】:中断任务较多,多达256个,机型不同,可能也有所不同。它代表任务的结束。执行本指令,可使指定的任务置于可执行状态。建立循环任务时,应在工作区中,先及PLC项,再及插入“新程序”。

如何优化欧姆龙PLC的多任务组织?

1.欧姆龙PLC任务类型

任务划分依PLC的型号不同而有所不同。大体上任务有两类:循环任务和中断任务。

循环任务大体有32个(机型不同,可能有所不同)。任务编号从0~31。循环任务00为起始循环任务。是首先要执行的任务,也是默认要用的任务。如仅1个任务(最少也要有1个)则就是它。

如有多个循环任务,PLC开始运行,总是先按序号从小到大,依次周而复始不断地执行着。如被任务管理指令控制,则怎么管理?将怎么执行。

中断任务较多,多达256个,机型不同,可能也有所不同。编号也是从0~255。

中断任务由各种中断事件触发。有了中断事件,就暂时停止循环任务的执行,转去调用相应中断号的中断任务。而且,发生一次事件,仅调用一次。如果同时有两个中断事件发生,则先调中断号小(优先级高)的任务,执行小的后,再执行大的。都执行完中断任务,再转回执行循环任务。

图8-5所示为多任务程序执行的情况。

中断任务有电源断中断任务、定时中断任务、I/O中断任务、外中断任务。此外,有的机型还有扩充循环任务,是按循环任务处理的中断任务。编号在8000~8255之间的十进制数(值8000~8255定义0~255扩充循环任务)。

电源断中断任务优先级最高,用中断0号。中断1号、中断2号,用于内部定时中断。其定时间隔可用CXP编程软件设定。

I/O中断要用到中断输入单元。其中断号与中断单元的输入点的编号相对应。如输入点为0,则设定其中断任务号为100,其余类推。

多任务编程是模块化编程的进一步发展。其好处与模块化组织还要多。如图8-6所示,这里任务做了不同的组织,就构成任务ABC及任务ABD两个不同的程序,很灵活。

978-7-111-56641-0-Chapter09-5.jpg

图8-5 多任务程序执行

978-7-111-56641-0-Chapter09-6.jpg

图8-6 任务的不同组织构成不同的程序

用多任务编程时,每一任务的最后一个指令应是END。它代表任务的结束。END指令之后的指令不执行。

执行每一任务开始时,所有的标志位,如“大于”“等于”……均复位为0。每个任务可以有自己的子程序。而且,别的任务不能调用。

但可以设计全局的子程序。这时所有的任务均可调用。图8-7所示即为全局子程序使用的情况。

从图8-7可知,使用全局子程序,显然可减少程序代码。

2.欧姆龙PLC任务管理

任务管理,也就是任务调用及调用取消有两种方法:由中断事件调用,针对中断任务(无需取消);用指令调用与调用取消,针对循环任务。

系统提供的指令调用指令为“任务ON”。调用取消指令为“任务OFF”。

978-7-111-56641-0-Chapter09-7.jpg

图8-7 为全局子程序使用

(1)任务ON

助记符号为TKON(820),目的是使得指定的任务执行。

梯形图符号如图8-8所示。图中,N为循环任务号。

N应在其允许范围根据任务的类型指定。必须是十进制00和31(十进制)之间的一个常数(数值0~31定义任务0~31)。

978-7-111-56641-0-Chapter09-8.jpg

图8-8 TKON指令(www.xing528.com)

对CS1-H、CJ1-H和CJ1MCPU单元,也可为扩充循环任务号。N必须是一个在8000~8255(十进制)间的常数(值8000~8255定义扩充循环任务0~255)。

执行本指令,可使指定的任务置于可执行状态。并把相应的任务标志(TK00~TK31)置ON。

如果本指令指定任务号小于本任务号,指定的任务将从下一个循环开始执行。如果指定的任务号大于本任务号,该任务在当前的循环执行。图8-9所示为以上两种调用情况的图解说明。

978-7-111-56641-0-Chapter09-9.jpg

图8-9 两种调用情况图解

(2)任务OFF

助记符号为TKOF(821),目的是把指定的任务置为待机状态,即禁止任务的执行。梯形图符号,如图8-10所示。

图中,N为循环任务号。

N应在其允许范围根据任务的类型指定。必须是十进制00和31(十进制)之间的一个常数(数值0~31定义任务0~31)。

978-7-111-56641-0-Chapter09-10.jpg

图8-10 TKOF指令

对CS1-H、CJ1-H和CJ1MCPU单元,也可为扩充循环任务号。N必须是一个在8000~8255(十进制)间的常数(值8000~8255定义扩充循环任务0~255)。

执行本指令,可使指定的任务置于待机状态,并把相应的任务标志(TK00~TK31)置OFF。

如果本指令指定任务号小于本任务号,指定的任务将从下一个循环开始待机。如果指定的任务号大于本任务号,该任务在当前的循环待机。情况如同图8-9对TKON指令的说明。

3.欧姆龙PLC任务组织

任务组织含任务的建立及调用。

中断任务的建立主要是做好有关软、硬件设定及编写中断处理程序。而它的调用无须组织,由中断事件调用。中断处理程序可按照控制或数据处理的要求编写,与以前讨论的没有本质差别。这里不赘述。

循环任务除任务00外,所有的都要另行建立。调用也要组织。

建立循环任务时,应在工作区中,先及PLC项,再及插入“新程序”。然后,用鼠标左键点击程序的属性项,将弹出(如图8-11所示)程序属性窗口。

从图8-11可知,可从中选定本程序的任务类型及任务编号。同时,还可选定在操作开始时是否执行本任务。图8-12所示为循环任务02,其名称为“新程序3”,而且,操作开始时执行。

978-7-111-56641-0-Chapter09-11.jpg

图8-11 程序属性窗口

978-7-111-56641-0-Chapter09-12.jpg

图8-12 循环任务02操作开始选择

任务除了一开始就让它执行,也可开始时不执行,而在某个条件下才执行。图8-13所示即为这样的例子。

从图8-13可知,当D0的值增加到#50时,才执行TKON1指令,才把任务1调用。

已调用的任务还可在一定的条件下让其停止执行。图8-14所示即为这样的例子。

从图8-14可知,当D2增加到#30时,将执行TKOF1指令,将使任务1(本例即自身这个任务)停止执行。

在多任务编程的情况下,编写好各任务的代码后,可很方便地,根据任务是否执行的情况进行组织。

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

我要反馈