对象:“Task”
“优先权” |
可能的值:0.31,其中 0 为最高优先级 |
“工作组” |
可分配给多核中特定处理器内核的任务组 示例: IEC 任务说明:任务组显示在设备树中任务后面的括号中。 |
在 Linux 中使用运行时系统时,任务组和优先级之间存在固定的依赖关系。更多信息,请参见 ⮫ “Linux 系统上的任务优先级映射”
“循环类型” |
任务处理循环进行。 |
输入字段间隔 |
需要 重新启动任务的时间跨度(任务周期时间)
请注意:任务周期与所需时间的偏差会在运行时以周期性抖动的形式显示在看门狗选项卡上。 |
时间间隔的时间单位 |
如果在 "时间间隔 "输入框中只指定了数字而没有时间定义,则此处选择的单位将决定时间维度。 例如:毫秒 请注意:以 µs 为单位的任务周期时间总是以数字显示。 |
“活动类型” |
在事件变量上升沿时,任务处理开始受事件控制。 |
输入字段“事件” |
全局变量(布尔类型) 当变量值从 0 切换到 1 时,任务立即开始。 |
“外部类型” |
在事件变量上升沿时,任务处理开始受事件控制。 |
列表框“事件” |
与目标系统相关的事件列表(布尔类型) 请注意:目标系统决定支持哪些事件并在列表框中提供。 提示不能与系统事件混淆 |
“间隔” |
以 TIME 格式或带有时间单位的数字来定义时间:仅在事件需要时间定义时可用 |
“Freewheeling” |
在程序开始和一个完整程序结束时,任务处理以连续循环的方式自动开始 请注意:未定义周期时间。 |
“现状” |
由事件变量触发的任务处理开始进入状态 |
输入字段“事件” |
全局变量(布尔类型) 当变量的状态为 "true "时,任务启动。 |




注意

对于现场总线而言,固定的周期矩阵是确保确定行为的必要条件。因此,不应将 TypeFreewheeling 用于总线周期任务。




注意

请注意处理类型 "状态 "和 "事件 "之间的区别。如果给定事件结果为 TRUE,则满足状态类型任务的启动条件。相反,事件类型任务的启动需要将事件从 "FALSE "切换为 "TRUE"。如果任务调度器的采样率过低,那么事件的上升沿可能不会被注意到。




注意

在设置任务周期时间时,必须确定当前使用的总线系统。例如,CAN 总线系统中的任务周期时间必须与当前设置的波特率和总线中使用的帧数相匹配。此外,为心跳、节点保护和同步设置的时间应始终是任务周期时间的倍数。否则,就会丢失 CAN 帧。
定义任务的时间监控。如果目标系统支持高级看门狗配置,则可在设备描述中预定义以下设置。
默认看门狗设置取决于设备。 |
|
“启用” |
看门狗处于激活状态。 如果任务超过了看门狗当前设置的“时间” ,则任务将以错误状态(异常)停止。发生错误的应用程序及其子应用程序也会停止运行。这样,受影响应用程序的所有任务也会停止。然后,当前定义的“Sensitivity” 也会被考虑在内。如果在 PLC 的“PLC 设置” 中激活选项“Update I/Os”,则CODESYS 会将输出重置为定义的默认值。 可能的情况
|
“时间(例如 t#200ms)” |
看门狗时间 定义任务的看门狗(与“灵敏度” 一起);说明与“启用” 相同。 根据目标系统的不同,监控时间跨度尽可能以任务间隔的百分比来表示。在这种情况下,单位的列表框将被禁用,并显示“%” 。 |
“敏感性” |
数量 定义任务的看门狗(与看门狗一起);说明同“启用” 。 |
使用CmpIecTask.library
库中的功能,可以停用特定 PLC 周期的看门狗。这对于因初始化而需要更多时间的循环非常有用。
示例
停用/重启看门狗:
hIecTask := RTS_IEC_HANDLE //Declaration of the variable hIecTask hIecTask := IecTaskGetCurrent(0); IecTaskDisableWatchdog(hIecTask); // Watchdog disabled ... IecTaskEnableWatchdog(hIecTask); Watchdog enabled
任务调用的“POU”s 列表 调用顺序与列表中的 POU 顺序一致(从上到下)。 |
|
“添加通话” |
定义新的程序调用 |
“开放式 POU” |
打开选定的 POU |
“向上移动” “向下移动” |
更改调用顺序 |
当 IEC 任务的执行时间超过看门狗时间时,就会触发 IEC 任务的正常看门狗。当任务根本没有启动时,就会触发 "遗漏周期 "看门狗。当任务在 < 时间 * 灵敏度> 或 <2 * 间隔时间> 的最大值范围内未执行任何循环时,就会出现这种情况。原因可能是被其他任务挤占,或者调度程序出现故障,无法再执行该任务。