特种复合加工中心数控系统G代码编译器设计*

2015-11-03 05:26潘海鸿叶文海张秋杰
组合机床与自动化加工技术 2015年6期
关键词:词法编译器译码

潘海鸿,叶文海,陈 琳,张秋杰

(广西大学机械工程学院,南守 530004)

特种复合加工中心数控系统G代码编译器设计*

潘海鸿,叶文海,陈 琳,张秋杰

(广西大学机械工程学院,南守 530004)

为解决自主研发的钣金刻铣与激光切割复合加工中心开放式数控系统的译码问题,针对该复合数控系统在同一机床坐标系下既要实现铣削功能还要能够完成激光切割的特点,提出采用分段提取、逐行分析的方法设计一种适用于平面复合加工的G代码编译器。该G编译器设计过程中除考虑处理传统铣削加工指令外,还要考虑激光和专用夹具控制指令的代码检测和译码,并以数据结构体形式存放编译后的加工数据。通过实际加工实验验证了所开发的G代码编译器的可行性。

特种复合加工中心;数控系统;G代码编译器

0 引言

数控技术结合传统机床技术与信息技术,是制造工业现代化的重要基础。随着科技的发展,与传统封闭式数控技术相比开放式全闭环数控更符合未来发展趋势[1]。“PC+NC(运动控制器)”型开放式数控系统[2-3]具有很好外部扩展性、适应性和灵活性,能根据用户要求定制特种复合加工系统。自主研发的钣金刻铣与激光切割复合加工中心结构上为“PC+NC”型开放式数控系统,即运动控制器为主体,PC作为上位机运行系统控制软件处理非实时性任务[4],如响应用户消息、G代码的编译[5]等。

数控加工代码是指导数控系统加工的关链信息。目前,对数控代码进行处理的方式主要有两种:解释和编译[6-7]。解释需要将代码表示成某种中间形式再加以执行,译码效果有限;编译则直接将代码转换成为计算机上可执行的数据流,由控制器直接读取执行,译码效果理想。在“PC+运动控制器”型开放式数控系统中,上位机PC负责将G代码编译成为可供运动控制器直接读取的目标程序格式,完成加工信息与非加工信息分离和有效管理。

针对自主研发的钣金刻铣与激光切割复合加工数控系统要求在同一机床坐标系下既要实现铣削功能还要完成激光切割的特点,设计一种G代码编译器,实现对加工G代码的检错、译码及数据管理。

1 G代码编译器总体设计

G代码编译器是数控系统连接上(PC)下(运动控制器)位机的重要模块[8],该模块主要完成对符合标准或特定格式要求的G代码进行编译,然后以结构体形式存放在上位机申请的动态数组中等待打包下发给运动控制器。所设计编译器整体流程如图1所示,在编译器内部实现对G代码的词法、语法分析和指令模态下传,并对存在问题的程序段进行错误提示。

图1 G代码编译整体流程图

2 G代码编译器的实现

自主研发的数控系统控制对象为特种复合加工中心,该设备的结构包括通用三轴铣削数控加工中心部分、激光轴部分和专用夹具部分。因此,G代码编译器设计时除了满足常规数控标准G代码指令译码要求外,还需识别激光轴和专用夹具控制指令。

2.1 词法分析程序的实现

数控加工代码由字母与数字数据组成,对其进行词法分析需完成数据分离、提取和格式转换工作。根据特种复合加工中心的结构特点,在词法分析程序定义的G代码字符集中增加激光轴标识符Q和M21、M53等激光、夹具控制指令。所设计的G代码编译器词法分析步骤如下:

(1)以程序段为单位对G代码逐行读取,将程序段存至临时字符串数组中。从程序段中读取一个字符,忽略其大小写,判断该字符是否在定义的数控系统G代码字符集中。若不在,则标记错误类型以及错误位置,并跳出编译循环提示用户错误信息;若存在,提取该字符后的数据信息。

(2)根据读取的字符类型将其数据进行转换。根据字符的类型调用函数atoi()或者atof()将数据转换为int型或float型。当出现非常规数字(如出现两个正负号或一个以上小数点),则标记错误类型以及错误位置,并跳出编译循环提示用户错误信息。

2.2 语法分析程序的实现

词法分析仅对G代码程序字进行检测,但无法确保程序段语法的正确性。因此,需要对词法分析所识别出的功能字和数据按照标准G代码数控指令的规则和语法进行检查。针对特种复合加工中心的主轴与激光轴的移动位于同一方向的结构特点,在程序段语法分析时增加了对进给轴的互锁检查。G代码编译中对程序段进行如下语法分析:

(1)程序段号检查:将当前程序段号与前一段对比,若不符合递增规律,则标记错误类型;

(2)程序段模态指令检查:标记程序段中同组模态指令出现次数。当该程序段同时存在多个同组指令,如G02 G03 X100,则标记错误类型;

(3)冗余指令检查:判断程序中是否出现冗余指令或字符,如同一行中出现两个X坐标字,则标记错误类型;

(4)指令数据和进给轴行程范围检查:若存在数值超程,如主轴转速超过上限10000 r/min,则标记错误类型;

(5)进给轴互锁检查:若程序段中同时存在主轴和激光轴的运动指令,则标记错误类型。

