1、正文模块七:用户宏程序课题一:变量的引入课题二:宏程序运算指令课题三:宏程序编程实例正文课题一:变量的引入1.学习目标2.学习任务3.学习内容正文1.学习目标1.掌握宏程序的变量表达和指令方式。2.掌握宏程序变量的赋值方式。正文2.学习任务 根据所学知识,描述“G65 P0100 A10.0 D65.0 C-28.0 I-33.0 J41.0 K55.0 I45.0;”程序段所表达的含义。正文3.学习内容一、变量二、变量的赋值正文一、变量(一)变量的表示(二)变量的引用(三)变量的类型正文(一)变量的表示一个变量由#符号和变量组成,形式为#n(n=1、2、3),例如#50,#120等。B类宏程
2、序还可以用表达式表示,但表达式必须封闭在方括号“”中,例如#1,设#1=5,则#1=#5;#2+#3-10,设#2=8、#3=6,则#2+#3-10=#4。正文(二)变量的引用将跟随在地址后的数值用变量来代替,即为引入变量,例如G00 X#80 Y-#50 F#30;当#80=20.0、#50=60.0、#30=40.0时,上段程序即表示为:G00 X20.Y60.F40.;引用变量可以用表达式表示,例如:G01 X#100-40.0 Y-#101 F#101+#103;当#100=100.0、#101=50.0、#103=150.0时,上段程序即表示为:G01 X60.0 Y-50.0 F2
3、00;正文(三)变量的类型表7-1变量的类型正文二、变量的赋值(一)直接赋值(二)引数赋值正文(一)直接赋值变量可以在操作面板上用MDI方式直接赋值,也可以在程序中以等式方式赋值,但是等号左面不能用表达式,例如:#100=10.0;#101=20.0+30.0;正文(二)引数赋值1.引数赋值2.引数赋值3.引数、的混用在G65程序段的引数中,可以同时用表7-2、表7-3中的两组引数赋值。正文1.引数赋值表7-2变量赋值方法I正文2.引数赋值表7-3变量赋值方法正文2.引数赋值表7-3变量赋值方法正文3.引数、的混用在G65程序段的引数中,可以同时用表7-2、表7-3中的两组引数赋值。在G65程
4、序段的引数中,可以同时用表7-2、表7-3中的两组引数赋值。但当对同一个变量,、两组的引数都被赋值时,只是后一引数赋值有效正文课题二:宏程序运算指令1.学习目标2.学习任务3.学习内容正文1.学习目标1.理解宏程序的运算指令。2.理解宏程序的条件运算符。3.了解宏程序的控制指令。正文2.学习任务利用所学内容计算:当#1=40、#2=10、#3=2、#4=60、#5=-8、#6=12时,下式中#15为多少?#15=COS#1-#2+#3#4-SORT#5+#6正文3.学习内容一、运算指令二、条件式运算符三、控制指令四、宏程序举例正文一、运算指令(1)函数SIN、COS等的角度单位是度、分和秒,要
5、换算成带小数点的度,如6030要表示成60.5,而3018要表示成30.3。(2)宏程序数学计算的次序依次为:函数运算(SIN、COS、ATAN等),乘和除运算(、/、AND等),加和减运算(+、-、OR、XOR等),例如程序段:(3)函数中的括号用于改变运算次序,函数中的括号允许嵌套使用,但最多只允许嵌套5级,例如:正文一、运算指令(4)CNC处理数值运算,当操作后产生的整数绝对值大于原数的绝对值时为上去整,当小于原数的绝对值时为下取整。正文一、运算指令表7-4常用运算指令正文一、运算指令表7-4常用运算指令正文二、条件式运算符表7-5条件式运算符种类正文三、控制指令(一)无条件转移(GOT
6、O语句)(二)条件转移(IF语句)(三)循环语句(WHILE语句)正文(一)无条件转移(GOTO语句)转移到标有顺序号N的程序段,可用表达式指定顺序号,编程格式为:GOTO N;(N:顺序号,199999)例如:GOTO 1;GOTO 10;正文(二)条件转移(IF语句)(1)当指定的条件表达式满足时,转移到标有顺序号N的程序段;当指定的条件表达式不满足时,执行下个程序段。(2)如果条件表达式满足,执行预先设定的宏程序语句,且只执行一个宏程序语句,编程格式为:正文(1)当指定的条件表达式满足时,转移到标有顺序号N的程序段;当指定的条件表达式不满足时,执行下个程序段。编程格式为:IF条件表达式G
7、OTO N;正文(2)如果条件表达式满足,执行预先设定的宏程序语句,且只执行一个宏程序语句,编程格式为:编程格式为:IF条件表达式THEN 宏程序语句;正文(三)循环语句(WHILE语句)(1)标号1到3可以根据要求多次使用。(2)循环可以从里到外嵌套3级。(3)控制可以转到循环的外面。正文(1)标号1到3可以根据要求多次使用。WHILE条件表达式DO 1;END 1;;WHILE条件表达式DO 1;END 1;正文(2)循环可以从里到外嵌套3级。WHILE条件表达式DO 1;WHILE条件表达式DO 2;WHILE条件表达式DO 3;END 3;END 2;END 1;正文(3)控制可以转到
8、循环的外面。WHILE条件表达式DO 1;IF 条件表达式GOTO 2;END 1;N2;正文四、宏程序举例【例】用宏程序编写如图7-1所示的椭圆加工程序。O1234;(主程序号)M6 T1;(调用刀具)G54 G90;(调用工件坐标系)G00 G43 H1 Z50.0;(加入刀具长度补偿,Z向快速定位)M03 S800;(主轴正转,给定转速)X30.0 Y0;(刀具定位)Z2.0;(快速定位至工件上表面)G01 Z-5.0 F50;(刀具工进到切削层高度)#1=0;(设定角度变量)N1#2=30.0COS#1;(设定变量Z轴坐标)#3=15.0SIN#1;(设定变量X轴坐标)IF#1 LT
9、361GOTO 1;(指定循环条件)G00 Z50;(刀具到达安全位置)G49 Z0;(取消刀具长度补偿)M30;(程序结束)正文课题三:宏程序编程实例1.学习目标2.学习内容正文1.学习目标1.了解宏程序的计算技巧。2.知道例题的编程思路。3.了解宏程序的编程过程。正文图7-2螺旋线的加工2.学习内容正文【例1】用宏程序编写如图7-2所示工件的加工程序。此例为利用数控铣床或加工中心进行加工练习时去除工件表面金属层的典型例题。加工此曲线时,刀具的轨迹为每180刀具走一个半圆,并且相对于X轴,上半圆和下半圆的圆心位置不同,前者为(X0,Y0)点,后者为(X5.0,Y0)点,因此只要确定每半圆刀具
10、的轨迹半径和圆心位置即可。编程时使用以下变量进行运算:#1:上半圆半径。#2:下半圆弧终点坐标。#3:下半圆半径。本例程序如下:O1000;(主程序号)G54 G98;(调用工件坐标系)M03 S1000;(主轴正转,给定转速)G00 G43 H1 Z50.0;(加入刀具长度补偿,Z向快速定位)X0 Y0;(刀具定位)2.学习内容正文 Z5.0;(快速定位至工件上表面)G01 Z-2.0 F50;(刀具工进到切削层高度)G01 X5.0 Y0 F100;(刀具到达起始点)#1=5.0;(设定半径变量)N10#2=#1+5.0;(下半圆弧终点坐标计算)#3=#2-2.5;(下半圆半径计算)G03
11、 X-#1 Y0 I-#1 J0;(加工上半圆)G03 X#2 Y0 I#3 J0;(加工下半圆)#1=#1+5.0;(变量运算)IF#1 LE 43 GOTO 10;(指定循环条件)G01 Y30.0;(刀具远离工件)G00 Z50.0;(刀具到达安全位置)X50.0 Y50.0;(刀具远离工件)M05;(主轴停转)M30;(程序结束)2.学习内容正文课题一:平面外轮廓铣削课题二:槽型轮廓铣削课题三:相同轮廓铣削模块八:零件编程实例正文1.学习目标2.学习内容课题一:平面外轮廓铣削正文1.学会对零件外轮廓采用圆弧切入的方法及编程。2.掌握采用子程序的调用实现分层切削加工外轮廓。1.学习目标正
12、文2.学习内容【例】加工如图8-1所示某凸模,需要做成形部位即凸台的精加工,已经完成了粗加工,加工余量不大。本例主程序如下:O0001;(主程序)G90 G54 G00 X45.Y0.;(设定工件坐标系,定位到下刀点)G43 H01 Z100.;(快速到安全高度)S500 M03;(启动主轴)Z5.0;(定位到工件上表面,准备加工)G01 Z0 F50.;(插补至工件上表面)M98 P100 L3;(调用子程序,分3层切削)G00 Z30.;(快速回到安全高度)G91 G28 Z0;(主轴回参考点)M05;(主轴停转)M30;(程序结束)台阶子程序如下:O0100;(子程序)G91 Z-2.0
13、;(一次Z向下刀2mm)正文2.学习内容G41 G01 X45.Y20.D01;(通过G01加入刀具半径左补偿)G03 X25.Y0 R20.;(用一段R20mm的1/4圆弧切向切入)G01 Y-24.5;G02 X25.Y24.5 R-35.;(铣圆弧轮廓)G01 Y0;G03 X45.Y-20.R20.;(用一段R20mm的1/4圆弧切向切出)G40 Y0;(取消刀具半径补偿)M99;(子程序结束)正文图8-1凸模平面轮廓正文课题二:槽型轮廓铣削1.学习目标2.学习内容正文1.学习目标1.掌握圆腔类零件的铣削编程。2.掌握方形槽类零件的铣削编程。3.掌握分层切削的技巧。正文2.学习内容【例
14、】如图8-5所示零件为?5012mm圆形腔,材料为45钢,工件外圆及上下表面已加工完毕,现需要加工一圆腔。本例的编程思路为:(在本书上篇中,已经对该零件轮廓加工工艺路线进行过详细分析)该零件轮廓采用环切法,螺旋进给,分层切削的加工方式。本例主程序如下:O0003;(主程序)G90 G54 G00 X6.0 Y0;(设定工件坐标系,快速定位到下刀点)G43 H01 Z30.0;(加刀具长度补偿,快速到安全高度)S800 M03;(启动主轴)Z2.0;(快速定位至R平面)G01 Z0 F60.(插补到工件上表面)M98 P100 L12;(调用子程序O100,执行12次(层切)G00 Z30.;(
15、快速回到安全高度)X0 Y0;(回到工件坐标系G17平面原点)正文G91 G28 Z0;(返回参考点)M05;(主轴停)M30;(程序结束)铣削圆槽的子程序为:O100;(圆槽子程序)G91 G02 I-6.0 Z-1.0;(层间螺旋进给1mm)G90 G02 I-6.0;(铣整圆)G01 X17.5;(径向切入,行间距为11.5mm)G02 I-17.5;(铣整圆)G01 X6.0;(在G17平面上刀具回到下刀点位置)M99;(子程序结束)正文图 8-5型腔零件图正文课题三:相同轮廓铣削1.学习目标1.学习内容正文1.学习目标1.掌握相同零件的加工技巧。2.掌握FANUC系统镜像编程。3.学会键槽类零件的编程技巧。正文2.学习内容正文2.学习内容正文2.学习内容正文2.学习内容正文课题四:综合编程1.学习目标2.学习内容正文1.学习目标1.学会安排零件的编程顺序。2.会根据零件形状的不同,采用不同的编程方法。正文2.学习内容正文2.学习内容正文2.学习内容正文2.学习内容正文2.学习内容正文2.学习内容