第5章任务编程

上传人:人*** 文档编号:454842641 上传时间:2023-01-30 格式:DOCX 页数:20 大小:368.26KB
返回 下载 相关 举报
第5章任务编程_第1页
第1页 / 共20页
第5章任务编程_第2页
第2页 / 共20页
第5章任务编程_第3页
第3页 / 共20页
第5章任务编程_第4页
第4页 / 共20页
第5章任务编程_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《第5章任务编程》由会员分享,可在线阅读,更多相关《第5章任务编程(20页珍藏版)》请在金锄头文库上搜索。

1、第 5 章 任务编程以前的 PLC 程序是一条一条地进行扫描执行的,在每一个循环扫描周期里,系统都要进 行I/O刷新。因此,PLC占用的扫描时间比较长。目前OMRON公司生产的CJ1系列和CS1系 列的PLC,在程序上采用模块化结构,即用标准组件创建程序,这些标准组件创建的模块程序, 就是我们要说到的任务。创建模块程序时,可用符号指定地址,以便于标准化。 PLC 的程序可 由多个任务组成,其中一个为控制任务。它可以使用TASK ON(即TKON(820)指令设置为“就 绪”状态,也可以使用TASK OFF(即TKOF(821)指令设置为“等待”状态。当一个控制任务处 于“等待”状态时,该任务中

2、的程序不执行,因此,它们的等待时间不计算到循环时间中去。 由于不执行任务中的程序不会增加循环扫描时间,可提高PLC的总体执行性能。本章主要介绍 任务编程的特点和类型、循环任务和中断任务的一般编程方法。5.1 任务编程概述5.1.1 任务编程的特点和类型1. 任务编程的结构 按控制功能、操作设备类型、控制过程、程序开发或其他标准把程序进行划分,每个操作 可在一个被称为“任务”的独立单元内编程,称为任务编程。在多个任务中,控制任务用于控 制其他任务的执行。由多个任务构成的任务编程,它的一般结构框图如图5-1所示。壬务0 a程序bcd(a)任务的组成框图(b)多个任务的编程框图图5-1 任务编程的结

3、构框图在图(b)中,进入起动时任务0处于“就绪”状态,程序从任务)开始执行操作,其他任务 仍然处于“等待”状态;当a条件为ON时,任务1进入“就绪”状态,任务2和任务3仍然处于“等 待”状态。依此类推,当d为ON时,任务0将进入“等待”状态,其他任务将保持现有状态。2. 任务编程的特点(1) PLC的程序可由几个人同时编制,每个人单独设计的程序部分可以容易地组合成一个 用户程序。(2) 任何一种程序可设计成一个标准化模块。也就是说可使用标识符编程,采用总体和局 部标识符进行设计,而且对局部标识符可以自动分配地址,从而提高编程效果。(3) 提高总体响应。因为系统被分成了一个总体控制程序以及一些单

4、独的控制程序,所以 整体响应得到改进,并可按照需要执行一些特殊的程序。(4) 易于修改和调试。因为总体任务可由几个人独立编制,并且每个独立任务都可分开修 改和调试;由于符号被设定成局部符号或全局符号,而且局部符号可自动分配地址,这就很容 易判定一个地址是局部的还是全局的,从而便于修改和调试程序。(5)易于切换程序。如果有必要改变操作时,可以使用程序中的一个任务控制指令使特定 的任务(程序)有效运行。(6)易于理解用户程序。程序以模块化为结构使得程序简单易懂,程序段的处理就像用传 统的跳转指令一样,很容易理解。3. 任务的类型 任务通常划分为循环任务和中断任务两大类。中断任务可进一步划分为断电中

5、断、定时中 断、I/O中断和外部中断任务,最后两种中断仅限于CS1系列的CPU单元使用。在使用CS1-H、 CJ1-H、CJ1M或CS1D的CPU单元时,中断任务可在循环任务中通过TKON指令的启动去执行,这 种任务被称为“附加循环任务”。此时,中断任务亦可作为循环任务来执行。(1)循环任务 顺序执行的任务称作周期任务,也叫做循环任务。 一个处于就绪状态的循环任务都是从最 低编号开始,按顺序在每个周期循环执行一次(即都从程序的顶端开始直到END(001)指令结束)。 循环任务的最大数量为32个,故循环任务号的编号为0031。在使用CS1-H、CJ1-H、CJ1M或CS1D 的CPU单元时,中断

6、任务(即总量为256个)能像常规的循环任务一样被执行。如果使用附加循 环任务,那么循环任务的数量可达到288个。( 2)中断任务 依靠中断条件执行的任务称为中断任务。中断任务的数量有256个,则中断任务号的编号为 00255。如果中断发生,即使当前循环任务(包括附加循环任务)正在执行,也将转去执行中 断任务。在循环周期中,只要中断条件成立,中断任务可在任何时候执行,包括在用户程序执 行阶段、I/O口刷新或外设处理时,中断任务都具有高的优先处理级别。在使用CS1-H、CJ1-H、CJ1M或CS1D CPU单元时,中断任务能被当作循环任务执行。CS1D 的CPU不支持中断,使用CS1D的CPU时,

7、中断任务仅能作为附加循环任务执行。在CJ1M的CPU单元中,是通过内置的中断输入和高速计数器输入来运行中断任务的,详情见 有关CJ1系列PLC的操作手册。5.1.2 CPU单元的基本操作图5-2所示为一个具有n个编号的任务程序段,CPU单元将从最低号的任务(即任务0)开始 依次执行循环任务。如果中断发生,它将终止执行循环任务而去执行中断任务(如中断任务5)。 图5-2(a)的中断是作为一般中断任务使用的,只有在中断允许时才执行中断任务;而图5-2 (b) 的中断是作为附加循环任务使用的,附加循环任务号也从0递增,且顺序执行。在图5-2中,每一个任务都有一个结束指令END。END*1指令表示为任

8、务1的任务结束指令; 它将清除该任务的ER (错误)、EQ (等于)以及N (负)标志。END*2是最后任务的结束指令, 它将清除最后一个任务的ER、EQ和N标志,并刷新I/O。*1,*2在这里只是标示符,仅为了区别 对应于不同任务来加注的,在程序中都是用END指令。注意:所有条件标志(ER、CY、EQ、AER(指访问错误标志CF011)等)和指令条件(内部锁 存为ON等)在任务开始时都被复位,故这些条件标志不可读;而联锁/联锁解除指令(IL/ILC) 指令、跳转/跳转结束(J MP/JME)指令和子程序调用/子程序进入(SBS/SBN)指令,不能分开在两 个任务间使用;在小型机(如CPM2*

9、)的PLC程序中只能有一个结束指令END,而在中型机(如CS1 系列)的PLC,每一个任务都必须有一个END指令,每一个END指令作为该任务的结束标志。可见, 任务号和END个数应当匹配。从 最 低 的 任 务 号 开 始 按 序 执 行循环任务olI/O刷新外围处理a)图5-2任务编程的基本操作5.1.3 循环任务的状态与转换1. 循环任务的状态循环任务具有下列四种状态:禁止,就绪,运行和等待状态。(1) “禁止”状态(INI)处于“禁止”状态下的任务不能执行,在编程(PROGRAM)模式下,所有循环任务都为 “禁止”状态。但任何循环任务一旦从“禁止”状态转换到其他状态时,如果不返回到编程

