基于运动控制卡的雕刻机数控系统的研究与开发*

2013-09-12 09:09刘建群
组合机床与自动化加工技术 2013年9期
关键词:数控系统代码指令

刘 雷,刘建群

(广东工业大学机电工程学院,广州 510006)

0 引言

传统雕刻是一门技术性要求很高的手工技艺,雕刻品的质量完全取决于雕刻师的技艺水平,所以生产的效率低、成本高、制品的随意性强,一致性差,严重制约了雕刻行业的发展。随着市场的需求和计算机数控技术及相关技术的发展,数控雕刻机产业也获得了良好的发展机遇,开始了向自动化方向发展,由于其价格远比数控机床便宜,在广告、木材加工、饰品加工、模具加工等领域越来越受到广大用户的青睐[1]。随着各种新型材料的不断出现,能用于雕刻的材料越来越多,使得计算机数控雕刻机有了更大的用武之地。所以,数控雕刻机的应用范围将不断扩大。目前,国外的雕刻机主要有美国的“雕霸”、日本的“御牧”以及法国的“嘉宝”等,他们的设计和制造技术已相当成熟,但是其价格非常昂贵。在国内随着计算机技术和制造技术的发展,我国的雕刻机技术也有很大的进步,已经有了上海洛克公司生产的“啄木鸟”、北京精雕公司生产的“精雕”和南京科能公司生产的“威克”等多个品牌[2],也占有一定的市场。本课题研究的雕刻机控制系统采用“PC+运动控制卡”的模式,系统具有很强的开放性。

1 雕刻机系统硬件结构

目前,基于PC的系统是比较容易实现开放式数控系统,本雕刻机就是采用PC机与固高公司GT400多轴运动控制卡开发的一个开放式数控系统,其硬件结构组织如图1所示。

图1 系统的硬件结构

GTS-400运动控制卡是高性能的伺服运动控制卡,它可以同步控制四个运动轴,实现复杂的多轴协调运动。其核心由DSP和FPGA组成,可以实现高性能的控制计算。运动控制卡提供C语言等函数库和Windows动态链接库,实现复杂的控制功能,将这些控制函数与自己本系统所需的数据处理、界面显示、用户接口等应用程序模块集成在一起,建造符合雕刻机要求的控制系统,以适应雕刻加工的各种要求。

运动控制卡的工作模式有两种,脉冲模式和模拟量模式。在脉冲量信号输出方式下,又可以分两种,脉冲+方向信号模式和正/负脉冲信号模式[4],在本系统中使用脉冲+方向信号模式。

伺服电机和驱动器采用松下MINAS A5系列,可满足各种高速、高精度和高性能机器的要求。

2 雕刻机系统软件结构

本系统的控制软件是在Windows XP平台上以Visual C++6.0为开发工具,PC机主要负责文件的读取和图形的处理工作,运动控制卡负责各轴的运动控制,系统主要包括NC代码管理,加工运行,人机交互等几大模块,系统的软件结构如图2所示。

图2 系统的软件结构

2.1 NC代码管理

NC代码包含了数控机床实际加工零件时所需的一切信息,零件加工的工艺顺序,运动轨迹与方位,工艺参数以及辅助功能。每一个NC代码主要包含了各种准备功能的G指令、辅助功能的M指令、坐标功能字、进给功能字F、主轴转速功能字S、刀具功能字T和其它指令,本系统所能识别的指令见表1。

表1 系统所能识别的指令

(续表)

每一段NC代码程序表示了一个零件外形几何线条的加工或者是一些辅助功能,因此,无论是通过软件自动生成的NC代码或者是人工手动编写的NC代码,在加工之前都要进行错误检查,以确保零件在加工过程的安全性[5]。NC代码的错误检查主要有两个方面,词法检查和语法检查[6]。

词法检查主要是检查NC代码中每一指令字中的地址符,及其后面的数字类型、数字范围是否符合NC代码中的规则。词法方面的错误主要有以下几种:在程序中不能出现未定义的地址符号;地址符后面是否是数字;X,Y,Z方向的坐标值不能超过机床本身最大的工作行程;同一行NC代码中,同一组的模态代码不能重复出现等。

另外,在文字和影视中,小编更倾向于影视。原因其实很简单……一是因为接触武侠的时候,看的主要就是电视剧,于是对武侠影视作品有一种天然的亲近感,二是大侠们的古装造型,真的很好看。

语法检查主要是检查数控指令是否符合数控系统的语法规则。语法方面的错误主要有以下几种:圆弧插补的参数是否正确;圆弧的起点、终点和圆心是否正确构成圆弧等。

保存NC代码信息的类CCodeData结构如下:

要保存所有的NC代码信息,可以用一个链表CList<CCodeData,CCodeData& > g_CNCList来保存,链表的每一个结点保存一行NC代码的信息[7]。

NC代码对于计算机来说就是一堆字符,无法直接加工,必须将解释翻译成计算机可以识别的程序才可以用来加工,NC代码的错误检查和解释翻译软件流程如图3所示。

图3 NC代码的错误检查和解释翻译流程

首先,打开NC代码文件,利用CStdioFile类读取NC代码文件中的内容并显示在RichEdit控件中,或者可以直接在RichEdit控件中手动输入NC代码。

