中国战略性新兴产业研究与发展:数控系统
上QQ阅读APP看书,第一时间看更新

2.1.1 高档数控系统体系结构

随着数控技术的进一步发展,高端开放式数控系统对处理器计算带宽需求也在不断提高。高速高精度、多通道多轴联动、五次样条插补、曲线插补、CAD/CAM/CAPP等高级功能模块对数控系统上的处理器计算能力提出了更高要求。国外高档数控系统普遍采用多CPU分布式结构,以保证系统的实时性、并行性及信息吞吐率。

目前高档数控系统大多采用多微处理器结构来实现高速、高精度、网络化、智能化等高端功能,其目的在于将各项任务分配给多个微处理器,由多个微处理器并行处理,协调完成各项任务。多微处理器数控系统按照互联方式一般分为以下两种形式:

1)共享总线式。以一条工业标准(STD、VME、EISA、Multibus)或专用系统总线为中心,将各个主控模块和从模块有效地连接起来,按照预定标准交换控制信息和数据。

2)共享存储器式。采用多端口存储器,实现各微处理器间的互联和通信,由多端口控制逻辑电路解决访问的冲突问题。

上述方式中,各处理器之间数据交换是整个数控系统工作性能降低的根本原因。数控系统的实时性和大量的复杂数据处理是一对矛盾,对现有的各种数控系统来说,若加入实时自动监控功能和故障在线检测功能,系统将无法在规定的系统控制周期内完成所有的实时任务,因此现有的单CPU数控系统一般难以实现这些功能。上述功能的实现关键在于解决系统实时性与数据流高速处理之间的矛盾。

多核并行多任务数控系统可解决上述矛盾。并行处理是指计算机在同一时刻或同一时间间隔内完成两种或两种以上的操作任务,其显著优点是提高了运算速度和计算机内资源的利用率。单CPU计算机系统的并行处理技术是建立在时间重叠和资源共享之上的,而多核处理器集成了多个同类型处理器,在操作系统环境下共享同一个存储器。如图2-1所示,共享存储器采用芯片内部的高速接口互联,大大提高了数据交换的效率;同时可使用核内多个协处理器来执行多个线程的任务,提高系统的工作效率。

图2-1 多处理器系统

在多核处理器的数控系统体系架构(图2-2)中,中央CPU作为控制中枢,主要控制整个加工过程,发送指令信息到插补CPU、PLC-CPU等对应的共享存储器。插补CPU读取存储器中的加工数据(即有限坐标点),根据加工轨迹的特征(直线、圆弧、椭圆等),运用一定的算法,自动地在有限的坐标点之间生成一系列坐标数据,从而自动地在各坐标轴进行脉冲分配。在加工过程中,当需要多根轴完成精密轮廓绘制时,可增加插补CPU与扩大内存。三维状态显示CPU负责监测加工轴的运行状态信息与轮廓的三维显示,实现人机交互。网络服务CPU作为Web服务器,接受网络中其他CPU的访问,同时负责防止加工信息未经保护而泄露。CAD/CAM编程CPU绘制加工曲线图;PLC-CPU读取内存中的指令信息,控制I/O单元的输出。数控系统所有功能固化在EPROM中,通过程序控制完成。

在单CPU数控系统中,资源“分时共享”可使多个任务按时间顺序使用同一套设备。如当数控系统工作时,其数据转换过程由零件程序输入解释、插补预处理(包括刀具补偿和速度处理)、插补、位置控制四个子任务组成。若每个子任务的处理时间分别为Δt1、Δt2、Δt3、Δt4,那么一个零件程序段数据转换时间tt1t2t3t4。若以顺序方式处理每个零件程序段,即第一个零件程序段处理完以后,再处理第二个零件程序段,则在两个程序段输出之间将有一个时间长度为t的间隔,其时间-空间关系如图2-3所示。上述时间间隔反映在电动机上,使电动机时转时停;反映在刀具上,使刀具时走时停。不管时间间隔多么小,这种时走时停在加工工艺上都是不允许的。消除时间间隔的方法是用并行处理技术。并行处理的关键是时间重叠,即在一段时间间隔内处理两个或更多的子任务,其时间-空间关系如图2-4所示。

图2-2 多核高档数控系统体系架构图

子过程的完成不一定是在一个完整的连续时间段内,而可能是由多个CPU空闲的时间碎片组成。从图2-4中可以看出,经过并行处理后,每个程序段的输出之间不再有时间间隔,从而保证了电动机转动和刀具移动的连续性。

图2-3 顺序处理

