四川省装备制造业机器人应用技术工程实验室 雷刚 施芸 汪健 王涛
本文介绍了数控切割机中加工零件的图形显示方法,分析了实现零件显示的基本方法和步骤,提出了利用检索零件极值坐标实现零件尺寸提取的方法,利用坐标变换方式实现了基于切割零件数控代码在软件系统中的图形显示。
数控切割机在切割加工过程中,需要用户将加工零件以NC代码(数控代码)的形式输入数控切割机[1],数控切割机读取NC代码的数据信息控制切割头进行加工。但由于零件的复杂性、输入过程中的差错等可能导致需求与实际切割效果的差异。为解决该问题,可以在数控切割机的软件系统中添加加工零件的图形显示功能[2]。当用户将NC代码输入数控切割机后,利用图形显示功能可以将加工的零件的图形显示出来,保证了零件加工的有效性,减少了加工零件的废品率,提高了生产效率。
在现阶段,数控系统有多种不同的形式,在本项目中选用PC104工控板作为整个系统硬件平台。该工控板具有以下优点[3]:
(1)PC104具备小尺寸(96mm×90mm)优势,便于系统的集成。
(2)采用多重叠压式结构,在工业现场具有很好的抗震性能。
(3)丰富的硬件和软件资源,便于实现系统功能的需要。
(4)PC104应用极为广泛,各大专业厂商的支持力度大,为系统的开发提供了便利条件。
在数控切割机软件开发中使用MS-DOS作为系统环境,进行系统软件的开发。同时为克服DOS环境下的限制问题,使用DJGPP软件工具进行软件开发[4]。DJGPP是一个开源的应用软件,是由DJ Delorie发起和编写的。该软件是全开源的软件,任何需要的用户都可以通过网络得到软件的源代码,并进行修改使用,没有任何费用负担。该系统的使用环境与Turbo C的使用环境基本一致,对于使用C语言进行程序开发的人员,可以很容易的安装使用。
数控切割机进行零件的显示实现过程中,首先需要将各个节点的数据信息依次读出进行处理[5]。针对于不同的加工零件,需要根据显示屏和加工零件尺寸进行计算,确定显示区域大小与零件大小的关系,确定相互比例和转换坐标,经过转换后才能实现显示。由于数控代码是根据直线和圆弧进行图像拟合的,图形显示实质就是利用直线和圆弧绘制工具进行绘图的过程。另外在部分数控切割机中,可能使用子程序调用和程序转移指令,在显示程序中必须对该类复合指令进行处理。结合以上情况,使用模块式结构进行软件设计,其基本结构如图1所示。
图1 软件结构图Fig.1 Software structure diagram
(1)显示预处理模块。这一模块为图形显示设定初始化条件,规定显示的区域和范围。通过对加工零件数控代码的极值检索,计算出加工零件的区域范围,通过比较显示区域和加工零件区域,计算出显示比例。同时根据显示器和数控代码坐标系的差异推导出两者的转换坐标[6]。
(2)直线显示模块。这一模块实现直线轨迹显示。通过数据分析,调用直线绘制函数line(),绘制出G00和G01的运行轨迹。
(3)圆弧显示模块。这一模块实现圆弧轨迹显示。通过数据提取和处理,然后调用圆弧绘制函数arc()和circle(),分别绘制出不同的圆弧运行轨迹。
(4)回参指令显示模块。该模块完成数控代码中回参指令G26/G27/G28的轨迹显示。分别绘制出3种不同的回参轨迹。
(5)复合指令显示模块。该模块完成数控代码中复合指令的轨迹显示。其中G98和G99一起实现子程序的轨迹显示;G22和G80一起实现循环程序的轨迹显示。
为保证将加工零件的图形合理的显示在显示屏上,需要首先对该零件的NC代码进行极值检索(由于切割机系统为一个二维系统,实质为X方向和Y方向的极值检索),进而确定显示比例[7]。由于NC代码的相关信息已经提取到链表的节点中,极值的检索实际就是对各个节点涉及的数据检索。为此在软件设计中,定义了一个maxxy[i]数组。其中:
图 2 圆弧极值检索方法Fig.2 Arc extremum retrieval method
(1)maxxy[0]存放水平方向(X方向)的正向最大值;
(2)maxxy[2]存放水平方向(X方向)的负向最大值;
(3)maxxy[1]存放垂直方向(Y方向)的正向最大值;
(4)maxxy[3]存放垂直方向(Y方向)的负向最大值。
经过极值的检索后,切割轨迹在水平方向的范围为:maxxy[2]-maxxy[0];在垂直方向的范围为:maxxy[3]-maxxy[1]。
在数控切割机中,切割路径都采用直线和圆弧进行拟合,所以加工轨迹的极限值检索就是对直线切割代码和圆弧切割代码的极限值检索。
具体实现方法是:先判断采用的坐标表示类型(绝对坐标/相对坐标),分别进入两种不同处理通道,得到终点坐标的数据,最后与已有的极限坐标值进行比较,得到当前的极值坐标。
具体实现方法是:先读入逆时针圆弧切割的参数信息,首先看起点是否出现极值,其次以圆心为坐标原点建立一个二维坐标系;然后分别计算出起点和终点在该坐标下的象限位置;最后围绕圆心O,以起点开始逆时针旋转,直到与终点处于同一象限,在旋转过程中,判断经过的象限情况,分析出极限值出现的位置,最终得到逆时针圆弧上的极限值。程序流程如图2所示。
显示器坐标系与数控代码坐标系如图3所示,通过对显示器的坐标系和数控代码表示的图形坐标系的分析可知,在显示器上显示时,不能使用负值的坐标,且Y轴的递增方向应该从上向下,所以需要使用一个转换坐标进行数控代码坐标的变换。具体实现方法是:在X方向,需要向正向平移一个反向极值;在Y方向,由于在显示和数控代码的表示上,变化方向是反向的,所以需要先进行镜像变换,再进行正向平移。具体变换关系如下:
图3 显示器的坐标和数控代码表示的图形坐标示意图Fig.3 Schematic diagram of the coordinates of the display and the graphic coordinates represented by the NC code
其中:K1为X方向显示比例调节系数;K2为Y方向显示比例调节系数。
由于零件的数控代码是根据直线和圆弧进行图像拟合的,图形显示实质就是利用直线和圆弧绘制工具进行绘图的过程。
先读入该链表节点的数据,判断读入坐标是相对或绝对坐标格式,通过参数计算得到直线起点和终点的坐标;其次根据初始化中得到的转换坐标,进行起点和终点的坐标变换;最后通过区分G00和G01的差异,调用直线绘制函数line(),分别绘制出G00和G01的运行轨迹。
在数控零件的加工过程中,圆弧运行包含G02(顺时针圆弧切割运行)和G03(逆时针圆弧切割运行)两类代码,以及圆心和半径两种表示形式。由于在标准C语言中圆弧函数arc()使用的是圆心、弧度和半径作为接口参数,为简化程序处理过程需要将不同的形式统一为逆向画圆弧。
经过对显示实现方法的分析、完成了相关程序设计与调试,并将设计的显示软件模块嵌入工程样机中,检验了软件的可靠性和稳定性。具体运行状态如图4所示。
图4 数控切割机图形显示图Fig.4 Graphical display of CNC cutting machine
引用
[1] 甘明,袁正萍,陈小亮.数控切割机系统加工代码图形库的开发[J].制造技术与机床,2010(2):85-87.
[2] 刘俊,杨代华,欧阳才校.基于OpenGL的数控加工代码图形库的开发[J].制造技术与机床,2009(1):29-31.
[3] 周海力,朱达书,刘冲,等.基于PC104结构的龙芯1A嵌入式控制模块设计[J].测控技术,2017,36(10):98-101+121.
[4] 高强业,王宪平,李圣怡,等.保护模式软件开发环境DJGPP在实时高速数据采集中的应用[J].现代电子技术,2003(11):42-44.
[5] 潘海鸿,叶文海,陈琳,等.特种复合加工中心数控系统G代码编译器设计[J].组合机床与自动化加工技术,2015(6):71-73.
[6] 吴志勇,鞠传香,郑雯玉.嵌入式Linux下PC/104数据采集模块驱动实现[J].仪表技术与传感器,2012(6):58-60+63.
[7] 张小林.嵌入式计算机PC-104在飞行控制系统中的应用[J].微电子学与计算机,2003,20(4):26-27+31.