首页 理论教育 任务执行优先级的优化

任务执行优先级的优化

时间:2023-07-02 理论教育 版权反馈
【摘要】:如果两个任务的程序在某个时刻同时执行,那么任务的优先级决定了哪个任务先执行,任务的优先级不能由用户改变。图10-1 执行等级及其包含的任务类型2)所有的UserInterruptTask优先级是一样的,按照触发的顺序一一执行。对于任务执行过程中常见的几种情况,我们结合图10-3进行分析,图中:IPO任务中执行的程序比伺服周期时间长,此时,IPO任务被中断然后执行DP通信和伺服任务,随后IPO任务继续执行。IPO任务结束后,执行SystemInterruptTask,然后执行低优先级的TimerInterruptTask。

任务执行优先级的优化

任务执行等级定义了执行系统中程序执行的时间顺序,每个执行等级包含一个或几个任务,如图10-1所示。

执行等级包括:

1)同步执行等级(Synchronous execution levels):与伺服控制或插补时钟周期同步。

2)时间驱动的执行等级(Time-driven execution levels):按照用户指定的时间周期触发任务执行。

3)事件驱动的执行等级(Event-driven execution levels):事件触发任务,包括系统中断任务和用户中断任务。

4)自由运行执行等级(Free-running execution levels):自由循环执行的任务,包括Mo-tionTask和BackgroundTask,每个MotionTask只执行一次;BackgroundTask循环执行,执行的时间由Task中的程序长度决定。

5)系统启动和停止任务在特定的时候执行,其中StartupTask在CPU从STOP状态切换到RUN状态时执行;ShutdownTask在CPU从RUN状态切换到STOP状态时执行。

除了用户级的任务之外,在各执行等级中还包含系统任务,由系统自动执行,用户无法分配程序到系统任务也不能改变其执行顺序。

如果两个任务的程序在某个时刻同时执行,那么任务的优先级决定了哪个任务先执行,任务的优先级不能由用户改变。

注意事项:

1)对于TimerInterruptTasks:设定的时间越短优先级越高。

978-7-111-43580-8-Chapter10-1.jpg

图10-1 执行等级及其包含的任务类型

2)所有的UserInterruptTask优先级是一样的,按照触发的顺序一一执行。

3)Wait for condition命令可以暂时提高MotionTask的优先级,在IPO周期检查条件是否满足。

图10-2所示为SIMOTION中各种任务的执行顺序,系统时钟设置为DP:Servo:IPO的比例是1∶1∶1。下面依次介绍任务执行过程中的各个节点:

①DP/PN-ASIC<->Bus,通信芯片和PROFIBUS或PROFINET IO进行数据交换。

②DP/PN-ASIC->log.addr,IO输入数据从通信芯片加载。(www.xing528.com)

③System servo,在伺服时钟周期内进行系统计算(位置控制器等),如果在此周期内程序不能计算完会造成溢出,进入STOP模式,禁止启动,并在诊断缓冲区中记录。只有在重新上电后或下载后才能再次启动。

④Log.addr.->DP/PN-ASIC,I/O输出写入到通信芯片

978-7-111-43580-8-Chapter10-2.jpg

图10-2 任务的执行顺序

⑤UserInterrupt-Check,检查用户中断程序的条件。

⑥Wait for condition-Check,WAITFORCONDITION(等待轴,等待信号等)命令的条件被检查。

⑦System IPO/IPO_2,IPO中的系统程序(运动控制:定位曲线,同步操作等)。

⑧MotionTask n,WAITFORCONDITION等待中的MotionTask,当条件满足时被优先执行(更高的优先级)。

⑨BackgroundTask,Background背景数据块(PI)在BackgroundTask开始时和结束后被刷新。如果程序的运行时间比较长,BackgroundTask在运行时可能被高级的任务打断几次。

⑩通信,通信功能(HMI,PG/PC等)。

对于任务执行过程中常见的几种情况,我们结合图10-3进行分析,图中:

(1)IPO任务中执行的程序比伺服周期时间长,此时,IPO任务被中断然后执行DP通信和伺服任务,随后IPO任务继续执行。

(2)IPO任务结束后,执行SystemInterruptTask,然后执行低优先级的TimerInterruptTask。

(3)UserInterruptTask即使在条件满足的条件下,也是在高优先级的任务结束后执行。

(4)自由执行等级任务在剩余的时间执行。

978-7-111-43580-8-Chapter10-3.jpg

图10-3 任务执行机制

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