《数控加工之宏程序编程业界荟萃》由会员分享,可在线阅读,更多相关《数控加工之宏程序编程业界荟萃(40页珍藏版)》请在金锄头文库上搜索。
1、单单元元宏宏 用户宏程序编程用户宏程序编程 在数控编程中,宏程序编程灵活、高效、快捷,是加工编程的重要补充。宏程序不仅可以实现象子程序那样,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。l华中数控宏程序华中数控宏程序lFANUC数控宏程序数控宏程序lSIEMENS数控参数编程数控参数编程1 1行行业业知知识识单单元元宏宏 用户宏程序编程华中数控用户宏程序 HNC-21/22T 、HNC-21M为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂
2、的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。一、基础知识1. 1. 宏变量及常量宏变量及常量(1) 宏变量宏变量HNC-21/22T华中世纪星数控系统变量表示形式为华中世纪星数控系统变量表示形式为# 后跟后跟14位数字,变量种类位数字,变量种类有三种:有三种:局部变量局部变量:#0#49是在宏程序中局部使用的变量,用于存放宏程序中的数据,是在宏程序中局部使用的变量,用于存放宏程序中的数据,断电时丢失为空。断电时丢失为空。2 2行行业业知知识识单单元元宏宏 用户宏程序编程一、基础知识全全局局变变量量:用用户户可可以以自自由由使使用用#50#50#199#199,它它
3、对对于于由由主主程程序序调调用用的的各各子子程程序序及及各各宏宏程程序序来来说说是是可可以以公公用用的的,可可以以人人工工赋赋值值。HNC-21/22THNC-21/22T子子程程序序嵌嵌套套调调用用的的深深度度最最多可以有多可以有8 8层,每一层子程序都有自己独立的局部变量(变量个数为层,每一层子程序都有自己独立的局部变量(变量个数为5050)。)。系统变量系统变量:系统变量为:系统变量为#1000#1000#1199#1199,它能获取包含在机床处理器或,它能获取包含在机床处理器或NCNC内存中内存中的只读或读的只读或读/ /写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加写信
4、息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息。工参数等系统信息。(2) (2) 常量常量PI:圆周率圆周率;TRUE:条件成立条件成立(真真);FALSE:条件不成立条件不成立(假假) 1 1、 宏变量及常量宏变量及常量3 3行行业业知知识识单单元元宏宏 用户宏程序编程2 2、 运算符与表达式运算符与表达式(1) 算术运算符:+,-,*,/(2) 条件运算符:EQ(=),NE(),GT(),GE(),LT(),LE()(3) 逻辑运算符:AND,OR,NOT(4) 函数:SIN,COS,TAN,ATAN,ATAN2,ABS,INT,SIGN,SQRT,EXP(5)
5、表达式:用运算符连接起来的常数,宏变量构成表达式。例如:175/SQRT2 * COS55 * PI/180 ;#3*6 GT 14 4 4行行业业知知识识单单元元宏宏 用户宏程序编程3、赋值语句、赋值语句格式:宏变量=常数或表达式把常数或表达式的值送给一个宏变量称为赋值。例如: #2 = 175/SQRT2 * COS55 * PI/180; #3 = 124.0 5 5行行业业知知识识单单元元宏宏 用户宏程序编程4、 条件判别语句条件判别语句IF, ELSE,ENDIF格式(i): 格式(ii) : IF IF 条件表达式条件表达式 IF IF 条件表达式条件表达式 ELSE ELSE E
6、NDIF ENDIFENDIFENDIF6 6行行业业知知识识单单元元宏宏 用户宏程序编程5、 循环语句循环语句WHILE,ENDW格式:格式:WHILE WHILE 条件表达式条件表达式 ENDW ENDW7 7行行业业知知识识单单元元宏宏 用户宏程序编程6、 宏程序宏程序/子程序调用的参数传递规则子程序调用的参数传递规则G 代代码码在在调调用用宏宏(子子程程序序或或固固定定循循环环,下下同同)时时,系系统统会会将将当当前前程程序序段段各各字字段段(AZ共共26个个字字段段,如如果果没没有有定定义义则则为为零零)的的内内容容拷拷贝贝到到宏宏执执行行时时的的局局部部变变量量#0 #25,同同时
7、时拷拷贝贝调调用用宏宏时时当当前前通通道道九九个个轴轴(轴轴0轴轴8)的的绝绝对对位位置置(机机床床绝绝对对坐坐标标)到到宏宏执执行行时时的的局局部变量部变量#30 #38。宏程序的调用格式为:宏程序的调用格式为:M98 P(宏宏程程序序名名)或或G65 P(宏程序名)宏程序名)。 #25 Z 8 8行行业业知知识识单单元元宏宏 用户宏程序编程%1000%1000;长半轴、短半轴分别为;长半轴、短半轴分别为4040、3030的椭圆的椭圆G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;快速定位至下刀
8、点快速定位至下刀点Z3Z3G01 Z-5 F100G01 Z-5 F100#0=0#0=0;给角度给角度 赋赋0 0初值初值WHILE WHILE #0#0 LE LE 360360;当角度当角度 360360度时,执行循环体内容度时,执行循环体内容#1=40*#1=40*COS#0*PI/180COS#0*PI/180;用椭圆的标准参数方程求动点用椭圆的标准参数方程求动点M M的的X X坐标值坐标值#2=30*#2=30*SIN#0*PI/180SIN#0*PI/180;用椭圆的标准参数方程求动点用椭圆的标准参数方程求动点M M的的Y Y坐标值坐标值G01 X#1 Y#2 G01 X#1 Y
9、#2 ;用直线插补指令加工至用直线插补指令加工至M M点,点,即用直线段逼近椭圆即用直线段逼近椭圆# #0=#0+10=#0+1;角度;角度 的递增步长取的递增步长取1 1度度 ENDWENDWX45 Y15X45 Y15;切出椭圆切出椭圆G00 Z30 M05G00 Z30 M05X0 Y0X0 Y0M30 M30 7、用户宏程序编程思路、用户宏程序编程思路9 9行行业业知知识识单单元元宏宏 用户宏程序编程%1000%1000;长半轴、短半轴分别为;长半轴、短半轴分别为4040、3030的椭圆的椭圆G92 X0 Y0 Z30G92 X0 Y0 Z30M03 S800M03 S800G00 X
10、45 Y-15 M08G00 X45 Y-15 M08;快速定位至快速定位至A A点点Z3Z3G01 Z-5 F100G01 Z-5 F100#2=0#2=0;给角度给角度 赋赋0 0初值初值WHILE #2 LE 360WHILE #2 LE 360;当角度当角度 360360度时,执行循环体内容度时,执行循环体内容#11=40*#11=40*COS#2*PI/180COS#2*PI/180;用椭圆的标准参数方程求动点用椭圆的标准参数方程求动点M M的的X X坐标值坐标值#12=30*#12=30*SIN#2*PI/180SIN#2*PI/180;用椭圆的标准参数方程求动点用椭圆的标准参数方
11、程求动点M M的的Y Y坐标值坐标值G42 G64 G01 X#11 Y#12 D01G42 G64 G01 X#11 Y#12 D01;用直线插补指令加工至用直线插补指令加工至M M点,即用点,即用 直线段逼近椭圆直线段逼近椭圆#2=#2+1#2=#2+1;角度;角度 的递增步长取的递增步长取1 1度度 ENDWENDWG40 G01 X45 Y15G40 G01 X45 Y15;切出椭圆至切出椭圆至C C点点Z3 M09Z3 M09G00 Z30 G00 Z30 X0 Y0 M05X0 Y0 M05M30 M30 二、 数控铣床用户宏程序编程1010行行业业知知识识单单元元宏宏 用户宏程序
12、编程1111行行业业知知识识单单元元宏宏 用户宏程序编程1212行行业业知知识识单单元元宏宏 用户宏程序编程宏程序编程实例 ZH7640ZH7640立式加工中心由北京第立式加工中心由北京第三机床厂产生三机床厂产生, ,采用华中铣床、加工采用华中铣床、加工中心数控系统。加工范围中心数控系统。加工范围600600mmmm400mm400mm500mm500mm。刀库可容纳刀库可容纳2020把刀。可用于镗、铣、钻、铰、把刀。可用于镗、铣、钻、铰、攻丝等各种加工。实例为在预先处攻丝等各种加工。实例为在预先处理好的理好的100100mmmm100mm100mm80mm80mm合金铝合金铝锭毛坯上加工如图
13、所示的零件,其锭毛坯上加工如图所示的零件,其中正五边形外接圆直径为中正五边形外接圆直径为8080mmmm。 1313行行业业知知识识单单元元宏宏 用户宏程序编程O50005000;FANUCG54 G90 G00 Z40G54 G90 G00 Z40X70 Y20 M08X70 Y20 M08M03 S600M03 S600G43 Z3 H01G43 Z3 H01G01 Z-5 F100G01 Z-5 F100#0=18#0=18N10N10 #1=80*COS#0 #1=80*COS#0#2=80*SIN#0 #2=80*SIN#0 G41 X#1 Y#2 D01G41 X#1 Y#2 D0
14、1#0=#0+72#0=#0+72IF #0 LT 360 GOTO 10IF #0 LT 360 GOTO 10G40 X70 Y70G40 X70 Y70Z40 M05Z40 M05M30M30O50005000;HNC-21M%1000%1000G54 G90 G00 Z40G54 G90 G00 Z40X70 Y20 M08X70 Y20 M08M03 S600M03 S600G43 Z3 H01G43 Z3 H01G01 Z-5 F100G01 Z-5 F100#0=18#0=18IF #0 LT 360 IF #0 LT 360 #1=80*COS#0#1=80*COS#0#2=8
15、0*SIN#0 #2=80*SIN#0 G41 X#1 Y#2 D01G41 X#1 Y#2 D01#0=#0+72#0=#0+72ENDIFENDIFG40 X70 Y70G40 X70 Y70Z40 M05Z40 M05M30M30宏程序编程实例1414行行业业知知识识单单元元宏宏 用户宏程序编程三、 数控车床用户宏程序编程%3015%3015#10=0 #10=0 ;X X坐标(直径值)坐标(直径值)#11=0 #11=0 ;Z Z坐标坐标T0101T0101M03 S600M03 S600G00 X0 Z34G00 X0 Z34WHILEWHILE #10 LE #10 LE 3232
16、G90 G64 G01 X#10 Z#11 F100G90 G64 G01 X#10 Z#11 F100#10= #10+0.32#10= #10+0.32#9= #10/2 #9= #10/2 ;求出求出X X坐标的半径值,便于求解坐标的半径值,便于求解#11#11#11= 32-#9*#9/8#11= 32-#9*#9/8ENDWENDWG00 X80 Z100 G00 X80 Z100 M05M05M30 M30 用宏程序编制如图所示抛物线的精加工程序。1515行行业业知知识识单单元元宏宏 用户宏程序编程用宏指令编制椭圆部分的精加工程序。用宏指令编制椭圆部分的精加工程序。 %3016%3
17、016;精加工椭圆程序;精加工椭圆程序T0101T0101M03 S800M03 S800G00 X39 Z22G00 X39 Z22#1=60#1=60;A A点的角度点的角度#2=0#2=0;X X坐标坐标#3=0#3=0;Z Z坐标坐标WHILE #1 LE 120WHILE #1 LE 120;120120是通过计算得来的是通过计算得来的B B点角度点角度#2=2*23*#2=2*23*SIN#1*PI/180SIN#1*PI/180;直径编程直径编程#3=40*#3=40*COS#1*PI/180COS#1*PI/180G64 G01 X#2 Z#3 F100G64 G01 X#2
18、Z#3 F100#1=#1+1#1=#1+1;步长取步长取1 1度度ENDWENDWG00 X100G00 X100Z100 M05Z100 M05M30 M30 1616行行业业知知识识单单元元宏宏 用户宏程序编程用户宏程序训练1717行行业业知知识识单单元元宏宏 用户宏程序编程1818行行业业知知识识单单元元宏宏 用户宏程序编程1919行行业业知知识识单单元元宏宏 用户宏程序编程一、构成1.包含变量2.包含算术或逻辑运算(=)的程序段3.包含控制语句(例如:GOTO,DO,END)的程序段4.包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏程序)的程序段FANUC数控系
19、统用户宏程序2020行行业业知知识识单单元元宏宏 用户宏程序编程二、FANUC宏程序的变量 FANUC数控系统变量表示形式为# 后跟14位数字,变量种类有四种:变量号变量类型功能#0#0空变量该变空变量该变量总是空,量总是空,没有任何值能赋给该变量没有任何值能赋给该变量#1#1#33#33局部变量局部变量局部变量只能用在宏程序中存储局部变量只能用在宏程序中存储数据,例如运算结果。当断电时数据,例如运算结果。当断电时局部变量被初始化为空,调用宏局部变量被初始化为空,调用宏程序时自变量对局部变量赋值。程序时自变量对局部变量赋值。2121行行业业知知识识单单元元宏宏 用户宏程序编程变量号变量类型功能
20、#100#100#199#199#500#500#999#999公共变量公共变量 公共变量在不同的宏程序中的公共变量在不同的宏程序中的意义相同当断电时变量意义相同当断电时变量#100 #100 #199#199初始化为空变量初始化为空变量 #500 #999 #500 #999 的数据保存即使断的数据保存即使断电也不丢失电也不丢失#1000#1000系统变量系统变量 系统变量用于读和写系统变量用于读和写CNC CNC 运行运行时各种数据的变化例如刀具的当时各种数据的变化例如刀具的当前位置和补偿值等前位置和补偿值等2222行行业业知知识识单单元元宏宏 用户宏程序编程三、刀具补偿存储器C用G10指
21、令进行设定H代码的几何补偿值G10L10P R ;D代码的几何补偿值G10L12P R ;H代码的磨损补偿值G10L11P R ;D代码的磨损补偿值G10L13P R ;P:刀具补偿号R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。2323行行业业知知识识单单元元宏宏 用户宏程序编程四、 FANUC宏程序的转移和循环1. 1. 无条件转移:无条件转移:无条件转移:无条件转移:GOTOnGOTOn (n为顺序号,199999)例:GOTO10为转移到N10程序段。2. 条件转移:(条件转移:(IF语句)语句)1)IF 条件表达式
22、 GOTOn 当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段。2424行行业业知知识识单单元元宏宏 用户宏程序编程2)IF 条件表达式 THEN当指定的条件表达式满足时,执行预先决定的宏程序语句。 例:IF #1EQ #2 THEN #3=0;3. WHILE 条件表达式 DO m; (m=1,2,3)条件满足条件不满足 ENDm注:循环允许嵌套,最多注:循环允许嵌套,最多3层,但不允许交叉层,但不允许交叉2525行行业业知知识识单单元元宏宏 用户宏程序编程2626行行业业知知识识单单元元宏宏 用户宏程序编程2727行行业业知知识识单单元元宏
23、宏 用户宏程序编程五、运算符运算符运算符含义含义EQEQ等于等于NENE不等于不等于GTGT大于大于GEGE大于或等于大于或等于LTLT小于小于LELE小于或等于小于或等于2828行行业业知知识识单单元元宏宏 用户宏程序编程六、 FANUC宏程序的调用1. 非模态调用G65:格式: G65 Pp Ll 其中 p:要调用的程序号 L:调用次数(默认为1) 自变量:数据传递到宏程序例:G65 P8000 L2 A10. B2.;调用2次程序号8000,经自变量A传递到宏程序#1=10;自变量B传递到宏程序#2=2。2929行行业业知知识识单单元元宏宏 用户宏程序编程自变量指定自变量指定根据使用的字
24、母,CNC系统自动地决定自变量指定的类型。地址不需要按字母顺序指定。但应符合字地址的格式。但是,I,J 和K 需要按字母顺序指定。3030行行业业知知识识单单元元宏宏 用户宏程序编程自变量指定自变量指定根据使用的字母,系统自动决定自变量指定的类型。自变量指定用于传递诸如三维坐标值的变量。I,J,K 的下标用于确定自变量指定的顺序,在实际编程中不写。3131行行业业知知识识单单元元宏宏 用户宏程序编程如果自变量指定和自变量指定混合指定的话,后指定的自变量类型有效。3232行行业业知知识识单单元元宏宏 用户宏程序编程六、 FANUC宏程序的调用2. 模态调用(G66):G66 Pp Ll ;程序点
25、G67;(取消模态)例:G66 P8000 L2 A10. B2.;G00 G90 Z-10.X-5.G67一旦发出G66 则指定模态调用,即指定沿移动轴移动的程序段后调用宏程序。移动到Z-10,调用2次程序号8000,移动到X-5,再调用2次程序号8000 。3333行行业业知知识识单单元元宏宏 用户宏程序编程%1000%1000;长半轴;长半轴4040、短半轴、短半轴3030的椭圆的椭圆G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;Z3Z3G01 Z-5 F100G01 Z-5 F100#0
26、=0#0=0;给角度给角度 赋赋0 0初值初值WHILE #0 LE 360WHILE #0 LE 360;#1=40*#1=40*COS#0*PI/180COS#0*PI/180;#2=30*#2=30*SIN#0*PI/180SIN#0*PI/180;G01 X#1 Y#2 G01 X#1 Y#2 ;# #0=#0+10=#0+1;ENDWENDWX45 Y15X45 Y15;G00 Z30G00 Z30X0 Y0 M05X0 Y0 M05M30 M30 七、FANUC与华中系统用户宏程序编程对照G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G
27、00 X45 Y-15 G00 X45 Y-15 ;Z3Z3G01 Z-5 F100G01 Z-5 F100#10=0#10=0;给角度给角度 赋赋0 0初值初值WHILE #10 LE 360WHILE #10 LE 360 DO 1 DO 1;#1#11=40*COS#101=40*COS#10;# #12=30*SIN#1012=30*SIN#10;G01 X#11 Y#12 G01 X#11 Y#12 ;# #10=#10+110=#10+1;END 1END 1X45 Y15X45 Y15;G00 Z30G00 Z30X0 Y0 M05X0 Y0 M05M30 M30 3434行行业
28、业知知识识单单元元宏宏 用户宏程序编程SIEMENS数控系统参数编程 与FANUC类似,但功能要弱一些。变量以“R”开始,如:R0、R1、R99。不包含系统变量,系统变量以 “$”开头。一、格式:Rn (n的缺省取值范围为0-99) 例如:R1 R2 R99二、运算符:3535行行业业知知识识单单元元宏宏 用户宏程序编程3636行行业业知知识识单单元元宏宏 用户宏程序编程三、 SIEMENS参数编程程序跳转1. 无条件跳转GOTOB LABEL (向后跳转,向程序头跳转)GOTOF LABEL (向前跳转,向程序尾跳转)2. 条件跳转IF 表达式 GOTOB LABEL(向后跳转,向程序头跳转
29、)IF 表达式 GOTOF LABEL(向前跳转,向程序尾跳转)LABEL 为程序段标示符3737行行业业知知识识单单元元宏宏 用户宏程序编程IF R1R2 GOTOF MARKE1如果R1大于R2,那么跳跃到MARKE1 R7=(R8+R9)*743 GOTOB MARKE1作为条件的复合表达式IF R10 GOTOF MARK1允许确定一个变量(INT,REAL,BOOL或CHAR)。如果变量值为0(=FALSE),条件就不能满足;对于所有其他值,条件为TRUE IF R1=0 GOTOF MARKE1 IF R1=1 GOTOF MARKE2 同一程序段中的几个条件 3838行行业业知知
30、识识单单元元宏宏 用户宏程序编程四、编程示例3939行行业业知知识识单单元元宏宏 用户宏程序编程G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;Z3Z3G01 Z-5 F100G01 Z-5 F100R10=0R10=0;给角度给角度 赋赋0 0初值初值AAAA:R11=40*COS(R10)R11=40*COS(R10);R12=30*SIN(R10)R12=30*SIN(R10);G01 X=R11 Y=R12 G01 X=R11 Y=R12 ;R10=R10+1R10=R10+1;IF R1
31、0= 360 GOTOB AAIF R10= 360 GOTOB AAX45 Y15X45 Y15;G00 Z30G00 Z30X0 Y0 M05X0 Y0 M05M30 M30 五、SIEMENS与FANUC用户宏程序编程对照长半轴长半轴4040、短半轴、短半轴3030的椭圆的椭圆G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;Z3Z3G01 Z-5 F100G01 Z-5 F100#10=0#10=0;给角度给角度 赋赋0 0初值初值WHILE #10 LE 360WHILE #10 LE 360 DO 1 DO 1;#1#11=40*COS#101=40*COS#10;# #12=30*SIN#1012=30*SIN#10;G01 X#11 Y#12 G01 X#11 Y#12 ;# #10=#10+110=#10+1;END 1END 1X45 Y15X45 Y15;G00 Z30G00 Z30X0 Y0 M05X0 Y0 M05M30 M30 4040行行业业知知识识