数控高级编程讲义

上传人:夏** 文档编号:571874538 上传时间:2024-08-12 格式:PDF 页数:52 大小:489.46KB
返回 下载 相关 举报
数控高级编程讲义_第1页
第1页 / 共52页
数控高级编程讲义_第2页
第2页 / 共52页
数控高级编程讲义_第3页
第3页 / 共52页
数控高级编程讲义_第4页
第4页 / 共52页
数控高级编程讲义_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《数控高级编程讲义》由会员分享,可在线阅读,更多相关《数控高级编程讲义(52页珍藏版)》请在金锄头文库上搜索。

1、数控高级编程讲义主讲 周新红数控高级编程讲义11第一篇铣工篇.1专题一专题一行切和环切行切和环切. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1 111.1 环切.11.1.1 环切刀具半径补偿值的计算.11.1.2 环切刀补程序工步起点(下刀点)的确定.11.1.3 在程序中修改刀具半径补偿值.21.1.4环切宏程序.41.2 行切

3、.51.2.1 矩形区域的行切计算.51.2.2 行切的子程序实现.51.2.3 行切宏程序实现.6专题二专题二相同轮廓的重复加工相同轮廓的重复加工. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 8 882.1 用增量方式完成相同轮廓的重复加工.82.2 用坐标系平移完成相同轮廓的重复加工.82.3 用宏程序完成相同轮廓的重复加工.9专题三专题三简单平面曲线轮廓加工简单平面曲线轮廓加工. . . . . . . . . . . . . . . . . . . .

5、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6、 . . . . . . . . . . . . .11111111专题四专题四简单立体曲面加工简单立体曲面加工. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121212124.1 球面加工.124.1.1 外球面加工.134.1.2 内球面加工.144.2 水平圆柱面的加工.144.2.1 圆柱面的轴向走刀加工.154.2.1 圆柱面的周向走刀加工.16专题五专题五孔系加工孔系加工. . . . . . . . . . . . . . . . .

8、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171717175.1 矩形阵列孔系加工.175.2 环形阵列孔系加工.18第二篇车工篇.19专题六专题六参数编程参数编程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11、 . . . . . . . . . . . . . . . . . . . . . . . . .19191919专题七专题七方程曲线的车削加工方程曲线的车削加工202020207.1 方程曲线车削加工的走刀路线:207.2 椭圆轮廓的加工20附录FANUC 系统 G 指令和宏指令21附录附录1 1 11刀具补偿值、刀具补偿号及在程序中赋值刀具补偿值、刀具补偿号及在程序中赋值G10G10G10G10212121211、刀具补偿值的范围212、刀具补偿值的存贮213、刀具补偿赋值格式:21附录附录2 2 22缩放缩放G50G50G50G50、G51G51G51G5122222222附录附录3

12、3 33坐标系旋转坐标系旋转G68G68G68G68、G69G69G69G6924242424数控高级编程讲义22附录附录4 4 44宏程序宏程序B(customB(customB(customB(custommacromacromacromacroB)B)B)B). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272727271 宏变量(variables).272 系统变量 SYSTEM VARIABLES.292.1 接口信号 Interface signals.292.2 刀具补偿值Toolcompensation values

