APP下载

基于VB环境的Fanuc 0-TD数控车床仿真系统的开发与研究

2010-10-07王强锋

制造技术与机床 2010年6期
关键词:数控车床代码刀具

王强锋

(西北工业大学机电学院,陕西西安 710072)

数控车床仿真系统的开发是一个较为热门的研究方向。本系统采用VB工具以Fanuc 0-TD数控车床为原型设计完成,VB的各种内置控件和对象为仿真系统的操作界面的设计、NC代码编译器的开发以及动态仿真的实现过程提供了极大的方便。利用VB工具设计开发的数控车床仿真系统是在微机上实现的用动态画面模拟实际车削加工过程的仿真软件。它可以在虚拟环境中实现与真实Fanuc 0-TD数控车床同样的功能,而且具有安全方便、省时省料的特点。

1 仿真系统的结构框架

数控车床仿真系统主要包括刀具数据库模块、NC代码编译器模块和动态仿真模块三部分。系统的开发,是根据系统的各个功能模块,本着高内聚低耦合的原则,按照图1所示结构流程设计完成,完全依据真实的数控车床的功能结构来构建仿真软件的功能框架;充分利用VB强大的可视化界面设计功能,仿真系统的界面设计也尽可能保证其与真实的Fanuc 0-TD数控车床的逼真性。仿真系统启动后的主界面如图2所示。

当用户选择“液压启动”时,软件开启(图3),然后用户便可以根据Fanuc 0-TD数控车床的操作说明书的要求来进行相关操作。

2 刀具数据库的设计与实现

刀具数据库能够容纳不同型号刀具数据并进行有效管理。刀具数据管理包括数据的增加、删除、修改、浏览和查找等。在建立刀具数据库时,需要把刀具看作一个实体,每个刀具实体都包含有若干参数,每一个参数对应于刀具的一个属性,把刀具的各种属性设计为刀具的一个“类”;对于多把刀具,则将它们的各种参数输入到对应的属性项中,形成一个二维表。二维表每一列表示刀具的一个属性,二维表每一行对应于某刀具的各种属性值。对应这样的二维表,利用Microsoft SQL sever数据库管理系统建立刀具数据库。

在仿真前,从刀具数据库中选择合适刀具,形成车刀具库,并生成刀具文件,即刀具库的配置。仿真时,按刀具号从刀具文件提取刀具数据,生成刀具实体,进行加工仿真。

2.1 刀具的定义

刀具属性包括刀具几何信息和非几何信息两部分。数控车床的刀具通常由刀具体和刀柄两部分组成,而刀具体又包括刀体和刀头两部分,因此刀具几何信息的定义主要是指这三部分实体的几何参数。刀具非几何信息包括刀具编号、刀具种类和刀具材料等。

2.2 刀具数据库的建立和管理

为实现刀具数据灵活方便的管理和在数控加工过程仿真中对刀具信息的访问,系统运用面向对象的方法,以VB为开发工具,利用其提供的“DAO”类实现刀具数据库的管理。

首先定义数据库对象、表对象和表记录对象,这样就与事先用Microsoft SQL sever构建的刀具数据库建立起了联系;接着通过表记录对象的函数使表处于可读写状态;最后再调用记录对象的其他一些相关函数如表记录的增加、表记录的删除、表记录的更新等操作,即实现了刀具数据的增加、删除、修改、查找和浏览等功能。

2.3 车床刀具库的配置

数控车床在每次运行之前要在刀架上预装若干把刀具,仿真系统也是如此。每把刀具按刀位编号,数控加工程序按编号取刀车削工件。为了模拟这一过程,在数控仿真从已建立的刀具数据库中读取刀具数据,通过刀具库配置形成车床当前刀具库,并以文件的形式存入计算机。刀具文件记录了刀具的各种属性:有几何属性,如刀具直径、长度补偿、径向补偿、工作长度和全长;有辨别属性,如刀具号等。对于刀具库配置,需建立一个基于对话框的类,通过此类中的各成员函数发送各种消息,用于刀具的增加、删除和形成刀具文件。该类中包含 OnAddDao();OnCutDao()和 OnSave()等成员函数。其中OnAddDao()用于从刀具数据库中选择刀具数据加入当前刀具库;OnSave()用于将所有选择的刀具形成刀具文件并存入计算机,待车削仿真用。建立好的刀具实体模型如图4所示。

3 NC代码编译器的设计

一个完整的数控程序是由若干NC代码组成的,每个NC代码完成特定的操作功能。程序输入后,系统即进行代码编译。NC代码编译是系统的核心程序。NC指令解释其实质是模拟数控系统对输入的NC程序进行译码、指令解释、输出控制速度、控制加速度、并显示指令解释轨迹、仿真时间、仿真轨迹的距离。其主要流程如下:

(1)读入NC代码,并进行预处理

主要完成对NC代码的词法、语法及其逻辑结构检查,将读入的NC代码除去非几何信息和工艺信息,取得NC代码中的有用信息,并转化为字格式。

NC代码的语(词)法检查是针对数控程序中每一个代码段进行的,检查的目的是查看数控指令是否符合数控系统的语法规则。

