数控宏程序实例.docx
《数控宏程序实例.docx》由会员分享,可在线阅读,更多相关《数控宏程序实例.docx(9页珍藏版)》请在冰豆网上搜索。
![数控宏程序实例.docx](https://file1.bdocx.com/fileroot1/2022-10/22/905ab4d2-dbd8-4a38-acb5-24b343a52ad7/905ab4d2-dbd8-4a38-acb5-24b343a52ad71.gif)
数控宏程序实例
第7章宏程序
7.3宏程序调用
7.3.1宏程序调用指令(G65)
在主程序中可以用G65调用宏程序。
指令格式如下:
G65PL〈自变量赋值〉;
其中:
P指定宏程序号:
L为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。
例如:
主程序:
O7002
...
G65P7100L2A1.0B2.0
...
M30
宏程序:
#3=#1+#2;
IF[#3GT360]GOTO9;
G00G91X#3
N9M99
7.3.2自变量赋值
自变量赋值有两种类型。
自变量I使用除去G,L,N,O,P以外的其他字母作为地址,自变量II可以使用A,B,C每个字母一次,I,J,K每个字母可使用十次作为地址。
表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系:
表7—3自变量赋值的地址和变量号码之间的对应关系
地址
宏程序中变量
地址
宏程序中变量
A
#1
Q
#17
B
#2
R
#18
C
#3
S
#19
D
#7
T
#20
E
#8
U
#21
F
#9
V
#22
H
#11
W
#23
I
#4
X
#24
J
#5
Y
#25
K
#6
Z
#26
M
#13
表7—4自变量II的地址与变量号码之间的对应关系
地址
宏程序中变量
地址
宏程序中变量
A
#1
#18
B
#2
#19
C
#3
#20
#4
#21
#5
#22
#6
#23
#7
#24
#8
#25
#9
#26
#10
#27
#11
#28
#12
#29
#13
#30
#14
#31
#15
#32
#16
#33
#17
上表中的I,J,K的下标只表示顺序,并不写在实际命令中。
在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。
系统可以根据使用的字母自动判断自变量赋值的类型。
7.4变量的控制和运算指令
7.4.1算术运算和逻辑运算
在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。
表7—5算术和逻辑运算
运算
格式
说明
赋值
#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]
平方根
#i=sqrt[#j]
绝对值
#i=abs[#j]
四舍五入圆整
#i=round[#j]
或
#i=#jor#k
逻辑运算对二进制数逐位进行
异或
#i=#jxor#k
与
#i=#jand#k
运算的优先顺序如下:
1)函数。
2)乘除,逻辑与。
3)加减,逻辑或,逻辑异或。
可以用[]来改变顺序
7.4.2控制指令
1.无条件转移(GOTO语句)
语句格式为:
GOTOn
其中n为顺序号(1—9999),可用变量表示。
例如:
GOTO1;
GOTO#10;
2.条件转移(IF语句)
语句格式为:
IF[条件式]GOTOn
条件式成立时,从顺序号为n的程序段开始执行;条件式不成立时,执行下一个程序段。
条件式有以下几类:
#jEQ#K
#jNE#K
#jGT#K
#jLT#K
#jGE#K
#jLE#K
条件式中变量#J或#K可以是常量也可以是表达式,条件式必须用括弧括起来。
下面的程序可以得到1到10的和:
O7100
#1=0
#2=1
N1IF[#2GT10]GOTO2
#1=#1+#2
#2=#2+1
GOTO1
N2M30
3循环语句(WHILE语句)
语句格式为:
WHILE[条件式]DOm(m=1,2,3)
…
ENDm
当条件语句成立时,程序执行从DOm到ENDm之间的程序段;如果条件不成立,则执行ENDm之后的程序段。
DO和END后的数字是用于表明循环执行范围的识别号。
可以使用数字1,2和3,如果是其他数字,系统会产生报警。
DO—END循环能够按需执行多次。
如下例所示:
上面的O7100程序也可以用WHILE语句编制如下:
O7200
#1=0
#2=1
WHILE[#2LE10]DO1
#1=#1+#2
#2=#2+1
END1
M30
7.5宏程序应用实例
【例7-1】:
切圆台与斜方台,各自加工3个循环,要求倾斜10°的斜主台与圆台相切,圆台在方台之上,如图7-2所示。
7-2宏程序应用实例一
程序
说明
%8101
#10=10.0
圆台阶高度
#11=10.0
方台阶高度
#12=124.0
圆外定点的X坐标值
#13=124.0
圆外定点的Y坐标值
#701=13.0
刀具半径补偿值(偏大,粗加工)
#702=10.2
刀具半径补偿值(偏中,半精加工)
#703=10.0
刀具半径补偿值(实际,精加工)
N01G92X0.0Y0.0Z0.0
N02G28Z10T02M06
自动回参考点换刀
N03G29Z0S1000M03
单段走完此段,手动移刀到圆台面中心上
N04G92X0.0Y0.0Z0.0
N05G00Z10.0
#0=0
N06G00[X-#12]Y[-#13]
快速定位到圆外(-#12,-#13)
N07G01Z[-#10]F300
Z向进刀-#10mm
WHILE#0LT3
加工圆台
N[08+#0*6]G01G42X[-#12/2]Y[175/2]F280.0D[#0+1]
完成右刀补,准备切削
D[#0+1]
D01=#701;D02=#702;D03=#703
N[09+#0*6]X[0]Y[-175/2]
进到工件的切入点
N[10+#0*6]G03J[175/2]
逆时针切削整圆
N[11+#0*6]G01X[#12/2]Y[-175/2]
切出工件
N[12+#0*6]G40X[#12]Y[-#13]
取消刀补
N[13+#0*6]G00X[-#12]
#0=#0+1
ENDW
循环三次后结束
N100G01Z[-#10-#11]F300
进给方向切削深度
#2=175/COS[55*PI/180]
方台外定点的X坐标
#3=175/SIN[55*PI/180]
方台外定点的Y坐标
#4=175*COS[10*PI/180]
方台的X向增量值
#5=175*SIN[10*PI/180]
方台的Y向增量值
#0=0
WHILE#0LT3
加工斜方台
N[101+#0*6]G01G90G42X[-#2]Y[-#3]F280.0D[#0+1]
N[102+#0*6]G91X[+#4]Y[+#5]
N[103+#0*6]X[-#5]Y[+#4]
N[104+#0*6]X[-#4]Y[-#5]
N[105+#0*6]X[+#5]Y[-#4]
N[106+#0*6]G00G90G40X[-#12]Y[-#13]
#0=#0+1
ENDW
循环三次后结束
N200G28Z10T00M06
返回参考点换刀
N201G00X0Y0M05
N202M30
程序结束
【例7-1】:
用宏程序编制如图3.3.39所示抛物线Z=X2/8在区间[0,16]内的程序
7-3宏程序应用实例二
7-4复习思考题4
%8002
#10=0;X坐标
#11=0;Z坐标
N10G92X0.0Z0.0
M03S600
WHILE#10LE16
G90G01X[#10]Z[#11]F500
#10=#10+0.08
#11=#10*#10/8
ENDW
G00Z0M05
G00X0
小结:
本章主要讲述了宏程序的基本概念,变量及变量的引用,变量的控制及运算指令,宏程序的编制方法以及宏程序的调用,要求读者了解宏程序的适用场合,变量的定义,控制及运算指令,能够根据零件图形编制正确的宏加工程序。