14、.292.3 宏程序报警信息 Macro alarms.302.4 时间信息.302.5 自动运行控制.302.6 背景(#3005) Settings.312.7 已加工的零件数 Number of machined parts. 322.8 模态信息 Model information.322.9 当前位置.322.10 工件坐标系补偿值(工件坐标系零点偏置值).333算术和逻辑运算.334 宏语句和 NC 语句.365 分支和循环.365.1 无条件分支 GOTO 语句.375.2 条件分支 IF 语句.375.3 循环 WHILE 语句. 386 调用宏程序 MACRO CALL.29

15、6.1 简单调用 G65. 306.2 模态调用 G66. 336.3使用 G 代码的宏调用. 356.4使用 M 代码的宏调用.356.5使用 M 代码的子程序调用.366.6使用 T 代码的子程序调用.376.7 例程.37数控高级编程讲义11第一篇第一篇铣工篇铣工篇专题一专题一行切和环切行切和环切在数控加工中,行切和环切是典型的两种走刀路线。行切在手工编程时多用于规则矩形平面、台阶面和矩形下陷加工,对非矩形区域的行切一般用自动编程实现。环切主要用于轮廓的半精、精加工及粗加工,用于粗加工时,其效率比行切低,但可方便的用刀补功能实现。1.11.11.11.1环切环切环切加工是利用已有精加工刀

16、补程序,通过修改刀具半径补偿值的方式,控制刀具从内向外或从外向内,一层一层去除工件余量,直至完成零件加工。编写环切加工程序,需解决三个问题:环切刀具半径补偿值的计算;环切刀补程序工步起点(下刀点)的确定;如何在程序中修改刀具半径补偿值。1.1.11.1.11.1.11.1.1环切刀具半径补偿值的计算环切刀具半径补偿值的计算确定环切刀具半径补偿值可按如下步骤进行:1、确定刀具直径、走刀步距和精加工余量;2、确定半精加工和精加工刀补值;3、确定环切第一刀的刀具中心相对零件轮廓的位置(第一刀刀补值) ;4、根据步距确定中间各刀刀补值。示例:用环切方案加工图 1-1零件内槽,环切路线为从内向外。环切刀

17、补值确定过程如下:1、根据内槽圆角半径 R6,选取12键槽铣刀,精加工余量为 0.5mm,走刀步距取 10mm。2、由刀具半径 6,可知精加工和半精加工的刀补半径分别为 6 和 6.5mm;3、如图所示,为保证第一刀的左右两条轨迹按步距要求重叠,则两轨迹间距离等于步距,则该刀刀补值=30-10/2=25mm。4、根据步距确定中间各刀刀补值,第二刀刀补值=25-10=15mm第三刀刀补值=15-10=5,该值小于半精加工刀补值,说明此刀不需要。由上述过程,可知,环切共需 4刀 ,刀补值分别为 25、15、6.5、6mm。1.1.21.1.21.1.21.1.2环切刀补程序工步起点(下刀点)的确定

18、环切刀补程序工步起点(下刀点)的确定对于封闭轮廓的刀补加工程序来说,一般选择轮廓上凸出的角作为切削起点,对内轮廓,如没有这样的点,也可以选取圆弧与直线的相切点,以避免在轮廓上留下接刀痕。在110409080R6R30102010 图 1-1 数控高级编程讲义22确定切削起点后,再在该点附近确定一个合适的点,来完成刀补的建立与撤消,这个专用于刀补建立与撤消的点就是刀补程序的工步起点,一般情况下也是刀补程序的下刀点。一般而言,当选择轮廓上凸出的角作为切削起点时,刀补程序的下刀点应在该角的角平分线上(45方向) ,当选取圆弧与直线的相切点或某水平/垂直直线上的点作为切削起点时,刀补程序的下刀点与切削

19、起点的连线应与直线部分垂直。在一般的刀补程序中,为缩短空刀距离,下刀点与切削起点的距离比刀具半径略大一点,下刀时刀具与工件不发生干涉即可。但在环切刀补程序中,下刀点与切削起点的距离应大于在上一步骤中确定的最大刀具半径补偿值,以避免产生刀具干涉报警。如对图 1-1零件,取 R30 圆弧圆心为编程零点,取R30 圆弧右侧端点作为切削起点,如刀补程序仅用于精加工,下刀点取在(22,0)即可,该点至切削起点距离=8mm。但在环切时,由于前两刀的刀具半径补偿值大于 8mm,建立刀补时,刀具实际运动方向是向左,而程序中指定的运动方向是向右,撤消刀补时与此类似,此时数控系统就会产生刀具干涉报警。因此合理的下

20、刀点应在编程零点(0,0) 。1.1.31.1.31.1.31.1.3在程序中修改刀具半径补偿值在程序中修改刀具半径补偿值在程序中修改刀具半径补偿值可采用如下方法 1 1 11、 在刀补表中设好环切每一刀的刀具半径补偿值, 然后在刀补程序中修改刀具补偿、 在刀补表中设好环切每一刀的刀具半径补偿值, 然后在刀补程序中修改刀具补偿号 。号 。示例 1.1直接在 G41/G42 程序段修改刀具补偿号主程序%1000G54 G90G0 G17 G40;Z50 M03 S1000;X0 Y0;Z5 M08;G1 Z-10 F60;G41 X30 D1 F100;M98 P0010;G41 X30 D2

21、F100;M98 P0010;G41 X30 D3 F100;M98 P0010;G41 X30 D4 F100;M98 P0010;M05 M09;G0 Z50;M30;子程序%0010G90 G1Y60;X-30;Y0;G3 X30 R30;G0 G40X0;M99;补偿号刀具补偿半径12521536.546示例 1.2用宏变量表示刀具补偿号,利用循环修改刀具补偿号%100G54 G90G0 G17 G40;Z50 M03 S1000;X0 Y0;Z5 M08;G1 Z-10 F60;#1=1;刀补号变量WHILE #1 LE 4 DO1;G41 X30 D#1 F100;Y60;X-30

22、;Y0;G3 X30 R30;G0 G40X0;#1=#1+1;End1;Z50;M30;数控高级编程讲义33 2 2 22、使用、使用G10G10G10G10修改刀具补偿半径修改刀具补偿半径示例 1.3,使用 G10 和子程序完成环切主程序%100G54 G90G0 G17 G40;Z50 M03 S1000;X0 Y0;Z5 M08;G1 Z-10 F60;G10 L10P1R25;M98 P0010;G10 L10P1R15;M98 P0010;G10 L10P1R6.5;M98 P0010;G10 L10P1R6;M98 P0010;M05 M09;G0 Z50;M30;子程序%001

23、0G90 G41X30 D1 F100;Y60;X-30;Y0;G3 X30 R30;G0 G40X0;M99;示例 1.4使用 G10 和循环完成环切%1000G54 G90G0 G17 G40;Z50 M03 S1000;X0 Y0;Z5 M08;G1 Z-10 F60;#10=25;粗加工起始刀补值#11=10;步距#12=6;精加工刀补值#1=2;粗、精加工控制WHILE #1 GE 1 DO1;WHILE #10 GE #12 DO2;G10 L10P1R#10;G41 X30 D1 F100;Y60;X-30;Y0;G3 X30 R30;G0 G40X0;#10=#10-#11;E

24、ND2;#10=#12+0.5;半精加工刀补值#11=0.5;#1=#1-1;END1;Z50;M30; 3 3 33、直接用宏变量对刀补值赋值、直接用宏变量对刀补值赋值示例 1.5直接用宏变量对刀补值赋值,利用循环完成环切。数控高级编程讲义44%1000G54 G90G0 G17 G40;Z50 M03 S1000;X0 Y0;Z5 M08;G1 Z-10 F60;#10=25;粗加工起始刀补值#11=9.25;步距#12=6;精加工刀补值#1=2;粗、精加工控制WHILE #1 GE 1 DO1;WHILE #10 GE #12 DO2;G41 X30 D#10 F100;Y60;X-30

25、;Y0;G3 X30 R30;G0 G40X0;#10=#10-#11;END2;#10=#12;半精加工刀补值#1=#1-1;END1;Z50;M30;说明:在 G41 X30 d#10 中,#10 表示刀具补偿号,而在 G41 X30 d#10中,#10 表示刀具半径补偿值,此用法在 FANUC 说明书中没有,但实际使用的结果确实如此,如所用系统不支持此用法,就只用示例 1.4 用法。1.1.41.1.41.1.41.1.4环切宏程序环切宏程序当使用刀具半径补偿来完成环切时,不管我们采用何种方式修改刀具半径补偿值,由于受刀补建、撤的限制,它们都存在走刀路线不够简洁,空刀距离较长的问题。对于

26、象图1-1所示的轮廓,其刀具中心轨迹很好计算,此时如用宏程序直接计算中心轨迹路线,则可简化走刀路线,缩短空刀距离。示例 1.6 完全使用宏程序的环切加工如图 1-2所示,用#1、#2 表示轮廓左右和上边界尺寸,编程零点在 R30 圆心,加工起始点放在轮廓右上角(可削除接刀痕)数控高级编程讲义55%1000G54 G90G0 G17 G40;Z50 M03 S100;#4=30;左右边界#5=60;上边界#10=25;粗加工刀具中心相对轮廓偏移量(相当于刀补程序中的刀补值)#11=9.25;步距#12=6;精加工刀具中心相对轮廓偏移量(刀具真实半径)G0 X#4-#10-2Y#5-#10-2;Z

27、5;G1 Z-10 F60;#20=2;WHILE #20 GE 2 DO1;WHILE #10 GE #12 DO2;#1=#4-#10;左右实际边界#2=#5-#10;上边实际边界G1 X#1-2Y#2-2 F200;G3 X#1Y#2 R2;圆弧切入到切削起点G1 X-#1;Y0;G3 X#1 R#1;G1 Y#2;G3 X#1-2Y#2-2 R2#10=#10-#11END2#10=#12#20=#20-1END1G0 Z50M30409080R6R301020110#1#210图 1-2 1.21.21.21.2行切行切一般来说,行切主要用于粗加工,在手工编程时多用于规则矩形平面、台

28、阶面和矩形下陷加工,对非矩形区域的行切一般用自动编程实现。1.2.11.2.11.2.11.2.1矩形区域的行切计算矩形区域的行切计算 1 1 11、矩形平面的行切区域计算、矩形平面的行切区域计算如图所示,矩形平面一般采用图示直刀路线加工,在主切削方向,刀具中心需切削至零件轮廓边,在进刀方向,在起始和终止位置,刀具边沿需伸出工件一距离, 数控高级编程讲义66以避免欠切。假定工件尺寸如图所示,采用60 面铣刀加工,步距50mm,上、下边界刀具各伸出10mm。则行切区域尺寸为 800560(600+10*2-60)。 2 2 22、矩形下陷的行切区域计算、矩形下陷的行切区域计算对矩形下陷而言,由于

29、行切只用于去除中间部分余量,下陷的轮廓是采用环切获得的,因此其行切区域为半精加工形成的矩形区域,计算方法与矩形平面类似。假定下陷尺寸 100*80, 由圆角R6选12 铣刀,精加工余量 0.5mm,步距 10mm,则半精加工形成的矩形为(100-12*2-0.5*2)*(80-12*2-0.5*2)=75*55。如行切上、下边界刀具各伸出 1mm,则实际切削区域尺寸=75*(55+2-12)=75*45。1.2.21.2.21.2.21.2.2行切的子程序实现行切的子程序实现对于行切走刀路线而言,每来回切削一次,其切削动作形成一种重复,如果将来回切削一次做成增量子程序,则利用子程序的重复可完成

30、行切加工。 1 1 11、切削次数与子程序重复次数计算、切削次数与子程序重复次数计算进刀次数 n=总进刀距离/步距=47/10=4.5,实际需切削 6 刀,进刀 5 次。子程序重复次数 m=n/2=5/2=2,剩余一刀进行补刀。步距的调整:步距=总进刀距离/切削次数。说明:说明:当实际切削次数约为偶数刀时,应对步距进行调整,以方便程序编写;当实际切削次数约为奇数刀时,可加 1 成偶数刀,再对步距进行调整,或直接将剩下的一刀放在行切后的补刀中,此时不需调整步距。由于行切最后一刀总是进刀动作,故行切后一般需补刀。 2 2 22、示例、示例1.71.71.71.7对图 1-4零件,编程零点设在工件中

31、央,下刀点选在左下角点,加工程序如下: 精 加 工 刀 具中心轨迹 半 精 加 工 刀具中心轨迹 半 精 加 工 形成的轮廓 图 1-4 数控高级编程讲义77子程序%0020G91G1 X75 F150;Y10;X-75;Y10.;G90M99;主程序%1000G54 G90G0 G17 G40;Z50 M03 S800;G0 X-43.5 Y-33.5;定位到下刀点Z5;G1 Z-10 F100;M98 P0010;环切加工 ,该程序省略G1 X-37.5Y-22.5;行切起点M98 P0020 L2;行切加工G1 X37.5;补刀Y22.5X-37.5G0 Z50;M30;1.2.31.2

32、.31.2.31.2.3行切宏程序实现行切宏程序实现对图 1-4零件,编程零点设在工件中央,下刀点选在左下角点,加工宏程序如下:示例 1.8(本程序未考虑分层下刀问题) 主程序主程序%1000G54 G90G0 G17 G40Z50 M03 S800G65 P9010A100 B80 C0 D6 Q0.5K10 X0Y0 Z-10 F150G0 Z50M30 宏程序调用参数说明:宏程序调用参数说明:A(#1)B(#2)-矩形下陷的长与宽C(#3)- -粗精加工标志,C=0,完成粗精加工,C=1,只完成精加工。D(#7)-刀具半径Q(#17)-精加工余量K(#6)-步距X(#24)Y(#25)-

33、下陷中心坐标Z(#26)-下陷深度F(#9)-走刀速度数控高级编程讲义88 宏程序宏程序%9010#4=#1/2-#7;精加工矩形半长#5=#2/2-#7;精加工矩形半宽#8=1;环切次数IF #3 EQ 1 GOTO 100;#4=#4-#17;半精加工矩形半长#5=#5-#17;半精加工矩形半宽#8=2;N100 G90G0 X#24-#4 Y#25-#5;Z5;G1 Z#26 F#9;WHILE #8 GE 1 DO1;G1 X#24-#4Y#25-#5;X#24+#4;Y#25+#5;X#24-#4;Y#25-#5;#4=#4+#17;#5=#5+#17;#8=#8-1;END1;IF

34、 #3 EQ 1 GOTO 200;只走精加工,程序结束#4=#1/2-2*#7+#17;行切左右极限 X#5=#/2-3*#7-2*#17+4; 行切上下极限 Y#8=-#5;进刀起始位置G1 X#24-#4Y#25+#8;WHILE #8LT#5 DO1;准备进刀的位置不到上极限时加工G1Y#25+#8;进刀X#24+#4;切削#8=#8+#6;准备下一次进刀位置#4=-#4;准备下一刀终点 XEND1;G1Y#25+#5;进刀至上极限,准备补刀X#24+#4;补刀G0 Z5;N200 M99;数控高级编程讲义99专题二专题二相同轮廓的重复加工相同轮廓的重复加工在实际加工中,相同轮廓的重复

35、加工主要有两种情况:1、同一零件上相同轮廓在不同位置出现多次;2、在连续板料上加工多个零件。实现相同轮廓重复加工的方法实现相同轮廓重复加工的方法1、用增量方式定制轮廓加工子程序,在主程序中用绝对方式对轮廓进行定位,再调用子程序完成加工。2、用绝对方式定制轮廓加工子程序,并解决坐标系平移的问题来完成加工。3、用宏程序来完成加工。2.12.12.12.1用增量方式完成相同轮廓的重复加工用增量方式完成相同轮廓的重复加工示例 2-1,加工图 2-1所示工件,取零件中心为编程零点,选用12 键槽铣刀加工。子程序用中心轨迹编程。 子程序子程序%0010G91G0 X24;G1 Z-27 F60;G3I-2

36、4 F200;G0Z12;G1 X10;G3I-34;G0Z15;G90M99图2-1 主程序主程序%1000G54 G90G0 G17 G40 M03;Z50 S2000;X-150Y-50;Z5;M98 P0010;G0 X-150Y50;M98 P0010;G0 X0Y50;M98 P0010;G0 X0Y-50;M98 P0010;G0 X-150Y-50;M98 P0010;G0 X-150Y50;M98 P0010;G0 Z100;M30;2.22.22.22.2用坐标系平移完成相同轮廓的重复加工用坐标系平移完成相同轮廓的重复加工坐标系平移有两种方式G54+G52,用于重复次数不多

37、,且轮廓分布无规律情况。G54+G92,用于轮廓分布有规律且重复次数很多的情况。示例 2-2用局部坐标系 G52 完成相同轮廓的重复加工,G54 零点设在零件中心,局部坐标系零点在需加工孔的孔心。数控高级编程讲义1010主程序%1000G54 G90G0 G17 G40;Z50 M03 M07 S1000;G52 X-150Y-50;M98 P0020;G52 X-150Y50;M98 P0020;G52 X0Y50;M98 P0020;G52 X0Y-50;M98 P0020;G52 X150Y-50;M98 P0020;G52 X150Y50;M98 P0020;G52 X0Y0;恢复 G

38、54G0 Z100;M30;子程序%0020G90 G0X24;Z5;G1 Z-22 F100;G3 I-24;G0 Z-10;G1 X34;G3 I-34;G0 Z5;M99;示例 2-3,用 G54+G92 完成相同轮廓的重复加工,G54 零点设设在零件中心,子坐标系零点在需加工孔的孔心。%1000G54 G90G0 G17 G40;Z50 M03 M07 S1000;X-150Y-50;M98 P0030 L3;G54 G0X-150 Y50;M98 P0030 L3;G54 G0Z100;M30;%0030G92 X0Y0G90 G0X24;Z5;G1 Z-22 F100;G3 I-2

39、4;G0 Z-10;G1 X34;G3 I-34;G0 Z5;X150M99;2.32.32.32.3用宏程序完成相同轮廓的重复加工用宏程序完成相同轮廓的重复加工示例 2-4,用 G65 调用完成加工,宏程序用绝对编程。%1000G54 G90G0 G17 G40 M03;Z50 S2000;Z5;G65 P9010 X-150 Y-50;G65 P9010 X-150 Y50;G65 P9010 X0Y50;G65 P9010 X0Y-50;G65 P9010 X150Y-50;G65 P9010 X150Y50;G0 Z100;M30;宏程序%9010G90 G0X#24+24 Y#25Z

40、5G1 Z-20 F60G3 I-24F200G0 Z-10G1 X#24+34G3 I-34G0 Z5M99数控高级编程讲义1111示例 2-5,用 G66 调用完成加工,宏程序用绝对编程。%1000G54 G90G0 G17 G40;Z50 M03 M07 S1000;X-150Y-50;G66 P9011;G0 X-150Y50;X0 Y50;X0 Y-50;X150 Y-50;X150 Y50;G67;G0 Z100;M30;%9011#1=#5001; 取当前孔心坐标#2=#5002;G90 G0X#1+24 Y#2;Z5;G1 Z-22 F100;G3 I-24;G0 Z-10;G

41、1 X#1+34;G3 I-34;G0 Z5;M99;示例 2-6,使用循环,用一个程序完成加工%1000G54 G90G0 G17 G40;Z50 M03 M07 S1000;#1=2;行数#2=3;列数#3=150;列距#4=100;行距#5=-150;左下角孔中心坐标(起始孔)#6=-50;#10=1;列变量WHILE #10 LE #2 DO1;#11=1;行变量#20=#5+#10-1*#3;待加工孔的孔心坐标 XWHILE #11 LE #1 DO2;#21=#6+#11-1*#4;孔心坐标 YG0 X#20+24 Y#21;Z2;G1 Z-22 F100;G3 I-24;G0 Z

42、-10;G1 X#20+34;G3 I-34;G0 Z5;#11=#11+1;END2;#10=#10+1;END1;G0 Z100;M30;数控高级编程讲义1212专题三专题三简单平面曲线轮廓加工简单平面曲线轮廓加工对简单平面曲线轮廓进行加工,是采用小直线段逼近曲线来完成的。具体算法为:采用某种规律在曲线上取点,然后用小直线段将这些点连接起来完成加工。示例 3-1,椭圆加工,假定椭圆长(X 向)、短轴(Y 向)半长分别为 A 和 B,则椭圆的极坐标方程为,利用此方程可方便地完成在椭圆上取点工作。sin.cos.byax编程条件:编程零点在椭圆中心,a=50,b=30,椭圆轮廓为外轮廓,下刀点

43、在椭圆右极限点,刀具直径18,加工深度 10mm。程序如下:%1000G54 G90G0 G17 G40;Z50 M30 S1000;X60 Y-15;Z5 M07;G1 Z-12 F800;G42 X50 D1 F100;Y0;#1=0.5;变量初始值 0.5 度WHILE #1 LE 360 DO1;#2=50*COS#1;#3=30*SIN#1;G1 X#2Y#3;#1=#1+0.5;END1;G1 Y15;G0 G40X60;Z100;M30;数控高级编程讲义1313专题四专题四简单立体曲面加工简单立体曲面加工4.14.14.14.1球面加工球面加工 球面加工使用的刀具球面加工使用的刀

44、具粗加工可以使用键槽铣刀或立铣刀,也可以使用球头铣刀。精加工应使用球头铣刀。 球面加工的走刀路线球面加工的走刀路线一般使用一系列水平面截球面所形成的同心圆来完成走刀。在进刀控制上有从上向下进刀和从下向上进刀两种,一般应使用从下向上进刀来完成加工,此时主要利用铣刀侧刃切削,表面质量较好,端刃磨损较小,同时切削力将刀具向欠切方向推,有利于控制加工尺寸。 进刀控制算法进刀控制算法 图 4-2 进刀点的计算:进刀点的计算:先根据允许的加工误差和表面粗糙度, 确定合理的 Z 向进刀量, 再根据给定加工深度Z,计算加工圆的半径,即:r=sqrtR2-z2。此算法走刀次数较多。先根据允许的加工误差和表面粗糙

45、度,确定两相邻进刀点相对球心的角度增量,再根据角度计算进刀点的 r 和 Z 值,即 Z=R*sin,r=R*cos。进刀轨迹的处理进刀轨迹的处理对立铣刀加工,曲面加工是刀尖完成的,当刀尖沿圆弧运动时,其刀具中心运动轨迹也是一行径的圆弧,只是位置相差一个刀具半径。对球头刀加工,曲面加工是球刃完成的,其刀具中心是球面的同心球面,半径相差一个刀具半径。 图4-1 数控高级编程讲义14144.1.14.1.14.1.14.1.1外球面加工外球面加工示例 4-1,加工图 4-3所示外球面。为对刀方便,宏程序编程零点在球面最高点处,采用从下向上进刀方式。立铣刀加工宏程序号为%9013,球刀加工宏程序号%9

46、014。 宏程序调用参数说明宏程序调用参数说明X(#24)/Y(#25)-球心坐标Z(#26)-球高D(#7)-刀具半径Q(#17)-角度增量,度I(#4)-球径F(#9)-走刀速度 图 4-3 主程序主程序%1000G91 G28Z0M06 T01G54 G90G0 G17 G40G43 Z50 H1M03 S3000G65 P9013 X0 Y0 Z-30D6 I40.5 Q3 F800G49 Z100 M05G28 Z105M06 T02G43Z50 H2 M03S4000G65 P9014 X0Y0 Z-30 D6 I40 Q0.5 F1000G49 Z100 M05G28 Z105M

47、30 宏程序宏程序%9013#1=#4+#26; 进刀点相对球心 Z 坐标#2=SQRT#4*#4-#1*#1; 切削圆半径#3=ATAN#1/#2;角度初值#2=#2+#7;G90 G0X#24+#2+#7+2 Y#25;Z5;G1 Z#26 F300;WHILE #3LT90 DO1;当进刀点相对水平方向夹角小于 90 度时加工G1 Z#1 F#9;X#24+#2;G2 I-#2;#3=#3+#17;#1=#4*SIN#3-1;Z=-(R-RSIN)#2=#4*COS#3+#7 ;r=RCOS+r 刀END1;G0 Z5;M99;%9014#1=#4+#26;中间变量#2=SQRT#4*#

48、4-#1*#1;中间变量#3=ATAN#1/#2;角度初值#4=#4+#7;处理球径#1=#4*SIN#3-1;Z=-(R-RSIN)#2=#4*COS#3;r=RCOSG90G0 X#24+#2+2 Y#25;Z5;G1 Z#26 F300;WHILE #3LT90 DO1;当角小于90度时加工G1 Z#1 F#9;X#24+#2;G2I-#2;#3=#3+#17;#1=#4*SIN#3-1;Z=-(R-RSIN)#2=#4*COS#3;r=RCOSEND1;G0Z5;M99;数控高级编程讲义15154.1.24.1.24.1.24.1.2内球面加工内球面加工示例 4-2,加工图 4-4 所

49、示内球面。为对刀方便,宏程序编程零点在球面最高处中心,采用从下向上进刀方式。其主程序与示例 4-1 类似,宏程序调用参数与示例 4-1相同,本例不再给出。立铣刀加工宏程序号为%9015,球刀加工宏程序号%9016。%9015#6=#4+#26球心在零点之上的高度#8=SQRT#4*#4-#6*#6 中间变量#3=90-ATAN#6/#8加工终止角#8=SQRT#4*#4-#7*#7#5=ATAN#7/#8加工起始角G90 G0X#24 Y#25; 加工起点Z5;G1 Z#6-#8 F50;#5=#5+#17;WHILE #5 LE #3 DO1;角度小于等于终止角时加工#1=#6-#4*COS

50、#5;Z#2=#4*SIN#5-#7;XG1 Z#1 F#9;X#24+#2;G3 I-#2;#5=#5+#17;END1;G0 Z5;M99;%9016#6=#4+#26球心在零点之上的高度#8=SQRT#4*#4-#6*#6 中间变量#3=90-ATAN#6/#8加工终止角G90 G0X#24 Y#25; 加工起点Z5;G1 Z#26 F50;#5=#17;#4=#4-#7;WHILE #5 LE #3 DO1; 角度小于等于终止角时加工#1=#6-#4*COS#5;Z#2=#4*SIN#5;XG1 Z#1 F#9;X#24+#2;G3 I-#2;#5=#5+#17;END1;G0 Z5;

51、M99;4.24.24.24.2水平圆柱面的加工水平圆柱面的加工水平圆柱面加工可采用行切加工沿圆柱面轴向走刀,沿圆周方向进刀;走刀路线短,加工效率高,加工后圆柱面直线度好;用于模具加工,脱模力较大;程序可用宏程序或自动编程实现。沿圆柱面圆周方向走刀,沿轴向进刀;走刀路线通常比前一方式长,加工效率较低,但用于大直径短圆柱则较好,加工后圆柱面轮廓度较好;用于模具加工,脱模力较小;程序可用子程序重复或宏程序实现,用自动编程实现程序效率太低。 图4-4 a b 图 4-4 数控高级编程讲义16164.2.14.2.14.2.14.2.1圆柱面的轴向走刀加工圆柱面的轴向走刀加工示例 4-3,为简化程序,

52、以完整半圆柱加工为例(图 4-4 a)。为对刀、编程方便,主程序、宏程序零点放在工件左侧最高点,毛坯为方料,立铣刀加工宏程序号为%9017,球刀加工宏程序号%9018。 宏程序调用参数说明宏程序调用参数说明X(#24)/Y(#25)-圆柱轴线左端点坐标A(#1)-圆柱长D(#7)-刀具半径Q(#17)-角度增量,度I(#4)-圆柱半径F(#9)-走刀速度 主程序主程序%1000G91 G28Z0M06 T01G54 G90G0 G17 G40G43 Z50 H1M03 S3000G65 P9017 X-6Y0A126 D6 I40.5 Q3F800G49 Z100 M05G28 Z105M06

53、 T02G43 Z50 H2 M03 S4000G65 P9018 X0Y0A120 D6 I40 Q0.5F1000G49 Z100 M05G28 Z105M30 宏程序宏程序%9017G90 G0X#24-2 Y#25+#4+#7;Z5;G1 Z-#4 F200;#8=1;立铣刀偏置方向#10=0;角度初值#11=#24+#1/2;轴线中央 X#12=#1/2;轴线两端相对中央距离WHILE #10 LE 180 DO1;#13=#4*SIN#10-1;Z#14=#4*COS#10;YG1 Z#13 F#9Y#25+#14+#7*#8G1 X#11+#12#10=#10+#17IF #10

54、 LE 90 GOTO 10#8=-1N10 #12=-#12END1G0 Z5M99%9018#4=#4+#7G90 G0X#24-2 Y#25+#4;Z5;G1 Z-#4 F200;#10=0;角度初值#11=#24+#1/2;轴线中央 X#12=#1/2;轴线两端相对中央距离WHILE #10 LE 180 DO1;#13=#4*SIN#10-1;Z#14=#4*COS#10;YG1 Z#13 F#9Y#25+#14G1 X#11+#12#10=#10+#17#12=-#12END1G0 Z5M99数控高级编程讲义17174.2.14.2.14.2.14.2.1圆柱面的周向走刀加工圆柱面

55、的周向走刀加工为简化程序,以完整半圆柱加工为例(图 4-4 a)。为对刀、编程方便,主程序、宏程序零点放在工件左侧最高点,毛坯为方料。示例 4-4,子程序加工方案,立铣刀加工程序号为%0020,球刀加工程序号%0021。 主程序主程序%1000G91 G28Z0M06 T01G54 G90G0 G17 G40G43 Z50 H1 M03 S3000X-8Y-46.5G1 Z-40 F200X-5M98 P0020 L28G49 Z100 M05G28 Z105M06 T02G43 Z50 H2 M03 S4000X0Y-46G1 Z-46 F200M98 P0021 L50G49 Z100 M

56、05G28 Z105M30 子程序子程序%0020G90 G19 G2Y-6.5Z0.5 R40.5 F800G1 Y6.5G2Y46.5 Z-40 R40.5G91 G1 X1G90 G3Y6.5 R40.5G1Y-6.5G3Y-46.5Z-40 R40.5G91 G1 X1G90 M99%0021G90 G19 G2Y46 R46 F1000G91 G1 X0.5G90 G3Y-46R46G91 G1 X0.5G90 M99示例 4-5,宏程序加工方案,立铣刀加工宏程序号为%9020,球刀加工宏程序号%9021。主程序和宏程序调用参数与示例 4-3基本相同,不再给出。%9020#10=#2

57、4;进刀起始位置 X#11=#24+#1;进刀终止位置 X#2=2;G2/G3#3=1;切削方向G90 G0X#10-2 Y#25-#3*#4+#7;Z5;G1 Z-#4 F200;WHILE #10 LE #11 DO1G1 X#10 F#9;进刀G#2Y#25-#3*#7 Z0 R#4;走 1/4 圆弧G1 Y#25+#3*#7;走一个刀具直径的直线G#2Y#25+#3*#4+#7 Z-#4R#4;走 1/4 圆弧#10=#10+#17;计算下一刀位置#2=#2+#3;确定下一刀 G2/G3#3=-#3;切削方向反向END1G0 Z5M99%9020#10=#24;进刀起始位置 X#11=

58、#24+#1;进刀终止位置 X#2=2;G2/G3#3=1;切削方向#4=#4+#7G90 G0X#10-2 Y#25-#3*#4;Z5;G1 Z-#4 F200;WHILE #10 LE #11 DO1G1 X#10 F#9;进刀G#2Y#25+#3*#4 Z0 R#4;走圆弧#10=#10+#17;计算下一刀位置#2=#2+#3;确定下一刀 G2/G3#3=-#3;切削方向反向END1G0 Z5M99数控高级编程讲义1818专题五专题五孔系加工孔系加工孔系加工可分为矩形阵列孔系和环形阵列孔系加工两种情况。5.15.15.15.1矩形阵列孔系加工矩形阵列孔系加工就单孔加工而言,其加工有一次钻

59、进和间歇钻进之分,为使用方便,定制的宏程序应能完成此两种加工。以图 5-1所示工件为例,板厚20,编程零点放在工件左下角。示例 5-1,矩形阵列孔系宏程序加工,阵列基准为左下角第一个孔。 主程序主程序%1000G91 G28Z0;M06 T1;中心钻G54 G90G0 G17 G40G43 Z50 H1 M03 M07 S1000G65 P9022 X19.5 Y14A9 B20I9J9R2 Z-3 Q0 F60G0 G49Z150 M05 M09G91 G28Z0M06 T2;钻头G90 G43Z50 H2 M03 M07 S1200G65 P9022 X19.5 Y14A9 B20I9J9

60、R2 Z-22 Q2 F100G0 G49Z150 M05 M09G91 G28Z0M30 宏程序调用参数说明宏程序调用参数说明X(#24)-阵列左下角孔位置Y(#25)A(#1)-行数B(#2)-列数I(#4)-行间距J(#5)-列间距R(#7)-快速下刀高度Z(#26)-钻深Q(#17)-每次钻进量,Q=0,则一次钻进到指定深度。F(#9)-钻进速度 宏程序宏程序%9022(单向进刀)#10=1;行变量#11=1;列变量WHILE #10 LE #1 DO1#12=#25+#10-1*#4;Y 坐标WHILE #11 LE #2 DO2#13=#24+#11-1*#5;X 坐标G0 X#1

61、3Y#12;孔心定位Z#7;快速下刀IF #17 EQ 0 GOTO 10#14=#7-#17;分次钻进WHILE #14 GT #26 DO3G1 Z#14 F#9G0Z#14+2Z#14+1#14=#14-#17END3N10G1 Z#26 F#9;一次钻进/或补钻G0Z#7;抬刀至快进点#11=#11+1;列加 1END2#10=#10+1;行加 1END1M99图5-1 数控高级编程讲义1919%9022(双向进刀)#10=1;行变量#12=#25;孔心 Y 坐标#13=#24;X 坐标#15=1;方向WHILE #10 LE #1 DO1#11=1 ;列变量WHILE #11 LE

62、#2 DO2G0X#13 Y#12;孔心定位Z#18;快速下刀IF #17 EQ 0 GOTO 10#14=#18-#17;分次钻进WHILE #14 GT #26 DO3G1 Z#14 F#9G0Z#14+2Z#14+1#14=#14-#17END3;N10 G1 Z#26 F#9;一次钻进/或补钻G0 Z#18;抬刀至快进点#11=#11+1;列加 1#13=#13+#5*#15END2#13=#13-#15*#5#10=#10+1;行加 1#15=-#15#12=#12+#4END1M995.25.25.25.2环形阵列孔系加工环形阵列孔系加工示例 5-2,加工图 5-2 所示工件。编程

63、零点放在分布圆中心。 图5-2 主程序主程序%1000G91 G28Z0;M06 T1;中心钻G54 G90G0 G17 G40;G43 Z50 H1 M03 M07 S1000;G65 P9023 X0 Y0A0 B45 I50 K8 R2 Z-3 Q0 F60G65 P9023 X0Y0A0 B30 I80K12 R2 Z-3Q0 F60G0 G49Z120 M05 M09G91 G28Z0M06 T2;钻头G43 Z50 H2 M03M07 S800G65 P9023 X0Y0A0 B45 I50 K8R2 Z-22 Q2 F60G65 P9023 X0Y0A0 B30 I80 K12

64、R2 Z-42 Q2 F60G0 G49Z100 M05 M09G91 G28Z0M30数控高级编程讲义2020 宏程序调用参数说明宏程序调用参数说明X(#24)-阵列中心位置Y(#25)A(#1)-起始角度B(#2)-角度增量(孔间夹角)I(#4)-分布圆半径K(#6)-孔数R(#7)-快速下刀高度Z(#26)-钻深Q(#17)-每次钻进量,Q=0,则一次钻进到指定深度。F(#9)-钻进速度 宏程序宏程序%9023#10=1;孔计数变量WHILE #10 LE #6 DO1#11=#24+#4*COS#1;X#12=#25+#4*SIN#1;YG90 G0X#11Y#12;定位Z#7;快速下

65、刀IF #17 EQ 0 GOTO 10#14=#7-#17;分次钻进WHILE #14 GT #26 DO2G1 Z#14 F#9G0Z#14+2Z#14+1#14=#14-#17END2N10G1 Z#26 F#9;一次钻进/或补钻G0Z#7;抬刀至快进点#10=#10+1;孔数加 1#1=#1+#2;孔分布角加角度增量END1M99数控高级编程讲义2121第二篇第二篇车工篇车工篇专题六专题六参数编程参数编程参数编程用于系列零件的加工,此系列零件形状相同,但有部分尺寸不同。如果将这些不同的尺寸用宏变量(参数)形式给出,由程序自动对相关节点坐标进行计算,则可用同一程序完成一个系列零件的加工。

66、以图 6-1零件为例。该系列零件的右端面半球球径可取 R15 和 R10,可将球径用变量表示。编程零件设在工件右端面中心,棒料45。从图中可以看出,编程所需节点,除A、D、E 三点外,B、C 点均与球径 R 有关。下面给出各节点坐标。加工程序如下:%1001T0101;G54 G90G0 G95M03 S800;X45 Z2 M07;#1=15;G71 U7 R1;G71 P10 Q20 U1 W0.2 F0.4 S750;N10 G0 X0 S1200;G3 X2*#1 Z-#1 R#1 F0.15;G1 Z-20-2*#1;X40 Z-60;Z-100;N20X45;G70 P10 Q20

67、;G0 X200 Z200;M30;编号坐标值XZA00B2R-RC2R-(60-2*(20-R)=-20-2RD40-60E40-90 1:2 图 6-1 数控高级编程讲义2222专题七专题七方程曲线的车削加工方程曲线的车削加工在实际车削加工中,有时会遇到工件轮廓是某种方程曲线的情况,此时可采用宏程序完成方程曲线的加工。7.17.17.17.1方程曲线车削加工的走刀路线:方程曲线车削加工的走刀路线: 粗加工:应根据毛坯的情况选用合理的走刀路线。粗加工:应根据毛坯的情况选用合理的走刀路线。对棒料、外圆切削,应采用类似 G71 的走刀路线;对盘料,应采用类似 G72 的走刀路线;对内孔加工,选用

68、类似 G72 的走刀路线较好,此时镗刀杆可粗一些,易保证加工质量。 精加工:一般应采用仿形加工,即半精车、精车各一次。精加工:一般应采用仿形加工,即半精车、精车各一次。7.27.27.27.2椭圆轮廓的加工椭圆轮廓的加工对椭圆轮廓,其方程有两种形式。对粗加工,采用 G71/G72 走刀方式时,用直角坐标方程比较方便;而精加工(仿形加工)用极坐标方程比较方便。 极坐标方程极坐标方程aX 向椭圆半轴长;bZ 向椭圆半轴长;椭圆上某点的圆心角,零角度在 Z 轴正向。 直角坐标方程:直角坐标方程:示例 7-2,加工图 7-2 所示椭圆轮廓,棒料45,编程零点放在工件右端面。 图 7-2 %200G50

69、 X100 Z200;T0101;G95 G0X41 Z2 M03 S800;G1 Z-100 F0.3;粗加工开始G0 X42;Z2;#1=20*20*4;4a2#2=60;b#3=35;X 初值(直径值)WHILE #3 GE 0 DO1;粗加工控制#4=#2*SQRT1-#3*#3/#1; ZG0 X#3+1 ;进刀G1 Z#4-60+0.2 F0.3;切削G0 U1;退刀Z2;返回#3=#3-7;下一刀切削直径END1;#10=0.8;x 向精加工余量#11=0.1;z 向精加工余量WHILE #10 LE 0 DO1; 半精、精加工控制G0 X0 S1500;进刀,准备精加工#20=

70、0;角度初值WHILE #20 LE 90 DO2; 曲线加工#3=2*20*SIN#20;X#4=60*COS#20;ZG1 X#3+#10 Z#4+#11 F0.1;#20=#20+1;END2;G1 Z-100;G0 X45 Z2;#10=#10-0.8;#11=#11-0.1;END1;G0 X100 Z200 T0100;M30;数控高级编程讲义23237.37.37.37.3抛物线加工抛物线加工示例 7-3,加工图 7-3 所示抛物线孔,方程为Z=X2/16,换算成 直径编程形式为 Z=X2/64 ,则X=sqrtZ/8。采用端面切削方式,编程零点放在工件右端面中心,工件预钻有30

71、 底孔。%120G50 X100 Z200;T0101;G90 G0X28 Z2 M03 M07 S800;#1=-3;ZWHILE #1 GE -81 DO1; 粗加工控制#2=SQRT100+#1/8;XG0 Z#1+0.3;G1 X#2-0.3 F0.3;G0 X28 W2;#1=#1-3;END1;#10=0.2;#11=0.2;WHILE #10 GE 0 DO1; 半精、精加工控制#1=-81;G0 Z-81 S1500;WHILE #1LT0.5 DO2; 曲线加工控制#2=SQRT100+#1/8;XG1 X#2-#10 Z#1+#11 F0.1;#1=#1+0.3;END2;

72、G0 X28;#10=#10-0.2;#11=#11-0.2;END1;G0 X100 Z200 M05 M09;T0100;M30; 图7-3 数控高级编程讲义2424附录附录FANUCFANUCFANUCFANUC系统系统 G G GG指令和宏指令指令和宏指令附录附录 1 1 11刀具补偿值、刀具补偿号及在程序中赋值刀具补偿值、刀具补偿号及在程序中赋值 G10G10G10G101 1 11、刀具补偿值的范围、刀具补偿值的范围米制:0999.999mm英制:099.9999inch2 2 22、刀具补偿值的存贮、刀具补偿值的存贮刀具补偿存贮器 A:使用与刀具补偿号对应的刀具补偿值。刀具补偿存

73、贮器 B:使用与刀具补偿号对应的刀具几何补偿、刀具磨损补偿。刀具补偿存贮器 C:刀具补偿分长度补偿(H)和半径补偿(D) ,使用与刀具补偿号对应的刀具几何补偿、刀具磨损补偿。3 3 33、刀具补偿赋值格式:、刀具补偿赋值格式: 刀具补偿存贮器刀具补偿存贮器A A AA:G10G10G10G10P_P_P_P_R_;R_;R_;R_; 刀具补偿存贮器刀具补偿存贮器B B BB: 刀具补偿存贮器刀具补偿存贮器C C CC:P刀具补偿号;RG90 时,为刀具补偿实际值;G91时,R 值加到指定刀具补偿值上(其和为刀具补偿值,即 R 值为刀具补偿增量) 。补偿号刀具补偿值1400补偿号几何补偿磨损补偿

74、1400补偿号刀具长度补偿(H)刀具半径补偿(D)几何补偿磨损补偿几何补偿磨损补偿1400刀具补偿存贮器种类格式几何补偿G10 L10 P_ R_;磨损补偿G10 L11P_ R_;刀具补偿存贮器种类格式刀具长度补偿(H)几何补偿G10 L10 P_ R_;磨损补偿G10 L11P_ R_;刀具半径补偿(D)几何补偿G10 L12 P_ R_;磨损补偿G10 L13 P_ R_;数控高级编程讲义2525附录附录 2 2 22缩放缩放 G50G50G50G50、G51G51G51G51编程的形状可以被放大或缩小(比例缩放) 。用x,y,z 指定的尺寸均可用相同的或不同的放大倍率进行缩放,放大倍率

75、可以在程序中指定。如果未在程序中指定,则使用在参数中指定的放大倍率。格式:格式: 在所有轴分量上用相同的放大倍率缩放在所有轴分量上用相同的放大倍率缩放G51 X_Y_ Z_ P_;缩放开始G50;缩放取消X_Y_ Z_:缩放中心绝对值指定。P:缩放比例。 在每一个轴上用不同的放大倍率缩放在每一个轴上用不同的放大倍率缩放G51 X_Y_ Z_I_J_K_;缩放开始G50;缩放取消I_J_K_:x、y、z 各自的缩放比例。警告:警告:在一个单独的程序段中指令在一个单独的程序段中指令G51G51G51G51,在图形放大或缩小后,指令,在图形放大或缩小后,指令G50G50G50G50以取消缩放模式。以

76、取消缩放模式。解释解释 在所有轴上用相同的放大倍率缩放在所有轴上用相同的放大倍率缩放最小放大比例输入增量是 0.001 或 0.00001,这由参数 03607 的值决定。如果在缩放程序段(G51 X_Y_ Z_ P_;)没有指定比例 P,则使用在参数 731 中设定的放大倍率。如果忽略 X、Y、Z,则指定 G51指令处的刀具位置为缩放中心。 在每一个轴上用不同的放大倍率缩放(负放大倍数)在每一个轴上用不同的放大倍率缩放(负放大倍数)每个轴可按不同比例放大,当指定负放大时,可实现镜像。首先设置参数 063#6,使各轴缩放(镜像)生效,然后设置参数 036#0、#1、#2 允许各轴缩放,最后设置

77、参数 036#7指定各轴最小放大比例输入增量是 0.001 或 0.00001。设置给参数 5421 的放大倍数不得超过范围0.000019.99999 或0.0019.999。如果设置负值,则实现镜像。如果未指令放大倍数I、J、K,则使用设置在参数(NO.731、732、733)中的放大倍数。但参数中必须设置一非零值。注意:注意:缩放倍率(缩放倍率(I I II、J J JJ、K K KK)不能使用小数点编程。)不能使用小数点编程。 圆弧插补的缩放圆弧插补的缩放即使在圆弧插补中各轴使用不同的放大倍率,刀具也不会沿椭圆运动。 (即对圆弧插补的数据缩放后再执行圆弧插补。 )当用半径 R 指令的圆

78、弧插补、各轴使用不同的放大倍数时,将如下图所示。 (该示例中,X 分量的放大倍数为 2,Y 分量的放大倍数为 1) 。数控高级编程讲义2626G90 G00X0.0 Y100.0;G51 X0.0Y0.0 Z0.0 I2000J1000;G02 X100.0Y0.0 R100.0 F500;上述指令等价于下列指令:G90 G00 X0.0Y100.0 Z0.0;G02 X200.0Y0.0 R200.0 F500;半径 R 的放大倍数为I、J 中较大的。当用I、J、K 指令的圆弧插补各轴使用不同的放大倍数时,将如下图所示。 (该示例中 ,X 分量的放大倍数为 2,Y 分量的放大倍数为 1)G9

79、0 G00X0.0 Y0.0;G51 X0.0Y0.0 Z0.0 I2000J1000;G02 X100.0Y0.0 I0.0 J-100.0 F500;上述指令等价于下列指令:G90 G00 X0.0Y100.0 Z0.0;G02 X200.0Y0.0 I0.0 J-100.0 F500;此时,指令终点与半径的端点不重合,包含了一直线段。无效的缩放无效的缩放缩放不能用于刀具半径补偿值、刀具长度偏置值和刀具偏置值。在下列固定循环中,Z 轴运动不会缩放:深孔加工循环(G83、G73)的每次钻进量 Q 和回退量;精镗循环 G76;反精镗循环 G87 中在 X 轴和 Y 轴上让刀量 Q;警告:警告:

80、1 1 11、如果使用参数设置值作为放大比例而不指定、如果使用参数设置值作为放大比例而不指定P P PP,则在,则在 G51G51G51G51指令的整个周期内都使指令的整个周期内都使用此设置值作为放大比例,并且对该值的任何修改都是无效的。用此设置值作为放大比例,并且对该值的任何修改都是无效的。2 2 22、在指令返回参考点(、在指令返回参考点(G27G27G27G27、G28G28G28G28、G29G29G29G29、G30G30G30G30)或坐标系设置()或坐标系设置(G92G92G92G92)的)的 G G GG代码之代码之前,应取消缩放模式。前,应取消缩放模式。3 3 33、如果缩放

81、结果被四舍五入圆整后,超过了取值范围(数据上溢) ,忽略余数后,移、如果缩放结果被四舍五入圆整后,超过了取值范围(数据上溢) ,忽略余数后,移动量可能变成零。此时,该程序段被当作一无运动程序段,因而将可能影响刀具半径动量可能变成零。此时,该程序段被当作一无运动程序段,因而将可能影响刀具半径C C CC补偿下的刀具运动。补偿下的刀具运动。在手动操作中,移动距离不能用缩放功能增大或减小。注意:注意:1 1 11、运动位置坐标显示值是缩放后的结果。、运动位置坐标显示值是缩放后的结果。2 2 22、当镜像在指定平面内应用于某轴时,会产生下列结果:、当镜像在指定平面内应用于某轴时,会产生下列结果: 圆弧

82、指令圆弧指令-圆弧旋向反向圆弧旋向反向 刀具半径刀具半径C C CC补偿补偿-偏置方向反向偏置方向反向 坐标系旋转坐标系旋转-旋转角度反号旋转角度反号示例:镜像程序示例:镜像程序00406050100405060100XY数控高级编程讲义2727子程序O9000;G00 G90X60.0 Y60.0;G01 X100.0 F100;Y100.0;X60.0 Y60.0;M99;主程序N10 G00G90;N20 M98 P9000;N30 G51X50.0 Y50.0 I-1000 J1000;N40 M98 P9000;N50 G51X50.0 Y50.0 I-1000 J-1000;N60

83、 M98 P9000;N70 G51X50.0 Y50.0 I1000 J-1000;N80 M98 P9000;N90 G50;附录附录 3 3 33坐标系旋转坐标系旋转G68G68G68G68、G69G69G69G69格式:格式:坐标系旋转开始_;R_68G19G18G17G坐标系旋转状态G69;坐标系旋转取消式中:G17(G18、G19) :用于选择旋转平面(该面内包含有需旋转的轮廓)_:旋转中心,可用 xy,zx,yz 指定,由 G17、G18、G19 决定。R_:旋转角度,顺时针指定。参数 041 的 0 位用于选择旋转角度的指定方式。041#0=0,R 值为绝对旋转角度;041#0

84、=1,G90 时,R 值为绝对旋转角度;G91 时,R 值为旋转角度增量。最小输入增量:0.001deg(度)无效数据范围:360,000360,000解释解释 选择平面的选择平面的G G GG代码代码G17G17G17G17、G18G18G18G18、G19G19G19G19在含有坐标系旋转的 G代码(G68)的程序段内可指定选择平面的G 代码 G17、G18、G19,但在坐标系旋转状态下不能指定 G17、G18、G19。至于在 G68 程序段与一含绝对编程指令(G90)程序段之间用指令增量位置指令(G91)的情况,被当作:在 G68 被指令处的位置是旋转中心(图 14.9(c) 。当_省略

85、时,G68 被指令时的位置被设成旋转中心。当旋转角度省略时,设置在参数 NO.730 中的值被当作旋转角度。坐标系旋转由 G69 取消。数控高级编程讲义2828N1 G92X-50.0Y-50.0 G69G17;N2 G68X70.0Y30.0 R60.0;N3 G90G01 X0Y0 F200;(G91 X50.0Y50.0)N4 G91X100.0;N5 G02Y100.0 R100.0;N6 G03X-100.0 I-50.0 J-50.0;N7 G01Y-100.0;N8 G69G90 X-50.0 Y-50.0M02;G69 指令可和其它指令一起在同一程序段中指定。刀具偏置如:切削半

86、径补偿、刀具长度补偿、刀具偏置,在坐标系旋转后执行。警告:警告:在指定在指定 G69G69G69G69的程序段必须用绝对编程方式指定运的程序段必须用绝对编程方式指定运动。动。示例示例在刀具半径 C 补偿状态下可以指定 G68 和 G69,旋转平面和刀具半径补偿平面必须重合。N1 G92X0 Y0 G69G01;N2 G42G90 X100.0Y100.0F100 H01;N3 G68R-30;N4 G91X200.0;N5 G03X100.0 R100.0 J50.0;N6 G01X-200.0;N7Y-100.0;N8 G69G40 G90 X0Y0 M30; 刀具半径补偿和坐标系旋转刀具半

87、径补偿和坐标系旋转比例缩放和坐标系旋转如果在缩放状态(G51)下指令坐标系旋转旋转中心_也将被缩放,但角度不缩放。当指令运动指令时,先实现缩放,再实现坐标缩放。在缩放模式的刀具补偿(G41、G42)状态下,不能指定坐标系旋转。坐标系旋转通常应先于刀具半径 C 补偿指定。1、当系统没有处于刀具半径 C 补偿状态时,可按如下序列指定指令:G51;缩放模式开始G68;坐标系旋转模式开始G69;坐标系旋转模式取消G50;缩放模式取消2、当系统处于刀具半径 C 补偿状态时,可按如下序列指定指令:G51;缩放模式开始G68;坐标系旋转模式开始数控高级编程讲义2929G41(G42);刀具半径 C 补偿模式

88、开始G40;刀具半径补偿模式G69;坐标系旋转模式取消G50;缩放模式取消例:G90 G92X0 Y0;G51 X300.0Y150.0 P500;G68 X200.0Y100.0 R45.0;G01 G42X400.0Y100.0 F100 H01;G91Y100.0;X-200.0;Y-100.0;X200.0; 坐标系旋转的重复坐标系旋转的重复可将一个G92 X0Y0 G69 G17;G01 F200 H01;M98 P2100;M98 P072200;G69 G00G90 X0 Y0 M30;O2200 G68X0 Y0 G91R45.0;G90 M98 P2100;M99;O2100

89、 G90 G01G42 X0Y-10.0 H01;X4.142;X7.071 Y-7.071;G40;M99;程序当子程序存贮起来,再通过修改其角度来调用子程序。下例是在参数 04101 的情况下编制的,此时角度指定用绝对值还是增量值依赖于 G 代码(G90/G91)状态。附录附录 4 4 44宏程序宏程序 B(customB(customB(customB(custommacromacromacromacroB)B)B)B)尽管子程序对重复性的相同操作很有用, (但仍不能和宏程序相提并论) 。用户宏程序功能允许使用变量、算术和逻辑运算、以及条件分支控制,这便于普通加工程序的发展,如发展成打包

90、好的自定义的固定循环。加工程序可利用一简单的指令来调用宏程序,就像使用子程序一样。例:数控高级编程讲义3030加工程序:O0001;G65 P9010 R50.0 L2;M30;用户宏程序:O9010;#1+#18/2;G01 G42X#1 Y#1 F300;G02 X#1Y-#1R#1;M99;1 1 11宏变量(宏变量(variablesvariablesvariablesvariables)普通加工程序中指定 G 代码和移动距离时,直接使用数字值,如:G100 和 X 100.0。而在用户宏程序中,数字值可直接指定或使用变量号(称宏变量) 。当采用宏变量时,其值可在程序中修改或利用 MD

91、I 面板操作进行修改。例:#1=#2+100;G01 X #1 F300;Explanation(Explanation(Explanation(Explanation(说明说明) ) ) 宏变量的表示形式宏变量的表示形式当指定一宏变量时,用“#”后跟变量号的形式,如:#1。在计算机上允许给变量指定变量名,但用户宏程序没有提供这种能力。宏变量号可用表达式指定,此时,表达式应包含在方括号内。如:#1+#2-12 宏变量的取值范围宏变量的取值范围局部变量和全局变量取值范围如下:,0,2947101047291010如计算结果无效(超出取值范围)时,发出编号 111 的错误警报。 小数点的省略小数点

92、的省略在程序中定义宏变量的值时,可省略小数点。例:#1=123;宏变量#1 的实际值是 123.000。 未赋值(定义)的变量未赋值(定义)的变量如果一个宏变量没有赋值(无定义) ,则该变量被当作空变量。宏变量#0 通常情况下是一个空变量,它只能读,不能写(赋值) 。 宏变量的类型宏变量的类型根据变量号,宏变量可分成四种类型,如下表所示。变量号变量类型功能#0空变量该变量通常为空(null),该变量不能赋值#1#33局部变量LocalVariables局部变量只能在宏程序内部使用,用于保存数据,如运算结果等。当电源关闭时,局部变量被清空,而当宏程序被调用时, (调用)参数被赋值给局部变量。#1

93、00#149(#199)#500#531(#999)全局变量Commonvariables全局变量可在不同宏程序之间共享,当电源关闭时,#100#149 被清空,而#500#531的值仍保留。在某一运数控高级编程讲义3131注:全局变量#150#199,#532#999是选用变量,应根据实际系统使用。 宏变量的引用宏变量的引用在程序中引用(使用)宏变量时,其格式为:在指令字地址后面跟宏变量号。当用表达式表示变量时,表达式应包含在一对方括号内。如:G01 X#1+#2 F#3;被引用宏变量的值会自动根据指令地址的最小输入单位进行圆整。例:程序段 G00 X#1;,给宏变量#1 赋值 12.345

94、6,在1/1000mm 的 CNC 上执行时,程序段实际解释为 G00 X12.346; 。要使被引用的宏变量的值反号,在“#”前加前缀“-”即可。如:G00 X-#1;当引用未定义(赋值)的宏变量时,该变量前的指令地址被忽略。如:#1=0,#2=null(未赋值),执行程序段 G00 X#1Y #2;,结果为 G00 X0。 宏变量值的显示宏变量值的显示1、按偏置菜单纽,显示刀具补偿显示屏幕。VARIABLEO1234 N1234NO.DATANO.DATA100123.4561081010.000109102110103111104112105113106114107115ACTUAL P

95、OSITION (RELATIVE)实际位置(相对)X0.000Y0.000Z0.000B0.000 OFFSET MACRO MENU WORK 2、按软体键MACOR,显示宏变量屏幕。3、按键,输入变量号,再按键,光标将移动到输入变量号的位置。当变量值为空白时,该变量为 null。标记*表示变量值上溢(变量的绝对值大于 99999999)或下溢(变量的绝对值小于 0.0000001) 。使用限制:使用限制:宏变量不能用于程序号、程序段顺序号、程序段跳段编号。如不能用于以下用途:O#1;/#2 G00 X100.0;N#3Y200.0;算中,#150#199,#532#999 的变量可被使用

96、,但存储器磁带长度不得小于 8.5m。#1000#9999系统变量Systemvariables系统变量可读、可写,用于保存 NC 的各种数据项,如:当前位置、刀具补偿值等。数控高级编程讲义32322 2 22系统变量系统变量 SYSTEMSYSTEMSYSTEMSYSTEMVARIABLEVARIABLEVARIABLEVARIABLES S SS系统变量用于读写 NC 装置的内部数据,如:刀具补偿数据、刀具当前位置数据等。但需注意的是,有些系统变量是只读的。对于(NC 的)自动控制和普通的程序开发来说,系统变量是必不可少的。有关解释如下:2.12.12.12.1接口信号接口信号 Inter

97、faceInterfaceInterfaceInterfacesignalssignalssignalssignals接口信号可在可编程控制器 PMC 和用户宏程序之间进行交换。表 2.1(a)用于接口信号的系统变量详细信息请参连接手册(B-61393E-2) 。2.22.22.22.2刀具补偿值刀具补偿值 ToolToolToolToolcompensationcompensationcompensationcompensationvaluesvaluesvaluesvalues刀具补偿值可通过系统变量读写。无论是几何补偿和磨损补偿的区别,还是刀具长度补偿和刀具切削半径补偿间的区别,能用的变

98、量号数都依赖于补偿值的对数。当补偿值对数不超过 200 时,变量号#2001#2400 均可使用。表 2.2(a) 刀具补偿存储方式 A 的系统变量表 2.2(b) 刀具补偿存储方式 B 的系统变量表 2.2(c) 刀具补偿存储方式 C 的系统变量变量号功能#1000#1015#1032用于从 PMC 传送 16 位的接口信号到用户宏程序。#1000#1015 信号是逐位读取的,而#1032 信号是 16 位一次读取的。#1100#1115#1132用于从用户宏程序传送 16 位的接口信号到 PMC。#1100#1115 信号是逐位写入的,而#1132 信号是 16 位一次写入的。#1133用

99、于从用户宏程序一次写入 32 位的接口信号到 PMC。注意:#1133 取值范围为-99999999+99999999。刀具补偿号系统变量号1200400#10001(#2001)#10200(#2200)#10400(#2400)刀具补偿号几何补偿磨损补偿1200400#11001(#2201)#11200(#2400)#11400#10001(#2001)#10200(#2200)#10400补偿号刀具长度补偿刀具半径补偿几何补偿磨损补偿几何补偿磨损补偿1200#11001(#2201)#11200(#2400)#10001(#2001)#10200(#2200)#13001#12001数

100、控高级编程讲义33332.32.32.32.3宏程序报警信息宏程序报警信息 MacroMacroMacroMacroalarmsalarmsalarmsalarms表 2.3 表示宏程序报警信息的系统变量如:#3000=1(刀具为找到) ;报警屏幕显示:3001 TOOL NOT FOUND。2.42.42.42.4时间信息时间信息时间信息可被读与写。 表表 2.42.42.42.4表示时间信息的系统变量表示时间信息的系统变量2.52.52.52.5自动运行控制自动运行控制自动运行的控制状态可以改变。 表表 2.5(a)2.5(a)2.5(a)2.5(a)用于自动运行控制的系统变量用于自动运行

101、控制的系统变量#3003#3003#3003#3003。completioncompletioncompletioncompletion1、当电源关闭时,#3003 的值变为 0。2、当单段运行禁止时,即使单段运行开关置为开(ON) ,单段运行操作也不执行。3、当不指定等待辅助功能(M、S、T)完成时,在辅助功能完成前,程序会继续执行下一程序段。当然也不会输出分配任务已结束信号(DENDistribution END) 。400#11400#10400#13400#12400变量号功能#3000当#3000 赋值为 099 中的某值时,NC 停止并报警,随后给出一个不超过 26个字符的报警信息

102、。 同时将#3000 的值加上 3000 作为报警号于报警信息一起显示在屏幕上。变量号功能#3001该变量的功能是作为计时器,并时刻以 16 毫秒的增量进行计时。当电源关闭时,该变量的值被重置为 0。当累计计时65535 毫秒时,计时器从 0 重新计时。(可用于刀具寿命管理)#3002该变量的功能是作为计时器,并在循环启动灯亮的同时,以1 小时为增量进行计时。即使电源关闭,该计时器的值仍保留。当累计计时 1145324.612 小时时,该计时器从 0 重新计时。#3011该变量用于读取当前日期(年/月/日) 。年/月/日信息被转换成类似于十进制的数。如:1993 年 3 月 28 日表示为 1

103、9930328。#3012该变量用于读取当前时间(时/分/秒) 。时/分/秒信息被转换成类似于十进制的数。如:下午 3 点 34 分 56 秒表示为 153456。#3003程序单段运行辅助功能完成0允许 Enabled等待1禁止 disabled等待2允许不等待3禁止不等待数控高级编程讲义3434 表表 2.5(b)2.5(b)2.5(b)2.5(b)用于自动运行控制的系统变量用于自动运行控制的系统变量#3004#3004#3004#3004。1、失电时,#3004 的值为 0。2、当进给保持禁止时:a、当进给保持按钮按下时,机床用单段运行模式停止。但当用#3003 禁止单段运行模式时,单段

104、运行操作不执行。b、当进给保持按钮压下又释放时,进给保持灯亮,但机床不停止,程序继续执行,直到指定进给保持允许的第一个程序段,机床才停止。3、当倍率超越禁止时,无论机床操作面板上速度倍率旋钮置于何处,速度倍率总是100%。4、当准确停止检验禁止时,即使在没有指定切削的程序段,也不进行准确停止检查(到位检查) 。2.62.62.62.6背景(背景(#3005#3005#3005#3005) SettingsSettingsSettingsSettings背景可以读写,二进制值转换成十进制数。SettingSettingREVX:X 轴镜像,开/关REVY:Y 轴镜像,开/关TVON:TV 检测,

105、开/关ISO:输出代码格式,EIA/ISOINCH:公制输入/英制输入ABS:增量编程/绝对编程SEQ:自动插入顺序号(Sequence-number)开/关REV4:第四轴镜像开/关TAPE:F10/11格式穿孔带开/关2.72.72.72.7已加工的零件数已加工的零件数 NumberNumberNumberNumberofofofofmachinedmachinedmachinedmachinedpartspartspartsparts待加工零件数(目标数)和已加工零件数(完成数)可以读写的。#3004速度(进给)保持Feed hold速度倍率超越Feed rate override准确停

106、止Exact stop0允许允许允许1禁止允许允许2允许禁止允许3禁止允许允许4允许允许禁止5禁止允许禁止6允许禁止禁止7禁止禁止禁止变量号功能#3901已加工零件数(完成数)#3902待加工零件数(目标数)#15#14#13#12#11#10#9#8TAPEREV4#7#6#5#4#3#2#1#0SEQABSINCHISOTVONREVYREVX数控高级编程讲义3535注意:不能给零件数赋负值。2.82.82.82.8模态信息模态信息 ModelModelModelModelinformationinformationinformationinformation在程序段中指定的模态信息,直到

107、(当前程序段)之前的程序段中是可读出的。2.92.92.92.9当前位置当前位置位置信息是只读的。说明:变量号的未位代表轴编号,1 对应 X 轴,2 对应 Y 轴,3 对应 Z 轴,4 对应第四轴。#50815084 存储的刀具偏置值是当前执行值,不是后面程序段的处理值。在 G31(跳转功能)程序段中跳转信号接通时的刀具位置存储在变量#5061# 5064 中.当G31 段跳转信号接通不接通时, 这些变量中贮存指定程序段终点.变量号功能分组#4001#4002#4003#4004#4005#4006#4007#4008#4009#4010#4011#4012#4014#4015#4016#40

108、22#4102#4107#4109#4111#4113#4114#4115#4119#4120G00 G01G02 G03G33G17 G18 G19G90 G91G94 G95G20 G21G40 G41G42G43 G44G49G73 G74G76 G80G89G98 G99G50 G51G65 G66G67G54G59G61G64G68 G69B codeD codeF codeH codeM code程序段顺序号程序号S codeTcodeGroup 1Group 2Group 3Group 4Group 5Goup 6Group 7Group 8Group 9Group 10Grou

109、p11Group 12Group 14Goup 15Group 16Group 22变量号位置信息坐标系统刀具补偿值运动期间读操作#5001#5004程序段终点工件坐标系不包含允许#5021#5024当前位置机床坐标系包含禁止#5041#5044当前位置工件坐标系包含禁止#5061#5064跳转信号位置工件坐标系包含允许#5081#5084刀具补偿值禁止#5101#5104伺服位置误差禁止数控高级编程讲义3636运动期间读为禁止指由于缓冲(预读)功能的原因, 无法读取期望值。2.102.102.102.10工件坐标系补偿值(工件坐标系零点偏置值)工件坐标系补偿值(工件坐标系零点偏置值)工件坐标

110、系偏置值可以读写。变量#2500#2806 是工件坐标系的任选变量,而变量#7001#7944(G54P1G54P48)是附加的 48 个工件坐标系的任选变量。(G54Pp)的第 n 轴的工件零点偏置变量号由下式获得:#7000+p-1*20+n3 3 33算术和逻辑运算算术和逻辑运算在表 16.2(a)中列出的操作可以使用变量完成。表中右边的表达式可用常量或变量与函数或运算符组合表示。表达式中的变量#j 和#k 可用常量替换,也可用表达式替换。 表表 3(a)3(a)3(a)3(a)算术和逻辑运算算术和逻辑运算说明:说明:变量号功能#2500#2506外部工件坐标系、G54G59 第一轴零点

111、偏置值#2600#2606外部工件坐标系、G54G59 第二轴零点偏置值#2700#2706外部工件坐标系、G54G59 第三轴零点偏置值#2800#2806外部工件坐标系、G54G59 第四轴零点偏置值#7001#7004工件坐标系 G54 P1第一四轴的零点偏置值#7021#7024工件坐标系 G54 P2第一四轴的零点偏置值#7941#7944工件坐标系 G54 P48第一四轴的零点偏置值函数格式备注赋值#i=#j求和求差乘积求商#i=#j+#k#i=#j-#k#i=#j*#k#i=#j/#k正弦余弦正切反正切#i=SIN#j#i=COS#j#i=TAN#j#i=ATAN#J/#k角度用

112、十进制度表示。平方根t绝对值四舍五入向下取整向上取整#i=SQRT#j#i=ABS#J#I=ROUND#J#I=FIX#J#I=FUP#J或 OR异或 XOR与 AND#I=#J OR #K#I=#J XOR #K#I=#J逻辑运算用二进制数按位操作十二进制转换二十进制转换#I=BIN#J#I=BCD#J用于转换发送到 PMC 的信号或从PMC 接收的信号数控高级编程讲义3737 1 1 11、角度单位、角度单位SIN、COS、TAN 和ATAN函数使用的角度单位为十进制度。 2 2 22、反正切函数、反正切函数ATANATANATANATAN在反正切函数后指定两条边的长度,并用斜线隔开(y/

113、x) 。结果为0=result)GE大于等于 greater than or equal to()LT小于 less than ()LE小于等于 less than or equal to()数控高级编程讲义4141WHILE 语句对条件的处理与 IF 语句类似。在 DO 和 END 后的数字是用于指定处理的范围(称循环体)的识别号,数字可用 1、2、3 表示。当使用 1、2、3 之外的数时,产生 126 号报警。 WhileWhileWhileWhile的嵌套的嵌套对单重 DO-END 循环体来说,识别号(13)可随意使用且可多次使用。但当程序中出现循环交叉(DO 范围重叠)时,产生 124

114、 号报警。1、识别号(13)可随意使用且可多次使用WHILEDO1;ProcessingEND1;WHILEDO1;ProcessingEND1;2、DO 范围不能重叠WHILEDO1;ProcessingWHILEDO2;END1;ProcessingEND2;3、DO 循环体最大嵌套深度为三重WHILEDO1;WHILEDO2;WHILEDO3;ProcessingEND3;END2;END1;4、控制不能跳转到循环体外WHILEDO1;IFGOTO n;END1;Nn ;5、分支不能直接跳转到循环体内IFGOTO n;数控高级编程讲义2929WHLEDO1;Nn ;END1; 限制限制L

115、imitationsLimitationsLimitationsLimitations1、无限循环 Infinite loops当指定 Do m 而未指定 WHILE 语句时,将产生一个从 DO 到 END 为循环体的无限循环。2、处理时间当转移到 GOTO 语句中指定顺序号对应的程序段时,程序段根据顺序号搜索。因此向回跳转比向前跳转要花费更多的处理时间。此时使用 WHILE 语句循环可减少处理时间。3、未定义变量在条件表达式中使用 EQ 和 NE 判断时,空值(null)和0 会产生不同的结果,在其它类型的条件表达式中,空值(null)被认为是 0。 例程例程求 110 的和O9501;#1

116、=0;#2=1;WHILE #2 LE 10 DO1;#1=#1+#2;#2=#2+1;END1;M30;6 6 66调用宏程序调用宏程序宏程序可用下述方式调用:简单调用 G65;模态调用 G66、G67;用 G 代码调用宏程序;用 M 代码调用宏程序;用 M 代码的子程序调用;用 T 代码的子程序调用。 限制:宏程序调用和子程序调用的区别限制:宏程序调用和子程序调用的区别A、用 G65可以指定实参(传送给宏程序的数据) ,而M98 没有此能力。B、当 M98 程序段包含其它 NC 指令(如:G01X100.0 M98 Pp)时,在该指令执行完后调用子程序,而 G65 则无条件调用宏程序。C、

117、当 M98 程序段包含其它 NC 指令(如:G01X100.0 M98 Pp)时,在程序单段运行模式下机床停止,而 G65 不会让机床停止。D、G65调用时,局部变量的层次被修改,而 M98 调用不会更改局部变量的层次。数控高级编程讲义30306.16.16.16.1简单调用简单调用G65G65G65G65当指定 G65 调用时,地址P 后指定的用户宏程序被调用,同时数据(实参)被传递给用户宏程序。格式:G65PpLl;p被调宏程序号;l调用次数,缺省值为 1。实参传送给宏程序的数据。例:O0001;O9010;#3=#1+#2;G65 P9010 L2A1.0 B2.0;IF #3 GT 3

118、60 GOTO 9;G00 G91X#3;M30;N9 M99;说明:说明: 1 1 11、调用、调用在 G65 后用地址 P指定需调用的用户宏程序号;当重复调用时,在地址 L 后指定调用次数(199) 。L 省略时,既定调用次数是 1。通过使用实参描述,数值被指定给对应的局部变量。 2 2 22、实参描述、实参描述 ArgumentArgumentArgumentArgumentspecificationspecificationspecificationspecification有两种实参描述类型,实参描述类型可同时使用除 G、L、O、N 和 P 之外的字母各一次。而实参描述类型只能使用

119、A、B、C 各一次,使用I、J、K 最多十次。实参描述类型根据使用的字符自动判断。实参描述类型实参描述类型注:地址 G、L、N、O、P 不能用于实参;不需指定的地址可省略,省略地址对应的局部变量设成空(null) 。实参描述类型实参描述类型注:I、J、K 的下标(subscripts)用于表示实参描述的顺序,实际程序中不需写出。地址变量号地址变量号地址变量号ABCDEFH#1#2#3#7#8#9#11IJKMQRS#4#5#6#13#17#18#19TUVWXYZ#20#21#22#23#24#25#26地址变量号地址变量号地址变量号ABCI1J1K1I2J2K2I3J3#1#2#3#4#5#

120、6#7#8#9#10#11K3K3K3K3I4J4K4I5J5K5I6J6K6I7#12#13#14#15#16#17#18#19#20#21#22J7K7I8J8K8I9J9K9I10J10K10#23#24#25#26#27#28#29#30#31#32#33数控高级编程讲义3131限制限制1、格式G65 必须在实参之前指定。2、实参描述和的混合NC 内部识别实参描述和,当二者混合指定时,实参描述类型由后出现的地址决定。 (即两种类型可同时使用,当多个地址对应同一个局部变量时,该变量的值由后出现的地址决定)3、小数点的位置一个不带小数点的实参在数据传递时,其单位按其地址对应的最小精度解释,

121、因此,不带小数点的实参,其值在传递时有可能根据机床的系统参数设置而被更改。为此,应养成在宏调用实参中使用小数点的好习惯,以保持程序的兼容性。4、调用嵌套调用可嵌套四层,包括简单调用 G65 和模态调用 G66,但不包括子程序调用 M98。5、局部变量的层次嵌套调用时,局部变量的层次指定为 04。主程序的层次为 0。宏程序每(嵌套)调用一次(G65,G66) ,局部变量的层次加一,原有局部变量的值被NC 保存(不可见)。当 M99 执行时,控制返回呼调程序。此时,局部变量层次减一,宏程序调用时保存的原有局部变量值被恢复。例:主程序 1(0 层)O0001;#1=1;G65P2A2;M30;局部变

122、量#11#33宏程序 2(1 层)O0002;.G65P3A3;.M99;局部变量#12#33宏程序 3(2 层)O0003;.G65P4 A4;.M99;局部变量;#13#33宏程序 4(3 层)O0004;.G65P5A5;.M99;局部变量#14#33宏程序 5(4 层)O0002;.;.M99;局部变量#15#33全局变量:可被各层的宏程序读写#100#500例程例程( ( (多孔循环多孔循环) ) )创建一个宏程序,用于加工处于同一分布圆上的 H 个孔。孔起始角为 A,孔间夹角为 B,分布圆半径为I,圆心为(x,y) 。指令可用绝对或增量方式指定。当需顺时针方向加工时,B 用负值指定

123、。 1 1 11、调用格式、调用格式G65 P9100 XxYy Zz Rr FfIiAa Bb Hh;X:分布圆圆心的 X 坐标(绝对或增量指定)#24数控高级编程讲义3232Y:分布圆圆心的 Y 坐标(绝对或增量指定)#25Z:孔深 #26R:接近点(R 点)坐标 #18F:进给速率 #9I:分布圆半径 #4A:钻孔起始角#1B:增量角(顺时针时负值指定)#2H:孔数#11 2 2 22、主程序、主程序O0002;G90 G92 X0Y0 Z100.0;G65 P9100 X100.0Y50.0 R30.0 Z-50.0 I100.0A0 B45.0 H5;M30; 3 3 33、宏程序、

124、宏程序O9100;#3=#4003;-读取 03 组 G 代码(G90/G91)IF #3 EQ 90 GOTO 1;-G90 模式跳至 N1 分支#24=#5001+#24;-计算圆心 X 坐标#25=#5002+#25;-计算圆心 Y 坐标N1WHILE #11GT 0 DO 1;#5=#24+#4*COS#1;-计算孔轴线 X 坐标#6=#25+#4*SIN#1;-计算孔轴线 Y 坐标G90 X#5 Y#6;-钻孔前定位到目标孔处G81 Z#26 R#18 F#19 K0;-钻孔循环#1=#1+#2;-计算下一孔的角度#11=#11-1;-孔数减一END 1;G#3 G80;-回复 G

125、代码原有状态M99; 有关变量的含义有关变量的含义#3:03 组 G 代码的状态#5:下一孔孔轴线 X 坐标#6:下一孔孔轴线 Y 坐标#5001:程序段终点的 X 坐标#5002:程序段终点的 Y 坐标6.26.26.26.2模态调用模态调用G66G66G66G66一旦指令了 G66,就指定了一种模态宏调用,即在(G66之后的)程序段中指令的各轴运动执行完后,调用(G66指定的)宏程序。这将持续到指令 G67为止,才取消模态宏调用。ACenter(x,y)H=1H=2H=3BI数控高级编程讲义3333G66PpLl;p被调宏程序号;l调用次数,缺省值为 1。实参传送给宏程序的数据。O0001

126、;G66 P9100 L2A1.0 B2.0;G00 G90 X100.0;Y200.0;X150.0Y300.0;G67;M30;O9100;G00 Z-#1;G01 Z-#2 F300;M99;解释解释 1 1 11、调用、调用在 G66 后,用地址 P为模态调用指定程序号;当需要重复次数时,可在地址 L 后指定从 19999 的数字。和简单调用 G65 一样,传递给宏程序的数据用实参指定。 2 2 22、取消、取消当指定 G67 指令时,后续程序段不再执行模态调用。 3 3 33、调用的嵌套、调用的嵌套调用可嵌套四层,包括简单调用 G65 和模态调用 G66,但不包括子程序调用 M98。

127、 4 4 44、模态调用的嵌套、模态调用的嵌套在模态调用期间可指令另一个 G66 代码,而产生模态调用的嵌套。限制:在 G66 程序段不可调用宏;G66 应在实参之前指令;在仅含有一个代码的程序段,当该代码与坐标轴运动无关,如M 功能,将不产生宏调用。只需在 G66 程序段中设置局部变量,注意每次模态调用执行时,不再设置局部变量。例程例程使用自定义宏程序创建与固定循环 G81 相同的操作,加工程序用模态宏调用。为简化程序,所有钻孔数据用绝对值指定。该固定循环包含下列基本操作:操作 1:沿 X、Y 轴的定位;操作 2:快进到 R 点;操作 3:切削进给至孔底 Z 点;操作 4:快速回退至 R 点

128、或起始点I。 1 1 11、调用格式、调用格式1234RZ位 置I位 置RZ=0位 置Z数控高级编程讲义3434G65 P9110XxYy Zz Rr Ff Ll;X:孔轴线的 X 坐标 . #24Y:孔轴线的 Y 坐标 . #25Z:Z 点的坐标 #26R:R 点的坐标 #18F:进给速率 #9L:重复次数 2 2 22、主程序、主程序O0001;G28 G91X0Y0 Z0;G92 X0Y0 Z50.0;G00 G90 X100.0Y50.0;G66 P9110Z-20.0 R5.0 F500;G90 X20.0Y20.0;X50.0;Y50.0;X70.0Y80.0;G67;M30; 3

129、 3 33、宏程序、宏程序O9110;#1=#4001; 贮存 G00/G01#3=#4003; 贮存 G90/G91#4=#4109; 贮存进给速率#5=#5003; 贮存钻孔起始 Z 坐标G00 G90 Z#18; 定位至 R 点G01 Z#26 F#9; 切削至 Z 点IF #4010 EQ 98 GOTO 1; 返回至 I 点G00 Z#18; 返回至 Z 点GOTO 2;N1 G00Z#5; 返回至 I 点N2G#1G#3 F#4; 恢复模态信息M99;6.36.36.36.3使用使用G G GG代码的宏调用代码的宏调用通过在系统参数中设置 G 代码数字可用于调用宏程序,该宏程序就像

130、简单调用 G65一样被调用。解释解释通过在系统通信参数(220229)中设置 G 代码数字(1255) ,可调用自定义宏程序(90109019),该宏程序以和简单调用 G65一样的方式调用。例如,当系统参数如上设置时,可使用 G81调用自定义宏程序 O9010,通过调用使用宏程序定制的用户专有循环(user-specific cycle) ,从而无需修改加工程序。数控高级编程讲义35351、系统参数号与程序号间的对应关系2、重复与简单调用一样,可在地址 L 后指定从 19999的重复次数。3、参数指定与简单调用一样,有两种类型的参数指定方式:参数指定类型 I 和参数指定类型 II。参数指定类型

131、自动根据地址的使用进行判断。 限制限制用 G 代码调用的嵌套:在被 G 代码调用的程序中,不能有用G 代码调用的宏程序。在这样的程序中,G 代码被当作普通 G 代码对待。在被 M 或 T 代码调用的子程序中,不能有用 G 代码调用的宏程序。在这样的程序中,G 代码也被当作普通 G 代码对待。6.46.46.46.4使用使用MMMM代码的宏调用代码的宏调用通过在系统参数中设置 M 代码数字可用于调用宏程序,该宏程序就像简单调用 G65一样被调用。解释解释通过在系统通信参数(230239)中设置 M 代码数字(1255) ,可调用自定义宏程序(90209029),该宏程序以和简单调用 G65一样的

132、方式调用。1、系统参数号与程序号间的对应关系2、重复与简单调用一样,可在地址 L 后指定从 19999的重复次数。3、参数指定与简单调用一样,有两种类型的参数指定方式:参数指定类型 I 和参数指定类型 II。参数指定类型自动根据地址的使用进行判断。程序号参数号O9010O9011O9012O9013O9014O9015O9016O9017O9018O9019220221222223224225226227228229程序号参数号O9020O9021O9022O9023O9024O9025O9026O9027O9028O9029230231232233234235236237238239参数 2

133、2081O0001;G81 X10.0Y20.0 Z-10.0;M30;O9010;M99;参数 23050O0001;M50A1.0 B2.0;M30;O9020;M99;数控高级编程讲义3636限制限制用于调用宏程序的 M 代码必须在程序段的开头指令。在被 G 代码调用的宏程序中,或在被M 或 T 代码调用的子程序中,不能有用 M 代码调用的宏程序。在这样的程序中,M 代码被当作普通 M 代码对待。6.56.56.56.5使用使用MMMM代码的子程序调用代码的子程序调用通过在系统参数中设置 M 代码数字可用于调用子程序(宏程序) ,该宏程序就像子程序调用 M98 一样被调用。解释解释通过在

134、系统通信(corresponding)参数(240242)中设置 M 代码数字(1255) ,可调用自定义宏程序(90019003),该宏程序以和子程序调用 M98 一样的方式调用。1、系统参数号与程序号间的对应关系2、重复与简单调用一样,可在地址 L 后指定从 19999的重复次数。3、参数指定不允许指定参数。限制限制在被 G 代码调用的宏程序中,或在被M 或 T 代码调用的子程序中,不能有用 M 代码调用的子程序。在这样的程序中,M 代码被当作普通 M 代码对待。6.66.66.66.6使用使用T T TT代码的子程序调用代码的子程序调用通过系统参数中设置,可允许使用 T 代码调用子程序(

135、宏程序) ,当加工程序中每次指令该 T 代码时,对应宏程序被调用。参数 040 的第 5 位1O0001;T23;M30;O9000;M99;解释解释调用调用通过将系统参数 040 的第 5 位置 1,可在加工程序中指令 T 代码调用宏程序 O9000。在加工程序中指令的 T 代码用公用(全局)变量149 指定。限制限制在被 G 代码调用的宏程序中,或在被 M 或 T 代码调用的子程序中,不能有用 T 代码调用的子程序。在这样的程序中,T 代码被当作普通 T 代码对待。程序号参数号O9001O9002O9003240241242参数 23050O0001;M50A1.0 B2.0;M30;O9001;M99;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号