以下部分介绍可用于您的程序的各种任务类型,并介绍了任务类型的特性。
使用循环任务“配置”子选项卡的“类型”部分中的“间隔”设置向该任务分配固定循环时间。每个循环任务类型的执行方式如下:
1. 读取输入:将物理输入状态写入 %I 输入存储器变量,并执行其他系统操作。
2. 任务处理:处理任务中定义的用户代码(POU 等)。在此操作期间,%Q 输出存储器变量会根据应用程序指令进行更新,但尚未写入物理输出。
3. 写入输出:%Q 输出存储器变量使用已定义的任何输出强制进行修改;但是,物理输出的写入取决于输出类型和所用指令。
有关定义总线循环任务的有关详细信息,请参阅 EcoStruxure Machine Expert 编程指南和 Modicon M251 Logic Controller 设置。
4. 剩余间隔时间:控制器固件执行系统处理和任何其他较低优先级的任务。
注意: 如果为某个循环任务定义的周期过短,则该任务会在写入输出后立即重复,而不会执行其他较低优先级的任务或任何系统处理。这将会影响所有任务的执行并导致控制器超过系统看门狗限制,从而导致系统看门狗例外。
注意: 将任务循环时间设为小于 3 毫秒的值时,在试运行期间,应首先通过“任务监控”屏幕监控实际的任务持续时间,以确保它一直低于配置的任务循环时间。如果超出配置的时间,则可能无法遵守任务循环,从而导致任务循环看门狗超时,控制器转换到 HALT 状态。为避免此条件到达特定的程度,将任务循环时间设为小于 3 毫秒的值时,对于任意给定的循环强加 +1 毫秒的实时限制,这样,计算的循环时间会稍微超出配置的循环时间。
注意: 使用 GetCurrentTaskCycle 和 SetCurrentTaskCycle 功能通过应用程序获取和设置循环任务的间隔。(有关详细信息,请参阅《Toolbox Advance 库指南》。)
自由运行任务没有固定持续时间。在自由运行模式下,每个任务扫描都在前一个扫描完成时以及短时间系统处理后开始。每个自由运行任务类型的执行方式如下:
1. 读取输入:将物理输入状态写入 %I 输入存储器变量,并执行其他系统操作。
2. 任务处理:处理任务中定义的用户代码(POU 等)。在此操作期间,%Q 输出存储器变量会根据应用程序指令进行更新,但尚未写入物理输出。
3. 写入输出:%Q 输出存储器变量使用已定义的任何输出强制进行修改;但是,物理输出的写入取决于输出类型和所用指令。
有关定义总线循环任务的有关详细信息,请参阅 EcoStruxure Machine Expert 编程指南和 Modicon M251 Logic Controller 设置。
4. 系统处理:控制器固件执行系统处理和任何其他较低优先级的任务(例如:HTTP 管理、以太网管理、参数管理)。
注意: 如果要定义任务间隔,请参阅循环任务。
此类型的任务由事件驱动,并由程序变量启动。除非有更高优先级的任务先于事件任务执行,否则事件任务在与触发事件关联的布尔变量的上升沿启动。在此情况下,事件任务会根据任务优先级分配的指示启动。
步骤 |
操作 |
---|---|
1 |
双击应用程序树中的任务。 |
2 |
从配置选项卡的类型列表中选择事件。 |
3 |
单击事件字段右侧的输入助手按钮 结果:显示输入助手窗口。 |
4 |
在输入助手对话框的树中导航,查找并分配 my_Var 变量。 |
注意: 当以过高的频率触发事件任务时,控制器将进入 HALT 状态(异常)。事件的最大可接受速率是每毫秒 6 个事件。如果以高于此的频率触发事件任务,应用程序日志页面将记录消息 'ISR Count Exceeded'。
此类型的任务由事件驱动,并通过检测到硬件或硬件相关的功能事件而启动。除非有更高优先级的任务先于外部事件任务执行,否则它会在事件发生时启动。在此情况下,外部事件任务会根据任务优先级分配的指示启动。
外部事件任务与 CAN 同步事件相关联。要将 CAN_1_SYNC 事件与某个外部事件任务关联,请从配置选项卡的外部事件下拉列表中选择事件任务。
注意: CAN 同步是特定事件对象,取决于 CANopen 管理器配置。