图2-4 并行处理

对于多核并行数控系统来说,可将不同子任务绑定在不同内核上,各子任务可实现完全的并行处理,只需考虑子任务间的数据交换和因果关系,实时性更好,更能有效保证程序段输出的连续性。

考虑到高档数控系统功能复杂,包括人机界面交互、三维状态显示、仿真优化、CAD/CAM编程、PLC控制、插补计算、网络服务、内存管理、任务间通信等多个功能模块,其中PLC控制、插补计算、内存管理、任务间通信都需要严格的实时约束,必须在实时操作支持下才能完成。多核高档数控系统为使各项任务做到并发执行,需要使用实时操作系统,为此设计了多核高档数控系统实时操作系统,以便真正并发执行。基于Linux的多核数控系统实时操作系统整体架构如图2-5所示。

图2-5 基于Linux的多核数控系统实时操作系统整体架构

在数控系统中,根据各功能在加工过程中的地位和作用,可将其任务分为以下几类:

1)实时突发任务,如错误处理等。这类任务一旦发生,系统应无条件优先执行。

2)实时周期任务。这类任务是按照精确的时间间隔周期执行的任务,如加工过程中的插补、位置控制等,是数控加工中的关键任务,必须保证其优先处理,一般采用定时中断实现,其执行过程一般不允许被其他任务中断。

3)非实时任务。这类任务一般为条件任务,如加工程序解释、插补预处理等。它们虽不像实时周期任务那样不允许中断,但对加工过程的及时正确完成来说也是必不可少的,也应保证其及时执行。

4)辅助性任务。这类任务包括人机交互、动态显示等,其执行并无严格的时间要求,显示刷新的时间间隔对系统的性能并无影响。

对于多核CPU,优化操作系统任务调度算法是保证效率的关键。一般任务调度算法有全局队列调度和局部队列调度两种。前者是指操作系统维护一个全局的任务等待队列,当系统中有一个CPU内核空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。这种方法的优点是CPU内核利用率较高。后者是指操作系统为每个CPU内核维护一个局部的任务等待队列。当系统中有一个CPU内核空闲时,便从核心任务等待队列中选取恰当的任务执行。这种方法的优点是任务基本上无须在多个CPU内核间切换,有利于提高CPU核心的局部Cache(缓存)命中率。目前多数多核CPU操作系统采用的是基于全局队列的任务调度算法。

1)实时突发任务的调度。实时突发任务在系统中的优先级高于其他任务。系统实时记录任务发生的先后次序,并中断现行任务的运行,优先处理优先级高的突发任务。

2)实时周期任务的调度。实时周期任务创建以后,经过固定的时间间隔循环执行。它们在系统中的优先级低于实时突发任务,而高于其他任务。在多核系统中,每个实时任务可独占一个CPU线程,因此系统能同时运行的最大实时任务数取决于所包含的处理器线程的数量。

3)非实时任务的调度。非实时任务在系统中的优先级低于实时周期任务而高于辅助性任务。对同一代码段而言,存在执行顺序问题,只有当译码、插补预处理这样的非实时任务完成后,实时周期任务插补、位置控制才能执行。因此,对实时周期任务与非实时任务调度的主要工作,就是对它们执行的先后次序进行控制。可采用基于优先级的抢占式调度来实现这一目的。

4)辅助性任务的调度。这类任务在系统中的优先级最低,必须保证CPU的时间优先满足关键任务的执行。

某一多CPU数控系统硬件平台选用基于4核处理器,结构如图2-6所示。

图2-6 4核CPU高性能数控系统硬件平台

硬件平台中的4个64位高性能核心处理器配备了128位的DDR3访存通道和PCI-EI/O接口,基于多核CPU的工业计算机模块的逻辑框图如图2-7所示。

CPU采用主频为1GHz的4核处理器,主存采用9个DDR3 SDRAM存储器,支持ECC校验。由于系统的I/O性能要求不高,采用PCIe-to-PCI桥芯片连接CPU的PCI-E系统接口,为系统提供PCI总线。所有I/O设备挂接在PCI总线上,包括显卡、南桥、网卡。南桥为计算机模块提供PS/2键盘、鼠标接口、CF卡/IDE固态盘接口、USB2.0接口,并在扩展总线上挂接了非易失性RAM。基于工业计算机模块遵循业界EBX规范的惯例,主板尺寸为146mm×203mm,提供PCI104扩展接口。外设连接的逻辑框图如图2-8所示。

图2-7 工业计算机模块的逻辑框图

图2-8 外设连接的逻辑框图