最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

基于双核处理器平台的数控系统数控软件架构设计

发布时间:2014-05-31 作者:郑玉虎 王品 陆小虎  来源:万方数据
本文针对单核处理器平台上数控系统提升性能和扩展功能方面存在的问题,研究了双核处理器平台上数控系统软件设计的一些理论问题。首先基于RTCore实时操作系统研究了双核平台上数控系统的线程模型设计方案,探讨了线程在核心上的分配方法;然后采用RM算法判定多个周期性实时任务的可调度性,并根据判定结果和负载均衡情况进行线程模型设计;最后研究了中断管理相关问题,提出了根据中断的重要性不同而分配到不同核心上的方法。提出的问题和方法对于设计基于双核和多核处理器平台的数控系统软件具有一定参考意义和实用价值。

3 单核平台上的数控软件架构

  3.1 EMC2数控软件架构

  EMC2开放数控系统的软件架构主要由四个功能模块组成(图2)。其中运动控制器(MOTION)完成轴的插补和伺服控制,对响应时间要求很高,作为一个硬实时任务运行;PLC控制离散IO,也作为硬实时任务运行;任务控制器(TASK)和人机操作界面(HMI)则完成对系统整体运行的操作和控制,作为非实时任务运行。

EMC2软件架构
图2 EMC2软件架构 

  在运行RTCore系统的单核处理器上,任意时刻只有一个线程在CPu上运行,RTCore会按照设定的调度策略优先调度上述两个实时模块运行,当所有实时模块的时间片消耗完而被内核中断或者完成一个周期循环并主动放弃处理器进入休眠以后,实时内核会调度Linux运行非实时线程。

  3.2 单核平台上存在的问题

  在基于单核处理器的数控系统中,当实时模块数量增加,或者单个实时模块CPU占用时间过长,或者出现高频率中断,都可能会导致各种问题。比如CPU占用率过高,多个周期实时线程无法合理调度,这将导致某些实时任务尚未完成就被迫让出处理器,或者某些任务长时间占用处理器而影响其他实时任务的执行,实时性和可靠性受到影响。

  同样,对于运行于Linux中的非实时任务,当加入的监控、调试等数控实用程序增多时,这些任务要共享分配给Linux的CPU时间,可能会出现严重的延时执行问题,比如人机界面反应迟钝、Linux中断处理过度延时或丢失数据等问题。

  通过采用双核处理器,可以把负载按照一定的要求均衡地分布到两个核心上,避免负载增大导致的实时性和可靠性问题。

4 双核平台上的数控软件线程模型

  PLC和MOTl0N模块中实际执行实时控制任务的是若干个实时线程。当实时模块加载入RTCore时,会创建实时线程,这些实时线程按照规定的周期进行循环,每次循环中执行一些操作然后休眠。PLc中有两个低优先级实时线程,TaskThread用来执行用在RTCore中创建实时线程之前可以设置运行该线程的核心,同时采用处理器预留技术把该核心预留给实时应用,这样就可以把实时和非实时部分隔离到不同的核心上。

实时与非实时分开处理的架构
图3 实时与非实时分开处理的架构 

  4.3 关于任务的可调度性问题

  采用线程绑定和处理器预留技术可以直接把模块按照实时和非实时分配到两个核心上运行,但是具体实现上还有一些需要深入考虑的问题。比如多个周期性实时线程能否在单个核心上合理调度?如果能合理调度的话,这两个核心上的负载分配如何?前一个问题就是任务的可调度性问题,后面一个就是负载均衡问题。

  针对实时任务的可调度性问题,目前应用最广泛的是速率单调(简称RM)算法,该算法适用于可抢占静态优先级周期性实时任务的调度。理想的RM算法模型基于一系列假设,而本文所采用的数控系统实现从一定程度上满足这些假设条件,因此可以直接使用RM算法对可调度性进行判定。

  RM算法的可调度性判定公式为:

公式

  其中n为周期线程的数目,Ci是线程i的周期内最大运行时间,Ti是线程i的周期。只要某核心上所有的实时线程满足上面的条件,就是可调度的。本文采用的数控软件在某种参数配置下的线程时间如下。

线程参数1

  如果把这三个实时线程都放到同一个核心上,用RM算法判定结果是U=0.6215<0.7798,满足可调度性条件,所有实时线程可以按照预定的时间要求运行,这时该核心的负载约为62.15%。下面是该数控系统在另外一种参数配置下的线程时间。

  判定结果是U=0.816>0.7798,因而是不可调度的,这意味着在这种参数配置下,如果所有线程都安排到同个核心上,则线程无法按照预定的时间要求运行,低优先级实时线程可能出现不同程度的延迟,可能会影响到数控机床的正常运行。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。