吕云峰,丁喜祯,杜 谦
(1武汉数字工程研究所,武汉430074;2武汉理工大学,武汉430070)
火焰切割机主要用于切割碳素钢和低碳钢,是利用铁在氧气中燃烧产生动能进行切割的一种方法.在切割时,如果切割零件厚度变化较大,而且对切割质量和精度要求不太高时,使用火焰切割机最为适宜.但如果对切割质量和精度有严格要求时,就必须采用数控系统控制切割轨迹.目前国外企业的火焰切割机普遍采用了数控系统进行加工,不仅提高了加工零件的利用率,而且还大大改善了产品质量,提高了工作效率.我国的机械行业大部分采用手动控制火焰切割,不仅效率低下,而且不能满足市场的需求.因此,开发一套高效、低成本的数控火焰切割机系统,在我国有着广泛的应用前景[1].
数控火焰切割机是一种特种数控加工机床,它具有一般数控机床的特点,即能根据数控加工程序,自动完成切割过程,但也_有一些不同之处.由于火焰切割机不像金属切削机床那样靠切削工具与工件的刚性接触来去除被加工材料,而是利用气体火焰将钢材表层加热到燃点并形成活化状态,然后送进高纯度、高流速的切割氧,使钢板燃烧.与此同时,高压氧吹除熔渣,从而形成切口将钢材割开.因此加工过程中工件受力较小[2].
火焰切割机的加工过程包括点火、预热、通切割氧、切割、熄火、返回原点整个过程,由于加工时要有预热,所以不能像激光加工、电加工那样对能量收放自如,也不能像机械加工那样能在任意一点停止和开始加工.
由于国内研究的数控系统主要是基于DOS平台,基于Windows平台的数控火焰切割机系统比较少见,而且代码也没有完全开放.因此本文是基于数控机床发展中存在的一些问题及我国的研究现状,结合某科技开发有限公司“基于Windows平台的数控火焰切割机系统”这个项目对数控系统进行研究,并采用Visual C++实现对系统软件功能的模拟仿真.
用户界面分层次统一管理数控系统的各种功能,界面的主体部分主要显示机床切割轨迹仿真图形;界面的左上半部分,用来显示G源代码文件,以便用户观察图形的正确性;下半部分用来显示切割过程中的机床坐标位置以及实时切割速度,便于用户实时观察;同时增加了功能按键,可以方便用户随时添加G源代码进行编译仿真.本数控火焰切割机系统操作界面如图1所示.
图1 数控火焰切割机系统操作界面Fig.1 NC flame cuttingmachine system operation interface
对数控代码的处理包括译码和刀具半径补偿.译码模块是对加工数据进行处理的第一个模块,译码数据的正确与否直接关系到系统能否正常运行.译码模块处理的是标准的G代码,该模块中集成了对数控代码的读入、错误检查、加工轨迹参数的读取与规范、控制参数的读取与存储、代码优化等功能[3].
刀补模块是根据火焰切割的特点,将割缝宽度作为刀具半径.本系统中刀补模块采用基于矢量计算的C型刀具半径补偿算法,具体思路是:首先画出直线 → 直线、直线 → 圆弧、圆弧 → 直线、圆弧→圆弧4种转接类型在平面坐标下的图形,采用解析几何的思想,并利用三角函数关系推导出刀具补偿后刀具中心轨迹的起点、终点、相交点和插入点的坐标值.
2.3.1 待切割零件图形的预显
实际加工图形的大小与绘图区域显示的图形大小不一样,因此屏幕上显示的图形的每个点的坐标数据是经过同比例放缩的.而为了使每个待加工图形都能在屏幕上以尽可能大、尽可能清晰地显示在用户面前,这就需要针对每个图形计算出放缩倍数,我们把这个放缩倍数用AP来表示.AP的计算公式为:
AP=(实际零件的大小 /绘图区域的大小).
1)实际零件大小的计算.实际零件的大小,可以通过计算它在坐标系中的所占区域来获得.这就需要分别获得它在X轴和Y轴的最大、最小坐标参数.
对于直线,根据起点和终点坐标数据就可以很容易得到其在X轴和Y轴的最大最小坐标参数.这里,每段直线的终点要作为下一段直线的起点,否则计算会出错.
对于圆弧,如图2所示,它的起点和终点坐标并不一定就是它在坐标轴上的极值.所以我们通过它的起点和终点相对于圆心的分布,来对圆弧进行分类.然后针对每一个类别来计算其最大、最小坐标.
图2 图形映射在坐标轴上的极值Fig.2 In the imagemaps coordinates extreme value
根据圆弧的起点和终点相对于圆心的位置,以及圆弧的绘图方向(顺时针和逆时针),可以分为8类.下面是顺时针画图时,圆弧起点在圆心左边,终点在圆心右边的代码:
顺时针画圆弧的另外3种情况,分别是:起点在圆心右边,终点在圆心左边;起点和终点都在圆心左边;起点和终点都在圆心右边.这3种情况的代码结构与上面类似,这里不再列出.
图形在XY坐标轴上的最大最小值获得之后,就可以通过以下代码计算实际图形的大小(mx)了:
if(mx<my){mx=my;}/*在坐标轴上所占的最大区域*/
2)绘图区域大小的获得.绘图区域的大小要根据面板中选用的控件,来使用控件相应的函数来计算.比如我们选择在Canvas控件中绘制图形.通过下列函数可以获得Canvas控件的高度和宽度:
3)计算图形显示时的放缩倍数.根据前面两步,下面可以计算图形的放缩倍数:
得到零件的放缩倍数AP之后,可以计算图形在屏幕中显示时的坐标:
绘图显示坐标 =(零件实际坐标 /零件放缩倍数AP).
图3即为待加工零件图形预显功能的实现过程.
4)零件图形预显实例.下面采用的测试用例的G代码文件如下:
图3 预显的程序流程图Fig.3 Pre-show program flow chart
将上述G源代码输入系统后,经过译码编译得到零件图形的预显如图4.
2.3.2 模拟仿真
图4 零件图形的预显Fig.4 Part of pre-show graphics
仿真模块是在不启动电机的情况下而实现加工过程模拟的绘图模块.该模块与主框架的视图类密切联系,是由具体绘图函数、尺寸计算函数以及插补运算函数组成的.调用此功能,能对零件的代码进行检验,绘制零件加工的轨迹图形.
本系统的仿真功能是应用译码模块的数据进行插补,也就是对给定曲线进行细小划分,将给定的曲线划分成用许多小直线段逼近零件形状;再利用绘图函数将图形按设定时间间隔输出,来实现系统的加工轨迹仿真[4].系统仿真过程如图5所示.
图5 系统仿真过程Fig.5 System simulation
在此还是将上述G源代码输入数控系统,图6为经过译码、插补后得到的仿真图形(其中白线表示运动轨迹).
图6 模拟加工过程图Fig.6 Simulation process diagram
为建立上下位机的联系,除了硬件连接和软件系统编程外,建立标志位是上下位机进行通信的关键.标志位实际上是单个单位或连续的多单位的下位机内存空间,这些内存空间中所动态写入的值和加工数据代表了不同的控制内容,下位机实时检测这些内存空间,根据其内容决定下位机的动作,进行运动控制[5].
本文介绍了数控火焰切割机系统的软件功能设计模块,包括主框架、用户界面、数控代码的处理、零件图形的预显和模拟仿真过程,并在Visual C++平台上编程.在Windows下不仅能够轻松的设计出漂亮的人机界面,大大节省时间,而且对数控系统的推广和商业价值的实现是一个很好的促进.
[1]黄明吉.虚拟数控技术及应用[M].北京:化学工业出版社,2005.
[2]何 航.Windows下开放式数控系统软件设计与研究[D].电子科技大学,2004:40-43.
[3]赵海军,徐豪宁,孙旭东.开放式数控火焰切割机系统设计与开发[J].自动化技术与应用,2007,26(7):97-99.
[4]夏敏敏,张 屹,覃进一,等.基于模糊控制的超精密隔振平台优化设计与仿真[J].三峡大学学报:自然科学版,2010(5):57-61.
[5]王志成.数控原理与数控系统[M].北京:国防工业出版社,2007.