更新时间:2023-12-27 17:38
G代码解释器是全软件式数控系统的重要模块。数控机床通常使用G代码来描述机床的加工信息,如 走刀轨迹、坐标的选择、冷却液的开启等,将G代码解释为数控系统能够识别的数据块是G代码解释器的主要功能。G代码解释器的开放性也是设计和实现中必须要考虑的问题。
在G代码解释器中,对G代码进行关键字分解是骨架,,对代码进行分组则是进行语法检查的基 础。王心光等人在虚拟数控加工仿真中使用Microsoft的GRETA正则类库,解决了G代码关键词分解问题,这种方法建立在 Microsoft提供的工具基础上,同时使用C++语言;付振山使用VC++ 6.0 开发, 构造了有穷自动机来描述在输入字符串中关键字识别模式G代码解释器是全软件式数控系统的重要模块。数控机床通常使用G代码来描述机床的加工信息,如走刀轨迹、坐 标系的选择、冷却液的开启等,将G代码解释为数控系统能够识别的数据块是G代码解释器的主要功能。G代码解释器的开放性也是设计和实现中必须要考虑的问题。在G代码解释器中,对G 代码进行关键字分解是骨架,对代码进行分组则是进行语法检查的基础。
由图 1 可以看出, G代码 解释器 读取 G 代码, 将 其解释 成G 中间代码, 然后经过插补、位置控制处理, 最后由输出模块调用驱动程序输出到硬件( 一 般为 PCI 或 ISA 卡) 。G 代码可以如图 1 的方式运行, 也就是说 G 代码的解释, 包括语法检查都在加工过程中 进行, 这种 方式比 较费时, 不利 于加工过程。本文设计的 G 代码解 释器采用了另外一 种处理 方式, 解释器有两种运行状态: ①读取 G 代码。进 行 G 代码 的解释, 包括词法检查、语法检查等; 将其解释成数控系统能识别的数据块, 即中间代码; 将中 间代码 以文件 的方式 进行保 存。②在加工的过程中, 读取中间代码文件并运行之。
分析, G 代码可以分为 10 组, 同组中的 代码只能在 一行代码中出现一次。G代码、M代码分组如图 1、图3所示。
代码名称-功能简述
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、G00与G01
G00运动轨迹有直线和折线两种,该指令只是用于点定位,不能用于切削加工
G01按指定进给速度以直线运动方式运动到指令指定的目标点,一般用于切削加工
2、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:返回主程序