数控高级编程 - 宏程序高级教程

发布时间 : 星期一 文章数控高级编程 - 宏程序高级教程更新完毕开始阅读

数控高级编程讲义 26

示例:镜像程序 子程序 O9000;

G00 G90 X60.0 Y60.0; G01 X100.0 F100; Y100.0;

X60.0 Y60.0; M99; 主程序

N10 G00 G90; N20 M98 P9000;

N30 G51 X50.0 Y50.0 I-1000 J1000; N40 M98 P9000;

N50 G51 X50.0 Y50.0 I-1000 J-1000; N60 M98 P9000;

N70 G51 X50.0 Y50.0 I1000 J-1000; N80 M98 P9000; N90 G50;

Y10060504000405060100X附录3 坐标系旋转 G68、G69

格式: ?G17????G18?G68?__?__R__; 坐标系旋转开始 ?G19???… 坐标系旋转状态 …

G69; 坐标系旋转取消 式中:

G17(G18、G19):用于选择旋转平面(该面内包含有需旋转的轮廓) α_β_:旋转中心,可用xy,zx,yz指定,由G17、G18、G19决定。 R_:旋转角度,顺时针指定。

参数041的0位用于选择旋转角度的指定方式。 041#0=0,R值为绝对旋转角度;

041#0=1,G90时,R值为绝对旋转角度;G91时,R值为旋转角度增量。 最小输入增量:0.001deg(度) 无效数据范围:360,000~360,000 解释

? 选择平面的G代码G17、G18、G19

在含有坐标系旋转的G代码(G68)的程序段内可指定选择平面的G代码G17、G18、G19,但在坐标系旋转状态下不能指定G17、G18、G19。

至于在G68程序段与一含绝对编程指令(G90)程序段之间用指令增量位置指令(G91)的情况,被当作:在G68被指令处的位置是旋转中心(图14.9(c))。 当α_β_省略时,G68被指令时的位置被设成旋转中心。

当旋转角度省略时,设置在参数NO.730中的值被当作旋转角度。

26

数控高级编程讲义 27

坐标系旋转由G69取消。 N1 G92 X-50.0 Y-50.0 G69 G17; N2 G68 X70.0 Y30.0 R60.0; N3 G90 G01 X0 Y0 F200; (G91 X50.0 Y50.0) N4 G91 X100.0; N5 G02 Y100.0 R100.0; N6 G03 X-100.0 I-50.0 J-50.0; N7 G01 Y-100.0; N8 G69 G90 X-50.0 Y-50.0 M02; 当在N3程序段用增量指令时(括号中)的刀具路径原有编程刀具路径60°(0,0)旋转中心(70.0,30.0)旋转后的刀具路径 (-50.0,-50.0) G69指令可和其它指令一起在同一程序段中指定。刀具偏置如:切削半径补偿、刀具长度补偿、刀具偏置,在坐标系旋转后执行。

示例 警告: 在指定G69的程序段必须用绝对编程方式指定运 动。 在刀具半径C补偿状态下可以 指定G68和G69,旋转平面和 刀具半径补偿平面必须重合。 N1 G92 X0 Y0 G69 G01; N2 G42 G90 X100.0 Y100.0 F100 H01; N3 G68 R-30; N4 G91 X200.0; N5 G03 X100.0 R100.0 J50.0; N6 G01 X-200.0; N7 Y-100.0; N8 G69 G40 G90 X0 Y0 M30; 坐标系旋转前的编程轨迹刀具路径30°(0,0)坐标系旋转后的编程轨迹 ? 刀具半径补偿和坐标系旋转 比例缩放和坐标系旋转 如果在缩放状态(G51)下指令坐标系旋转旋转中心α_β_也将被缩放,但角度不缩放。当指令运动指令时,先实现缩放,再实现坐标缩放。在缩放模式的刀具补偿(G41、G42)状态下,不能指定坐标系旋转。坐标系旋转通常应先于刀具半径C补偿指定。 1、当系统没有处于刀具半径C补偿状态时,可按如下序列指定指令: G51; 缩放模式开始