10、(PROGRAM)模式下,都不能重新返回为“禁止”状态。( 2)“就绪”状态当任务处于“就绪”状态时,任务属性可控。任务属性可由TASK ON指令运行任务或在运 行操作启动时运行任务。使用TASK ON (TKON(820)指令来运行任务时,循环任务将从“禁止” 或“等待”状态切换为“就绪”状态;使用操作启动来运行任务,即在操作模式从编程(PROGRAM) 模式变为运行(RUN)模式或监控(MONITOR)模式时,一个操作运行循环任务可从“禁止”或“等 待”状态切换为“就绪”状态。后一种运行任务的方法仅对常规的循环任务有效。在任务0到任 务31开始操作时,可用编程工具设定一个或多个任务为 就绪

11、 状态,但对附加循环任务无效。( 3)“运行”状态当处于“就绪”状态的循环任务获取执行权时(例如初始任务执行标志变为ON时),该任 务将从“就绪”状态切换为“运行”状态并开始执行任务。(4)“等待”状态一条TASK OFF(TKOF(821)指令能把循环任务从“就绪”状态变为“等待”状态。“等待” 状态的效果相当于一个跳转JMP/JME)指令,处于“等待”状态的任务的输出将保持不变。在“等 待”状态下不执行指令,因此PLC系统的执行时间不增加。不需要执行的程序在任何时候都可以 被生成为任务并设为“等待”状态,以缩短PLC的循环扫描周期。简而言之,就是处于“等待” 状态的任务在执行时将被跳过,而

12、且在改变任务为“等待”状态时,不需要终止程序。2任务状态的转换综上所述,任务状态的转换可以用如图5-3表示。图5-3 任务状态的转换5.2 使用任务5.2.1 开关任务与任务限制1. 任务的开启与关闭N:任务号N:任务号对于循环任务来说,任务控制指令是指TASK ON和TASK OFF指令。在程序中,TASK ON(TKON(820)和TASK OFF(TKOF(821)指令是用来在“就绪”状态与“等待”状态间切换循 环任务的(包括附加循环任务),其命令的梯形图如图5-4所示。当执行条件为ON, 个任务将进入就绪状 态,并且相应的任务标志位会变为On。当执行条件为on, 个任务将进入等待状 态

13、,并且相应的任务标志位会变为O FF。(b)关闭任务图5-4 任务控制指令的梯形图在任何时候,都可使用开启任务TASK ON(即TKON(820)指令和任务关闭TASK OFF (即 TKOF(821)指令,来改变任何循环任务的读“READY”或写“WAIT”状态。一个处于READY状态 的循环任务,将在随后的周期中将保持它的状态;同样,一个处于WAIT状态的循环任务,也将 在随后的周期中保持那个状态不变。在每个周期内至少要有一个循环任务处于“就绪”状态, 否则,任务出错标志位(A29512)将变为ON,使CPU将停止运行。TASK ON和TASK OFF指令仅适用于循环任务,不可用于中断任务

14、。2. 任务的限制指令(1) 必须放在同一个任务中的指令在跳转/跳转结束(JMP/JME)、条件跳转/跳转结束(CJP/JM)E、条件不满足跳转/条件跳转结 束(CJPN/JME)、多重跳转/跳转结束(JMPO/JMEO)、循环(FOR/NEXT)、联锁/联锁解除(IL/ILC)、 子程序调用/子程序进入/子程序返回(BS/SBN/RET)、宏指令/子程序进入/返回(MCRO/SBN/RET)、 程序块开始/程序块结束(BPRG/BEND)、定义步进程序(STEP S/STEP)等指令,必须放在同一任务 中,任何企图在两个任务间分割这些指令,都将导致ER标志位为ON,且指令停止执行。(2) 不

15、允许在中断任务出现的指令任务开启(TKON(820)、任务关闭(TKOF(821)、定义步进(STEP)、定义下一步(SNXT)、更 改串口设置(STUP)、使中断禁止(DI)、使中断有效(EI)等指令,不允许在中断任务中出现。任何 企图在中断任务中使用这些指令,都将导致ER标志位变为ON,且指令停止执行。但如果中断任务 作为附加循环任务使用时,则可以使用上述指令。(3) 在中断任务中操作结果不确定的指令定时器(TIM 和TIMX(550),高速定时器(TIMH(Ol)和(TIMHX(551),ImS定时器(TMHH(540) 和(TMHHX(542),累计定时器(TTIM(087)和TTIM

16、X(555),多输出定时器(MTIM(543)和 (MTIMX(544),长时间定时器(TIML(542)和(TIMLX(553),定时器等待(TIMW(813)和 (TIMWX(816),高速定时器等待(TMHW(815)和(TMHWX(817), PID 控制(PID(190),错误点 检测(FPD(269),更改串行口设置(STUP(237)等指令,在中断任务中,它们的操作结果是不确 定的。除对上述指令限制之外,还有读数据文件(FREAD(700),写数据文件(FWRIT(701),网络 发送(SEND(090),网络接收(RECV(098),发送命令(CMND(490),协议宏指令(PMCR(260)等

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号