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

基于数控流水线技术的开放式数控系统(上)

发布时间:2013-03-13 作者:董靖川 王太勇 徐跃  来源:万方数据
为了能使开放式数控系统的设计不依赖于特定的软硬件平台,提出了一种由数控主控流水线线程、驱动程序和数控微代码实时执行单元构成的数控流水线体系。

摘 要:为了能使开放式数控系统的设计不依赖于特定的软硬件平台,提出了一种由数控主控流水线线程、驱动程序和数控微代码实时执行单元构成的数控流水线体系。该体系定义了开放的数控规范指令和数控微代码接口,保证模块的互换性,实现了流水线的可重构。数控流水线线程封装了从指令译码到生成数控微代码的主要控制功能,并采用标准编程接口和软件开发技术以确保可移植性。数控微代码实时执行单元由可重构的开放式硬件实现实时控制,通过缓冲区隔离了流水线的实时和非实时部分。实验表明,数控流水线体系可适应各种通用的软硬件平台,为开放式数控系统的构建提供了一种实用方法。

    为了满足数控系统中强实时功能的需求,一种方案是将所有强实时功能集成在以高性能中央处理器(Central Processing Unit, CPU),如数字信号处理器(Digital Signal Processor, DSP)为核心的专用运动控制器上,形成多CPU 系统结构,如Delta Tau 公司的可编程多轴运动控制器(ProgrammableMulti-Axis Controller, PMAC)是一种基于DSP 的运动控制卡。此时用户可以在上位机开发人机交互、图形仿真、网络通信、轨迹规划等功能。然而,如果开发运动控制器的内部算法则用户需要使用其专用语言进行编程,增加了开发难度,降低了开放性。同时,这种设计需要一块采用高性能专用CPU,大大增加了系统成本,也浪费了上位机CPU 潜在的运算能力。

    另一种方案是采用实时操作系统(Real-time operating system, RTOS)的软件数控系统。软件设计中将各功能按照实时性的不同划分为不同优先级的“任务”,RTOS 根据优先级进行快速的任务调度,确保高优先级任务的实时响应。例如美国国家标准和技术研究所(National Institute of Standards andTechnology, NIST)主持的增强型运动控制器(Enhanced Machine Controller project, EMC)项目,是在实时Linux 操作系统上建立的软件数控系统。值得注意的是,因操作系统内核在临界区执行时无法响应实时事件而造成的实时响应的不确定以及任务切换本身消耗的额外资源,在数控系统这类高速实时环境下会影响系统性能。文献对实时Linux 系统进行的测试中,外部中断频率在83.5kHz 时系统无法正确响应,这在数控系统中会造成加工误差,是绝不允许的。现代的数控系统中,控制进给电机的脉冲频率可达1MHz 以上,在目前的实时操作系统下以纯软件方式还很难可靠实现。此外,当前实时操作系统缺乏统一的编程标准,用户需要掌握特定操作系统的任务调度机制和编程方法才能进行开发。这既提高了软件开发难度,也不利于系统的开放。

    本文设计了一种新型的基于流水线技术的开放式数控结构,通过平衡软、硬件的任务,发挥了当前通用平台的计算优势,优化了系统整体性能。系统的设计理念是尽可能使用成熟的通用开发技术,因此降低了用户的开发难度,并极大限度地为开放了数控系统的软硬件资源。实际应用表明,这种结构数控系统能够支持当前主流的各类操作系统和硬件平台,具有广泛的适应性。

1 数控系统的流水线处理技术

1.1 数控系统功能分析

    数控系统内部的功能通常可划分为强实时类功能和弱实时类功能,如表1 所示。强实时类功能是数控系统功能的核心,它们和数控机床的加工过程密切相关,对实时性有较高要求,任何环节的延迟都可能导致加工出现错误。同时从表1 可以看出,各个强实时模块对于实时性的要求是不同的。而弱实时类功能主要涉及人机交互、存储信息管理、机床的低速的通用I/O 等。它们对实时性要求低,即使未能及时执行一般也不会影响到加工过程。这些弱实时功能可在当前通用操作系统中方便地实现。

