李雪萍,吴文江
(中国科学院沈阳计算技术研究所,沈阳 110015)
数控系统零件加工库的设计与实现*
李雪萍,吴文江
(中国科学院沈阳计算技术研究所,沈阳 110015)
文章在数控系统平台上设计并实现一个零件加工库管理系统,从而为用户提供一种建立零件加工库的机制。该系统采用参数化的形式,将典型加工程序模板化,提高加工程序的灵活适应性。论文阐述了零件加工库的系统结构并给出了系统参数校验模块的分析处理过程。同时系统提供了刀具轨迹的仿真验证功能,用户可以参照仿真图形验证所编写加工程序的正确性。
数控系统;零件加工库;参数校验;仿真验证
国内北京联高软件开发有限公司开发的可视化数控编程软件VisualG,是一套数控程序员可以简单、直观、快速地输入、编辑、调试和仿真数控代码的简单而高效的数控编程软件。德国西门子公司专为现代车削加工而开发的软件ShopTurn,采用按加工步骤,规划整个工件的加工,每一条加工指令的生成,均采用参数化界面,辅以智能的在线帮助文本,再加上直观的图形显示,让用户得以轻松编制任何复杂的加工程序,而无需学习专门的NC编程知识。
国外前期在数控编程软件易用性方面已经做了一些较好的工作。国内在这方面也有了一定的进步。因此,开展简化用户编程方式的研发工作是国内外数控系统编程软件的一个发展方向。
本文在数控系统平台上设计并实现一个零件加工库系统,从而为用户提供一种建立零件加工库的机制。这种机制的设计以简化编程方式、提高编程效率以及增加数控系统的人机交互功能为设计目标。该系统可以避免重复性的劳动,使熟练或非熟练的操作者,都能直接通过手上的“零件库”完成复杂的加工任务,并且使得有编程经验的用户,以数控加工工艺为基本原则,将各类典型的加工零件分类,建立零件加工库来完成加工任务。通过加工经验的不断积累,当零件加工库的实例积累到一定程度,方便经验不足的用户通过浏览零件加工库模板寻找适合自己的加工方案完成加工任务[1]。
可扩展结构是指系统数据结构和实现上的开放性,是系统生命力的重要体现。本文实现的零件加工库管理系统着重考虑系统的可扩展性,即设计人员可以自行向零件库中加入新的零件信息。这个系统可以通过其各个模块功能很好的保存数控典型加工程序及其相关辅助信息[2]。
本文设计的零件加工库系统根据工作需求,以简便、实用的思想为指导,设计实现该系统,主要体现在以下四个方面:
(1)可编辑、可扩展。用户可根据自己的需求,加工同一类型不同尺寸的零件。输入零件加工程序及其变量等相关信息。
(2)可检验。在用户输入待加工零件的尺寸后,系统可以自动地进行合法性验证,检查各数值间是否满足一定的约束关系,并可以及时发现错误、及时修改。
(3)帮助文档及辅助图形的支持。系统可以添加编辑加工零件的示意图和详细帮助文档,以便用户理解。
(4)3D仿真。调用底层的解释器和任务器,得到刀具轨迹状态,进而绘制刀具轨迹,实现零件加工程序的验证和仿真[3]。
根据以上设计思想,整个零件加工库管理系统由六个模块组成。文件管理编辑模块、参数编辑模块、约束条件编辑模块、校验模块、辅助模块和程序仿真模块。
(1)文件管理编辑模块负责用户创建、删除零件加工库目录及相关文件。它帮助用户有效编辑保存数控系统典型加工程序及其相关辅助信息。
(2)参数编辑模块负责用户输入零件加工程序中的变量相关信息,采用参数化的形式,将典型加工程序模板化,可以加工出同一类型不同尺寸的零件。
(3)约束条件模块负责用户输入变量之间的约束关系,从而进行合法性验证。
(4)校验模块帮助用户对其输入的参数及约束条件进行合法性验证。
(5)辅助模块包括图形辅助模块和帮助信息模块。前者提供添加加工零件的示意图功能,可以使用户对零件有着感观的认识。后者可以输入加工零件的文字描述。
(6)程序仿真模块提供刀具轨迹仿真功能,实现零件加工程序的验证和仿真。
零件加工库中各模块文件分别保存于以gcode、img、info、lib为名的文件夹中,其中零件加工程序文件存放于gcode文件夹,用户添加的零件示意图文件存放于img文件夹中,用户输入的相关帮助信息文件存放于info文件夹中,参数和约束条件一起保存于以.lib格式命名的文件,存放于lib文件夹中。
零件加工库模块以目录树的形式展现,主要分为三项,有零件库,辅助库和现有程序库。零件库是由G代码程序文件及相关辅助信息构成;辅助库是由辅助动作文件构成,一般是几句G/M代码,比如冷却液关闭、打开,程序结束等;现有程序库是由已有的G代码程序文件组成。
零件加工库的整体界面设计如图1所示。
图1 零件加工库管理系统操作界面
零件加工库参数校验机制是为了满足用户输入待加工零件的尺寸后,系统可以自动地进行合法性验证。每个约束关系都是一个关系表达式,所以判断约束关系的结果实质是表达式求值问题。
表达式求值一般有两种方法:
(1)算符优先算法是用两个栈来实现,依次读入表达式中的每个字符,若是操作数则将该字符压入操作数栈,若是运算符,则压入运算符栈并和栈顶字符比较优先级,并采取对应操作。
(2)递归向下解析器方法是表达式被视为递归的数据结构,所有的表达式可以由如下的规则生成:表达式由项组成,项又由因数构成,因数又可以是数字或者是表达式。
用户输入约束关系表达式可以包含三角函数,关系运算符、逻辑运算符等,例如(!a&&(c<sin(c-d)))。如果单采用算符优先算法,无法比较三角函数和逻辑、关系运算符优先级。所以本文综合了两种方法解决表达式求值问题。
本文设计思想是采用一个栈来实现算符优先算法,并且表达式被视为递归的数据结构,由整体因数和运算符构成。通过整体因数函数求解操作数,按顺序依次获取操作数和运算符,并把两者一起压入栈中。当存放运算符时,直接利用转化优先级函数存放对应的优先级数。再次读入下一个操作数和优先级数,比较此优先级数是否高于栈顶优先级数,再按算符优先算法思想采取相应操作。本文按照运算符的优先级,定义以下运算符的优先级数,如表1所示。
表1 运算符的优先级数
数控机床是靠控制数控指令程序完成加工零件任务[4]。为了确保数控零件加工程序的正确性,零件加工库提供了程序仿真功能,让编程人员可以实现零件加工程序的验证和仿真,从而提高工作效率[5]。本文利用linux环境下Qt软件,结合OpenGL图形编程,并采用基于数控代码的仿真方法,开发零件加工库的程序仿真模块[6]。
2.2.1 仿真模块轨迹点的数据结构
仿真模块需要获取G代码程序中刀具轨迹信息才能完成绘制工作[7]。这些轨迹信息是数控系统中的任务控制器在执行程序验证时生成的。通过网络套接字远程实现零件加工库系统和数控系统之间的联系。在数控系统中建立一个联络员进程,以实现两台主机间的通信[8]。仿真模块轨迹点的数据结构定义如下:
这种结构采用位字段方式既节省存储空间,又可以方便操作。当加工零件程序过于冗长时,进行轨迹仿真存储点信息,这种设计可以节省存储空间。
2.2.2 程序仿真模块参数文件的处理
系统程序仿真模块通过socket文件流给数控系统传送程序代码,进而调用数控系统中的任务器对程序进行解析。在传送文件过程中,如果加工程序中包含变量,需要替换为具体的变量值,才能进行加工轨迹的仿真。为了方便寻找程序中的变量,规定用户在输入零件加工程序时,需要用左右尖括号包含变量,例如变量a,输入为<a>。这样就可以利用正则表达式"<[^<][^>]* >"方便地进行匹配。
2.2.3 仿真模块绘图算法流程设计
仿真模块从远程socket服务器中接收加工轨迹点存入到shapeList数组中,并按shapeList数组中点的类型分别调用各个绘图函数[9]。绘制仿真轨迹的流程图如图2所示。
零件加工库的仿真模块通过对数控刀具轨迹数据的处理,动态地绘制刀具加工运动轨迹,能够使用户快速、高效地实现零件加工程序的验证和仿真,并且用户可以从多方位,多角度观察仿真效果,可视效果非常好[10]。图3为一个直线排孔零件加工程序的程序仿真效果图。
图2 绘制仿真轨迹流程图
图3 程序仿真效果图
本文在蓝天数控系统平台上设计并实现一个零件加工库系统,从而为用户提供一种建立零件加工库的机制。论文阐述了零件加工库的系统结构并给出了系统参数校验模块的分析处理过程。同时系统程序仿真模块提供了刀具轨迹仿真功能,进而实现零件加工程序的验证和仿真[11]。目前本系统已成功应用到蓝天系列数控系统中。
[1]高慧.蓝天数控系统宏程序及图形辅助编程模块的设计与实现[D].沈阳:中国科学院沈阳计算技术研究所,2008.
[2]高杉,吴文江.数控系统宏程序会话编程设计与实现[J].辽宁省交通高等专科学校学报,2010(10):12-5.
[3]何峰,蒋新华.Linux下数控代码的轨迹仿真[J].机床与液压,2009,37(6):178 -182.
[4]蒋秀峰,任志雄.可视编译器的设计与实现[J].计算机与现代化,2010(10):63-67.
[5]彭健钧,郭锐锋,张世民,等.数控加工仿真系统的研究与应用[J].小型微型计算机系统,2010(6):218-222.
[6]方建忠,尹显明.基于QT OpenGL的轨迹仿真模块的设计[J].制造技术与机床,2009(2):81-84.
[7]李琳茹,游林儒,刘少君.利用OpenGL实现数控系统加工过程的三维动态仿真[J].组合机床与自动化加工技术,2012(1):62-65.
[8]吴晶,史步海.基于EMC2的数控系统软件架构及通信机制分析[J].组合机床与自动化加工技术,2010(10):48-51.
[9]Rongjian Zheng,Genwang Ying.Improvement of NC Simulation Using Three-Dimension Graphics Arrangement Method[J],International Conforence on Computer Application and System Modeling,2010,15:469 -471.
[10] Wang Pin,Su Lanzhi.Design and Realization of NC Graphic Programming System[J],Second WRI World Congress on Software Engineering,2010:26-29.
[11]Zongmin Chen,Development of OpenGL Based 3D Simulator for Computer Numerical Control[J],International Conference on Artificial Intelligence and Computational Intelligence,2010:319-321.
(编辑 李秀敏)
Design and Im plementation of a Parts Library on CNC System
The paper designs and implements the parts processing library so as to provide users w ith a mechanism of establishing parts processing library on CNC system experimental platform.The system uses a parameterized form and makes the typical processing procedure template in order to improve the flexibility and adaptability of the processing procedure.The paper describes the system architecture of the parts processing library and gives the analysis process of the parameter calibration module.And the system provides a simulation function of the tool path,the user can refer to the simulation to verify the correctness of the processing program.
NC system;parts processing library;parameters calibration;simulation verification
TH16;TG65
A
1001-2265(2013)03-0047-03
2012-09-04;
2012-09-15
“高档数控机床与基础制造装备”国家科技重大专项(2011ZX04016-071);国家重点基础研究发展计划资助(973项目,2011CB302400)
李雪萍(1988—),女,黑龙江人,中科院沈阳计算技术研究所硕士研究生,研究方向为计算机应用技术,(E-mail)lxpfamily@163.com。
LIXue-ping,WUWen-jiang
(Shenyang Institute of Computing Technology,Chinese Academy of Sciences,Shenyang 110015,China)