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两个不同的程序,很灵活。
图8-5 多任务程序执行
图8-6 任务的不同组织构成不同的程序
用多任务编程时,每一任务的最后一个指令应是END。它代表任务的结束。END指令之后的指令不执行。
执行每一任务开始时,所有的标志位,如“大于”“等于”……均复位为0。每个任务可以有自己的子程序。而且,别的任务不能调用。
但可以设计全局的子程序。这时所有的任务均可调用。图8-7所示即为全局子程序使用的情况。
从图8-7可知,使用全局子程序,显然可减少程序代码。
2.欧姆龙PLC任务管理
任务管理,也就是任务调用及调用取消有两种方法:由中断事件调用,针对中断任务(无需取消);用指令调用与调用取消,针对循环任务。
系统提供的指令调用指令为“任务ON”。调用取消指令为“任务OFF”。
图8-7 为全局子程序使用
(1)任务ON
助记符号为TKON(820),目的是使得指定的任务执行。
梯形图符号如图8-8所示。图中,N为循环任务号。
N应在其允许范围根据任务的类型指定。必须是十进制00和31(十进制)之间的一个常数(数值0~31定义任务0~31)。
图8-8 TKON指令(www.xing528.com)
对CS1-H、CJ1-H和CJ1MCPU单元,也可为扩充循环任务号。N必须是一个在8000~8255(十进制)间的常数(值8000~8255定义扩充循环任务0~255)。
执行本指令,可使指定的任务置于可执行状态。并把相应的任务标志(TK00~TK31)置ON。
如果本指令指定任务号小于本任务号,指定的任务将从下一个循环开始执行。如果指定的任务号大于本任务号,该任务在当前的循环执行。图8-9所示为以上两种调用情况的图解说明。
图8-9 两种调用情况图解
(2)任务OFF
助记符号为TKOF(821),目的是把指定的任务置为待机状态,即禁止任务的执行。梯形图符号,如图8-10所示。
图中,N为循环任务号。
N应在其允许范围根据任务的类型指定。必须是十进制00和31(十进制)之间的一个常数(数值0~31定义任务0~31)。
图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”,而且,操作开始时执行。
图8-11 程序属性窗口
图8-12 循环任务02操作开始选择
任务除了一开始就让它执行,也可开始时不执行,而在某个条件下才执行。图8-13所示即为这样的例子。
从图8-13可知,当D0的值增加到#50时,才执行TKON1指令,才把任务1调用。
已调用的任务还可在一定的条件下让其停止执行。图8-14所示即为这样的例子。
从图8-14可知,当D2增加到#30时,将执行TKOF1指令,将使任务1(本例即自身这个任务)停止执行。
在多任务编程的情况下,编写好各任务的代码后,可很方便地,根据任务是否执行的情况进行组织。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。