《数控车床由浅入深的宏程序实例.docx》由会员分享,可在线阅读,更多相关《数控车床由浅入深的宏程序实例.docx(34页珍藏版)》请在课桌文档上搜索。
1、数控车床由浅入深的宏程序实例裳华职业技术中专鲍新涛宏程序概述则是以直接的公式与语言输入的与C语言很相似在Oi系统中应用比较广。数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户能够使用变量进行算术运算、逻辑运算与函数的混合运算,此外宏程序还提供了循环语句、分支语句与子程序调用语句,利于编制各类复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,与精简程序量。宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不一致的系列零件的编程;适合工艺路径一样,只是位置参数不一致的系列零件的编程。较大地简化编程;扩展应用范围。B类宏A类宏下列都以#100与
2、#101与#102,及数值10与20做为例子,应用的时候别把他们当格式就行,基本指令HOl赋值;格式:G65H01P#101Q#102:把#102内的数值给予到#101中G65H01P#101Q#10:把#10给予到#101中H02加指令;格式G65H02P#101Q#102R#103,把#102的数值加上#103的数值给予#101G65H02P#101Q102R10G65H02P#101Q10R#103上面4个都是加指令的格式都是把Q后面的数值或者变量号内的数值加上R后面的数H03减指令;格式G65H03P#101Q#102R#103,把#102的数值减去#103的数值给予#101G65H0
3、3P#101Q102R10G65H03P#101Q10R103G65H03P#101Q20R10上面4个都是减指令的格式都是把Q后面的数值或者变量号内的数值减去R后面的数值或者变量号内的数值然后等于到P后面的变量号中.H04乘指令;格式G65H04P#101Q#102R#103,把#102的数值乘上#103的数值给予#101G65H04P101Q102R10G65H04P101Q10R103G65H04P#101Q20R10上面4个都是乘指令的格式都是把Q后面的数值或者变量号内的数值乘上R后面的数值或者变量号内的数值然后等于到P后面的变量号中.H05除指令;格式G65H05P101Q#102R
4、#103,把#102的数值除以#103的数值给予#101G65H05P#101Q#102R10G65H05P#101Q10R#103上面4个都是除指令格式都是把Q后面的数值或者变量号内的数值除以R后面的数值或者变量号内的数值然后等于到P后面的变量号中.(余数不存,除数假如为O的话会出现112报警)三角函数指令H31SIN正玄函数指令:格式G65H31P#101Q#102R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说能够直接用这个求出三角形的另一条边长,与往常的指令一样Q与R后面也能够直接写数值.R后面的#103内存
5、的是角度.结果是#101二#102*CoS#103,也就是说能够直接用这个求出三角形的另一条边长.与往常的指令一样Q与R后面也能够直接写数值.H33与H34本来应该是TAN与ATAN的但是通过我使用得数并不准确,希望有明白的人能够告诉我是为什么?开平方根指令无条件转移指令H80;格式:G65H80PlO;直接跳到第10程序段有条件转移指令H81H82H83H84H85H86,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;定义能完成某一功能的一系列指令像子程序那样存入存储器,用户能够设定M、S、T、G代码调用它们,使用
6、时只需给出这个指令代码就能执行其功能,也能够像调用子程序一样使用。这样的程序也称作用户宏程序变量的表示与使用(一)变量表示#1(1=1,2,3,)或者机式子例:#5,#109,#501,#1+#2-12格式:V地址字#1这里的“代表变量号例:F#103,设#103=15则为F15Z-#110,设#110=250则为Z250X#24+#18*COS#1例:#30,设#30=3则为#3例:下述方法下同意O#l;I#26.00100.0;N#3Z200.0;例:#30=1100时,则M#30是不同意的程序定义时可省略小数点,例:#123=149一个在宏程序中局部使用的变量,其运算结果其他程序不可使用
7、。例:A宏程序B宏程序#10=20X#10不表示X20各用户宏程序内公用的变量,其运算结果任何程序调用都相同。例:上例中#10改用#100时,B宏程序中的#100#149断电后清空#500#531保持型变量(断电后不丢失)#5221值为X轴G54工件原点偏置值入时务必输入小数点,小数点省略时单位为m运算指令1 .定义#I=#j2 .算术运算#I=#j+#k#I=#j-#k#I=#j*#k#I=#j/#k3 .逻辑运算#I=#JOK#k#I=#JXOK#k#I=#JAND#k4 .函数#I=SIN#jl正弦#I=COS#j余弦#I=TAN#j正切#I=ATAN#j反正切#I=SQRT#j平方根#
8、I=ABS#j绝对值#I=ROUND#j四舍五入化整#I=FIX#j上取整#I=FUP#j下取整#1=BIN附BCDBIN(二进制)#I=BCN#jBINBCD1) 说明1)角度单位为度例:90度30分为90.5度2) ATAN函数后的两个边长要用隔开例:l=ATANl-ll,#1为了3503) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入例:设#1=L2345,#2=2.3456,设定单位lmG91X-#l;X-L235X#l+#2;X3.580未返回原处,应改为XROUND#1+ROUND#2;4)取整后的绝对值比原值大为上取整,反之为下取整例:设#1=L2,#2=-1.
9、2时若#3=FUP#1时,贝i#3=2.0若#3=FIX#1时,则#3=L0若#3=FUP#2时,则#3=-2.0若#3=FIX#2时,则#3二-1.05)指令函数时,可只写开头2个字母例:ROUNDROFIXFI6)优先级函数T乘除(*,bAND)一加减(+,-,OR,XOR)例:#1=#2+#3*SIN#4;7)括号为中括号,最多5重,园括号用于注释语句例:#l=SIN#2+#3*#4+#5*#6;(3重)转移与循环指令1 .无条件的转移格式:GOTO1;GOTO#10;2 .条件转移格式:IF条件式习GOTOn条件式:# jEQ#k表示=# jNE#k表示jGT#k表示1.T#k表示V#
10、 jGE#k表示之#jLE#k表示W例:IF#1GT10GOTO100;NlOOGOOG91X10;例:求1到10之与09500;#1=0#2=1NlIF#2GTlOGOTO2#1=#1+#2;#2=#2+1;GOTO1N2M301 .循环格式:WHlLE条件式DOm;(m=l,2,3)ENDm2 .省略WHlLE语句只有DOmENDm,则从DOm到ENDm之间形成死循环3 .嵌套4 .EQNE时,空与“0”不一致其他条件下,空与“0”相同例:求1到10之与OOOOl;#1=0;#2=1;WHILE#2LE10DOI;#l=#l+#2;#2=#2+#l;ENDl;M30由浅入深宏程序I-宏程序
11、入门基础之销轴加工关于没有接触过宏程序人,觉得它很神秘,事实上很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,与宏程序编程的基本思路即可。关于初学者,特别是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁提供更好的思路。下面大家先看一个简单的车床的程序,图纸如下:要求用外圆刀切削一个短轴,这里只列举程序的前几步:TOlOlM3S800G0X82Z5G0X76G1Z-40F0.2X82G0Z5G0X72G1Z-40F0.2X82G0Z5G0X68G1Z-40F0.2X82G
12、0Z5G0X68G1Z-40F0.2X82G0Z5G0X40G1Z-40F0.2X82G0Z5G0X150ZI50M5M30从上面程序能够看出,每次切削所用程序都只是切削直径X有变化,其他程序代码未变。因此能够将一个变量赋给X,而在每次切削完之后,将其改变为下次切削所用直径即可。05679TOlOlM3S800G0X82Z5#/=76N10G0X#lG1Z-40F0.2X82G0Z5#7=#7-4赋初始值,即第一次切削直径将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。NIO是程序段的编号,用来标识本段,为后面循环跳转所用。每行切深为2mm,直径方向递减4mmIF#IGE40】GoT
13、olO假如#1=40,即此表达式满足条件,则程序跳转到NlO继续执行。G0X150ZI50当不满足#1=40,即#1=40,即此表达式满足条件,则程序跳转到NlO继续执行。M03S1200当不满足#1=40,即#1=0,即此表达式满足条件,则程序跳转到NlO继续执行。G0X150Z150当不满足#1=0,即#10,则最后一条圆弧已经切完,跳出循环。M5M30由浅入深宏程序4圆的标准方程编制宏程序车半球面我们明白不管什么样的曲线,数控系统都是CAD/CAM软件在处理时都会将其按照内部的算法划分成小段的直线进行加工,接下来我们利用圆的方程来将直线划分成小段直线在利用宏程序对其加工。下图为圆的标准方
14、程X*X+Y*Y=R*R,若将X与Y用参数变量代替可改写为#1*#1+#2*#2=R*R圆弧可沿#1方向划分成无数小段直线,然后求出其相应端点坐标,再求出相对的数控车床中的坐标,再按直线进行编程加工。如下图所示:则此段圆弧精加工轨迹为:GOXOG1ZOFO.1#1=0N10#2=SQRT|20*20-#1*#1SQRT表示开平方#3=#1-20圆的原点在工件坐标左侧20,因此圆弧上所有点坐标Z要减20# 4=2*#2圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。G1X|#41Z#3|FO.I沿小段直线插补加工# 1=#1-0.5递减一小段距离,此值越小,圆弧越光滑。IF|#IGE
15、OJGOTO10条件推断是否到达终点。G1X42直线切出外圆假如要再加上分层的粗加工,设偏移量为#5,则程序改为06789TOlOlM3S800G0X42Z5#5=36N5G0X#5G1Z0F0.1#1=20NlO#2=SQRT2O*2O-#1*#1JSQRT表示开平方# 3=#1-20圆的原点在工件坐标左侧20,因此圆弧上所有点坐标Z要减20# 4=2*#2+#5圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。GlX#4Z#3JF0.1沿小段直线插补加工# 1=#1-0.5递减一小段距离,此值越小,圆弧越光滑。IF#1GE0GOTO10条件推断是否到达终点。G1X42直线插补切出
16、外圆G0Z5#5=#5-4IF#5GE0GOTO5G0XI50Z150M5M30以上程序分内外二层循环,外层循环为分层加工,内层循环为小段直线插补一条圆弧。由浅入深宏程序5圆的参数方程编制宏程序车半球面圆的标准方程为:X=R*COS0Y=R*SIN0可改写为:#l=20*cos#3#3为参数方程对应图纸中角度#2=20*sin#3使用参数方程比圆的标准方程具有一个优点,从下图中能够看出,使用标准方程式,在工件最右端,划分直线坡度较大,从右至左划分线段不均匀,而使用圆的参数方程所划分的直线段是按照圆周方向划分的,因此分布均匀,从而使用零件表面加工质量好。相应程序修改如下:09876TOlOlM3
17、S8OOG0X42Z5#6=36N5G0X#6JG1Z0F0.1#3=0N10#l=20*C0S#3#2=20*SIN#3#4=2*#2+#6圆的方程计算出的为半径值,需转化为直径值才能与直径编程对应。#5=#1-20GlX#4Z#5F0.1沿小段直线插补加工#3=#3+3递减3度,此值越小,圆弧越光滑。IF#3LE90GOTO10条件推断是否到达终点。G1X42直线插补切到工件外圆之外G0Z5#6=#6-4IF#6GE0GOTO5G0X150Z150M5M30由浅入深宏程序6.利用椭圆标准方程编制数控车宏程序椭圆宏程序结构流程:椭圆宏程序结构流程:(1.开始)2 .给常量赋值3 .给变量赋值
18、/X4 .计算坐标值6指令机床沿曲线移动X,Z坐,6 .变量递增或递减XX/7 .判断是否到达终点未到终点返回4.计算坐标值、/VJ8 .到终点结束50mmX100mm,按图要求完成数控加工程序。其余彩ZOOOOl;TOlOl;MO3S800;GOX51.Z2.;G71U1.5Rl.;(粗车右端外形轮廓)G71PlOQ20U0.5W0.1F150;N10G1X25.966;(椭圆处外径)ZO.;Z-19.;X35.988Z-29.;Z-46;X44.;X45.992Z-47.;N20Z-55.;G70PlOQ20SlOOOF120;(精车右端外形轮廓)GOOXlOO.;Z50.;S800F15
19、0;#150=26.;(定义椭圆加工余量)N30IF#150LT1GOTO40;(假如余量小于L跳到40句)M98P0003;(调用椭圆加工宏程序)#150=#150-2;(每次递减2mm)GOTO30;(无条件跳转到30句)N40GOX30.Z2.;S1500F80:#150=0;(开始精加工椭圆轮廓)M98P0003;GOX100.Z5.;M30;00003;(椭圆加工子程序)# 101=20.;(椭圆长半轴)# 102=13.;(椭圆短半轴)# 103=20.;(起点处Z坐标)N20IF#103LT1GOTO50;(假如Z值小于1跳转到50句)# 104=SQRT#101*#101-#1
20、03*#103;(构造J_?2,# 105=#102*#104/#101;(构造b11GOlX2*#105+#150Z#103-20J;一?(直径值定义加上加工余量,Z向偏移椭圆长半轴)# 103=#103-0.5;(Z坐标递减0.5mm)GOTO20;(绝对跳转到20句)N50GOOU2.Z2.s(退刀)M99;椭圆轮廓编程技巧触长程羽6,施悔加/00027;TOlOl;G98;M43;M03S800;GOX80.Z5.;G73U25R25;(调用粗车循环加工椭圆轮廓)G73PlOQ20U0.5WOF150;NlOGlX30ZO;(轮廓起点)Z-8.79:#100=-8.79;(椭圆起点Z坐
21、标)NI5 #102=#100+44* #100+44;#103=SQRT36*36-#102;(构造#104=10+2/3*#103;(构造#105=2*#104;GOl X#105 Z#100;#100=#IOo-2; (Z 向递减 2mm) 向半径偏移Iomm)IF#100GT-72.102GOTO15(假如Z坐标值大于72.102跳转到15句)G00U30;N20X70;G00X80Z5;G70PlOQ20F100;(精加工椭圆轮廓)G00X100;Z100;M05;M30;参数方程编写椭圆宏程序:00271;T0101;M03S800;GOX36Z26;# 20=26;(X向总加工余
22、量)N56GOU2;Z26;(Z向加工起点)NlOo#20=#20-2;(X向递减2mm)# 1=12.5;(椭圆短半轴)# 2=25;(椭圆长半轴)# 3=0.5;(起始处椭圆离心角)# 5=90;(终止处椭圆离心角)WHILE#3LT#5DO2;(当起始角小于终止角时执行DO2到END2之间的程序段)#6=#2*COS#3;(构造#7=2*#1*SIN#3;(构造*E() 2*b*SIN(a)GlX#7+#20JZ#6F150;(椭圆X坐标加余量值)#3=#3+#4;(椭圆离心角递增)# 10=#7+#20;(X向当前点坐标)IF#10GT26GOTO56;(假如X向当前点坐标大于26跳转
23、到56句从新定起点)END2GOU2;Z26;(退刀)IF#20GEOJGOTO100;(假如余量大于等于0跳转到100句)GOX100;M05;M30;抛物线类零件的宏程序编制抛物线宏程序结构流程:(开始)tefi蛉支京嫉初值送入循环信)计算Z坐标值揩令机床沿指打线轮睨参鸵X.Z坐标)(X值是否小于拍物浅终金处直柱一半)若不小于刀耳退翦到H件右端)若小于返回送入何环依好空束抛物线宏程序编制:00272;M03S800;G98;GOOX90ZlOO;NlO#24=0;(抛物线顶点处X值)# 26=0;(抛物线顶点处Z值)# 17=-10;(常量)# 22=42;(抛物线开口处直径)# 6=1;
24、(每次步进量)#9=100;(进给率)GOOX#24Z#26+5;(加工起点)GOlZ#26F2*#9;X2ToN30#24=#24+#6;(X向递增)#26=#24*#24/#17;(构造G01X2*#24Z#26F#9;N60IF#24LT#22/2JGOTO30;(假如X值小于开口处直径一半跳转到30句)GOlX#22Z#26F3*#9;M05;M30;双曲线过渡类零件的宏程序编制焦点在X轴上的双曲线,其标准方程为2Y2-r=l(00)的宏程中编制务点在X轴上的双曲线,其标位方程为焦点在丫轴上的双曲线,其标准方程为双曲线宏程序结构流程:给常裁庭值焦点在Y轴上的双曲线宏程序编制双曲线参数方
25、程;X=-60+20tan(t)Y三38-10sin(t)t(20o,80。)程序编制:00273;T0101;M03S500;G98;GOlXlO;Z-5.05;X17.524;#1=20;N10#2=38-10/SIN#l;#3=-60+20/TAN#l;GOlX2*#2Z#3;#1=#1+1;IF#1LT80GOTO10;GOlX56Z-56.473;X60;GOOXlOO;ZlOO;M05;M30;焦点在X轴上的双曲线宏程序编程:00045;TOlOl;G98;M03S500;GOOX60ZO;GOlX0;#100=0;N15#101=4/3*SQRT#100-6*#100-6-36;
26、GOlX2*#101Z#100;#100=#100-l;IF#100GT-16.594JGOTO15;GOlX58Z-16.594;X60;GOOZ0;GOOX100;Z100;M05;M30;椭圆轮廓的加工对椭圆轮廓,其方程有两种形式。对粗加工,使用G71/G72走刀方式时,用直角坐标方程比较方便;而精加工(仿形加工)用极坐标方程比较方便。X = 2。 sin 夕极坐标方程一Z = bcosX向椭圆半轴长:Z向椭圆半轴长:,一椭圆上某点的圆心角,零角度在Z轴正向。加工图72所示椭圆轮廓,棒料45,编程零点放在工件右端面。%200G50X100Z200;TOlOI;G95 GO X41 Z2
27、Mo3 S800;Gl Z-IOO F0.3;粗加工开始GO X42;Z2;#1=20*20*4;4a2#2=60;b#3=35 ;X初值(直径值)WHILEI #3 GEO DOl;粗加工操纵#4=#2*SQRT 1 -#3*#3/#l ; ZGO X#3+l;进刀Gl Z#4-60+0.2 F0.3;切削GOUl;退刀Z2;返回#3=#3-7;下一刀切削直径ENDl;#10=0.8;X向精加工余量#11=0.1;Z向精加工余量WHILE#10LE0 DOI;半精、精加工操纵60190图7-2GOXOS1500;进刀,准备精加工#20=0;角度初值WHILE#20LE90DO2;曲线加工#3
28、=2*20*SIN#20;X#4=60*COS#20;ZGlX#3+#I0Z#4+#llF0.1;#20=#20+1;END2;GlZ-100;GOX45Z2;#10=#10-0.8;ENDl;GOXlOOZ200T0100;M30;抛物线加工示例7-3,加工图73所示抛物线孔,方程为Z=216,换算成直径编程形式为Z=264,则X=SqrtZ/8。使用端面切削方式,编程零点放在工件右端面中心,工件预钻有中30底孔。图7-3%120G50X100Z200;TOlOI;G90GOX28Z2M03M07S800;#1=-3;ZWHILE#1GE-81DOI;粗加工操纵#2=SQRT100+#l/8;XGOZ#l+0.3;GlX#2-0.3F0.3;GOX28W2;#l=#l-3;ENDl;#10=0.2;#11=0.2;WHILE#10GEODOl;半精、精加工操纵#1=-81;GOZ-8lS1500;WHILE#1LT0.5DO2;曲线加工操纵#2=SQRT100+#l/8;XGlX#2-#10Z#l+#llF0.1;#1=#1+0.3;END2;GOX28;#10=#10-0.2;#1!=#11-0.2;ENDl;GOXlOOZ200M05M09;T0100;M30;