表 1 数控系统主要不同任务的优先级

如图

 

    对数控系统中强实时功能作进一步分析,可以发现数控系统的强实时功能具有一些特征。首先,各个强实时功能间存在一种“后向驱动关系”,即处于后一级的强实时功能驱动前一级功能运行,以提供所需数据。这表明可以将数控系统的一些强实时功能进行串联,通过“后向驱动”各功能运行。其次,某些功能(如急停、限位等专用I/O)需要处理实时反馈;而多数功能对下一级输入相当于开环控制,无需快速响应反馈。因此,大部分的强实时功能可以看作开环控制,这部分可以进行批量的预先处理。再次,强实时功能实时性强弱与算法复杂度相反,而与算法的调用频率及数据的吞吐量大小变化基本一致,如图1 所示。此类功能的算法简单但调用频率高,数据吞吐量大,可采用简单的硬件扩展的方法实现软件部分难以胜任的强实时任务。最后,各功能可产生状态信息用于用户监视,如程序模态信息,机床位置信息等。它们主要用于用户对加工工程的监控,信息的更新速率相对较慢。 

如图

图1 数控系统强实时功能实时性与功能相关指标关系

 

1.2 数控流水线结构

    基于以上考虑,本文将给出一种开放式数控系统的“流水线”解决方案。本文所提出的数控流水线(NC Pipeline)结构如图2 所示。数控流水线可划分为三大部分:数控主控流水线线程,控制驱动层和数控微代码执行单元 

如图

图 2 数控流水线结构

 

1.2.1 数控主控流水线线程

    主控流水线线程是运行于数控系统内计算机操作系统的上的 CNC 控制软件的一个独立线程,它运行于用户态。为了充分发挥通用计算平台的运算优势,将指令译码、多轴插补等功能按照后向驱动关系设计成一个独立线程 (或任务),避免由于按功能划分成多个任务引起频繁的任务切换,提高系统整体效率。主控流水线线程实现了数控系统的主要的控制算法和逻辑,又可分为指令转换和机床动作规划两部分。

1) 指令转换部分
     指令转换部分的主要功能是将输入的用户编程时采用数控指令转换为数控规范指令(NCCanonical Command, NCCC)。NCCC 是与用户编程语言及CNC 的控制算法均无关的一个开放的标准化应用程序接口,使二者不再直接耦合,实现了算法和数据结构相互隔离。指令译码模块是指令转换的主要组成部分,用户输入的各类加工源程序可通过对应的指令译码模块完成语法分析、加工策略生成、程序流控制、刀具补偿、坐标变换与管理等功能,最终转换为NCCC 指令,传送到数控流水线的下一级。

2) 机床动作规划部分
    机床动作规划部分的主要功能是根据指令转换生成的 NCCC 指令和机床的具体配置,通过相应的规划和控制算法,按照机床控制时序生成数控微代码(NC Micro-code, NCM)。NCM 代码是一组和

    机床动作规划算法和微代码执行单元无关的开放的标准化机床控制时序描述指令集,用于数控微代码执行单元(NC Micro-code Processor, NCMP)的实时执行。

    机床动作规划部分包括数控规范指令缓冲区、速度规划部分、多轴插补部分、专用 I/O 控制部分和杂项控制部分。缓冲区缓存若干条NCCC 指令,速度规划部分可通过缓冲区缓冲的一段时间内的运动路径和运动参数根据多种规划算法[11]规划速度曲线,然后由多轴插补部分根据速度曲线生成各进给轴插补数据。专用I/O 控制部分将NCCC 指令中的专用I/O 动作(主轴启停、自动换刀、冷却液开关等)转换成相应的NCM 代码。杂项控制功能完成延时处理、注释信息等其他NCCC 指令功能。

2