NC代码的逻辑结构检查主要是检查主程序和子程序结构的完整性。每个主程序和子程序都有一个完整的组织形式,如程序开始字符、程序号、程序主体、程序结束代码和程序结束字符等。

NC代码编译器除了对NC代码进行逻辑结构、词法和语法的检查,还应能提取NC代码中的加工信息,并将其存放在加工代码信息结构中,供加工时调用。

(2)词法分析和语法分析

编译模块采用“解释—编译”方式对数控加工代码进行译码。该译码方法的运行过程是编译程序要进行两次扫描,且扫描的对象不同。

第一次扫描的对象是数控加工程序中的各种地址符,此过程进行词法、语法和简单的语义分析,判断其是否符合NC程序的语法(词法)规则。例如:NC代码的有效数字必须是%、N、G、M…;同组G代码在同一段中不能同时出现;M代码G代码后面必须跟两位有效数字代码等。这些规则必须存放在事前定义好的用SQL sever建立的规则知识库中。扫描的同时提取数控加工程序中主要加工信息,如 G00、G01、G02、G03等,并按先后顺序将加工信息存放到编译结果缓冲区尺寸链表,且设置插补类型标志位以供第二次扫描时使用。

若第一次扫描检查无错则进行第二次扫描。在扫描时,系统调用中间代码生成程序,生成中间代码,并对中间代码进行优化,使之成为适合为后面NC代码编译的格式。此时,第二次扫描的对象是编译结果缓冲区中各插补标志位,通过识别各个插补标志位从编译结果缓冲区尺寸链表中读取刀位数据信息,并由此刀位数据信息来驱动相应插补模块完成车削加工过程的插补运算。

(3)NC代码的编译过程

每个NC命令都有唯一与其相对应的二维(或一维)数组,如:对于代码G01 X150 Y75其对应的二维数组为 G01=Array(“X”,“150”;“Y”,“75”)。该数组所存放的值即为代码功能函数的参数。每个NC命令的功能的实现都是通过调用相应的VB函数实现的,对于特殊指令要进行特殊处理。NC代码的编译是根据中间代码查找合法代码的字的地址位置,取出其后的数字,赋给对应代码的一维或二维数组单元中。NC代码编译的VB实现过程如下:!代码分类。按顺序读代码,确认实现何种功能的NC代码,并调用相应的功能函数库。"代码识别。根据代码在确定的功能函数库内查找并调用相应的功能函数。#命令代码功能的具体实现。根据命令代码完成相应的功能,并驱动显示区里事先定义好的车削刀具根据指令不断移动,实现加工过程的动态仿真。

4 动态图形显示的实现

动态图形显示所完成的功能就是根据输入的指令代码,经过代码编译后,驱动显示区以动画的形式形象地模拟数控车床的切削加工过程。本系统采用了图段变换技术,其依据是比较法插补原理,当刀具与工件接触时,工件与刀具的公共部分即被屏幕背景色覆盖,看上去就是工件的加工余量被除去或者说是刀尖走出了程编轨迹。其实现步骤如下:

(1)在显示区预置毛坯模板,用模板缓存内容为0画毛坯;

(2)启用深度缓存检验。绘制刀具运动包络体,设置颜色缓存的内容为只读。所画刀具运动包络体不显示,但是模板缓存中相应内容变为1;

(3)启用模板缓存检验,设置模板缓存内容为1的区域为可显示图形;

(4)按由远到近的顺序,显示刀具轨迹中的每一个像素,且轨迹图形上下对称;

(5)将全部模板缓存内容设置为0,并在图形中标示;

(6)如果还有刀具轨迹需要显示,返回第(2)步;如果没有刀具轨迹需要显示,程序结束。

5 系统的运行效果测试

运行仿真系统,进入主界面,点击“液压启动”后,输入以下NC测试代码(图5):

将“方式选择”旋钮调至“自动”,按下“循环启动”,程序运行过程如图6所示,最终的加工效果如图7所示。

6 结语

利用VB工具设计开发的Fanuc 0-TD数控车床仿真系统,可以模拟现实车床的操作界面、刀具运动的轨迹、及工件加工后的效果。既可以降低制造成本,提高了加工的效率;又有利于实现加工方案的优化。其应用在实验教学、数控加工程序的可靠性验证等效果良好,具有一定的实用价值。

[1]张霞,杨岳.数控加工仿真中刀具数据库的设计与实现[J].计算机与现代化,2009(7):139-141.

[2]肖忠跃,刘朝晖,等.数控车削虚拟仿真系统代码编译器的研究与开发[J].机械设计与制造,2009(7):182-184.

[3]伍铁军,周来水,等.数控仿真的实时真实感图形显示[J].计算机辅助设计与图形学学报,2000(4):291-293.

[4]Harvey M.Deitel,等.Visual Basic 6 How to Progiam[M].北京:电子工业出版社,2003.

猜你喜欢

数控车床代码刀具
一种加工偏心零件数控车床
无织构刀具与织构刀具铣削性能对比研究
创世代码
创世代码
创世代码
创世代码
切削刀具刃口形貌对刀具使用寿命的影响
CH5116C/1数控车床换刀故障剖析
多功能刀具
基于GSK988T的数控车床控制系统