当语法分析过程中错误类型标记不为空,则跳出编译循环并提示用户错误信息和程序段位置。词法、语法分析程序实现流程见图2。

图2 词法、语法程序分析流程图

2.3 指令模态下传的实现

在G代码中有一些模态功能[9-10]指令,如 G00、 G01等。这类指令将会保持有效直到被下一条具有相同模态功能的指令所替换,调用函数CheckSen()实现程序段间的模态传递。具体实现流程见图3,其中SenErr是模态下传时出现错误的标记。

图3 G代码模态下传流程图

3 编译数据存储

译码过程中需对所提取的加工代码数据进行存储,因此设计结构体GCODE保存G代码程序段编译完成后所得数据,并以动态数组存储G代码文件的全部译码数据。GCODE结构体如下:

4 实验验证

以钣金刻铣与激光切割复合加工中心开放式数控系统为实验平台,通过图形仿真与实例加工来验证所设计G代码编译器的可行性。

绘制加工零件并生成对应G代码,将该G代码导入钣金刻铣与激光切割复合加工中心数控系统上位机控制软件,导入的部分G代码如图4所示,经过编译代码后的轨迹仿真和实例加工的样例分别如图5a和图5b所示。

图4 导入的部分G代码

图5 上位机控制软件仿真和实例加工样例图

5 结束语

针对自主研发的开放式数控系统具有钣金刻铣与激光切割复合加工的特点,设计出一种既满足一般通用性又满足刻铣与激光切割复合加工要求的G代码编译器。该编译器能够对G代码进行词法和语法分析,并提示译码过程中的错误信息。实际加工实验结果表明所开发的G代码编译器能准确实现数据提取与解析,完成加工信息的转换。该研究可为后续开放式数控系统的开发与实现提供一定的借鉴作用。

[1]刘思胜,李松生,陈萍.数控G代码解释器和仿真模块的设计与实现[J].机械设计与制造,2012(1):172-174.

[2]周凯.PC数控原理、系统与应用[M].北京:机械工业出版社,2006.

[3]房书文,张桂香.PC内嵌NC型开放式数控系统软件的研制开发[J].组合机床与自动化加工技术,2005(11):53-55.

[4]张政,吴序堂,马书根,等.基于软件化体系结构的数控机床主控系统的开发[J].机械工程学报,2003,39(2):93-97.

[5]周刚,邬义杰,潘晓弘.数控系统软件模块实时调度方法[J].机械工程学报,2009,45(1):162-166.

[6]贾旭,卢晓红,王鑫鑫,等.基于PMAC的微铣床数控系统中G代码编译研究[J].组合机床与自动化加工技术,2012(3):104-107.

[7]张学飞,李健.开放式数控系统G代码的编译模块设计[J].机械设计与制造,2010(10):87-88.

[8]伍抗逆,李斌,陈吉红.面向开放式数控系统平台的NC代码解释器开发[J].中国机械工程,2006,17(2):168-171.

[9]刘书华.数控机床与编程[M].北京:机械工业出版社,2001.

[10]林砺宗,兰刚,宋启盛,等.面向固高数控卡的G代码系统[J].模具技术,2009(1):5-8.

(编辑 赵蓉)(编辑 赵蓉)

The Design of G Code Compiler for Special Compound M achining Center NC System

PAN Hai-hong,YE Wen-hai,CHEN Lin,ZHANG Qiu-jie
(College of Mechanical Engineering,Guangxi University,Nanning 530004,China)

In order to solve the code compilation problem of self-developed laser cutting sheet metal with engraved milling machining center open NC system,the method of sub-extraction and line by line analysis was proposed to design a G-code compiler.When this G-code compiler is designed for flat composite processing,the characteristics of complex NC system in the same machine coordinate system to achieve milling and laser cutting must be considered.This designed G-code compiler not only fits to realize the traditional milling instructions,but also fits to realize G code detection and decoding of laser and special fixture control instructions.The compiled data was stored in the form of data structure.The experiments indicate that the developed G-code compiler is feasibility.

special compound machining center;NC system;G-code compiler

TH166;TG659

A

1001-2265(2015)06-0071-03 DOI:10.13462/j.cnki.mmtamt.2015.06.020

2014-09-02,

2014-10-20

国家自然科学基金(51465005);南宁市科技攻关(20141018)

潘海鸿(1966—),男,壮族,广西壮族自治区武鸣市人,广西大学教授,博士,博士生导师,研究方向为数控技术、机器人控制技术,(E-mail)hustphh@163.com;通讯作者:陈琳(1973—),女,山东青岛人,广西大学教授,研究方向为数控技术、数字信号检测与处理、伺服电机控制,(E-mail)gxdxcl@163.com。

猜你喜欢
词法编译器译码
基于对数似然比与极化信道可靠度的SCF 译码算法
基于扩大候选码元范围的非二元LDPC加权迭代硬可靠度译码算法
分段CRC 辅助极化码SCL 比特翻转译码算法
面向理想性能空间的跨架构编译分析方法
基于校正搜索宽度的极化码译码算法研究
基于相异编译器的安全计算机平台交叉编译环境设计
运行速度大突破华为《方舟编译器》详解
应用于词法分析器的算法分析优化
词法分析程序的设计与实现研究
2010年高考英语“相似”考题例析