在Codesys编程中,经常会使用多任务,每个任务的优先级不一样。
优先权说明
? 任务的优先级通过1-31 的数字体现,1 为最高优先级, 31 为最低优先级。
? 1 – 9: 用于高优先级任务,这些任务一般由外部事件触发,且要求其执行时间较短。
? 10 – 31: 常规任务。
这里需要注意的是1~9的任务,可能是系统级的,应用程序的任务优先级请轻易不要使用,否则一旦系统有问题,就会造成应用程序调用出错,严重者应用程序不仅出错,同时当前任务超时等。
应用程序的任务优先级最高就是10。
记得原来某个项目中将某个CAN调用任务的优先级设置为1,后来就偶发性造成了CAN Overrun。经过多次测试分析后,可能就是这个优先级设置的问题,将优先级设置在11之后,问题就再也没有重现过。
这样的结论希望对大家有用。