徐景亮 郑联语 雷 沛
(北京航空航天大学机械工程及自动化学院,北京 100191)
CNC 作为数控机床的核心部件,从20 世纪50 年代被开发以来,已经经历了重大的变化[1]。尽管CNC已经取得了很大的进步,但是仍然需要进一步的改进。尤其是目前CNC 所使用的编程接口,即G 代码,存在着许多问题。而STEP-NC(ISO14649)作为一个CAD/CAM 和CNC 之间进行数据传递的新接口标准,弥补了G 代码存在的缺陷,并且完全兼容STEP(ISO10303)标准[2]。
STEP-NC 数控系统是指能够直接支持STEP-NC 数据接口的新一代数控系统。利用STEP-NC 丰富的数据信息平台以及与CAD/CAM 无缝连接,STEP-NC 数控系统一方面可以针对机床实际情况进行加工仿真、故障检测和精度校验,另一方面能够根据加工现场情况进行在线的调整,快速进行加工方案的重新规划。从长远看,STEP-NC 数控系统将取代基于G 代码的数控系统。因此,为实现STEP-NC 数控系统进行有益的先期研究显得尤为重要。
根据CNC 实现STEP-NC 的不同程度,基本可划分为3 类[3]。第1 类是采用STEP-NC 加工程序输入,利用后处理器对STEP-NC 加工程序进行识别、解释,生成G 代码加工程序,由传统的控制器根据G 代码进行加工。第2 种类型的CNC 直接读取STEP-NC 加工程序,经过解释器解释后转化为数控系统能够直接识别的数据类型,具备在线刀具路径生成功能。第3 种类型将智能化控制加入到CNC 内核中,STEP-NC 数控系统能够执行加工过程中智能化的操作,如自动切削参数优化、自动故障排除等。
目前绝大多数STEP-NC 数控系统的研究基本还局限于前两种[3]。在STEP-NC 推广的初级阶段,如何与现有的数控机床兼容是其面临的首要问题。故本文所开发的STEP-NC 数控系统MMI 软件属于类型1。该类型一方面能够满足当前大量传统数控系统能够兼容STEP-NC 标准;另一方面在改造上只需采用软、硬插件的方式,易于实现系统的改造。
目前,基于STEP-NC 的数控程序大多采用ISO10303Part21 物理文件格式,它虽然格式工整,但对于没有相关领域知识的人而言很难理解,并且不适合在网上传输,因而极大地影响了企业的生产和发展。而XML 作为一种优秀的网络语言得到了广泛的应用。因此,本文设计的STEP-NC 数控系统MMI 软件的输入是XML 格式的STEP-NC 程序,软件的过程模型如图1 所示。
第一步,读入XML 格式STEP-NC 数控程序,将程序中出现的实体实例信息存到内存中,并以工艺序列树的形式在界面中显示。
第二步,根据加工现场情况,调整STEP-NC 程序中给出的工艺参数、机床功能等。对数控程序中以“$”给出的可选属性,设置其具体值。对程序中被修改的信息进行更新。
图1 STEP-NC 数控系统MMI 软件过程模型
第三步,根据程序中的几何特征数据及工艺数据,规划刀具路径。
第四步,对生成的刀具路径进行加工仿真,验证刀具路径规划模块输出路径的正确性。
第五步,对通过加工仿真模块验证的刀具路径信息转换为G、M 代码,传输到机床进行加工。
图2 STEP-NC 数控系统人机界面
图2 为本文构建的STEP-NC 数控系统人机界面。其中左侧区域为程序显示区域,主要用来显示读入的STEP-NC 数控程序与规划好的加工路径信息;右侧区域是三维图形显示区域,帮助使用者更加直观的查看工件、加工路径,且可以查看切削仿真过程,验证生成路径的正确性;下侧区域是实时监控区域,用于数控系统的实时状态显示。以下就主要的几个功能模块进行详细论述。
目前对XML 支持的解析器和开发工具箱非常广泛,因此对XML 格式STEP-NC 程序的解析可以直接采用一些常用的XML 解析器完成[4]。本文使用Microsoft提供的MSXML 编程库完成。首先读入整个数控程序,构建一个驻留内存的树结构。此时,可以理解为XML在内存中开辟一个存储文件信息的数据库。然后使用DOM 来操作这个树结构,可以遍历树以搜索数控程序中包含的工作计划、工步和加工操作等信息。
本文以STEP-NC 类库作为提取出信息的载体,它是刀具路径规划模块的输入,也是系统各模块之间联系的纽带。如图3 所示,定义了所有加工特征类的基类CMachFeature 与它的一个派生类CPlanarFace,并解释了类中成员变量的含义。
图3 STEP-NC 类库设计示例
图4 信息提取过程
信息提取的过程如图4 所示,首先通过对内存中DOM 节点树的操作,提取出程序中的所有特征节点,根据节点名称选择相匹配的特征类,建立特征对象。最后再通过对每个特征节点中几何信息和工艺信息的提取,初始化特征对象,最后得到路径规划模块所需的各种信息。
STEP-NC 代码中各个信息实体间存在相互关联,这种关联信息可以采用树型结构来表达。故本文提供了单层、多层和工作计划3 种数据呈现方式。单层显示直接在树根节点上显示各个实体及其属性信息,而不显示各自的关联层次;多层显示在树根节点上显示各个实体及作为叶节点显示所关联的实体,经过关联的实体不再在根节点显示。两种显示效果如图5,图中给出了ISO 14649 测试例1[5]的数据显示结果。
图5 数据的单层及多层显示
由图5 可以看出,STEP-NC 程序信息是非常繁杂的。数控系统的使用者往往只想关心全部信息中的一部分。过于丰富的数据一方面赋予了STEP-NC 强大的功能,也给使用过程中带来了理解上的困难[6]。
因此,不能只对XML 文件进行简单的显示,应首先对STEP-NC 程序进行适当处理,以一种友好直观的呈现方式给使用者提供所关心的STEP-NC 数据。如图6 所示,经过处理的STEP-NC 数据清晰地反映在树型结构中。由图可见,加工计划包含了一个平面特征的精铣、一个孔特征的钻削和铰削以及一个型腔的粗铣和精铣。每个加工计划中又包含了安全平面、加工特征、加工操作和3 方面信息。右图中的对话框是在双击加工操作时弹出,给使用者呈现了平面特征的精铣操作参数,并允许使用者根据实际情况对工艺信息进行修改。
刀具运动路径虽然不包括在STEP-NC 程序内,但STEP-NC 程序包括了走刀策略、特征信息、刀具信息和其他参数信息,这些信息构成了生成刀具路径信息的信息来源。路径规划就是通过这些信息的处理,最后生成刀具路径信息。刀具路径自动生成的功能使得数控系统操作员根据实际情况可以对加工计划作出一定的调整,例如机床安全平面调整、下刀策略调整等。这种特性是采用G 代码所不具备的,传统的数控加工遇到这种情况往往只能重新进行一次CAM 规划。
图6 程序的工作计划显示
路径规划的目标是生成总体加工路径,这是一条连续的路径,仅仅生成各个工步的路径还不能达到路径连续的要求[7]。本文的路径规划工作分为三个步骤完成:①根据加工策略、操作信息、刀具信息、特征几何信息对工作计划中的每一个工步进行路径规划,经坐标变换后得到各工步加工路径信息;②按照工作计划定义的加工工步顺序,规划工步间的路径,生成工步间的过渡路径信息;③连接所有的工步路径和过渡路径,生成连续的刀具单元路径集合。这些数据作为整个解释器的输出结果,可以被仿真系统和运动控制系统所调用。
图7 刀具路径显示
图7 所示为以ISO 14649 示例1 为例所生成的刀具路径。以树状图的形式分类显示了完整的路径信息和各特征的路径信息,双击节点会对相应的路径信息进行三维显示。
切削仿真功能能够帮助使用者更直观地查看加工的零件、刀具路径及其他相关信息,并能对加工过程进行仿真。可以减少或者消除因为STEP-NC 加工程序错误而导致的机床夹具损坏或刀具折断、工件报废等问题,减少产品设计制造的时间,降低成本。
切削仿真模块主要由以下几个功能组成:
(1)三维模型显示 本文通过读取STL 文件显示工件三维模型。STL 文件由多个三角形面片的定义组成,每个三角形面片的定义包括三角形各个顶点的三维坐标及三角形面片的法矢量。程序中通过遍历三角形面片的3 个顶点,可以方便地构造实体。然后进一步进行实体渲染,以增加工件实体的真实感。
(2)材料去除 本文采用基于三角网格的几何仿真方法[8],通过计算毛坯模型表面三角片顶点与刀具扫掠面之间的距离,计算出各三角片顶点高度值,修改自定义的数据结构,从而实现材料的去除效果。因此首先需要建立毛坯的数据模型。本文采用的是三角网格方法来建立毛坯模型。
图8 毛坯的三角网格化模型
如图8 所示,采用三角面片离散法将毛坯上表面离散为均匀点阵,下表面边界离散成均匀点阵,顺次连接毛坯上表面点阵形成毛坯上表面三角网格,连接上下表面边界点阵构成毛坯侧面网格,底面采用一个四边面片表示。
(3)人机交互 基于OpenGL 切削仿真的人机交互接口包括:加工路径显示与隐藏、动静控制、仿真速度控制、视角变换。
图9 显示的是一个型腔的粗铣加工。在加工过程中,可以进行调整仿真速度、显示/隐藏路径等操作。
图9 切削仿真过程
由于在刀具路径生成模块已经生成了路径信息链表,所以要生成G 代码程序文件只需从头开始读取整个路径信息链表,从每个节点中取出有关的加工工艺参数(如主轴转速、进给速度和冷却液等),按照指定数控系统的指令格式将其分别转换成相应的F、M、S等功能字,并把刀具轨迹转化为指定的数控系统的G代码指令格式[9]。由于在不同工步中所使用的刀具可能不相同,在读取下一个节点时,还要判断该节点所使用的刀具是否与上个节点所使用的刀具相同,如果不相同则需要添加换刀功能字。当路径信息链表中所有节点都转换后,即完成了STEP-NC 文件到G 代码程序的转换。G 代码程序的生成过程如图10a 所示,生成G 代码程序的软件界面如图10b 所示。
图10 G 代码的生成
为验证所生成的G 代码的正确性,本文利用VERICUT 软件对生成的G 代码进行了加工仿真验证。VERICUT 软件是美国CGTECH 公司开发的数控加工仿真系统,由NC 程序验证模块、机床运动仿真模块等组成,具有很高的国际知名度,在制造业中得到广泛应用。
图11 VERICUT 加工仿真
图11a 所示的是在VERICUT 软件中对工程的设置,图11b 展示的是在VERICUT 系统仿真环境中使用FANUC 数控机床执行G 代码进行仿真加工的结果。验证了所生成的G 代码能够正确反映刀具路径生成模块所得的轨迹计算结果。
STEP-NC 程序包含了产品全生命周期的所有信息,同时消除对CNC 系统的依赖性,STEP-NC 的提出和发展结束了长期以来数控系统只能被动执行动作的历史,解决了CNC 与CAX 之间的双向无缝连接问题,为网络制造、虚拟制造、并行工程等先进制造技术和模式提供了技术保证。因此,相对于G 代码来说,具有很大的优势,是未来的一种发展趋势。
本文对基于STEP-NC 数控系统人机界面(MMI)软件进行了研究和开发,实现了STEP-NC 信息提取,利用程序信息树的形式再现了STEP-NC 文件的数据结构,并根据提取出的工艺信息进行刀具路径的规划,利用OpenGL 图形库实现了三维工件显示及加工路径仿真功能,为在商用CNC 系统上开发STEP-NC 人机界面软件提供了参考。
[1]Suh S H,CHEON S U.A Framework for an intelligent CNC and data model[J].Int.J.Adv.Manuf.Technol,2002,19:727 -735.
[2]朱晓明,王永章.基于STEP-NC 数控系统的译码模块及坐标问题[J].机械工程学报,2007,43:185 -190.
[3]Suh S H,Kang S K,Chung D H,et al.Theory and design of CNC systems[M].spring Verlag London Limited,2008.
[4]白乔,左飞.把脉VC++[M].北京:电子工业出版社,2009.
[5]ISO 14649 -11,Data model for computerized numerical controllers part 11:Process Data for Milling[S].International Organization for Standardization,2002.
[6]肖文磊.基于XML 语言的STEP -NC 解析器及其在数控机床和切削加工机器人的应用[D].北京:北京航空航天大学,2011.
[7]朱晓明,富宏亚等.STEP -NC 数控系统若干关键实现技术研究[J].计算机集成制造系统,2009,15(6):1122 -1129.
[8]孙殿柱,李延瑞等.基于三角网格索引模型的3 轴实时数控铣削仿真[J].华中科技大学学报:自然科学版,2009,37 (10):76-80.
[9]杜鹃,闫献国,等.面向铣削加工的STEP-NC 文件到G 代码转换技术[J].计算机集成制造系统,2010,16(1):188 -194.