任务划分依PLC的型号不同而有所不同。大体上任务有两类:循环任务及中断任务。
循环任务大体有32个(机型不同,可能有所不同)。任务编号从0~31。循环任务00为起始循环任务,是首先要执行的任务,也是默认要用的任务。如仅一个任务(最少也要有一个)则就是它。
如有多个循环任务,在PLC运行时,总是先按序号从小到大,依次周而复始不断地执行。如被任务管理指令(见后)控制,则怎么管理,怎么执行。
中断任务较多,多达256个,机型不同,可能也有所不同。编号也是从0开始,0~255。
中断任务由各种中断事件触发。有了中断事件,就暂时停止循环任务的执行,转去调用相应中断号的中断任务。而且,发生一次事件,仅调用一次。如果,同时有两个中断事件发生,则先调中断号小(优先级高)的任务,执行小的后,再执行大的。都执行完中断任务,再转回执行循环任务。
图9-8所示为多任务程序执行的情况。
中断任务有:电源断中断任务、定时中断、I/O中断任务、外中断任务。此外,有的机型还有扩充循环任务,是按循环任务处理的中断任务。编号在8000~8255之间的十进制数(值8000~8255定义0~255扩充循环任务)。
电源断中断任务优先级最高,用中断0号。中断1号、中断2号,用于内部定时中断。其定时间隔可用CXP编程软件设定。
I/O中断要用到中断输入单元。其中断号与中断单元的输入点的编号相对应。如输入点为0,则设定其中断任务号为100,其余类推。
多任务编程是模块化编程的进一步发展。其好处与模块化组织还要多。如图9-9所示,这里任务作了不同的组织,就构成了任务ABC及任务ABD两个不同的程序,很灵活。(www.xing528.com)
图9-8 多任务程序执行
图9-9 任务的不同组织构成不同的程序
用多任务编程时,每一任务的最后一个指令应是END。它代表任务的结束。END指令之后的指令不执行。
执行每一任务开始时,所有的标志位,如“大于”、“等于”……均复位为0。每个任务可以有自己的子程序。而且,别的任务不能调用。
但可以设计全局的子程序。这时,所有的任务均可调用。图9-10所示即为全局子程序使用的情况。
从图知,使用全局子程序可减少程序代码。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。