第一篇:宏程序加工教案
《数控铣加工技术》教案
宏程序加工实例
一、宏指令编程
1宏变量及常量(1)宏变量
#0~#49当前局部变量 #50~#199全局变量
#200~#249 0层局部变量 #250~#299 1层局部变量 #300~#349 2层局部变量 #350~#399 3层局部变量 #400~#449 4层局部变量 #450~#499 5层局部变量 #500~#549 6层局部变量 #550~#599 7层局部变量
#600~#699刀具长度寄存器H0~H99 #700~#799刀具半径寄存器D0~D99 #800~#899刀具寿命寄存器
#1000“机床当前位置X”#1001“机床当前位置Y”#1002“机床当前位置Z” #1003“机床当前位置A”#1004“机床当前位置B”#1005“机床当前位置C” #1006“机床当前位置U”#1007“机床当前位置V”#1008“机床当前位置W” #1009保留#1010“程编机床位置X”#1011“程编机床位置Y”
#1012“程编机床位置Z”#1013“程编机床位置A”#1014“程编机床位置B” #1015“程编机床位置C”#1016“程编机床位置U”#1017“程编机床位置V” #1018“程编机床位置W”#1019保留#1020“程编工件位置X”
#1021“程编工件位置Y”#1022“程编工件位置Z”#1023“程编工件位置A” #1024“程编工件位置B”#1025“程编工件位置C”#1026“程编工件位置U” #1027“程编工件位置V”#1028“程编工件位置W”#1029保留 53 #1030“当前工件零点X”#1031“当前工件零点Y”#1032“当前工件零点Z” #1033“当前工件零点A”#1034“当前工件零点B”#1035“当前工件零点C” #1036“当前工件零点U”#1037“当前工件零点V”#1038“当前工件零点W”
《数控铣加工技术》教案
#1039保留#1040“G54零点X”#1041“G54零点Y”
#1042“G54零点Z”#1043“G54零点A”#1044“G54零点B” #1045“G54零点C”#1046“G54零点U”#1047“G54零点V” #1048“G54零点W”#1049保留#1050“G55零点X”
#1051“G55零点Y”#1052“G55零点Z”#1053“G55零点A” #1054“G55零点B”#1055“G55零点C”#1056“G55零点U” #1057“G55零点V”#1058“G55零点W”#1059保留
#1060“G56零点X”#1061“G56零点Y”#1062“G56零点Z” #1063“G56零点A”#1064“G56零点B”#1065“G56零点C” #1066“G56零点U”#1067“G56零点V”#1068“G56零点W” #1069保留#1070“G57零点X”#1071“G57零点Y”
#1072“G57零点Z”#1073“G57零点A”#1074“G57零点B” #1075“G57零点C”#1076“G57零点U”#1077“G57零点V” #1078“G57零点W”#1079保留#1080“G58零点X”
#1081“G58零点Y”#1082“G58零点Z”#1083“G58零点A” #1084“G58零点B”#1085“G58零点C”#1086“G58零点U” #1087“G58零点V”#1088“G58零点W”#1089保留
#1090“G59零点X”#1091“G59零点Y”#1092“G59零点Z” #1093“G59零点A”#1094“G59零点B”#1095“G59零点C” #1096“G59零点U”#1097“G59零点V”#1098“G59零点W” #1099保留#1100“中断点位置X”#1101“中断点位置Y”
#1102“中断点位置Z”#1103“中断点位置A”#1104“中断点位置B” #1105“中断点位置C”#1106“中断点位置U”#1107“中断点位置V”
#1108“中断点位置W”#1109“坐标系建立轴”#1110“G28中间点位置X”
#1111“G28中间点位置Y”#1112“G28中间点位置Z”#1113“G28中间点位置A” #1114“G28中间点位置B”#1115“G28中间点位置C”#1116“G28中间点位置U” #1117“G28中间点位置V”#111“8G28中间点位置W”#1119“G28屏蔽字” #1120“镜像点位置X”#1121“镜像点位置Y”#1122“镜像点位置Z” #1123“镜像点位置A”#1124“镜像点位置B”#1125“镜像点位置C” #1126“镜像点位置U”#1127“镜像点位置V”#1128“镜像点位置W” #1129“镜像屏蔽字”#1130“旋转中心(轴1)”#1131“旋转中心(轴2)” #1132“旋转角度”#1133“旋转轴屏蔽字”#1134保留
#1135“缩放中心(轴1)”#1136“缩放中心(轴2)”#1137“缩放中心(轴3)” #1138“缩放比例”#1139“缩放轴屏蔽字”#1140“坐标变换代码1” #1141“坐标变换代码2”#1142“坐标变换代码3”#1143保留
#1144“刀具长度补偿号”#1145“刀具半径补偿号”#1146“当前平面轴1” #1147“当前平面轴2”#1148“虚拟轴屏蔽字”#1149“进给速度指定”
《数控铣加工技术》教案
#1150“G代码模态值0”#1151“G代码模态值1”#1152“G代码模态值2” #1153“G代码模态值3”#1154“G代码模态值4”#1155“G代码模态值5 #1156“G代码模态值6”#1157“G代码模态值7”#1158“G代码模态值8”世纪星铣床数控系统(HNC-21/22M)编程说明书 54 #1159“G代码模态值9”#1160“G代码模态值10”#1161“G代码模态值11” #1162“G代码模态值12”#1163“G代码模态值13”#1164“G代码模态值14” #1165“G代码模态值15”#1166“G代码模态值16”#1167“G代码模态值17” #1168“G代码模态值18”#1169“G代码模态值19”#1170“剩余CACHE” #1171“备用CACHE”#1172“剩余缓冲区”#1173“备用缓冲区” #1174保留#1175保留#1176保留 #1177保留#1178保留#1179保留 #1180保留#1181保留#1182保留 #1183保留#1184保留#1185保留 #1186保留#1187保留#1188保留
#1189保留#1190“用户自定义输入”#1191“用户自定义输出” #1192“自定义输出屏蔽”#1193保留#1194保留(2)常量
PI:圆周率π
TRUE:条件成立(真)FALSE:条件不成立(假)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)表达式
用运算符连接起来的常数,宏变量构成表达式。例如:175/SQRT[2]*COS[55*PI/180]; #3*6 GT 14; 3赋值语句
格式:宏变量=常数或表达式
《数控铣加工技术》教案
把常数或表达式的值送给一个宏变量称为赋值。例如:#2=175/SQRT[2]*COS[55*PI/180];
#3=124.0;世纪星铣床数控系统(HNC-21/22M)编程说明书 4条件判别语句IF,ELSE,ENDIF 格式(i):IF条件表达式 „ ELSE „ ENDIF 格式(ii):IF条件表达式 „ ENDIF 5循环语句WHILE,ENDW 格式:WIIILE条件表达式 „ ENDW 条件判别语句的使用参见宏程序编程举例。循环语句的使用参见宏程序编程举例。
二、宏程序编制举例 例1:G81宏程序 例2 椭圆编程程序:
a=50 b=30的一个椭圆;
弧度增量:0.1 宏程序:
%1 G54G90G17G21 M03S3000 G00X50Y0Z10 G01 Z-1 F300 #1=0 #2=50 #3=30 WHILE #1 LT 2*PI #4=#2*COS#1 #5=#3*SIN#1 G01 X[#4] Y[#5]
#1=#1+0.1 《数控铣加工技术》教案
ENDW G01 X__Y__Z100;
M30 % 例3抛物线编程: Y=0.1 *X*X %0206 G54M03S600T1D1 M03S6000 G41 X27.9 Y32 D1 #1=17.9 G01 X[#1+10] Y[0.1*#1*#1-8]
#1=#1-0.1 IF[#1GE-19.8] GOTO__ G40 G01 X__Y__ G00Z100 M30 % 例4切圆台与斜方台,各自加工3个循环,要求倾斜10°的斜方台与圆台相 切,圆台在方台之上,顶视图见图3.50。
%8002 #10=10.0;圆台阶高度
《数控铣加工技术》教案
#11=10.0;方台阶高度
#12=124.0;圆外定点的X坐标值 #13=124.0;圆外定点的Y坐标值 #101=8.0刀具半径偏置(粗加工)#102=6.5刀具半径偏置(半精加工)#103=6.0刀具半径偏置(精加工)N01 G92 X0.0 Y0.0 Z10.0 #0=0 N06 G00 X[?#12]Y[?#13];→A N07 G01 Z[?#10]M03 S600 F200;Z轴进刀,准备加工圆台 WHILE#0 LT 3;加工圆台
N[08+#0*6]G01 G42 X[?#12/2]Y[?90/2]F280.0 D[#0+101];→B N[09+#0*6]X[0]Y[?90/2];→C N[10+#0*6]G03 J[90/2];整圆加工
N[11+#0*6]G01 X[#12/2]Y[?90/2];→B’ N[12+#0*6]G40 X[#12]Y[?#13];→A’ N[13+#0*6]G00 X[-#12]Y[?#13];→A #0=#0+1;#0中数值加1 ENDW N100 Z[-#10-#11];Z轴进刀,准备加工斜方台
#2=90/SQRT[2]*COS[55*PI/180];P1点坐标(X=-#12,Y=-#13)#3=90/SQRT[2]*SIN[55*PI/180] #4=90*COS[10*PI/180];P1 P2间X增量为#4,Y增量为#5 #5=90*SIN[10*PI/180] #0=0 WHILE#0 LT 3;加工斜方台
N[101+#0*8]G01 G42 X[?#12/2]Y[?90/2]F280.0 D[#0+101];→B N[102+#0*8]X[?#2]Y[?#3];→P1 N[103+#0*8]G91 X[+#4]Y[+#5];→P2 N[104+#0*8]X[?#5]Y[+#4];→P3 N[105+#0*8]X[?#4]Y[?#5];→P4 N[106+#0*8]X[+#5]Y[?#4];→P1 N[107+#0*8]G90 X[#12/2]Y[?90/2];→B’ N[108+#0*8]G00 G40 X[?#12]Y[?#13];→A #0=#0+1 ENDW G00 X0 Y0 M05 M30 《数控铣加工技术》教案
例5要求沿直线方向钻一系列孔,直线的倾角由C65指令中的x,Y变量来决定,如图所示。
%100G54G21 M03 S1000 G90G00X1Y1Z20 G65P10 M05 M30 %10 #10=10 孔数10 #11=100 进给速度100 #12=50 长轴50 #13=25 短轴25 #14=-10 孔深10 G98G81X1Y1Z[#14]F[#11]R2 G91 WHILE[#10GT0] #10=#10-1 G81 X[#12]Y[#13]R0 ENDW M99 例6加工一椭圆,椭圆长轴为100 mm,短轴为50 mm。
《数控铣加工技术》教案
第二篇:宏程序教案
数控宏程序的概念
用变量的方式进行数控编程的方法就叫做数控宏程序编程。
一、控宏程序的分类
数控宏程序分为A类和B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B类宏程序类似于C语言的编程,编写起来也很方便。不论是A类还B类宏程序,它们运行的效果都是一样的。
一般说来,华中的数控机床用的是B类宏程序,广州数控机床用的是A类宏程序。
二、数控宏程序的优点
1.可以编写一些非圆曲线,如宏程序编写椭圆,双曲线,抛物线等。
2.编写一些大批相似零件的时候,可以用宏程序编写,这样只需要改动几个数据就可以了,没有必要进行大量重复编程。
数控宏程序的使用方法
三、A类宏程序
1)变量的定义和替换 #i=#j
编程格式 G65 H01 P#i Q#j
例 G65 H01 P#101 Q1005;(#101=1005)
G65 H01 P#101 Q-#112;(#101=-#112)
2)加法 #i=#j+#k
编程格式 G65 H02 P#i Q#j R#k
例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103)
3)减法 #i=#j-#k
编程格式 G65 H03 P#i Q#j R#k
例 G65 H03 P#101 Q#102 R#103;(#101=#102-#103)
4)乘法 #i=#j×#k
编程格式 G65 H04 P#i Q#j R#k
例 G65 H04 P#101 Q#102 R#103;(#101=#102×#103)
5)除法 #i=#j / #k
编程格式 G65 H05 P#i Q#j R#k
例 G65 H05 P#101 Q#102 R#103;(#101=#102/#103)
6)平方根 #i=
编程格式 G65 H21 P#i Q#j
例 G65 H21 P#101 Q#102;(#101=)
7)绝对值 #i=│#j│
编程格式 G65 H22 P#i Q#j
例 G65 H22 P#101 Q#102;(#101=│#102│)
8)复合平方根1 #i=
编程格式 G65 H27 P#i Q#j R#k
例 G65 H27 P#101 Q#102 R#103;(#101=
9)复合平方根2 #i=
编程格式 G65 H28 P#i Q#j R#k
例 G65 H28 P#101 Q#102 R#103
1)逻辑或 #i=#j OR #k
编程格式 G65 H11 P#i Q#j R#k
例 G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103)
2)逻辑与 #i=#j AND #k
编程格式 G65 H12 P#i Q#j R#k
例 G65 H12 P#101 Q#102 R#103;#101=#102 AND #103
(3)三角函数指令
1)正弦函数 #i=#j×SIN(#k)
编程格式 G65 H31 P#i Q#j R#k(单位:度).例 G65
H31 P#101 Q#102
R#10
3;(#101=#102×SIN(#103))
2)余弦函数 #i=#j×COS(#k)
编程格式 G65 H32 P#i Q#j R#k(单位:度)例 G65
H32 P#101 Q#102
R#103
;(#101=#102×COS(#103))
3)正切函数 #i=#j×TAN#k
编程格式 G65 H33 P#i Q#j R#k(单位:度)例 G65
H33 P#101 Q#102
R#103
;(#101=#102×TAN(#103))
4)反正切 #i=ATAN(#j/#k)
编程格式 G65 H34 P#i Q#j R#k(单位:度,0o≤ #j ≤360o)例 G65
H34 P#101 Q#102
R#103
;(#101=ATAN(#102/#103)
(4)控制类指令
编程格式 G65 H80 Pn(n为程序段号)
例 G65 H80 P120;(转移到N120)
2)条件转移1 #j EQ #k(=)
编程格式 G65 H81 Pn Q#j R#k(n为程序段号)
例 G65 H81 P1000 Q#101 R#102
当#101=#102,转移到N1000程序段;若#101≠ #102,执行下一程序段。
3)条件转移2 #j NE #k(≠)
编程格式 G65 H82 Pn Q#j R#k(n为程序段号)
例 G65 H82 P1000 Q#101 R#102
当#101≠ #102,转移到N1000程序段;若#101=#102,执行下一程序段。
4)条件转移3 #j GT #k(>)
编程格式 G65 H83 Pn Q#j R#k(n为程序段号)
例 G65 H83 P1000 Q#101 R#102
当#101 > #102,转移到N1000程序段;若#101 ≤#102,执行下一程序段。
5)条件转移4 #j LT #k(<)
编程格式 G65 H84 Pn Q#j R#k(n为程序段号)
例 G65 H84 P1000 Q#101 R#102
当#101 < #102,转移到N1000;若#101 ≥ #102,执行下一程序段。
6)条件转移5 #j GE #k(≥)
编程格式 G65 H85 Pn Q#j R#k(n为程序段号)
例 G65 H85 P1000 Q#101 R#102
当#101≥ #102,转移到N1000;若#101<#102,执行下一程序段。
7)条件转移6 #j LE #k(≤)
编程格式 G65 H86 Pn Q#j Q#k(n为程序段号)
例 G65 H86 P1000 Q#101 R#102
当#101≤#102,转移到N1000;若#101>#102,执行下一程序段。
四、B类宏程序
1. 定义
#I=#j
2. 算术运算
#I=#j+#k(加)
#I=#j-#k(减)
#I=#j×#k(乘)
#I=#j/#k(除)
3.1 逻辑函数之布尔函数
= EQ 等于
≠ NE 不等于
> GT 大于
< LT 小于
≥ GE 大于或等于
≤ LE 小于或等于
例:#I = #j 即#I EQ #J
3.2 逻辑函数之二进制函数
#I=#J AND #k(与,逻辑乘)
#I=#J OR #k(或,逻辑加)
#I=#J XOR #k(非,逻辑减)
4.三角函数
#I=SIN[#j] 正弦
#I=COS[#j] 余弦
#I=TAN[#j] 正切
#I=ASIN[#j]反 正弦
#I=ACOS[#j]反 余弦 #I=ATAN[#j]
5.四舍五入函数
#I=ROUND[#j] 四舍五入化整
#I=FIX[#j] 上取整
反正切
#I=FUP[#j] 下取整
6.辅助函数
#I=SQRT[#j]平方根
#I=ABS[#j] 绝对值
#I= LN [#j] 自然对数
#I= EXP [#j] 指数函数
7.变换函数 #I=BIN[#j] BCD→BIN(十进制转二进制)
#I=BCD[#j] BIN→BCD(二进制转十进制)
8.转移和循环
1〉.无条件的转移 格式: GOTO 1; GOTO #10;
2〉.条件转移1 格式: IF[<条件式>] GOTO n
条件式:例:#j=#k用 #j EQ #k 表示,即 IF[#j EQ #k] GOTO n
3〉.条件转移2 格式: IF[<条件式>] THEN #I
例:IF[#j EQ #k] THEN #a=#b
4〉.循环 格式:WHILE [<条件式>] DOm,(m=1、2、3)
N10~~~~~~~~~
N20~~~~~~~~~~~~
ENDm(上下两个m只能为1、2、3且必须相
同,这样才能够成一段程序的循环)
1. 说明 1)角度单位为度 例:90度30分为90.5度
2)ATAN函数后的两个边长要用“1”隔开 例:#1=ATAN[1]/[-1]时,#1为了35.0
3)ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入
例:设#1=1.2345,#2=2.3456,设定单位1μm
G91 X-#1;X-1.235 X-#2 F300;X-2.346 X[#1+#2];X3.580 未返回原处,应改为 X[ROUND[#1]+ROUND[#2]];
4)取整后的绝对值比原值大为上取整,反之为下取整 例:设#1=1.2,#2=-1.2时 若#3=FUP[#1]时,则#3=2.0 若#3=FIX[#1]时,则#3=1.0 若#3=FUP[#2]时,则#3=-2.0 若#3=FIX[#2]时,则#3=-1.0
5)简写函数时,可只写开头2个字母 例:ROUND→RO FIX→FI GOTO→GO
6)优先级 函数→乘除(*,1,AND)→加减(+,-,OR,XOR)例:#1=#2+#3*SIN[#4];
7)括号为中括号,最多5重,园括号用于注释语句 例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
转移与循环指令
第三篇:加工中心铣螺纹宏程序精华[最终版]
加工中心通用铣螺纹宏程序编程教程
使用G03/G02三轴联动走螺旋线,刀具沿工件表面(孔壁或圆柱外表)切削。螺旋插补一周,刀具Z向负方向走一个螺距量。工作原理 使用G03/G02三轴联动走螺旋线,刀具沿工件表面(孔壁或圆柱外表)切削。螺旋插补一周,刀具Z向负方向走一个螺距量。编程原理:G02 Z-2.5 I3.Z-2.5等于螺距为2.5mm 假设刀具半径为5mm则加工M16的右旋螺纹 优势 使用了三轴联动数控铣床或加工中心进行加工螺纹,相对于传统螺纹加工 1、如螺距为2的螺纹铣刀可以加工各种公称直径,螺距为2mm的内外螺纹 2、采用铣削方式加工螺纹,螺纹的质量比传统方式加工质量高 3、采用机夹式刀片刀具,寿命长 4、多齿螺纹铣刀加工时,加工速度远超攻丝 5、首件通止规检测后,后面的零件加工质量稳定 使用方法 G65 P1999 X_ Y_ Z_ R_ A_ B_ C_ S_ F_ XY 螺纹孔或外螺纹的中心位置 X=#24Y=#25 Z螺纹加工到底部,Z轴的位置(绝对坐标)Z=#26 R 快速定位(安全高度)开始切削螺纹的位置 R=#18 A 螺纹螺距 A=#1 B 螺纹公称直径 B=#2 C 螺纹铣刀的刀具半径 C=#3内螺纹为负数 外螺纹加工为正数 S 主轴转速 F 进给速度,主要用于控制刀具的每齿吃刀量 如: G65 p1999 X30 Y30 Z-10 R2 A2 B16 C-5 S2000 F150;在X30y30的位置加工 M16 螺距2 深10的右旋螺纹 加工时主轴转速为2000转 进给进度为150mm/min 宏程序代码 O1999;G90G94G17G40;G0X#24Y#25;快速定位至螺纹中心的X、Y坐标 M3S#19;主轴以设定的速度正转 #31=#2*0.5+#3;计算出刀具偏移量 #32=#18-#1;刀具走螺旋线时,第一次下刀的位置 #33=#24-#31;计算出刀具移动到螺纹起点的位置 G0Z#18;刀具快速定位至R点 G1X#33F#9;刀具直线插补至螺旋线的起点,起点位于X的负方向 N20 G02Z-#32I#31;以偏移量作为半径,以螺距作为螺旋线Z向下刀量(绝对坐标)
内梯形螺纹(Tr40x7)的宏程序
系统:FANUC-oimait 编程思想:每一层分中、右、左三分,每一刀的Z轴方向的起刀点都不同
1、内梯形螺纹加工程序: G54G99 M3S100 T0101 G0Z3 X33 #101=0.2;每一刀的的深度(半径)#102=4梯形螺纹的深度(半径)#103=1分层切削的次数 N90 G0U[2*#101*#103] G32Z-32F7 G0X32 Z[3+[#102-#101]*0.268+A]; A是槽底宽-刀尖宽的一半
螺纹铣削编程 X33 U[2*#101*#103] G32Z-32F7 G0X32 Z[3-[#102-#101]*0.268-A]梯形螺纹的牙顶宽:0.366x螺距梯形螺纹的牙底宽:螺距-牙顶宽-2倍的(螺纹深度Xtg15°)X33 U[2*#101*#103] G32Z-32F7 G0X32 G0Z3 X33 #102=#102-0.2 #103=#103+1 IF[#103LE20]GOTO90; G0Z100 M5 M30
现以M20×1.5右旋内螺纹铣削
加工实例说明螺纹加工的编程方
法。
工件材料:铸铁;螺纹底孔直径:
Di18.38mm;螺纹直径:Do=20mm;
螺纹长度:L=25mm;螺距:
P=1.5mm;刀具:硬质合金螺纹钻铣刀;铣刀直径D2=10mm;
铣削方式:顺铣;切削速度50m/min;铣削进给量:0.1mm/齿。
主轴转速为:n=(1000v)/(D2p)=(1000×50)/(10x3.14)=1592(r/min)铣刀齿数z=1,每齿进给量f=0.1mm,铣刀切削刃处进给速度为: v1=fzn=0.1×1×1592=159.2(mm/min)铣刀中心进给速度为:v2=v1(D0-D2)/D0=159.2×(20-10)/20=79.6(mm/min)
设安全距离CL=0.5mm,切入圆弧半径为: 切入圆弧角度为: b=180°-arcsin[(Ri-CL)/Re)=180°-arcsin[(9.19-0.5)/8.78]=180°-84.12°=95.88° 切入圆弧时的Z轴位移为:Za=Pa/360°=1.5×90°/360°=0.375(mm)
切入圆弧起点坐标为:螺纹铣削程序(FUNUC系统)% G90 G00 G57 X0.Y0.G43 H10 Z0.M3 S1592 G91 G00 X0.Y0.Z-25.375 G41 D60 X0.Y-8.68 Z0.G03 X10.Y8.68 Z0.375 R8.78 F79.6 G03 X0.Y0.Z1.5 I-10.J0.G03 X-10.Y8.68 Z0.375 R8.78 G00 G40 X0.Y-8.68 Z0.G49 G57 G00 Z200.M5 M30
第四篇:华中数控宏程序教案
华中数控宏程序教案.txt人生在世,难敌宿命,沉沦其中。我不爱风尘,似被前缘误!我只为我最爱的人流泪“我会学着放弃你,是因为我太爱你”赢了你,我可以放弃整个世界华中数控宏程序教案 一.什么是宏程序?
什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。宏程序具有如下些特点:
1.使用了变量或表达式(计算能力),例如:(1)G01X[3+5];有表达式3+5(2)G00X4F[#1];有变量#1(3)G01Y[50*SIN[3]];有函数运算 2.使用了程序流程控制(决策能力),例如:(1)IF#3GE9;有选择执行命令 „„ ENDIF(2)WHILE#1LT#4*5;有条件循环命令 „„ ENDW 二.用宏程编程有什么好处? 1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;
2.宏程序可以完成图形一样,尺寸不同的系列零件加工; 3.宏程序可以完成工艺路径一样,位置不同的系列零件加工; 4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;
5.使用宏程序能极大地简化编程,精简程序。适合于复杂零件加工的编程。一.宏变量及宏常量 1.宏变量
先看一段简单的程序: G00X25.0 上面的程序在X轴作一个快速定位。其中数据25.0是固定的,引入变量后可以写成: #1=25.0;#1是一个变量 G00X[#1];#1就是一个变量
宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,„„。变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号„„,变量的使用,给程序的设计带来了极大的灵活性。使用变量前,变量必需带有正确的值。如 #1=25 G01X[#1];表示G01X25 #1=-10;运行过程中可以随时改变#1的值 G01X[#1];表示G01X-10 用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、„„等各种代码后的数字。如: #2=3 G[#2]X30;表示G03X30 例1使用了变量的宏子程序。%1000 #50=20;先给变量赋值 M98P1001;然后调用子程序 #50=350;重新赋值
M98P1001;再调用子程序 M30 %1001 G91G01X[#50];同样一段程序,#50的值不同,X移动的距离就不同 M99 2.局部变量
编号#0~#49的变量是局部变量。局部变量的作用范围是当前程序(在同一个程序号内)。如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。例 %100 N10#3=30;主程序中#3为30 M98P101;进入子程序后#3不受影响 #4=#3;#3仍为30,所以#4=30 M30 %101 #4=#3;这里的#3不是主程序中的#3,所以#3=0(没定义),则:#4=0 #3=18;这里使#3的值为18,不会影响主程序中的#3 M99 3.全局变量
编号#50~#199的变量是全局变量(注:其中#100~#199也是刀补变量)。全局变量的作用范围是整个零件程序。不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。例 %100 N10#50=30;先使#50为30 M98P101;进入子程序
#4=#50;#50变为18,所以#4=18 M30 %101 #4=#50;#50的值在子程序里也有效,所以#4=30 #50=18;这里使#50=18,然后返回 M99 为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。局部变量在不同的子程序里,可以重复使用,不会互相干扰。如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。
华中数控宏程序编程实例(1)宏程序编抛物线车削 %0342 T0101M03S600 G00X20.5Z2 #11=12;B初值
#10=SQRT[2*#11];A初值 WHILE#10LE8 G90G01X[2*#10]Z[12-#11]F200 #10=#10+0.1 #11=#10*#10/2 ENDW G01X16Z[-32+12] Z-28 U4 G00X20.5Z2M05 M30(2)宏程序编正弦线 %3404 M03S600T0101 G92X80Z30 G00X25Z3 G71U0.6R0.6P6Q13X0.8F100 N6G0X17 #11=0 WHILE#11GE-25 #9=#11*PI/10;#10=3.5*SIN[#9] G01X[17-2*#10]Z[#11]F100 #11=#11-0.5 N13ENDW G01X24Z-25 Z-30 X30 G00X80Z30 M30(3)宏程序编抛物线与椭圆 %8002 G92X50Z100 M98P8001A8B5C4U32V40W55 G36G90X50Z0 M30 %8001 G64G37(连续切削,半径编程)#10=0#11=0(抛物线起点)WHILE#11LE#20 G01X[#10]Z[-#11]F150 #10=#10+0.08(抛物线X增量)#11=#10*#10/#2(计算抛物线z)ENDW #50=SQRT[#20*#2](抛物线与椭圆交接处半径)G01X[#50]Z[-#20](抛物线终点)G01Z[-#21](直线终点)#12=0#13=0(椭圆起点)WHILE#13LE#1 #12=#0/#1*SQRT[#1*#1-#13*#13](椭圆X增量)G01X[#50+#0-#12]Z[-#21-#13] #13=#13+0.08(椭圆z增量)ENDW G01X[#50+#0]Z[-#21-#1](椭圆终点)Z[-#22] U2 G0X50Z100 M99
第五篇:数控铣床椭圆形加工宏程序的编程实例
数控铣床椭圆形加工宏程序的编程实例
实际应用中经常会遇到各种各样的椭圆形加工特征。在现今的数控系统中,无论硬件数控系统,还是软件数控系统,其插补的基本原理是相同的,只是实现插补运算的方法有所区别。常见的是直线插补和圆弧插补,没有椭圆插补,手工常规编程无法编制出椭圆加工程序,常需要用电脑逐一编程,但这有时受设备和条件的限制。这时可以采用拟合计算,用宏程序方式,手工编程即可实现,简捷高效,并且不受条件的限制。加工椭圆形的半球曲面,刀具为R8的球铣刀。利用椭圆的参数方程和圆的参数方程来编写宏程序。
椭圆的参数方程为:X=A*COS&;
其中,A为椭圆的长轴,B为椭圆的短轴。
编制参考宏程序如下:
%00518
#1=0
#2=20
#3=30
#4=1
#5=90
WHILE #5 GE #1 DO1
#6=#3*COS[#5*PI/180]+4
#7=#2*SIN[#5*PI/180]
G01X[#6]F800
Z[#7]
#8=360
#9=0
WHILE #9 LE #8 DO2
#10=#6*COS[#9*PI/180]
#11=#6*SIN[#9*pi/180]*2/3
G01X[#10]Y[#11]F800
#9=#9+1(计数器)
END1
#5=#5-#4(计数器)
END2
M99
Y=B*COS&;