直接跳到内容

任务组态

AnyControl支持多任务组态,用户可以在同一时间内运行多个应用程序,每个正在执行的应用程序被称为一个任务。

用户可使用名字、任务类型来创建一个任务,紧接着可以在创建的任务配置页面进一步配置任务的类型、优先级、看门狗等参数。

任务类型决定了任务的触发条件,例如周期任务按照指定的周期运行,自由任务连续运行(间隔配置的休眠时间),事件任务在一个变量的上升沿或下降沿时执行一次,状态任务在一个变量为高电平时持续运行(间隔配置的休眠时间)。

每个任务下可挂载多个程序组织单元(POU)。

任务执行顺序:

1、如果满足任务执行条件,任务被执行。

2、如果几个任务同时满足任务执行条件,那么先执行高优先级的任务(编号越小优先级越高)。

3、如果多个具有相同优先级的任务同时满足执行条件,那么这些任务被轮流执行。

任务类型

支持的任务类型有以下几种:

周期任务img:按照设定周期循环运行。

img

参数说明

参数说明
任务周期按指定周期参与系统内的调度运行。注:如果设置任务周期小于调度器精度设定值,则最终任务运行周期以调度器周期为准。调度器精度设定请参考“任务配置-配置/参数说明”
优先级数字越低,任务调度优先级越高。优先级高的任务可以优先得到调度,也可以中断正在执行的低优先级任。
看门狗使能看门狗使能后,如果任务的执行时间超过看门狗设置的时间,则会自动停止该任务的执行。
时间看门狗起效的最大任务执行时间。
栈大小创建任务时,开辟给任务的栈空间。工程编译提示某任务“栈存在溢出风险”时,可以按需调整栈空间大小。注意:在调整栈大小的时候,必须考虑目标机的要求。

自由任务img:由系统调度持续自由运行,但每次运行会休眠设定的时间再次持续自由运行。

img

参数说明

参数说明
休眠间隔例如设定此值为50ms,则任务休眠50ms后,继续参与系统的调度运行。
优先级数字越低,务调度优先级越高。优先级高的任务可以优先得到调度,也可以中断正在执行的低优先级任。
看门狗使能看门狗使能后,如果任务的执行时间超过看门狗设置的时间,则会自动停止该任务的执行。
时间看门狗起效的最大任务执行时间。
栈大小创建任务时,开辟给任务的栈空间。工程编译提示某任务“栈存在溢出风险”时,可以按需调整栈空间大小。注意:在调整栈大小的时候,必须考虑目标机的要求。

事件任务img:由关联变量控制任务的运行,当关联变量产生一个上升沿/下降沿时,任务运行一次后停止运行。

img

参数说明

参数说明
触发类型上升沿:关联变量上升沿时,任务运行一次后停止。下降沿:关联变量下降沿时,任务运行一次后停止。
关联变量可关联程序逻辑中的任何BOOL类型变量(如果关联非BOOL类型变量,编译报错“无效的任务事件”)。
优先级数字越低,务调度优先级越高。优先级高的任务可以优先得到调度,也可以中断正在执行的低优先级任。
看门狗使能看门狗使能后,如果任务的执行时间超过看门狗设置的时间,则会自动停止该任务的执行。
时间看门狗起效的最大任务执行时间。
栈大小创建任务时,开辟给任务的栈空间。工程编译提示某任务“栈存在溢出风险”时,可以按需调整栈空间大小。注意:在调整栈大小的时候,必须考虑目标机的要求。

状态任务img:由关联变量的电平高低控制任务的运行,每次运行结束后会休眠设定时间。

img

参数说明

参数说明
状态类型高电平:关联变量高电平时,任务持续运行。低电平时停止运行。低电平:关联变量低电平时,任务持续运行。高电平时停止运行。
关联变量可关联程序逻辑中的任何BOOL类型变量(如果关联非BOOL类型变量,编译报错“无效的任务事件”)。
休眠间隔例如设定此值为50ms,则任务休眠50ms后,继续参与系统的调度运行。
优先级数字越低,务调度优先级越高。优先级高的任务可以优先得到调度,也可以中断正在执行的低优先级任。
看门狗使能看门狗使能后,如果任务的执行时间超过看门狗设置的时间,则会自动停止该任务的执行。
时间看门狗起效的最大任务执行时间。
栈大小创建任务时,开辟给任务的栈空间。工程编译提示某任务“栈存在溢出风险”时,可以按需调整栈空间大小。注意:在调整栈大小的时候,必须考虑目标机的要求。

任务创建

创建过程

通过工程管理树的“任务配置”节点的右键菜单“新建任务”,创建新的任务。

img img

在对话框中输入任务名称,选择需要的任务类型后点击确定按钮,对应的任务节点会显示在“任务配置”下。

img

参数配置

双击testNewTask节点,会打开任务参数配置的页面,您可以根据需要在此页面完成参数配置或修改。

img

参数说明参考任务类型

任务配置

双击工程管理树“任务配置”节点,会打开任务配置界面。

img

配置

img

参数说明

参数说明
调度信息调度器精度操作系统轮询所有任务的时间间隔,默认1000uS。注:如果需要更快的控制逻辑,可以根据要求设置更小的精度值。 当然该值是否最终有效,还受限于控制器系统。
任务名称IEC-Tasks用户组态的任务。
调度任务系统建立的调度任务,负责调度所有用户组态任务。
通讯任务系统建立的通讯任务,负责AnyControl与控制器的所有通讯事件(例如:在线监视、下装工程、上传文件等)。
处理器核固定到单核操作系统自动分配该类型的任务到同一CPU核(具体CPU核号由系统自动设定)。
自由浮动操作系统自由分配该类型的任务到任一CPU核(调度期间该类型任务也可能随时变更CPU核)。
0~31用户指定该任务到固定的CPU核(如果指定的CPU核号超出CPU实际核号,将由操作系统自动分配核号,并在设备日志记录该信息。)
优先级显示用户任务优先级,不可修改。(如需修改,可双击要修改的任务节点,在任务配置页面进行修改。)
img如果处理器核比较多,建议IEC-Tasks任务(所有用户任务)、调度器任务、通讯任务均分开核绑定,这样可以有效利用CPU资源,并减少任务间影响。

监视

img

切换到监视页面,您可以看到任务的执行状态。在工程登入后,就会从目标机中读到相应的数据。

img

上图是登入后的各个任务实时状态的情况。

  • 重置状态计数:重新统计所有监视数据。
  • 状态:有运行、停止、调试等状态。运行的任务可以被正常调度,停止的任务不会参与调度,调试的任务表示任务执行中断等待用户下一个调式动作。
  • IEC运算执行计数:任务实际执行的次数。
  • 任务调度计数:任务调度的次数。
  • 上周期执行时间:最近一次任务执行的时间。执行时间不足1us的,按1us计。
  • 平均执行时间:任务的平均执行时间。
  • 最大执行时间:任务的最大执行时间。
  • 最小执行时间:任务的最小执行时间。
  • 抖动:抖动只对周期任务有意义,代表临近两次任务调度的间隔与周期的偏差。如果任务不足两次执行,该值没有参考价值
  • 最大抖动:任务执行以来最大的抖动值。
  • 最小抖动:任务执行以来最小的抖动值。
  • 处理器核:指示任务运行于哪个核。
img在工程下装、复位、冷复位或者任务状态由停止变为运行时,控制器会重新记录任务的状态。任务如果处于调试状态,会引起任务执行时间和抖动时间变长,也会引起执行计数和调度计数产生偏差。
任务组态已经加载完毕