本文讲解G代码的基本概念。
- G代码 1.1. 基本概念 1.1.1. G代码解释器 G代码(G-code,又称RS-274),是最为广泛使用的数控(numerical control)编程语言,有多个版本,主要在计算机辅助制造中用于控制自动机床。G代码有时候也称为G编程语言。 G代码是数控程序中的指令。一般都称为G指令。使用G代码可以实现快速定位、逆圆插补、顺圆插补、中间点圆弧插补、半径编程、跳转加工。 G代码解释器是全软件式数控系统的重要模块。数控机床通常使用G代码来描述机床的加工信息,如 走刀轨迹、坐标的选择、冷却液的开启等,将G代码解释为数控系统能够识别的数据块是G代码解释器的主要功能。G代码解释器的开放性也是设计和实现中必须要考虑的问题。 在G代码解释器中,对G代码进行关键字分解是骨架,,对代码进行分组则是进行语法检查的基 础。王心光等人在虚拟数控加工仿真中使用Microsoft的GRETA正则类库,解决了G代码关键词分解问题,这种方法建立在 Microsoft提供的工具基础上,同时使用C++语言;付振山使用VC++ 6.0 开发, 构造了有穷自动机来描述在输入字符串中关键字识别模式G代码解释器是全软件式数控系统的重要模块。数控机床通常使用G代码来描述机床的加工信息,如走刀轨迹、坐 标系的选择、冷却液的开启等,将G代码解释为数控系统能够识别的数据块是G代码解释器的主要功能。G代码解释器的开放性也是设计和实现中必须要考虑的问题。在G代码解释器中,对G 代码进行关键字分解是骨架,对代码进行分组则是进行语法检查的基础 [1] 。
1.1.2. G代码解释器的总体结构 由图 1 可以看出, G代码 解释器 读取 G 代码, 将 其解释 成G 中间代码, 然后经过插补、位置控制处理, 最后由输出模块调用驱动程序输出到硬件( 一 般为 PCI 或 ISA 卡) 。G 代码可以如图 1 的方式运行, 也就是说 G 代码的解释, 包括语法检查都在加工过程中 进行, 这种 方式比 较费时, 不利 于加工过程。本文设计的 G 代码解 释器采用了另外一 种处理 方式, 解释器有两种运行状态: ①读取 G 代码。进 行 G 代码 的解释, 包括词法检查、语法检查等; 将其解释成数控系统能识别的数据块, 即中间代码; 将中 间代码 以文件 的方式 进行保 存。②在加工的过程中, 读取中间代码文件并运行之 [2] 。
1.2. G代码的分组 分析, G 代码可以分为 10 组, 同组中的 代码只能在 一行代码中出现一次。G代码、M代码分组如图 1、图3所示。
1.3. G代码的功能 代码名称-功能简述 G00------快速定位 G01------直线插补 G02------顺时针方向圆弧插补 G03------逆时针方向圆弧插补 G04------定时暂停 G05------通过中间点圆弧插补 G06------抛物线插补 G07------Z 样条曲线插补 G08------进给加速 G09------进给减速 G10------数据设置 G16------极坐标编程 G17------加工XY平面 G18------加工XZ平面 G19------加工YZ平面 G20------英制尺寸(法兰克系统) G21-----公制尺寸(法兰克系统) G22------半径尺寸编程方式 G220-----系统操作界面上使用 G23------直径尺寸编程方式 G230-----系统操作界面上使用 G24------子程序结束 G25------跳转加工 G26------循环加工 G30------倍率注销 G31------倍率定义 G32------等螺距螺纹切削,英制 G33------等螺距螺纹切削,公制 G34------增螺距螺纹切削 G35------减螺距螺纹切削 G40------刀具补偿/刀具偏置注销 G41------刀具补偿——左 G42------刀具补偿——右 G43------刀具偏置——正 G44------刀具偏置——负 G45------刀具偏置+/+ G46------刀具偏置+/- G47------刀具偏置-/- G48------刀具偏置-/+ G49------刀具偏置0/+ G50------刀具偏置0/- G51------刀具偏置+/0 G52------刀具偏置-/0 G53------直线偏移,注销 G54------直线偏移x G55------直线偏移y G56------直线偏移z G57------直线偏移xy G58------直线偏移xz G59------直线偏移yz G60------准确路径方式(精) G61------准确路径方式(中) G62------准确路径方式(粗) G63------攻螺纹 G68------刀具偏置,内角 G69------刀具偏置,外角 G70------英制尺寸 寸 (这个是西门子的,法兰克的是G20) G71------公制尺寸 毫米 G74------回参考点(机床零点) G75------返回编程坐标零点 G76------车螺纹复合循环 G80------固定循环注销 G81------外圆固定循环 G331-----螺纹固定循环 G90------绝对尺寸 G91------相对尺寸 G92------预制坐标 G93------时间倒数,进给率 G94------进给率,每分钟进给 G95------进给率,每转进给 G96------恒线速度控制 G97------取消恒线速度控制
1.4. G代码注意的事项 1、G00与G01 G00运动轨迹有直线和折线两种,该指令只是用于点定位,不能用于切削加工 G01按指定进给速度以直线运动方式运动到指令指定的目标点,一般用于切削加工 2、G02与G03 G02:顺时针圆弧插补 G03:逆时针圆弧插补 3、G04(延时或暂停指令) 一般用于正反转切换、加工盲孔、阶梯孔、车削切槽 4、G17、G18、G19 平面选择指令,指定平面加工,一般用于铣床和加工中心 G17:X-Y平面,可省略,也可以是与X-Y平面相平行的平面 G18:X-Z平面或与之平行的平面,数控车床中只有X-Z平面,不用专门指定 G19:Y-Z平面或与之平行的平面 5、G27、G28、G29 参考点指令 G27:返回参考点,检查、确认参考点位置 G28:自动返回参考点(经过中间点) G29:从参考点返回,与G28配合使用 6、G40、G41、G42 半径补偿 G40:取消刀具半径补偿 7、G43、G44、G49 长度补偿 G43:长度正补偿 G44:长度负补偿 G49:取消刀具长度补偿 8、G32、G92、G76 G32:螺纹切削 G92:螺纹切削固定循环 G76:螺纹切削复合循环 9、车削加工:G70、G71、72、G73 G71:轴向粗车复合循环指令 G70:精加工复合循环 G72:端面车削,径向粗车循环 G73:仿形粗车循环 10、铣床、加工中心: G73:高速深孔啄钻 G83:深孔啄钻 G81:钻孔循环 G82:深孔钻削循环 G74:左旋螺纹加工 G84:右旋螺纹加工 G76:精镗孔循环 G86:镗孔加工循环 G85:铰孔 G80:取消循环指令 11、编程方式 G90、G91 G90:绝对坐标编程 G91:增量坐标编程 12、主轴设定指令 G50:主轴最高转速的设定 G96:恒线速度控制 G97:主轴转速控制(取消恒线速度控制指令) G99:返回到R点(中间孔) G98:返回到参考点(最后孔) 13、主轴正反转停止指令 M03、M04、M05 M03:主轴正传 M04:主轴反转 M05:主轴停止 14、切削液开关 M07、M08、M09 M07:雾状切削液开 M08:液状切削液开 M09:切削液关 15、运动停止 M00、M01、M02、M30 M00:程序暂停 M01:计划停止 M02:机床复位 M30:程序结束,指针返回到开头 16、M98:调用子程序 17、M99:返回主程序