0 引言
随着世界经济发展的全球化,制造业市场竞争日益加剧,新产品上市周期大为缩短,用户需求也趋于多样化、个性化,对计算机数控系统(CNC)提出了必须向开放式结构的转化趋势。自20世纪90年代开始,美国、欧盟、日本等发达国家或地区已开始了开放式结构控制器的研究,并分别提出了OMAC(Open Modular Architecture Controller)、OSACA(OpenSystem Architecture for Control within Automation)、OSEC(Open System Environment for Controller)几个标准规范。我国从2003年开始实施oNC《开放式数控系统总则》国家标准。开放式CNC大多采用基于通用PC机(或工控机)和数控(NC:NumericalContr01)专用模块的主从式结构㈣。NC模块采用通用微处理器或数字信号处理器(DSP:Digital SignalProcessor)实现,主要运行以坐标轴运动为主的强实时控制,而上位机主要运行弱实时性及非实时性任务。随着高性能嵌入式计算机技术的发展,出现了面向32位及以上的嵌入式实时操作系统(RTOS:RealTime Operating System),为实现高可靠性、低成本的开放式数控系统提供了条件。目前CNC正在从基于PC的开放式控制系统向32位及以上的高性能实时嵌入式控制系统方向发展,基于uC/OS、RTLinux、Windows CE等实时操作系统的数控系统越来越受到相关公司和科研院所的重视。Windows CE并不是Windows桌面操作系统的缩减版本,是微软全新设计的针对嵌入式系统市场的部分源代码开放的、模块化的、抢先式多任务32位嵌入式操作系统。相对于DOS,Windows CE是运行于保护模式的多线程操作系统,其内存保护功能满足了数控系统的稳定性,相对于Windows桌面操作系统Windows CE是嵌入式实时操作系统,能够快速响应和调度外部中断,可以满足数控系统的弱实时任务以及非实时任务。
伴随着电子信息技术的高速发展,运动控制硬件方面也已经从以单片机和微处理器作为核心处理器及专用芯片(ASIC:Application Specific IntegratedCircuits)作为协处理器发展到采用基于计算机总线的以DSP(Digital Signal Processor)和FPGA(FieldProgrammable Gate Array)技术来研发运动控制设备。
本文采用嵌入式计算机+运动控制设备的上下位机方式来构建数控系统,上位机采用Windows CE嵌入式系统来进行系统的管理、弱实时任务的调度,下位机采用自行开发的基于DSP&FPGA的运动控制器来调度运动控制为主的强实时控制任务.研究并实现了系统的软硬件搭建以及数控软件系统开发的核心问题,包括数控代码智能解释器的原理与实现,数控代码二三维仿真的原理与实现,数控系统实时调度的分析。
1 系统的总体架构
按照我国国家标准《开放式数控系统体系结构》的要求:系统平台必须支持ONC系统的结构特性:互换性、伸缩性、互操作性和可移植性,把数控系统划分为三个层次:管理显示层,数据控制层,支撑设备层。管理显示层负责数据的显示(如实时坐标更新显示、刀补数据显示、工艺参数显示、I/O状态的显示)以及故障诊断;数据控制层负责整个数控系统的数据交互,如数控代码的编辑及编译、数控代码的二维及三维仿真、刀具的长度及半径补偿、直线和圆弧插补的计算、主轴启动和终止、冷却液和润滑液的开启和关闭等,并且根据任务的优先级别进行实时的调控,以满足数控系统实时性的要求;支撑设备层主要针对于物理设备,如自行开发设计的I/O硬件、自行开发设计的可重构的运动控制硬件、嵌入式式计算机以及相关的外设、板卡及接口等。整个系统的总体架构图如图1所示。
图1系统总体架构图
图2是自行设计的三轴数控实验平台。三个运动轴由伺服电机驱动滚珠丝杆实现直线位移,模拟主轴采用步进电机驱动工作方式。CNC采用通过PC 104总线在嵌入式单板计算机(SBC)上堆插DSP运动控制卡和10卡的主从式结构。DSP运动控制卡负责计算机数控系统的实时运动控制,I/O卡负责数控系统的辅助设备控制和手轮脉冲计数等功能。嵌入式单板计算机运行Windows CE RTOS(使用电子盘方式),该测试平台配以所开发出的可重配置数控系统可以实现对独立运动轴/主轴的控制、二轴联动、三轴联动数控车床、铣床等种多数控机床或运动控制平台的模拟测试。
图2 CNC硬件平台
2 数控代码智能编译及仿真
数控系统以代码为依据进行数控加工,数控代码是数控系统中的主要信息流,代码编译是把数控代码最终转化为数控系统能正确识别的信息,如脉冲量等。为了更好的验证数控代码的准确性,确保在加工过程中不会出现误切、干涉等现象,在实际加工前针对数控代码进行仿真,查看加工过程中的刀具轨迹位置点是否正确,查看加工后的效果图是否和零件图一致。因此数控系统中数控代码的编译和仿真是极为重要的功能模块,也成为数控领域的研究热点。文献阐述了借助于LEX&YACC词法语法分析工具来开发基于Windows的数控代码编译器,张承瑞等提出一个Linux下自主开发数控代码解释器的方案。数控代码的仿真主要有两种形式:几何仿真和物理仿真,几何仿真不考虑切削参数、切削力以及其它物理因素的影响,只仿真刀具与工件几何体的运动,以验证NC程序的正确性。而力学仿真属于物理仿真范畴,它通过仿真切削过程的动态力学特性来预测刀具破损、刀具振动、控制切削参数,从而达到优化切削过程的目的。在Windows桌面系统中,应用OpenGL技术路线实现数控代码三维几何仿真在文献中都有阐述。
由于Windows CE采用了Unicode字符等原因,LEX&YACC等工具在Windows CE平台下不能使用。本文所开发的数控车床系统,采取了基于编译原理技术开发NC代码编译器。编译器包含了词法分析、语法分析、查错处理、代码转换等功能模块。建立好NC代码的词法规则,即可对代码第一次扫描时进行词法分析,无误后,再进行语法分析。语法分析是整个代码编译的核心模块,首先根据正规文法((3型文法)来制定NC代码的EBNF表示形式。如:<准备功能>::=G<1—2位数字>,<辅助功能>::=M<1-2位数字>,<进给速度>::=F<数字>,<主轴功能>::=S<1—4位数字>,<刀具功能>::=T<1—2位数字>。在词法和语法分析的过程中,一旦发现有错误或者异常,编译器能及时提示,甚至能智能的提醒用户如何更正错误的代码。编译器由于是自主研发,具备了高效率、方便扩展的要求,符合数控系统实时、开放的标准。例在数控车床系统中复合固定循环是用户使用最多的编程方式,如G71轴向粗车复合循环中,通过N(ns)和N(ne)来指定循环的起始和结束程序段的顺序号,在G70精加工循环指令中,G70P(ns)Q(nf)通过ns和nf来指定欲精加工的程序段。图3说明了本系统中对于G71、G70复合循环指令程序段指定不一致时的报错提示。
图3数控代码编译报错图
本文的数控代码仿真是采用几何仿真,具备二维刀具轨迹仿真和三维加工后效果仿真功能。对于数控车床的复合固定循环,在代码编译阶段通过获取循环的起始行号和终止行号来确定整个循环体,再根据进刀量、退刀量、零件图尺寸等参数根据自行设计的算法把整个循环加工的刀具轨迹点计算出来。二维刀具轨迹仿真采用Bresenham算法生成直线和圆弧,来仿真直线插补和圆弧的插补过程,图4为二维刀具轨迹图。三维效果仿真是采用Directx3D作为编程的接口,Directx3D是Microsoft公司为其在Windows系统上运行交互式三维图形程序而开发的一组编程接口,它是连接硬件、程序员和软件用户的桥梁。每个Directx3D部件都是用户可调用的API总和,通过它应用程序可以直接访问计算机的硬件。在Windows CE操作系统定制时,把Directx3D部分定制进入操作系统内核NK,并生成相应硬件的SDK,然后应用eMbedded Visual C++4.0开发工具进行3D等应用程序开发。本论文的数控系统应用Windows CE作为嵌入式操作系统,因此应用Directx3D技术作为支撑来实现零件的三维效果几何仿真比较方便。
图4二维刀具轨迹图
三维仿真前,首先把编译后没有错误的数控代码保存在一个特定的数据结构中(如链表或数组),然后根据数控代码提取出的零件图形信息建立零件的几何模型。在数控车中,零件的基本形状主要由圆柱体、圆台以及圆锥等基本三维图元体组合构成。在实体建模的过程中,会用到世界变换、视角变换和投影变换等矩阵运算。根据真实感图形的需要,建模好后的实体可以添加灯光、颜色等效果,甚至可以贴上表面纹理。整个开发流程如图5所示。图6为零件加工效果图。
图5 Directx3D开发流程
图6三维零件效果图
3 CNC实时可调度性分析
实时系统是指一个能够在事先指定或在运行时确定的时间内完成系统功能和对外部或内部、同步或异步事件、时间做出响应的系统。这种系统的正确性不仅仅依赖于计算的逻辑结果,而且还依赖于计算结果产生的时间。数控系统作为实时系统,对其任务进行调度的目的就是得到一个多任务的最佳执行顺序,当它们按照此顺序执行时能满足它们各自的时间约束条件,使得每个任务(硬实时任务)能够在其期限内完成数控系统中根据不同的任务实时性一般分为:实时突发任务(如急停),硬实时周期性任务(如数值插补、加减速控制),软实时周期性任务(如数控代码编译、运行),非实时任务等(如数控代码编辑)。本文所开发的数控系统采用的是主从式结构,数控系统操作面板操作由C51单片机产生,通过RS232串口通讯协议传送至面板输入任务处理模块,数值插补、加减速、伺服闭环控制器等硬实时任务由基于DSP&FPGA的运动控制卡完成。在32位嵌入式操作系统Windows CE中,数控系统的弱实时任务对应于操作系统的线程,可以直接采用操作系统的调度器(Scheduler),或者白行设计相应的调度算法程序。图7中平行四边形(阴影部分)是所开发的CNC运行在Windows CE实时操作系统环境下的任务模块,图中省略了辅助设备控制任务模块及其相应的硬件I/O卡。
图7 CNC任务模块结构图
4 结论
Windows CE具备强大的通讯功能,是有抢占式多任务的32位嵌入式实时操作系统,基于WindowsCE开发数控系统将能缩短开发周期,增加数控系统的开放性、稳定性,提高系统的可扩展性、可移植。本文阐述了基于Windows CE的数控系统的关键技术原理以及实现,如数控系统软硬件架构、数控代码编译器、二维刀具轨迹仿真以及基于Directx3D技术的三维仿真、数控系统实时调度划等。实践证明,基于Windows CE&DSP平台的数控系统开发是数控产业的一个新的可行的、快捷的技术路线。
(审核编辑: 智汇张瑜)