数控车FANUC系统宏程序教案-_第1页
数控车FANUC系统宏程序教案-_第2页
数控车FANUC系统宏程序教案-_第3页
数控车FANUC系统宏程序教案-_第4页
数控车FANUC系统宏程序教案-_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE15宏程序设计宏程序与子程序类似,对编制相同加工的操作可以使程序简化.同时宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序制定。使相同加工操作的程序更方便,更灵活。本章以FANUC系统为例介绍宏程序制定的内容。12.1变量的定义宏程序中使用的变量与日常生活中使用的变量不同,变量用符号“#〞后跟变量的变量号指定。变量可分为四种类型。1.空变量#0为空变量,该变量不能赋值。2.局部变量#1~#33为局部变量,局部变量只能在宏程序中存储数据。当断电时局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值。局部变量的数值范围10-29~1047或-1047~-10-29,如果计算结果超过该范围则发出P/S报警No.111。3.公共变量#100~#199、#500~#999为公共变量,公共变量在不同的宏程序中意义相同。当断电时,变量#100~#199被初始化为空,变量#500~#999的数据不会丢失。全局变量的数值范围10-29~1047或-1047~-10-29,如果计算结果超过该范围则发出P/S报警No.111。4.系统变量#1000~为系统变量,系统变量用于读和写CNC运行时的各种数据,如刀具的当前位置和补偿值等。5.变量与地址〔自变量〕的对应关系系统可用两种形式的自变量指定,表12-1为自变量指定I的自变量与变量的对应关系。表12-2为自变量指宾II的自变量与变量的对应关系。表12-1自变量指定I的变量对应关系地址〔自变量〕变量号地址〔自变量〕变量号地址〔自变量〕变量号A#1I#4T#20B#2J#5U#21C#3K#6V#22D#7M#13W#23E#8Q#17X#24F#9R#18Y#25H#11S#19Z#26在自变量指定I中,G、L、O、N、P不能用,地址I、J、K必需按顺序使用,其它地址顺序无要求。举例:G65P3000L2B4A5D6J7K8正确〔J、K符合顺序要求〕在宏程序中将会把4赋给#2,把5赋给#1,把6赋给#7,把7赋给#5,把8赋给#6举例:G65P3000L2B3A4D5K6J5不正确〔J、K不符合顺序要求〕表12-2自变量指定II的变量对应关系地址〔自变量〕变量号地址〔自变量〕变量号地址〔自变量〕变量号A#1K3#12J7#23B#2I4#13K7#24C#3J4#14I8#25I1#4K4#15J8#26J1#5I5#16K8#27K1#6J5#17I9#28I2#7K5#18J9#29J2#8I6#19K9#30K2#9J6#20I10#31I3#10K6#21J10#32J3#11I722K10#33自变量指定II使用A、B、C和1次,使用I、J、K各10次。系统能够自动识别自变量指定I和自变量指定II并赋给宏程序中相应的变量号。如果自变量指定I和自变量指定II混合使用,则后指定的自变量类型有效。举例:G65A1.0B2.0I-3.0I4.0D5.0p1000#2:2.0, #3: #5: #6: #7:5.0说明:I4.0为自变量指定II,D为自变量指定I,所以#7使用指定类型中的D5.0,而不使用自变量指定II中的I4.0。6.本级变量#1~#33作用于宏程序某一级中的变量称为本级变量,即这一变量在同一程序级中调用时含义相同,假设在另一级程序〔如子程序〕中使用,则意义不同。本级变量主要用于变量间的互相传递,初始状态下未赋值的本级变量即为空白变量。局部变量#1~#33〔一个宏程序中的同名变量〕从0到4级,主程序是0级。每调用一个含有同名变量的宏程序,级别加1,前一级的变量被储存。当一个宏程序结束〔执行M99〕时,级别减1。例如:主程序 宏程序 宏程序 宏程序 宏程序〔0级〕 〔1级〕 〔2级〕 〔3级〕 〔4级〕O0001 O0002 O0003 O0004 O0005#1=1; #1=2 #1=3 #1=4 #1=5G65P2A2; G65P3A3 G65P4A4 G65P5P5 ………… …… …… …… M99M30 M99 M99 M9912.2变量的运算对宏程序中的变量可以可以进行算术运算和逻辑运算。1.算术运算可以进行加、减、乘、除运算。运算功能和格式如表12-3所示。举例:G00X[#1+#2]X坐标的值是变量1与变量2之和。2.三角函数计算对宏程序中的变量可进行正弦〔SIN〕、反正弦〔ASIN〕、余弦〔COS〕、反余弦〔ACOS〕、正切〔TAN〕、反正切〔ATAN〕函数运算。三角函数中的角度以度为单位。运算功能和格式如表12-3所示。表12-3变量运算功能表类型功能格式举例备注算术运算加法#i=#j+#k#1=#2+#3常数可以代替变量减法#i=#j-#k#1=#2-#3乘法#i=#j*#k#1=#2*#3除法#I=#j*#k#1=#2/#3三角函数运算正弦#i=SIN[#j]#1=SIN[#2]角度以度指定35°30’常数可以代替变量反正弦#i=ASI[#j]#1=ASIN[#2]余弦#i=COS[#j]#1=COS[#2]反余弦#i=ACOS[#j]#1=ACOS[#2]正切#i=TAN[#j]#1=TAN[#2]反正切#i=ATAN[#j]#1=ATAN[#2]其它函数运算平方根#i=SQRT[#j]#1=SQRT[#2]常数可以代替变量绝对值#i=ABS[#j]#1=ABS[#2]舍入#i=ROUN[#j]#1=ROUN[#2]上取整#i=FIX[#j]#1=FIX[#2]下取整#i=FUP[#j]#1=FUP[#2]自然对数#i=LN[#j]#1=LN[#2]指数对数#i=EXP[#j]#1=EXP[#2]逻辑运算与#i=#jAND#k#1=#2AND#2按位运算或#i=#jOR#k#1=#2OR#2异或#i=#jXOR#k#1=#2XOR#2转换运算BCD转BIN#i=BIN[#j]#1=BIN[#2]BIN转BCD#i=BCD[#j]#1=BCD[#2]关于反反正弦〔ASIN〕取值范围如下:当参数〔No.6004#0〕NAT位设为0时:270°~90°当参数〔No.6004#0〕NAT位设为1时:-90°~90°当#j超出-1~1时发出P/S报警No.111。关于反余弦〔ACOS〕的取值范围如下:取值范围180°~0°当#j超出-1~1时发出P/S报警No.111。关于反正切〔ATAN〕的取值范围如下:当参数〔No.6004#0〕NAT位设为0时:0°~360°当参数〔No.6004#0〕NAT位设为1时:-180°~180°3.其它函数计算对宏程序中的变量还可以进行平方根〔SQRT〕、绝对值〔ABS〕、舍入〔ROUN〕、上取整〔FIX〕、下取整〔FUP〕、自然对数〔LN〕、指数〔EXP〕运算。运算功能和格式如表12-3所示。关于自然对数LN[#j],相对误差可能大于10-8。当#j≤0时,发出P/S报警No.111。关于批数函数EXP[#j],相对误差可能大于10-8。当运算结果大于3。65×1047〔j大约110〕时,出现溢出并发出P/S报警No.111。关于取整函数ROUN[#j],依据最小设定单位四舍五入。例如,假设最小设定单位为1/1000mm,#1=1.2345,则#2=ROUN[#1]的值是1.0。关于上取整FIF[#j],绝对值值大于原数的绝对值。关于下取整FUP绝对值小于原数的绝对值。例如,假设#1=1.2,则#2=FIX[#1]的值是2.0。假设#1=1.2,则#2=FUP[#1]的值是1.0。假设#1=-1.2,则#2=FIX[#1]的值是-2.0。假设#1=-1.2,则#2=FUP[#1]的值是-1.0。4.逻辑运算对宏程序中的变量可进行与、或、异或逻辑运算。逻辑运算是按位进行。运算功能和格式如表12-3所示。5.数制转换变量可以在BCD码与二进制之间转换。6.关系运算由关系运算符和变量〔或表达式〕组成表达式。系统中使用的关系运算符如下。〔1〕等于〔EQ〕用EQ与两个变量〔或表达式〕组成表达式,当运算符EQ两边的变量〔或表达式〕相等时,表达式的值为真,否则为假。例如,#1EQ#2,当#1与#2相等时,表达式的值为真。〔2〕不等于〔NE〕用NE与两个变量或表达式组成表达式,当运算符NE两边的变量〔或表达式〕不相等时,表达式的值为真,否则为假。例如,#1NE#2,当#1与#2不相等时,表达式的值为真。〔3〕大于等于〔GE〕用GE与两个变量或表达式组成表达式,当左边的变量〔或表达式〕大于或等于右边的变量〔或表达式〕时,表达式的值为真,否则为假。例如,#1GE#2,当#1大于或等于#2时,表达式的值为真。否则为假。〔4〕大于〔GT〕用GT与两个变量或表达式组成表达式,当左边的变量〔或表达式〕大于右边的变量〔或表达式〕时,表达式的值为真,否则为假。例如,#1GT#2,当#1大于#2时,表达式的值为真。否则为假。〔5〕小于等于〔LE〕用LE与两个变量或表达式组成表达式,当左边的变量〔或表达式〕小于或等于右边的变量〔或表达式〕时,表达式的值为真,否则为假。例如,#1LE#2,当#1小于或等于#2时,表达式的值为真。否则为假。〔6〕小于〔LT〕用LT与两个变量或表达式组成表达式,当左边的变量〔或表达式〕小于右边的变量〔或表达式〕时,表达式的值为真,否则为假。例如,#1GE#2,当#1大于#2时,表达式的值为真。否则为假。7.运算优先级运算符的优先顺序是〔1〕函数。函数的优先级最高。〔2〕乘、除、与运算。乘、除、与运算的优先级次于函数的优先级。〔3〕加、减、或、异或运算。加、减、或、异或运算的优先级次于乘、除、与运算。乘、除、与运算的优先级。〔4〕关系运算。关系运算的优先级最低。用方括号可以改变优先级,括号不能超过5层。超过5层时,发出P/S报警No.111。8.变量值的精度变量值的精度为8位十进制数。例如,用赋值语句#1=9876543210123.456时,实际上#1=9876543200000.000。用赋值语句#2=9876543277777.456时,实际上#1=9876543300000.000。12.3宏程序结构宏程序从结构上可以有顺序结构、分支结构和循环结构。本节介绍分支和循环结构的实现方法。1.无条件转移〔GOTO〕格式:GOTOn;n为顺序号〔1~9999〕例如,GOTO6;语句组N6G00X100;执行GOTO6语句时,转去执行标号为N6的程序段。2.条件转移〔IF〕格式:IF[关系表达式]GOTOn;例如,IF[#1LT30]GOTO7语句组N7G00X100X5如果#1大于30,转去执行标号为N7的程序段,否则执行GOTO7下面的语句组。3.条件转移〔IF〕格式:IF[表达式]THENTHEN后只能跟一个语句。例如,IF[#1EQ#2]THEN#3=0;当#1等于#2时,将0赋给变量#3。4.循环〔WHILE〕格式:WHILE[关系表达式]DOm;语句组;ENDm;当条件表达式成立时执行从DO到END之间的程序,否则转去执行END后面的程序段。例如,#1=5;WHILE[#1LE30]DO1;#1=#1+5;G00X#1Y#1;END1;M99;当#1小于等于30时,执行循环程序,当#1大于30时结束循环返回主程序。12.4宏程序的调用与返回1.宏程序的简单调用宏程序的简单调用是指在主程序中,宏程序可以被单个程序段单次调用。