G68…; 坐标系旋转模式开始 …

G69; 坐标系旋转模式取消 G50; 缩放模式取消

2、当系统处于刀具半径C补偿状态时,可按如下序列指定指令: G51; 缩放模式开始

G68…; 坐标系旋转模式开始

27

数控高级编程讲义 28

G41(G42)…;刀具半径C补偿模式开始 …

G40…; 刀具半径补偿模式 …

G69; 坐标系旋转模式取消 G50; 缩放模式取消 例:

G90 G92 X0 Y0;

G51 X300 .0 Y150.0 P500; G68 X200.0 Y100.0 R45.0;

G01 G42 X400.0 Y100.0 F100 H01; G91 Y100.0; X-200.0; Y-100.0; X200.0; …

? 坐标系旋转的重复 G92 X0 Y0 G69 G17; G01 F200 H01; M98 P2100; M98 P072200; G69 G00 G90 X0 Y0 M30; O2200 G68 X0 Y0 G91 R45.0; G90 M98 P2100; M99; O2100 G90 G01 G42 X0 Y-10.0 H01; X4.142; X7.071 Y-7.071; G40; M99; (0,0)(0,-10.0)subprogram子程序 可将一个程序当子程序存贮起来,再通过修改其角度来调用子程序。下例是在参数041#0=1的情况下编制的,此时角度指定用绝对值还是增量值依赖于G代码(G90/G91)状态。

附录4 宏程序B(custom macro B)

尽管子程序对重复性的相同操作很有用,(但仍不能和宏程序相提并论)。用户宏程序功能允许使用变量、算术和逻辑运算、以及条件分支控制,这便于普通加工程序的发展,如发展成打包好的自定义的固定循环。加工程序可利用一简单的指令来调用宏程序,就像使用子程序一样。 例:

28

数控高级编程讲义 29

加工程序: O0001; ┋

G65 P9010 R50.0 L2; ┋ M30;

用户宏程序: O9010; #1+#18/2;

G01 G42 X#1 Y#1 F300; G02 X#1 Y-#1 R#1; ┋ M99;

1 宏变量(variables)

普通加工程序中指定G代码和移动距离时,直接使用数字值,如:G100和X 100.0。而在用户宏程序中,数字值可直接指定或使用变量号(称宏变量)。当采用宏变量时,其值可在程序中修改或利用MDI面板操作进行修改。 例:#1=#2+100; G01 X #1 F300; Explanation( 说明) ? 宏变量的表示形式

当指定一宏变量时,用“#”后跟变量号的形式,如:#1。在计算机上允许给变量指定变量名,但用户宏程序没有提供这种能力。

宏变量号可用表达式指定,此时,表达式应包含在方括号内。 如:#[#1+#2-12] ? 宏变量的取值范围

局部变量和全局变量取值范围如下: ?1047~?10?29,0,10?29~1047

如计算结果无效(超出取值范围)时,发出编号111的错误警报。 ? 小数点的省略

在程序中定义宏变量的值时,可省略小数点。 例:#1=123;

宏变量#1的实际值是123.000。 ? 未赋值(定义)的变量

如果一个宏变量没有赋值(无定义),则该变量被当作空变量。宏变量#0通常情况下是一个空变量,它只能读,不能写(赋值)。 ? 宏变量的类型

根据变量号,宏变量可分成四种类型,如下表所示。 变量号 变量类型 功 能 #0 空变量 该变量通常为空(null),该变量不能赋值 用于保存数据,如运算局部变量 局部变量只能在宏程序内部使用,#1~#33 结果等。当电源关闭时,局部变量被清空,而当宏程序被Local Variables 调用时,(调用)参数被赋值给局部变量。 全局变量 全局变量可在不同宏程序之间共享,当电源关闭时,#100~#149(#199) #500~#531(#999) Common #100~#149被清空,而#500~#531的值仍保留。在某一运variables 29

联系合同范文客服:xxxxx#qq.com(#替换为@)