|
用 户 宏 程 序能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。 l 所存入的这一系列指令——用户宏程序 l 调用宏程序的指令————宏指令 l 特点:使用变量 一. 变量的表示和使用 (一) 变量表示 #I(I=1,2,3,…)或#[<式子>] 例:#5,#109,#501,#[#1+#2-12] (二) 变量的使用 1. 地址字后面指定变量号或公式 格式: <地址字>#I <地址字>-#I <地址字>[<式子>] 例:F#103,设#103=15 则为F15 Z-#110,设#110=250 则为Z-250 X[#24+#18*COS[#1]] 2. 变量号可用变量代替 例:#[#30],设#30=3 则为#3 3. 变量不能使用地址O,N,I 例:下述方法下允许 O#1; I#2 6.00×100.0; N#3 Z200.0; 4. 变量号所对应的变量,对每个地址来说,都有具体数值范围 例:#30=1100时,则M#30是不允许的 5. #0为空变量,没有定义变量值的变量也是空变量 6. 变量值定义: 程序定义时可省略小数点,例:#123=149
MDI键盘输一. 变量的种类 1. 局部变量#1~#33 一个在宏程序中局部使用的变量 例: A宏程序 B宏程序 … … #10=20 X#10 不表示X20 … … 断电后清空,调用宏程序时代入变量值 2. 公共变量#100~#149,#500~#531 各用户宏程序内公用的变量 例:上例中#10改用#100时,B宏程序中的 X#100表示X20 #100~#149 断电后清空 #500~#531保持型变量(断电后不丢失) 3. 系统变量 固定用途的变量,其值取决于系统的状态 例:#2001值为1号刀补X轴补偿值 #5221值为X轴G54工件原点偏置值入时必须输入小数点,小数点省略时单位为μm
一. 运算指令 运算式的右边可以是常数、变量、函数、式子 式中#j,#k也可为常量 式子右边为变量号、运算式 1. 定义 #I=#j 2. 算术运算 #I=#j+#k #I=#j-#k #I=#j*#k #I=#j/#k 3. 逻辑运算 #I=#JOK#k #I=#JXOK#k #I=#JAND#k 4. 函数 #I=SIN[#j] 正弦 #I=COS[#j] 余弦 #I=TAN[#j] 正切 #I=ATAN[#j] 反正切 #I=SQRT[#j] 平方根 #I=ABS[#j] 绝对值 #I=ROUND[#j] 四舍五入化整 #I=FIX[#j] 下取整 #I=FUP[#j] 上取整 #I=BIN[#j] BCD→BIN(二进制) #I=BCN[#j] BIN→BCD1. 说明 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 6) 优先级 函数→乘除(*,1,AND)→加减(+,-,OR,XOR) 例:#1=#2+#3*SIN[#4]; 7) 括号为中括号,最多5重,园括号用于注释语句 例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)一. 转移与循环指令 1.无条件的转移 格式: GOTO 1; GOTO #10; 2.条件转移 格式: IF[<条件式>] GOTO n 条件式: #j EQ#k 表示= #j NE#k 表示≠ #j GT#k 表示> #j LT#k 表示< #j GE#k 表示≥ #j LE#k 表示≤ 例: IF[#1 GT 10] GOTO 100; … N100 G00 691 X10; 例:求1到10之和 O9500; #1=0 #2=1 N1 IF [#2 GT10] GOTO 2 #1=#1+#2; #2=#2+1; GOTO 1 N2 M301.循环 格式:WHILE[<条件式>]DO m;(m=1,2,3) … … … ENDm 说明:1.条件满足时,执行DOm到ENDm,则从DOm的程序段 不满足时,执行DOm到ENDm的程序段 2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环 3.嵌套4.EQ NE时,空和“0”不同 其他条件下,空和“0”相同 例:求1到10之和 O0001; #1=0; #2=1; WHILE [#2LE10] DO1; #1=#1+#2; #2=#2+#1; END1; M30;
随着数控加工设备技术的进步与发展,数控机床已成为模具加工技术中不可缺少的关键设备。然而,模具产品的小批量,多品种,短周期等特点,为数控机床的编程带来很大不便,既增加了编程的工作量,又影响着加工的进度。笔者现就实际工作中应用宏程序,较好地解决了规则对称几何形状的零件加工,简化了程序编制,赢得了时间,为模具生产中数控机床的编程提供了一种简捷的方式方法,现就有关情况介绍如下,供大家参考。
1用户宏程序简单介绍
1.1 变量
变量分为四类:空变量(#0);局部变量(#1-#33);公共变量(#100-#199),(#500-#999),系统变量(#1000- )。
1.2 宏程序语句使用
转移和循环:在程序中,使用GOTO语句和IF语句可以改变控制的流向。有三种转移和循环操作可供使用:
1)GOTO语句(无条件转移)
2)IF语句(条件转移:IF…THEN…)或IF[〈条件表达式〉]GOTON
3)WHILE语句(当…时循环)
2 用户宏程序的特点及应用
2.1 高效:数控加工中常常会遇到数量少,品种繁多,有规则几何形状的工件,我们只要稍加分析与总结,找出它们的之间共同点,把这些共同点设定为局部变量(局部变量只能用在宏程序中存储数据)应用到程序中,就能达到举一反三,事半功倍的效果。如图1所示模具零件的端面图形,该图形在零件的环形端面上有24个凸凹槽,且对称分布在Ⅰ-Ⅳ象限内。
工件分析:
1)零件在X、Y平面内,放射槽中心在Y轴上并偏心H距离;
2)放射槽以X轴,Y轴对称;
3)槽与槽之间增量角相同;
4)放射槽起始角与终止角随着槽数量变化而变化;
5)零件中内外圆直径随放射槽分布有所变化。
此类零件按常规加工方法,我们必需利用计算机,针对每个零件的几何尺寸———编程,因此编程要浪费大量的时间,操作者还需调整程序,熟悉编程思路,效率低。现在,我们只需借助宏程序中局部变量和机床的镜象,旋转功能,进行人工编程,就能实现此类零件程序。图1模具零件的第一象限加工宏程序如下:
O0001
N10 #11=(偏心距H)
N20 G90G92X0Y#11Z100(预制零件偏心中心为X0Y偏心距Z100)
N30 M03S300
N40 G65P0002A (起始角#1)B(增量角#2)C(第一象限结束角#3)S(内圆直径#19)R(外圆直径#18)D(刀具直径#7)E(放射槽底部宽度#8)F(放射槽项部宽度#9)Z(加工深度#26)Q(切削深度#17)。
N50 G00 Z100
N60 X0Y#11(回到零件中心)
N70 M05
N80 M30
O0002
N10 #4=#1(#4预设一个初始值为#1)
N20 #5=0(#5预设一个初始值为0)
N30 G68X0Y0R#4
N40 G00X[#19/2-#7]Y0
N50 Z-#5
N60 G01G42D01 Y[#8/2]M08F100
N70 X[#18/2+#7]
N80 Y-[#8/2]F6000
N90 X-[#19/2-#7]F100
N100 G00G40G69X0Y0
N110 IF[#4GE#3]GOTO140
N120 #4=#4+#2
N130 GOTO30
N140 IF[#54GE#26]GOTO180
N150 #5=#5+#7
N160 #4=#1
N170 GOTO30
N180 M99
另外三个象限程序可继续用O0001程序N40中增设II,Ⅲ,Ⅳ象限的变量,通过旋转来实现,或利用机床镜象功能来实现。
此程序适用:
(1)品种多,工艺尺寸变化频繁的零件加工;
(2)深型腔加工更能体现它的效率;
应用特点:
(1)相类似的工件,只需修改相应参数量,即可满足加工要求,不易出错。
(2)程序简单,易于修改,分析与调整。
(3)程序切削部分与空运行部分进给量易于区分,可节约大量加工时间,提高工作效率。
2.2 经济:本公司在实际生产中常常有各式各样带斜面型腔零件如图2,此类零件结构相似,但品种多数量少,斜面角度变化不定,按常规加工方法,往往采用成形刀加工。但零件品种多,所以成形刀需要量很大,订做一把成形铣刀要比普通铣刀费用高出2~3倍,为了降低加工成本减化管理程序,应用宏程序加工,此类问题即可解决。
模具零件的加工宏程序如下:
O0003
N10 G90G54M03S2000
N20 Z100
N30 G65P0004A(上端宽度#1)B(下端宽度#2)Z(总深度#26)J(每刀切削深度#5)S(内圆直径#19)R(外圆直径#18)D(刀具直径#7)
N40 G68X0Y0R180
N50 G65P0004A(上端宽度#1)B(上端宽度#2)Z(总深度#26)J(每刀切削深度#5)S(内圆直径#19)R(外圆直径#18)D(刀具直径#7)
N60 G69Z100
N70 M05
N80 M30
O0004
N10 #6=0(#6预设一个初始值为0)
N20 #3=[#1-#2]/2/#26
N30 #4=#1/2
N40 G01X[#19/2-#7]Y0F8000
N50 Z-#6F5000
N60 G17G42D01Y#4F120
N70 X[#18/2+#7]
N80 Y-#4F5000
N90 X[#19/2-#7]F120
N100 IF[#6GE[#26-#5]]GOTO140(防止#26/#5不能整除)
N110 #6=#6+#5
N120 #4=#1/2-#3*#6
N130 GOTO40
N140 IF[#6GE#26]GOTO180
N150 #6=#26
N160 #4=#1/2-#3*#6
N170 GOTO40
N180 G00G40X0Y0
N190 M99
应用特点:
1)无需成形刀,一把刀可加工各种斜率的斜面。
2)形位公差能够保证。由于成形刀相对误差比较大,无法同时满足斜面上下端尺寸,也给测量带来极大不便,宏程序中零件斜率是由机床精度保证的,操作者只需用块规或其它量具测量成形尺寸的一端,即可满足工艺要求。
3)加工粗糙度调整方便,只需修改切削深度,可达到工艺要求。
2.3 应用范围广:宏程序还可以应用到数控加工的其它环节。例如它可对刀具长度补偿(H),刀具半径裣(D),进给量(F),主轴转速(S),G代码,M代码等进行设置,也能有效提高加工效率。如图3零件,用宏程序中系统变量编制加工零件孔系,则十分简捷方便。
模具零件的加工宏程序如下:
O0005
N10 G90G92X0Y0Z100
N20 M03 S1000
N30 G65 P0006 X(圆心X坐标#24)Y(圆心Y坐标#25)R(趋近点坐标#18)Z(孔深#26)F(切削进给速度#9)I(圆半径#4)A(第一孔的角度#1)B(增量角#2)H(孔数#11)
N40 X0Y0
N50 M30
O0006
N10 #3=#4003;(存储03组系统变量G代码)
N20 G81 Z#26 R#18 F#9 K0;(钻孔循环)
N30 IF[#3 EQ 90]GOTO60;(在G90方式转移到N);
N40 #24=#5001+#24;(计算圆心的X坐标)
N50 #25=#5002+#25;(计算圆心的Y坐标)
N60 WHILE[#11 GT0]DO1;(直到剩余孔数为0)
N70 #5=#24+#4*COS[#1],(计算X轴上的孔位)
N80 #6=#25+#4*SIN[#1],(计算Y轴上的孔位)
N90 G90X#5 Y#6;(移动到目标位置之后执行钻孔)
N100 #1=#1+#2;(更新角度)
N110 #11=#11-1;(孔数-1)
N120 END1;
N130 G#3 G80;(返回到原始状态的G代码)
N140 M99;
3 结束语:
本文是笔者对宏程序在实际应用中的几个小例子,不难看出,要灵活恰当应用宏程序,有以下几点必须清楚。首先要对所加工的工件有一个整体认识。其次要熟练掌握机床的各种基本功能(例如:镜象,旋转,极坐标等)。最后要掌握宏程序的编程原理,编程格式及变量应用,就能解决实际加工中各种有规则几何形状的工件(例如:铣大平面,斜面,深型腔,放射槽,钻排孔,镗孔等)。我们经过多年实践,在实际加工中应用宏程序,使程序编制简单化,且通用性强,也使刀具品种,费用显著降低,取得了良好的生产效益和加工成果。
[ 本帖最后由 美雅破浪 于 2008-1-9 08:56 编辑 ] |
评分
-
1
查看全部评分
-
|