1
PLC编程实用指南
1.12.3.1 8.3.1  欧姆龙PLC多任务组织
8.3.1 欧姆龙PLC多任务组织

1.欧姆龙PLC任务类型

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

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

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

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

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

978-7-111-39745-8-Chapter09-22.jpg

图8-18 多任务程序执行

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

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

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

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

多任务编程是模块化编程的进一步发展,对任务做了不同的组织。如图8-19所示,程序ABC和任务ABD就是各调用了不同标准程序,很灵活。

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

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

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

978-7-111-39745-8-Chapter09-23.jpg

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

978-7-111-39745-8-Chapter09-24.jpg

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

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

2.欧姆龙PLC任务管理

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

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

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

梯形图符号为978-7-111-39745-8-Chapter09-25.jpg

这里,N为循环任务号。

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

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

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

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

978-7-111-39745-8-Chapter09-26.jpg

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

(2)任务OFF。助记符号为TKOF(821),目的是把指定的任务置为待机状态,即禁止任务的执行。梯形图符号为978-7-111-39745-8-Chapter09-27.jpg

这里,N为循环任务号。

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

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

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

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

3.欧姆龙PLC任务组织

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

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

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

建立循环任务时,应在工作区中,先点击PLC项,再点击“新程序”。然后,点击程序的属性项,将弹出程序属性窗口,如图8-22所示。

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

978-7-111-39745-8-Chapter09-28.jpg

图8-22 程序属性窗口

978-7-111-39745-8-Chapter09-29.jpg

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

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

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

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

978-7-111-39745-8-Chapter09-30.jpg

图8-24 任务调用例子

978-7-111-39745-8-Chapter09-31.jpg

图8-25 使任务停止执行例子

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

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