4.6 添加任务
- 任务: 任务,执行控制元素,其提供周期性或触发性的执行一组PRG程序
4.6.1 概述
- 在IEC61131-3标准中,将任务定义为一个执行控制元素,它既能周期性调用,也能在一个指定的事件触发性调用。在一个任务配置中可以建立多个任务,而一个任务中,可以调用多个主程序(PRG),每个任务最大调用PRG数为99
4.6.1.1 任务规定--任务最大数
- 天行PLC(T3或T4)规定最大总任务数25,各类任务分别规定如下:
-
定周期循环任务的最大数为9
-
连续循环任务的最大数为1
- 默认添加
-
事件触发任务的最大数为15
- 启动事件的最大数为1
- 时间事件(指定时间、重复时间;各自6次)
- 程序事件
- 编程错误的最大数为1
- 任务执行超时的最大数为1
4.6.1.2 任务配置
- 在任务配置中,用名称、优先级和任务的属性来定义它
- 同一PLC下,所有任务名称不可以重名。否则编译报错
4.6.1.3 任务优先级
- 具体内容可参考编程指南-->程序结构-->任务-->任务优先级
跳转链接--> 任务
- 不同的事件触发任务允许设置相同的优先级
- 具有较高优先级的任务或系统活动可中断优先级较低的任务或系统活动。当一个任务被调度时,它可以中断具有较低优先级的任务的执行,即较低优先级的任务的执行被挂起,直到较高优先级的任务执行完毕时才执行它。因此,具有较高优先级的任务或系统活动会延长被中断的任务或系统活动的运行时间
- 一个任务不能中断具有相同甚至更高优先级的另一个任务的执行,优先级高的任务可以中断优先级低的任务执行
- 如果优先级低的任务触发时,有优先级高的任务正在执行,任务按照优先级进入任务待执行排队序列,相同优先级的任务,根据触发时间先后进入排队序列
天行PLC规定:
- 连续循环任务优先级必须低于定周期循环任务
4.6.1.4 名称规范
| 序号 | 示例 | 备注 |
|---|---|---|
| 1 | __a | 不能使用连续的下划线 |
| 2 | (空) | 名称不能为空 |
| 3 | a_ | 不能以下划线结尾 |
| 4 | 1a | 不能以数字开头 |
| 5 | 你 | 不支持中文 |
| 6 | ~`!@#$%^&*()-+=[]:";'< >,.?/ | 不支持英文特殊字符(特殊字符请分别验证) |
| 7 | ·~!@#¥%……&*()——+-=【】、:“;’《》?,。/ | 不支持中文特殊字符 |
| 8 | 不支持输入空格 |
4.6.1.5 调度顺序
PLC启动时,用户任务的激活及调度顺序如下:
-
程序错误任务,超时任务,启动任务激活
-
其他按照优先级排序
-
同优先级下,先事件任务,再定周期循环任务,定周期循环任务按照执行周期短的先启动
-
同优先级下,不同事件任务,按照事件触发时间的先后排序
4.6.2 定周期循环任务
操作步骤:
用户在项目树“PLC软件”,右键“任务”下可以选择“添加任务”,然后弹出窗可以选择连续循环任务、定周期循环任务、事件触发任务三种类型。并填写相关信息,具体操作可参考各小节,点击确定即可
- 注:可选择“打开此任务”(添加后直接打开该任务)
- 选择任务类型之后可跳转到任务设置
- 定周期任务的任务名建议新建的时候任务名为Cycle_1...(名字可以修改)
- 定周期循环任务是系统每隔一段任务设定的cycle时间就触发一次任务调用,如果有多个定周期循环任务,系统根据优先级高低依次调用
4.6.2.1 优先级设定
- 定周期循环任务,第一个建立的定周期循环任务的默认优先级是 11
- 范围:5-25(数字越小,优先级越高)
- 具体内容可参考任务优先级
4.6.2.2 间隔(循环时间)
- 定周期循环任务,第一个建立的定周期循环任务的默认cycle时间20ms
- 定周期循环任务,可设定的cycle时间范围:1ms - 60000ms(最大周期1分钟)
4.6.2.3 看门狗设定
勾选“看门狗”,可设定看门狗的定时时间
- 默认看门狗使能不选(可修改),默认超时时间是2倍的定周期时间, 用户可以修改(但是不能小于周期设定时间, 最大设定时间:60000ms)
- 具体内容可参考任务优先级
- 注意:如果 CPU 丢弃了定周期循环任务的启动事件,报告事件溢出到诊断缓冲区中
4.6.3 连续循环任务
-
连续循序任务,默认新建,不能删除。(有且只有一个)
-
连续循环任务的任务名建议新建的时候任务名为MainTask(名字可以修改)
-
天行PLC(T3),只能设置一个连续循环任务。“任务配置”中优先级系统默认值30
-
默认看门狗使能允许(可修改),默认200ms, 用户可以修改。最小设定时间10ms,最大设定时间:60000ms
4.6.4 事件触发任务
- 概念:由事件触发的非循环执行任务都可以归类到事件触发任务
事件触发类型分类
此任务类型主要分为三大类:启动任务、时间事件任务(重复时间、指定时间)、程序任务(超时任务、程序错误任务-->自动生成对应PU)
- 事件触发任务触发条件满足,触发事件任务,根据任务优先级排序执行
- 默认看门狗使能不选(可修改),默认超时时间是200ms, 用户可以修改(最小设定时间10ms,最大设定时间:60000ms)(超时任务不能设置看门狗)
4.6.4.1 启动任务
-
启动任务的任务名建议新建的时候任务名为Startup(可以修改)
-
用户配置了 PLC 启动事件触发任务后,每次PLC从STOP到START, 完成启动自检
-
启动任务,只可以被用户程序错误任务,和执行超时任务中断
(a). 优先级设定
- 此类型优先级别固定
(b). 看门狗设定
勾选“看门狗”,可设定看门狗的定时时间
- 具体内容可参考任务
4.6.4.2 时间事件任务
- 指定 时间(一次):执行一次的时间事件任务的任务名建议新建的时候任务名为ExecutionOnetime_1~ExecutionOnetime_6(可以修改)
- 重复时间:间隔执行的时间事件任务的任务名建议新建的时候任务名为Intervals_1~Intervals_6(可以修改)
(a). 时间事件任务可能的运行情况
- 指定时间(一次)
- 在某个预设时间(带日时钟的日期)只运行一次:设定激活的时间(年月日及时分秒)
- 重复时间
- 在预设的起始时间(带日时钟的日期)周期性运行,可设置以下时间间隔(重复时间):
- 每小时、每天、每周、每月(预设的起始时间日期只能是1-28日)、每月底(只带日时,不带日期)、每年
(b). 优先级设定
- 范围:5-29;数字越小,优先级越高
具体内容可参考任务优先级
(c). 看门狗设定
勾选“看门狗”,可设定看门狗的定时时间
- 具体内容可参考任务
4.6.4.3 程序任务
- 执行超时任务:任务名建议新建的时候任务名为ExecutionTimeout可以修改
- 程序错误任务:任务名建议新建的时候任务名为ProgramError可以修改,新建的时候会自动添加默认命名空间ProgramError这个PRG可以修改
(a). 执行任务超时
触发条件
- 在看门狗时间设定使能允许的情况下,任务执行时间超过看门狗设定时间
任务执行超时任务, 如果自身执行超过看门狗时间,CPU直接STOP
优先级设定
- 范围:5-29;数字越小,优先级越高
具体内容可参考任务优先级
(b). 程序错误任务(编程错误)
若需要创建编程错误任务对应的PRG(一般为默认添加 )
在编程错误页面可以通过“添加移除调用”旁边的快捷键来一键添加
触发条件
- 通过变量下标访问ARRAY时,下标值超出有效的ARRAY限值
优先级设定
-
范围:5-29;数字越小,优先级越高
具体内容可参考任务优先级
看门狗设定
勾选“看门狗”,可设定看门狗的定时时间
- 具体内容可参考任务
(c). 程序错误系统处理方式
| 序号 | 程序错误 | 处理方式 |
|---|---|---|
| 1 | 数字运算的结果超出了其数据类型值的范围 | 整数结果直接溢出; 浮点数结果得到正无穷大或负无穷大 不会触发调用程序错误任务。不会进 诊断缓冲区 |
| 2 | 试图用零做除数 | 除数使用替换值“1”,继续执行 报错进诊断缓冲区;不会触发调用程序错误任务 |
| 3 | 通过变量下标访问 ARRAY 时,下标值超出有效的 ARRAY 限值 | 报错进诊断缓冲区;触发调用程序错误任务 用户没有配置程序错误任务, CPU STOP 用户配置了程序错误任务, CPU NO STOP,相关变量访问结果为随机值 |
| 4 | 调用嵌套超过16层 | 报错进诊断缓冲区;不会触发调用程序错误任务 CPU STOP |
- 备注:实数正无穷大,负无穷大
4.6.5 任务设置
4.6.5.1 添加调用
操作步骤:
打开任务之后,可选择“添加调用按钮”来添加程序单元,进入添加页面之后,在添加列表勾选添加的程序单元,点击“确定”即可添加成功
- 在添加调用的界面勾选“显示命名空间前缀”按钮,即可在添加任务界面显示命名空间
4.6.5.2 移除调用
- 选中想要移除的程序单元的所在行,点击“移除调用按钮”,即可移除
4.6.5.3 显示命名空间
- 若想要在主页面上面的PRG名称上面显示命名空间,在任务界面点击“ns”按钮,即可成功显示命名空间
4.6.5.4 上下移
- 在任务界面中,选中整行,点击“向上箭头或者向下箭头”,可以实现调用位置上下移动
4.6.6 添加任务操作视频
- 以定周期循环任务为例
