跳到主要内容

4.1 任务

4.1.1 任务介绍

  • 每一个任务是由名称、优先级、时间间隔、看门狗组成,您可以自行定义当前任务的这些参数,在一个程序中不同部分的执行通过“任务”来控制。您可以定义多个不同的任务,以控制不同的程序。其提供周期性或触发性的执行一组程序。
  • 任务具有将I/O映射的Output全局变量写入%Q输出映像寄存器,将%I输入映像寄存器写入I/O映射的input全局变量,调用执行程序的能力。
  • 输入映像寄存器:是PLC接收外部输入的开关量信号的窗口,为输入端信号状态开辟的一个存储区
  • 输出映像寄存器:是为输出端信号状态开辟的一个存储区

4.1.2任务分类

连续循环任务

  • 有且只有一个
  • 连续循环任务是每次该任务执行完毕后,如果CPU处理能力可用,系统就再次触发任务调用。

事件触发任务

  • 事件触发任务:由时间触发的非循环执行任务都可以归类到事件触发任务。事件触发可以根据PLC事件启动事件触发,确定的时间事件触发,硬件扫描事件触发,系统事件触发等。

  启动任务(触发任务表格序号1):由停止模式变为运行模式时,完成STARTUP自检,全局变量完成初始化后,初始化用户程序错误任务和执行超时任务后,立即触发:STARTUP 任务,再所有其他TASK初始化,然后启动连续循环任务,再启动其他任务。

  • 具体的事件触发任务汇总如下表:
序号事件触发任务优先级(默认值)分类
1PLC模式从STOP到RUN29启动TASK
2在指定的日期执行一次
(使用日期时间以独立的形式指定)
特定的间隔来执行
(例如每8小时、每天、每月)
5~29时间事件TASK
3执行超时5~29任务执行超时TASK
4编程错误5~29程序错误TASK
注意
  • 每个事件触发任务添加时会自动添加一个该任务接口格式的系统程序并放置在该任务第一个调用程序,任务和程序之间的关系为弱耦合(会自动添加并关联但是用户可以各自删除、修改且不关联删除、修改)
  • 任务校验从第一个使能开始
  • 用户可以修改程序的名称和先后顺序,但一定要保证第一个被调用的程序符合接口格式

定周期循环任务

  定周期循环任务是系统每隔一段任务设定的循环时间就触发一次任务调用。启动时间是PLC模式转换从停止状态切换到运行状态的时刻,如果有多个定周期循环TASK,系统根据优先级高低依次调用。

  • 定周期任务默认行为:
    • 可设定的循环时间范围:1ms~60000ms(最大周期1分钟)

    • 第一个建立的定周期循环任务的默认循环时间是20ms,优先级10(可修改)

    • 默认新增循环时间越短的任务,系统建议设定的优先级越高(可修改)

注意
  • 天行PLC规定最大总任务数25,各类任务分别规定如下:
    • 定周期循环任务的最大数为9;
    • 连续循环任务的最大数为1;
    • 时间触发任务的最大数为15;
  • 不建议对定周期循环任务进行后处理。因为可能会导致优先级相同或较低的任务发生过载

4.1.3 任务优先级

  • 优先级:CPU资源分配的先后顺序,就是指任务的优先权,优先权高的进程有优先执行权力。
  • 任务于优先级存在固定的依赖关系
  • 任务的优先级设置确立了相关TASK的调度优先级,天行PLC调度和任务优先级共可以设32个级别(0~31之间的一个数字,0为最高优先级,具有的数值越高优先级越低,31为最低优先级)
  • 不同任务类型可选优先级数如下表所示:
任务类型可选优先级备注
定周期循环任务5-25暂定
事件触发任务5-29暂定
连续循环任务30暂定
注意
  • 如果在不同的任务中使用相同的输入,那么输入可能会在任务除了过程中发生变化。当任务被也具有更高优先级的任务中断并导致再次读取过程映像时,会发生这种情况。
  • 在多个任务使用相同的输入输出没有任何意义,并且在某些情况下会导致意外反应。

4.1.4 任务执行规则

  • 一个任务可调用多个程序,每一个TASK最大调用程序数为99
  • TASK由系统调用,主程序由TASK调用
  • 同一PLC下,所有TASK名称不可以重名,否则编译报错
  • 连续循环任务优先级必须低于定周期循环任务

4.1.5 任务执行

任务执行过程

  • 如下图所示:

alt text

  • 执行阶段描述,如下表所示:
执行阶段阶段描述
输入采样阶段每次扫描周期开始时,PLC检测输入设备的状态,将状态写入输入映像寄存区内。PLC以扫描方式读所有输入端子的输入信号,并将个输入状态存入对应的输入映像寄存器中。此时,输入映像寄存器被刷新。
程序执行阶段在扫描周期的执行程序阶段,PLC从输入映像区或输出映像区内读取状态和数据,并依照相应的运算后,将结果保存在输出映像区。
输出刷新阶段PLC将输出映像区中的输出变量送入输出锁存器,然后由锁存器通过输出模块产生本周期的控制输出。

以上三个阶段,执行完毕就称之为一个工作周期,类推可知,连续循环任务,就是CPU只要有资源就不停的执行这三个周期;周期循环任务,就是按照一定的循环时间执行这三个周期。

4.1.6 任务执行超时监控

  • 看门狗:可将看门狗当作一个定时器理解,定义任务的时间监控,监控TASK内程序执行时出现的超时故障。看门狗主要针对TASK执行超时监控作用。
  • 使用看门狗后系统会做出如下处理:
    • 中断当前TASK执行,系统调用相关超时TASK。超时事件TASK执行完成后,因超时被中断的TASK继续运行,TASK监控时也重新启动,如果同一任务连续3次超时,PLC转到STOP模式
    • 如果任务超时事件TASK不存在。PLC直接转到STOP模式
    • 系统不能自动删除用户程序和任务
注意
  • 循环周期TASK执行事件超过设定看门狗时间3倍。PLC转到STOP模式
  • 如果TASK执行超时,报告TASK超时事件到诊断缓冲区
  • 如果TASK执行超时监控(看门狗)使能没有选择,PLC系统不干预TASK执行
  • 连续循环TASK,默认看门狗使能允许(可修改)
  • 定周期循环TASK,默认看门狗使能不勾选(可修改)
  • 事件TASK,默认看门狗不勾选(可修改)