有关Codesys中优先级使用的注意事项 点击:2284 | 回复:3



ye_w

    
  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2013-02-08 21:15:33
楼主

在Codesys编程中,经常会使用多任务,每个任务的优先级不一样。

优先权说明
?  任务的优先级通过1-31 的数字体现,1 为最高优先级,  31 为最低优先级。
?  1 – 9: 用于高优先级任务,这些任务一般由外部事件触发,且要求其执行时间较短。
?  10 – 31:  常规任务。

 

这里需要注意的是1~9的任务,可能是系统级的,应用程序的任务优先级请轻易不要使用,否则一旦系统有问题,就会造成应用程序调用出错,严重者应用程序不仅出错,同时当前任务超时等。

 

应用程序的任务优先级最高就是10。

 

 

 

记得原来某个项目中将某个CAN调用任务的优先级设置为1,后来就偶发性造成了CAN Overrun。经过多次测试分析后,可能就是这个优先级设置的问题,将优先级设置在11之后,问题就再也没有重现过。

 

这样的结论希望对大家有用。




王者-曹建军

  • 精华:2帖
  • 求助:0帖
  • 帖子:818帖 | 2407回
  • 年度积分:0
  • 历史总积分:16025
  • 注册:2011年12月25日
发表于:2013-02-08 21:17:21
1楼
不太明白呢!            路过了!

liyi100

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:63
  • 注册:2012年7月18日
发表于:2018-05-25 15:19:21
2楼

Codesys任务优先级是0到31,不是1到31。0是最高优先级,最先执行。

0通过都是总线任务的优先级,就是即便有其他任务超时也影响总线的IO刷新。

如果任务优先级一样时,又是如何执行呢?



liber798

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 113回
  • 年度积分:0
  • 历史总积分:97
  • 注册:2013年6月06日
发表于:2018-08-13 15:40:51
3楼

从高到底,平级从小数字到大数字。


热门招聘
相关主题

官方公众号

智造工程师