如果在任务配置⮫ “任务配置” 中创建了新项目或插入了新任务,则创建任务时的 "默认任务设置 "为优先级 = 15 和周期时间 = 10 毫秒。看门狗已激活,设置为 20 ms,灵敏度 = 1。

看门狗的处理也取决于 CPU 参数 "错过周期行为 "的设置:

如果任务的处理时间长于周期时间,该参数将配置实时任务的行为。
"下一个 "表示跳过错过的周期,在下一个周期准时开始任务。这可能会导致任务被跳过,但如果最高优先级的任务没有被跳过(= 默认值),至少它总是会按时启动。
"ASAP "的意思是--在可能的情况下立即开始执行任务。
该参数适用于所有实时任务(优先级0 ...15) 的 PLC 应用程序。
例 1:默认任务设置,t任务 - 任务处理时间(单位:毫秒]
t任务 |
Par. |
![]() |
6 |
下一页 |
|
12 |
ASAP |
|
12 |
下一页 |
如果任务的处理时间长于周期时间(情况 2 和 3),也不会出现看门狗,因为处理时间短于看门狗时间。
例 2:默认任务设置,t任务 - 任务处理时间 24 毫秒,SWD - 看门狗的灵敏度
SWD |
Par. |
![]() |
1 |
下一页 |
|
3 |
ASAP |
|
3 |
下一页 |
由于任务的处理时间长于看门狗时间,因此 3 种情况下都会出现看门狗。根据灵敏度的设置,看门狗在 1 或 3 个周期后出现。
除了任务看门狗,还有所谓的 "省略周期看门狗"(OMCW)。只有为任务配置了看门狗,省略周期看门狗才会激活。
正常 "看门狗只有在任务处理时间超过设定的看门狗值时才会触发。
另一方面,省略的循环看门狗会检查完全 "失败 "的循环。例如,如果调度程序出了问题,任务不再执行其周期,那么 "正常 "看门狗就不会被触发。因此,运行时间会额外检查任务是否已在双周期时间或双看门狗时间内执行(两者中较大者有效)。如果没有,则会触发省略周期看门狗。
例 3:默认任务设置,t任务 - 以毫秒为单位的任务处理时间,C丢失 - 丢失的周期
t任务 |
C丢失 |
![]() |
6 |
3 ...6 |
|
12 |
3 ...6 |
|
¥ |
2ff |
省略的周期看门狗发生在双倍看门狗时间(2 x 20 ms = 40 ms)之后。
例 4:两项任务的设置如下
任务 |
优先权 |
周期时间 [ms] |
看门狗时间 [ms] |
敏感性 |
参数 |
任务处理时间 [ms] |
---|---|---|---|---|---|---|
1 |
10 |
10 |
20 |
1 |
下一页 |
6 |
2 |
15 |
50 |
50 |
1 |
30 |
任务 |
![]() |
1 |
|
2 |
由于任务 2 无法在规定的任务周期内运行,因此触发了任务 2 的看门狗。
例 5:两个任务的设置如下
任务 |
优先权 |
周期时间 [ms] |
看门狗时间 [ms] |
敏感性 |
参数 |
任务处理时间 [ms] |
---|---|---|---|---|---|---|
1 |
10 |
10 |
20 |
1 |
ASAP |
12 |
2 |
15 |
30 |
60 |
1 |
6 |
任务 |
![]() |
1 |
|
2 |
由于任务 2 无法在规定的任务周期内启动,因此触发了任务 2 的看门狗。
例 6:两个任务的设置如下
任务 |
优先权 |
周期时间 [ms] |
看门狗时间 [ms] |
敏感性 |
参数 |
任务处理时间 [ms] |
---|---|---|---|---|---|---|
1 |
10 |
10 |
20 |
1 |
下一页 |
12 |
2 |
15 |
30 |
60 |
1 |
6 |
任务 |
![]() |
1 |
|
2 |
没有触发看门狗,但任务 1 以 20 毫秒周期运行,而不是配置的 10 毫秒周期。任务 2 每 20 毫秒或 40 毫秒交替运行一次。