1、下午9时20分,数控加工编程及操作,1,用户宏程序编程,在数控编程中,宏程序编程灵活、高效、快捷,是加工编程的重要补充。宏程序不仅可以实现象子程序那样,对编制相同加工操作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。,华中数控宏程序 FANUC数控宏程序 SIEMENS数控参数编程,下午9时20分,数控加工编程及操作,2,华中数控用户宏程序,HNC-21/22T 、HNC-21M为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支
2、语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。,一、基础知识,1. 宏变量及常量,(1) 宏变量 HNC-21/22T华中世纪星数控系统变量表示形式为# 后跟14位数字,变量种类有三种: 局部变量:#0#49是在宏程序中局部使用的变量,用于存放宏程序中的数据,断电时丢失为空。,下午9时20分,数控加工编程及操作,3,一、基础知识,全局变量:用户可以自由使用#50#199,它对于由主程序调用的各子程序及各宏程序来说是可以公用的,可以人工赋值。HNC-21/22T子程序嵌套调用的深度最多可以有8层,每一层子程序都有自己独立的局部变量
3、(变量个数为50)。系统变量:系统变量为#1000#1199,它能获取包含在机床处理器或NC内存中的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息。(2) 常量 PI:圆周率;TRUE:条件成立(真);FALSE:条件不成立(假),1、 宏变量及常量,下午9时20分,数控加工编程及操作,4,2、 运算符与表达式,(1) 算术运算符:+,-,*,/ (2) 条件运算符:EQ(=),NE(),GT(),GE(),LT(),LE() (3) 逻辑运算符:AND,OR,NOT (4) 函数:SIN,COS,TAN,ATAN,ATAN2,ABS,INT,SIGN,
4、SQRT,EXP (5) 表达式:用运算符连接起来的常数,宏变量构成表达式。 例如:175/SQRT2 * COS55 * PI/180 ;#3*6 GT 14,下午9时20分,数控加工编程及操作,5,3、赋值语句,格式:宏变量=常数或表达式 把常数或表达式的值送给一个宏变量称为赋值。 例如: #2 = 175/SQRT2 * COS55 * PI/180;#3 = 124.0,下午9时20分,数控加工编程及操作,6,4、 条件判别语句IF, ELSE,ENDIF,格式(i): 格式(ii) : IF 条件表达式 IF 条件表达式 ELSE ENDIF ENDIF,下午9时20分,数控加工编程
5、及操作,7,5、 循环语句WHILE,ENDW,格式:WHILE 条件表达式ENDW,下午9时20分,数控加工编程及操作,8,6、 宏程序/子程序调用的参数传递规则,G 代码在调用宏(子程序或固定循环,下同)时,系统会将当前程序段各字段(AZ共26个字段,如果没有定义则为零)的内容拷贝到宏执行时的局部变量#0 #25,同时拷贝调用宏时当前通道九个轴(轴0轴8)的绝对位置(机床绝对坐标)到宏执行时的局部变量#30 #38。 宏程序的调用格式为: M98 P(宏程序名)或G65 P(宏程序名)。, #25 Z,下午9时20分,数控加工编程及操作,9,%1000;长半轴、短半轴分别为40、30的椭圆
6、 G54 G90 G00 Z30 M03 S800 G00 X45 Y-15 ;快速定位至下刀点 Z3 G01 Z-5 F100 #0=0;给角度赋0初值 WHILE #0 LE 360;当角度360度时,执行循环体内容 #1=40*COS#0*PI/180;用椭圆的标准参数方程求动点M的X坐标值 #2=30*SIN#0*PI/180;用椭圆的标准参数方程求动点M的Y坐标值 G01 X#1 Y#2 ;用直线插补指令加工至M点,即用直线段逼近椭圆 #0=#0+1;角度的递增步长取1度 ENDW X45 Y15;切出椭圆 G00 Z30 M05 X0 Y0 M30,7、用户宏程序编程思路,下午9时
7、20分,数控加工编程及操作,10,%1000;长半轴、短半轴分别为40、30的椭圆 G92 X0 Y0 Z30 M03 S800 G00 X45 Y-15 M08;快速定位至A点 Z3 G01 Z-5 F100 #2=0;给角度赋0初值 WHILE #2 LE 360;当角度360度时,执行循环体内容 #11=40*COS#2*PI/180;用椭圆的标准参数方程求动点M的X坐标值 #12=30*SIN#2*PI/180;用椭圆的标准参数方程求动点M的Y坐标值 G42 G64 G01 X#11 Y#12 D01;用直线插补指令加工至M点,即用 直线段逼近椭圆 #2=#2+1;角度的递增步长取1度
8、 ENDW G40 G01 X45 Y15;切出椭圆至C点 Z3 M09 G00 Z30 X0 Y0 M05 M30,二、 数控铣床用户宏程序编程,下午9时20分,数控加工编程及操作,11,下午9时20分,数控加工编程及操作,12,下午9时20分,数控加工编程及操作,13,宏程序编程实例,ZH7640立式加工中心由北京第三机床厂产生,采用华中铣床、加工中心数控系统。加工范围600mm400mm500mm。刀库可容纳20把刀。可用于镗、铣、钻、铰、攻丝等各种加工。实例为在预先处理好的100mm100mm80mm合金铝锭毛坯上加工如图所示的零件,其中正五边形外接圆直径为80mm。,下午9时20分,
9、数控加工编程及操作,14,O5000;FANUCG54 G90 G00 Z40 X70 Y20 M08 M03 S600 G43 Z3 H01 G01 Z-5 F100 #0=18 N10 #1=80*COS#0 #2=80*SIN#0 G41 X#1 Y#2 D01 #0=#0+72 IF #0 LT 360 GOTO 10 G40 X70 Y70 Z40 M05 M30,O5000;HNC-21M %1000 G54 G90 G00 Z40 X70 Y20 M08 M03 S600 G43 Z3 H01 G01 Z-5 F100 #0=18 IF #0 LT 360 #1=80*COS#0
10、 #2=80*SIN#0 G41 X#1 Y#2 D01 #0=#0+72 ENDIF G40 X70 Y70 Z40 M05 M30,宏程序编程实例,下午9时20分,数控加工编程及操作,15,三、 数控车床用户宏程序编程,%3015 #10=0 ;X坐标(直径值) #11=0 ;Z坐标 T0101 M03 S600 G00 X0 Z34 WHILE #10 LE 32 G90 G64 G01 X#10 Z#11 F100 #10= #10+0.32 #9= #10/2 ;求出X坐标的半径值,便于求解#11 #11= 32-#9*#9/8 ENDW G00 X80 Z100 M05 M30,用
11、宏程序编制如图所示抛物线的精加工程序。,下午9时20分,数控加工编程及操作,16,用宏指令编制椭圆部分的精加工程序。,%3016;精加工椭圆程序 T0101 M03 S800 G00 X39 Z22 #1=60;A点的角度 #2=0;X坐标 #3=0;Z坐标 WHILE #1 LE 120;120是通过计算得来的B点角度 #2=2*23*SIN#1*PI/180;直径编程 #3=40*COS#1*PI/180 G64 G01 X#2 Z#3 F100 #1=#1+1;步长取1度 ENDW G00 X100 Z100 M05 M30,下午9时20分,数控加工编程及操作,17,用户宏程序训练,下午
12、9时20分,数控加工编程及操作,18,下午9时20分,数控加工编程及操作,19,下午9时20分,数控加工编程及操作,20,一、构成 1. 包含变量 2. 包含算术或逻辑运算(=)的程序段 3. 包含控制语句(例如:GOTO,DO,END)的程序段 4. 包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段,FANUC数控系统用户宏程序,下午9时20分,数控加工编程及操作,21,二、FANUC宏程序的变量,FANUC数控系统变量表示形式为# 后跟14位数字,变量种类有四种:,下午9时20分,数控加工编程及操作,22,下午9时20分,数控加工编程及操作,23,三、刀具
13、补偿存储器C用G10指令进行设定,P:刀具补偿号 R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。,下午9时20分,数控加工编程及操作,24,四、 FANUC宏程序的转移和循环,1. 无条件转移:GOTOn (n为顺序号,199999) 例:GOTO10为转移到N10程序段。,2. 条件转移:(IF语句) 1)IF 条件表达式 GOTOn当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段。,下午9时20分,数控加工编程及操作,25,2)IF 条件表达式 THEN 当指定的条件表达
14、式满足时,执行预先决定的宏程序语句。例:IF #1EQ #2 THEN #3=0;,3. WHILE 条件表达式 DO m;(m=1,2,3),条件满足,条件不满足,ENDm, ,注:循环允许嵌套,最多3层,但不允许交叉,下午9时20分,数控加工编程及操作,26,下午9时20分,数控加工编程及操作,27,下午9时20分,数控加工编程及操作,28,五、运算符,下午9时20分,数控加工编程及操作,29,六、 FANUC宏程序的调用,1. 非模态调用G65: 格式: G65 Pp Ll 其中 p:要调用的程序号L:调用次数(默认为1)自变量:数据传递到宏程序,例: G65 P8000 L2 A10.
15、 B2.; 调用2次程序号8000,经自变量A传递到宏程序#1=10;自变量B传递到宏程序#2=2。,下午9时20分,数控加工编程及操作,30,自变量指定,根据使用的字母,CNC系统自动地决定自变量指定的类型。 地址不需要按字母顺序指定。但应符合字地址的格式。 但是,I,J 和K 需要按字母顺序指定。,下午9时20分,数控加工编程及操作,31,自变量指定,根据使用的字母,系统自动决定自变量指定的类型。 自变量指定用于传递诸如三维坐标值的变量。 I,J,K 的下标用于确定自变量指定的顺序,在实际编程中不写。,下午9时20分,数控加工编程及操作,32,如果自变量指定和自变量指定混合指定的话,后指定
16、的自变量类型有效。,下午9时20分,数控加工编程及操作,33,六、 FANUC宏程序的调用,2. 模态调用(G66): G66 Pp Ll ; 程序点 G67;(取消模态),例:G66 P8000 L2 A10. B2.; G00 G90 Z-10. X-5. G67 一旦发出G66 则指定模态调用,即指定沿移动轴移动的程序段后调用宏程序。移动到Z-10,调用2次程序号8000,移动到X-5,再调用2次程序号8000 。,下午9时20分,数控加工编程及操作,34,%1000;长半轴40、短半轴30的椭圆 G54 G90 G00 Z30 M03 S800 G00 X45 Y-15 ; Z3 G0
17、1 Z-5 F100 #0=0;给角度赋0初值 WHILE #0 LE 360; #1=40*COS#0*PI/180; #2=30*SIN#0*PI/180; G01 X#1 Y#2 ; #0=#0+1; ENDW X45 Y15; G00 Z30 X0 Y0 M05 M30,七、FANUC与华中系统用户宏程序编程对照,G54 G90 G00 Z30 M03 S800 G00 X45 Y-15 ; Z3 G01 Z-5 F100 #10=0;给角度赋0初值 WHILE #10 LE 360 DO 1; #11=40*COS#10; #12=30*SIN#10; G01 X#11 Y#12 ;
18、 #10=#10+1; END 1 X45 Y15; G00 Z30 X0 Y0 M05 M30,下午9时20分,数控加工编程及操作,35,SIEMENS数控系统参数编程,与FANUC类似,但功能要弱一些。变量以“R”开始,如:R0、R1、R99。不包含系统变量,系统变量以 “$”开头。,一、格式:Rn (n的缺省取值范围为0-99)例如:R1 R2 R99,二、运算符:,下午9时20分,数控加工编程及操作,36,下午9时20分,数控加工编程及操作,37,三、 SIEMENS参数编程程序跳转,1. 无条件跳转GOTOB LABEL (向后跳转,向程序头跳转) GOTOF LABEL (向前跳转
19、,向程序尾跳转),2. 条件跳转IF 表达式 GOTOB LABEL(向后跳转,向程序头跳转) IF 表达式 GOTOF LABEL(向前跳转,向程序尾跳转)LABEL 为程序段标示符,下午9时20分,数控加工编程及操作,38,下午9时20分,数控加工编程及操作,39,四、编程示例,下午9时20分,数控加工编程及操作,40,G54 G90 G00 Z30 M03 S800 G00 X45 Y-15 ; Z3 G01 Z-5 F100 R10=0;给角度赋0初值 AA: R11=40*COS(R10); R12=30*SIN(R10); G01 X=R11 Y=R12 ; R10=R10+1; IF R10= 360 GOTOB AA X45 Y15; G00 Z30 X0 Y0 M05 M30,五、SIEMENS与FANUC用户宏程序编程对照,长半轴40、短半轴30的椭圆 G54 G90 G00 Z30 M03 S800 G00 X45 Y-15 ; Z3 G01 Z-5 F100 #10=0;给角度赋0初值 WHILE #10 LE 360 DO 1; #11=40*COS#10; #12=30*SIN#10; G01 X#11 Y#12 ; #10=#10+1; END 1 X45 Y15; G00 Z30 X0 Y0 M05 M30,