调用指令格式:G65P〔宏程序号〕L〔重复次数〕〔变量分配〕其中:G65——宏程序调用指令

P〔宏程序号〕——被调用的宏程序代号;

L〔重复次数〕——宏程序重复运行的次数,重复次数为1时,可省略不写;

〔变量分配〕——为宏程序中使用的变量赋值。

宏程序与子程序相同的一点是,一个宏程序可被另一个宏程序调用,最多嵌套4层。2.宏程序的开始与返回宏程序的编写格式与子程序相同。其格式为:

O0010〔0001~8999为宏程序号〕//程序名

N10……//指令

……N30M99//宏程序结束

宏程序以程序号开始,以M99结束。12.5宏程序应用举例例1:加工如图12-1所示的椭圆表面,材料为中碳钢。由于一般的数控系统无椭圆插补功能,手工编程可用宏程序实现编程计算。本例使用Ø20键槽铣刀分两层铣削,每一次切削深度为5mm。按刀具刀具轨迹编程。图12-1椭圆轮廓图主程序O0001N0001G92X0.0Y0.0Z150.0; 工件坐标系原点设在工件中心距顶面上N0002M03S300; 主轴正转,转速N0003G00X-80.0; 刀具移至椭圆左端点处N0004G00Z1.0; 快速接近工件N0005G01Z0.0F100.0 慢速接近工件N0006G65P0100A80.0B50.0C-5.0 椭圆长半轴为80,短半轴为50。Z向进刀5mmN0007G65P0100A80.0B50.0C-10.0 椭圆长半轴为80,短半轴为50。Z向进刀5mmN0007G00Z150.0; 抬刀N0008G00X0.0Y0.0; 刀具回起点N0009M05; 主轴停N0010M30; 程序结束宏程序O1000#10=-#1; #1为长半轴=80,#2为短半轴=50,#10为X坐标N1000G01Z#3; #3为Z向进刀深度WHIL[#10LE#1]DO1; X坐标小于等于80循环加工上半椭圆#11=SQRT[#1*#1-#10*#10]*#2/#1; #11为Y坐标用椭圆公式计算N1001G01X#10Y#11F100.0; 切削进给END1;#10=#1; #1为长半轴=80,#2为短半轴=50,#10为X坐标WHIL[#10GE-#1]DO2; X坐标小于等于80循环加工下半椭圆#11=-SQRT[#1*#1-#10*#10]*#2/#1; #11为Y坐标用椭圆公式计算N1002G01X#10Y#11F100; 切削进给END2;N1003M99 返回主程序例2:加工如图12-2所示的凹槽表面。零件材料为中碳钢。为确保表面质量,内外轮廓先粗加工后精加工,粗加工内轮廓时刀补半径比刀具半径大0.2mm,作为精加工余量。精加工的刀补半径与刀具半径相同。工序卡片和刀具卡片见表12-4和表12-5所示。图12-2凹槽表面零件表12-1实例3用刀具卡片产品名称或代号数控车实训零件名称典型零件3零件图号03序号刀具号刀具规格名称数量加工表面刀具直径mm备注1T01Ø20键槽铣刀1中心岛轮廓粗第1层刀补号12T01Ø20键槽铣刀1深度进刀刀补号13T01Ø20键槽铣刀1中心岛轮廓粗第2层刀补号14T01Ø20键槽铣刀1中心岛轮廓精刀补号25T01Ø20键槽铣刀1矩形凹槽第1层无刀补6T01Ø20键槽铣刀1深度进刀无刀补7T01Ø20键槽铣刀1矩形凹槽第2层无刀补8T01Ø20键槽铣刀1异形凹槽第1层无刀补9T01Ø20键槽铣刀1深度进刀无刀补10T01Ø20键槽铣刀1异形凹槽第2层无刀补11T02Ø8键槽铣刀1凹槽外轮廓粗第1层刀补号312T02Ø8键槽铣刀1深度进刀刀补号313T02Ø8键槽铣刀1凹槽外轮廓粗第2层刀补号314T02Ø8键槽铣刀1凹槽外轮廓精刀补号415T01Ø20键槽铣刀1中心处的上斜面刀补号216T01Ø20键槽铣刀1中心处的下斜面刀补号217T01Ø20键槽铣刀1中心处的右斜面刀补号218T01Ø20键槽铣刀1中心处的左斜面刀补号2表12-2数控加工工序卡单位名称北华航天工业学院产品名称或代号零件名称零件图号数控铣实训典型零件303工序号程序编号夹具名称使用设备车间001O0010平口钳XH714实训中心工步工步内容刀具号刀具规格mm主轴转速r/min进给速度mm/min切削深度mm备注1中心岛轮廓粗第1层T01Ø2030010062深度进刀T01Ø203005063中心岛轮廓粗第2层T01Ø2030010064中心岛轮廓精T01Ø20300100125矩形凹槽第1层T01Ø2030010066深度进刀T01Ø203005067矩形凹槽第2层T01Ø2030010068异形凹槽第1层T01Ø2030010069深度进刀T01Ø2030050610异形凹槽第2层T01Ø20300100611凹槽外轮廓粗第1层T02Ø835080612深度进刀T02Ø835050613凹槽外轮廓粗第2层T02Ø835080614凹槽外轮廓精T02Ø8350801215中心处的上斜面T01Ø20300100计算16中心处的下斜面T01Ø20300100计算17中心处的右斜面T01Ø20300100计算18中心处的左斜面T01Ø20300100计算图12-3工步1~工步4的走刀路线图图12-4工步5~工步7的走刀路线图图12-5工步8~工步10的走刀路线图图12-16工步5~工步7的走刀路线图图12-3至图12-6给出了有关工步的走刀路线图。主程序O0100N0101G92X0.0Y0.0Z150.0; 设定坐标系N0102M06T01H01; 换第1号刀N0103G00Z1.0M03S300.0; 接近工件起动主轴N0104G00X30.0Y25.0; 进入切削起点AN0105G01Z-6.0F50.0; Z向切入工件〔粗加工第1次深度〕N0106G01X15.0Y15.0G42D1F100.0; A-B〔D1刀补比实际直径大0.2mm,右刀补〕N0107G65P0200I15.0J15.0; 调用切矩形宏程序N0108G01X30.0Y25.0G40; 回切削起点AN0109G01Z-12.0F50.0; Z向切入工件〔粗加工第2次深度〕N0110G01X15.0Y15.0G42D1F100.0; A-B〔D1刀补比实际直径大0.2mm,右刀补〕N0111G65P0200I15.0J15.0; 调用切矩形宏程序N0112G01X30.0Y25.0G40; 回切削起点AN0113G01X15.0Y15.0G42D2F100.0; A-B〔D2与实际直径相同,精加工〕N0114G65P0200I15.0J15.0; 调用切矩形宏程序N0115G01X30.0Y25.0G40; 回切削起点AN0116G00Z-6.0; 抬刀〔粗加工第1次深度〕N0117G01X35.0Y29.0; A-B〔切削矩形无刀补〕N0118G65P0200I35.0J29.0; 调用矩形宏程序N0119G01X30.0Y25.0 回切削起点AN0120G01Z-12.0F50.0; Z向切入工件〔粗加工第2次深度〕N0121G01X35.0Y29.0; A-B〔切削矩形无刀补〕N0122G65P0200I35.0J29.0; 调用矩形宏程序N0123G01X30.0Y25.0 回切削起点AN0124G01Z-6.0; 切削两端余量〔粗加工第1次深度〕N0125G65P0300; 切第1层N0126G01X30.0Y25.0 回切削起点AN0127G01Z-12.0; Z向进刀〔粗加工第2次深度〕N0128G65P0300; 切第2层N0129G01X30.0Y25.0 回切削起点AN0130M06T02H02; 换第2把刀N0131G01X30.0Y25.0; 进入切削起点N0132G00Z1.0; 接近工件N0133G01Z-6.0F50.0; 切入6mm深〔粗加工第1次深度〕N0134G01X0.0Y44.0G41D3F100.0; A-B〔切入曲线轮廓到上部长边的中点〕N0135G65P0400; 调曲线轮廓宏程序N0136G01X30.0Y25.0G40; 进入切削起点AN0137G01Z-12.0F50.0; Z向切入深度12mm〔粗加工第2次深度〕N0138G01X0.0,Y44.0G41D3F100.0; A-B〔切入曲线轮廓到上部长边的中点〕N0139G65P0400; 调曲线轮廓宏程序N0140G01X30.0Y25.0G40; 回起刀点AN0141G01X0.0Y44.0G41D4F100.0; A-B〔切入到长边中点第4号刀补〕N0142G65P0400; 调用曲线轮廓宏程序N0143G01Z-2; 抬刀至斜面顶点高度N0144G01X30.0Y25.0G40; 加工切削起点AN0145M06T01H01; 换第1号刀N0146G01X30.0Y0.0G42D2 进入上斜面起点处N0147G65P0500I30.0J0.0I-30.0J30.0; 加工上斜面N0148G00Z-2.0; 抬刀N0149G00X30.0Y25.0G40; 回切削起点N0150G01X30.0Y0.0G41D2F100.0; 进入下斜面起点处N0151G65P0600I30.0J0.0I-30.0J-30.0; 加工下斜面N0152G00Z1.0; 抬刀N0153G00X30.0Y25.0G40; 回切削起点N0154G01Z-2.0 F100.0 下刀N0155G01X0.0Y30.0G41D2; 进入右斜面起点N0156G65P0700I0.0J30.0I30.0J-30.0; 加工右斜面N0157G00Z1.0 抬刀N0158G00X30.0Y25.0Z-2G42F100.0; 回切削起点N0159G01Z-2.0 下刀N0160G01X0.0Y30.0G42D2 进入左斜面起点N0161G65P0800I0.0J30.0I-30.0J-30.0; 加工左斜面N0162G00Z150.0; Z向回初始位置N0163G00X0.0Y0.0G42; XY回坐标原点N0164M30; 程序结束切削矩形宏程序,直刀路线如图12-3和12-4所示。O0200N0201G01X-#4F100.0; B-CN0202G01Y-#5; C-DN0203G01X#4; D-EN0204G01Y#5; E-BN0205M99; 返回主程序切削内内腔两端余量宏程序,走刀路线如图12-5所示。O0300N0301G01X48.0Y29.0F100; A-BN0302G01X-48.0; B-CN0303G01X-35.0Y0.0; C-DN0304G01X-48.0Y-29.0; D-EN0305G01X48.0; E-FN0306G01X35.0Y0.0; F-GN0307G01X48.0Y29.0; G-B N0308M99; 返回主程序切削曲线轮廓宏程序,走刀路线如图12-6所示。O0400N0401G01X-53.0F100.0; B-CN0402G03X-63.0Y34.0R10.0; C-DN0403G01Y20.365; D-EN0404G03X-58.8Y12.219R10.0; E-FN0405G02X-58.8Y-12.219R15.0; F-GN0406G03X-63.0Y-20.365R10.0; G-HN0407G01Y-34.0; H-IN0408G03X-53.0Y-44.0R10.0; I-JN0409G01X53.0; J-KN0410G03X63.0Y-34.0R10.0; K-LN0411G01Y-20.219; L-MN0412G03X58.8Y-12.219R10.0; M-NN0413G02X58.8Y12.219R15.0; N-PN04

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论