其次,在RichEdit控件中选择一行代码,并将其保存到一个字符数组中,分析数组中的每一个字符,检查是否有词法、语法错误。如果有错误,则提示此行错误,并说明错误类型,如:“此行X坐标重复!”。如果没有错误,使用C语言的库函数atoi()或atof()将一行代码中的各种加工信息转化为相应的G指令、辅助功能M、F等和X、Y、Z等的坐标信息,保存到CCodeData类的一个对象,添加到链表g_CNCList的一个结点,然后继续选择下一行代码进行检查,直到所有代码检查完为止。

2.2 加工运行

2.2.1 运动控制

运动控制卡采用的是固高公司的GTS-400运动控制卡,运动控制卡的插补运动模式可以实现4轴的协调运动,从而完成零件的加工运动。该插补运动模式具有以下一些功能:可以实现直线插补和圆弧插补;可以同时有两个坐标系进行插补运动;每个坐标系含有两个缓存区,可以实现缓存区暂停、恢复等功能;具有缓存区延时和缓存区数字量输出的功能;具有前瞻预处理功能,能够实现小线段高速平滑的连续轨迹运动[4]。

在软件中,将运动控制部分的功能编写到CMotionControl类中,调用运动控制卡提供的动态链接库gts.dll,主要包括对控制卡的初始化设置、点位运动、插补运动、回原点、端口的输入与输出等。

在系统启动时,先要对运动控制卡进行初始化:

(1)开运动控制卡:GT_Open();

(2)复位运动控制卡:GT_Reset();

(3)配置运动控制卡:GT_LoadConfig("GTS400.cfg");

在运动控制卡的初始状态下,所有轴都处于单轴运动模式,因此,要进行插补运动,就要建立坐标系,即工件坐标系,调用GT_SetCrdPrm()指令将各个轴映射到对应的坐标系中,控制各个轴来完成插补运动。

开始时,从链表g_CNCList读取CNC信息,使用运动控制卡的插补函数,将插补运动代码发送到运动控制卡的插补缓存区,启动插补运动,机床开始加工。

插补缓存区有4096段插补数据的空间,在数据量比较大的时候,如果当插补缓存区已满的时候,再向缓存区发送数据就会发送错误,导致数据溢出,丢失插补数据,会发送无法预料的危险,因此需要调用GT_CrdSpace()指令查询插补缓存区的剩余空间,只有当缓存区还有空间的时候,才能继续向缓存区发送数据。

2.2.2 速度前瞻预处理

对于小线段的插补加工,为保证刀具与加工工件接触面的光滑,应该尽量保证在轨迹运动过程中切向速度恒定,同时要保证一定的轨迹精度,然而在每一条线段的终点与下一条线段的连接处都会出现或大或小的拐点,在加工到这些拐点处必需做减速处理,以避免造成较大的冲击,影响机械和电机的寿命同时也影响加工的精度。速度应当降到多少,是否应该降到零,根据线段长度、速度、加速度、拐点速度变化以及加工工艺参数来计算出各段终点的速度。这种在加工前对速度做规划的处理方式就称之为速度前瞻预处理。做这种处理的目的是为了解决高速度与高精度之间的问题,做到在不影响加工精度、机械和电机寿命的同时使加工速度达到最大。使用和不使用前瞻预处理功能模块的速度如图4所示。

图4 使用和不使用前瞻预处理功能模块的速度比较图

2.3 人机交互界面和运行实例

雕刻机的人机交互界面是将数控系统的操作界面显示在PC机的显示器上,为操作者提供一个直观的操作界面,软件的操作界面和运行实例如图5所示,其中的泰迪熊模型为刀具路径的三维预览。操作界面主要包括参数设置、功能显示、图形显示等。在参数设置界面上可以方便地设置机床参数和电机参数。功能显示包括机床坐标、工件坐标和工件坐标原点的设置按钮,以及当前的加工速度和调节加工速度倍率,手动控制按钮,还有菜单栏、工具栏和状态栏等。图形显示主要包括三维图形预览和雕刻机加工时轨迹实时动态跟踪的显示。

图5 软件的操作界面和运行实例

3 结论

基于PC+运动控制卡的雕刻机数控系统达到了预期的设计目的,本系统具有很强的开放性和灵活性,在开发过程中,充分利用了运动控制卡强大的计算能力和伺服控制能力及PC机上Visual C++的高效灵活的编程能力,既快速调用运动控制卡的库函数,又可以方便地增加新的功能模块。

[1]韩立洋.基于Windows平台三轴雕刻机数控系统的研究[J].科学时代,2010(9):120-121.

[2]王忠平.基于DSP的数控雕刻系统研究及其仿真实现[D].上海:上海交通大学,2007.

[3]张宏,李富平.基于PC+运动控制卡的开放式数控系统的研究[J].机械设计与制造,2008(6):171-172.

[4]GTS系列运动控制器编程手册[Z].深圳:固高科技(深圳)有限公司,2009.

[5]胡志祖.基于VC的数控G代码解释器的设计与实现[J].中国重型装备,2009(1):31-34.

[6]许小明,王硕桂.基于PC的开放式数控系统代码编译器的开发[J].机床与液压,2009(11):41-44.

[7]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2007.

猜你喜欢
数控系统代码指令
《单一形状固定循环指令G90车外圆仿真》教案设计
创世代码
创世代码
创世代码
创世代码
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
中断与跳转操作对指令串的影响