任务类型

简介

以下部分介绍可用于您的程序的各种任务类型,并介绍了任务类型的特性。

循环任务

使用循环任务“配置”子选项卡的“类型”部分中的“间隔”设置,为该任务指定固定循环时间。每个循环任务类型的执行方式如下:

1.

读取输入:将物理输入状态写入 %I 输入内存变量,并执行其他系统操作。

2.

任务处理:处理任务中定义的用户代码(POU 等)。在此操作期间,%Q 输出内存变量会根据应用程序指令进行更新,但尚未写入物理输出。

3.

写入输出:%Q 输出内存变量使用已定义的输出强制进行修改;但是,物理输出的写入取决于输出类型和所使用的指令。

有关定义总线循环任务有关详细信息,请参阅“EcoStruxure Machine Expert 编程指南”和 PLC 设置

4.

剩余间隔时间:控制器固件执行系统处理和其他较低优先级的任务。

注: 如果为某个循环任务定义的周期过短,则该任务会在写入输出后立即重复,而不会执行其他较低优先级的任务或任何系统处理。这将会影响所有任务的执行并导致控制器超过系统警戒时钟限制,从而导致系统警戒时钟异常。
注: 将任务循环时间设为小于 3 毫秒的值时,在试运行期间,应首先通过“任务监控”屏幕监控实际的任务持续时间,以确保它一直低于配置的任务循环时间。如果超出配置的时间,则可能无法遵守任务循环,从而导致任务循环警戒时钟超时,控制器转换到 HALT 状态。为避免此条件到达特定的程度,将任务循环时间设为小于 3 毫秒的值时,对于任意给定的循环强加 +1 毫秒的实时限制,这样,计算的循环时间会稍微超出配置的循环时间。
注: 使用 GetCurrentTaskCycleSetCurrentTaskCycle 函数通过应用程序获取和设置循环任务间隔。(有关详细信息,请参阅“EcoStruxure Machine Expert- 管理循环任务间隔 - Toolbox_Advance 库指南”。)

自由运行任务

自由运行任务没有固定持续时间。在自由运行模式下,每个任务扫描都在前一个扫描完成时以及短时间系统处理后开始。每个自由运行任务类型的执行方式如下:

1.

读取输入:将物理输入状态写入 %I 输入内存变量,并执行其他系统操作。

2.

任务处理:处理任务中定义的用户代码(POU 等)。在此操作期间,%Q 输出内存变量会根据应用程序指令进行更新,但尚未写入物理输出。

3.

写入输出:%Q 输出内存变量使用已定义的输出强制进行修改;但是,物理输出的写入取决于输出类型和所使用的指令。

有关定义总线循环任务有关详细信息,请参阅“EcoStruxure Machine Expert 编程指南”和 PLC 设置

4.

系统处理:控制器固件执行系统处理和其他较低优先级的任务(例如:HTTP 管理、以太网管理、参数管理)。

注: 如果要定义任务间隔,请参阅循环任务

事件任务

此类型的任务由事件驱动,并由程序变量启动。除非有更高优先级的任务先于事件任务执行,否则事件任务在与触发事件关联的布尔变量的上升沿启动。在此情况下,事件任务会根据任务优先级分配的指示启动。

例如,如果您已经定义一个称为 my_Var 的变量并且要将其分配给某个事件,请执行以下步骤:

步骤

操作

1

双击应用程序树中的任务

2

配置选项卡的类型列表中选择事件

3

单击事件字段右侧的输入助手按钮

结果输入助手窗口随即显示。

4

输入助手对话框的树中导航,查找并分配 my_Var 变量。

注: 当以过高的频率触发事件任务时,控制器将进入 HALT 状态(异常)。事件的最大可接受速率是每毫秒 6 个事件。如果以高于此的频率触发事件任务,应用程序日志页面将记录消息 'ISR Count Exceeded'。

外部事件任务

此类型的任务由事件驱动,并通过检测到硬件或硬件相关的功能事件而启动。除非有更高优先级的任务先于外部事件任务执行,否则它会在事件发生时启动。在此情况下,外部事件任务会根据任务优先级分配的指示启动。

外部事件任务与 CAN 同步事件相关联。要将 CAN_1_SYNC 事件与某个外部事件任务关联,请从配置选项卡的外部事件下拉列表中选择事件任务。

注: CAN 同步是特定事件对象,取决于 CANopen 管理器配置。