您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 数控加工中宏程序的编制方法.
数控加工中宏程序的编制方法普通程序中,只能指定常量,常量之间不能进行运算,程序只能顺序执行,不能跳转,因此功能固定的,不能变化。用户宏功能是用户提高数控机床性能的一种特珠功能,在相类似工件的加工中巧用宏程序将起到事半功倍的效果。一、宏程序概述用户宏程序用户宏程序(Custommacro)是以变量的组合,通过各种算术和逻辑运算,转移和循环等命令,而编制的一种可以灵活运用的程序,只要改变变量的值,即可以完成不同的加工和操作。用户宏程序可以简化程序的编制,提高工作效率。宏程序可以像子程序一样用一个简单的指令调用。用户宏程序与普通程序区别:用户宏程序本体中,能使用变量,可以给变量赋值,变量间可以运算,程序可以跳转;而普通程序中,只能指定常量,常量之间不能运算,程序只能顺序执行,不能跳转,功能是固定,不能变化。用户宏功能是用户提高数控机床性能一种特殊功能,相类似工件加工中巧用宏程序将起到事半功倍效果。二、FANUC宏程序简介在数控编程中,宏程序编程灵活、高效、快捷。宏程序不仅可以实现象子程序那样,对编制相同的加工操作程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。1.变量的表示变量是用符号#后面加上变量号码表示的,即:#i(i=0,1,2,3…)例如:#8,#110,#20变量号也可以用一个表达式来指定,这时表达式必须用括弧括起来。例如:#[#1+#12-12]2.变量的引用跟在地址后面的数字可以被变量替换。假设程序中出现有〈地址〉#1或〈地址〉-#1时,就意味着把变量值或它的负值作为地址的指令值。为了在程序中引用变量,指定一个字地址其后跟一个变量号。例如:G#104;当用表达式指定一个变量时,须用方括号括起来。例如:G01X[#1+#2];引用的变量值根据地址的最小输入增量自动进行四舍五入。例如:G00X#1;其中#1值为12.3456,CNC最小输入增量1/1000mm,则实际命令为G00X12.346。为了将引用的变量值的符号取反,在#号前加“-”号。例如:G00X-#1;当引用一个未定义的变量时,这个变量被当作空变量。变量#0始终被当作空变量,它不被赋任何值。忽略变量及引用变量的地址。例如:#1=0,#2=“空”,则G00X#1Y#2的执行结果是G00X0;注意程序号“O”、顺序号“N”、任选段跳跃号“/”不能使用变量。例如:变量不能用于下列方法:O#1;/#2G00X100.0;N#3Y200.0;3.FANUC变量的类型变量号变量类型功能#0空(Null)该变量的值总为空#1-#33局部变量(LocalVariables)局部变量是只能用于宏程序中存储数据,例如运算结果。当断电时,局部变量的值被清除,当宏程序被调用时,可对局部变量赋值。#100-#199#500-#999公共变量(CommonVariables)公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失。#1000-系统变量(SystemVariables)系统变量是固定用途的变量,它的值决定系统的状态,用于表示接口的输入/输出、刀具补偿、各轴当前位置等,有些系统变量只能被读取。注意:1)公共变量是在主程序和主程序调用的各用户内公用的变量。也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的。其中#100~#199公共变量是电源断电后即清零,重新开机时被设置为“0”;#500~#599公共变量即使断电后,它们的值也保持不变,因此也称为保持性变量。2)系统变量的序号与系统的某种状态有严格的对应关系。例如,刀具偏置序号为#01~#99,这些值可以用变量替换的方法加以改变,在序号1~99中,不用作刀具偏置变量的变量可以用作保持性公共变量#500~#531。5.系统变量(1)刀具补偿存储器C的系统变量补偿号刀具长度补偿(H)刀具半径补偿(D)几何补偿磨损补偿几何补偿磨损补偿123:200:400#11001(#2201)#11002(#2202)#11003(#2203):#11200(#2400):#11400#10001(#2001)#10002(#2002)#10003(#2003):#10200(#2200):#11400#13001#13002#13003:#13200:#13400#12001#12002#12003:#12200:#124004.FANUC宏程序的构成1)包含变量2)包含算术或逻辑运算(=)的程序段3)包含控制语句(例如:GOTO,DO,END)的程序段4)包含宏程序调用指令(G65,G66,G67或其他G代码,M代码调用宏序)的程序段三、FANUC宏程序运算符Ⅰ功能格式备注定义#i=#j加法#i=#j+#k减法#i=#j-#k乘法#i=#j*#k除法#i=#j/#k功能格式备注正弦#i=SIN[#j]角度以度指定,如90º30’表示为90.5度反正弦#i=ASIN[#j]余弦#i=COS[#j]反余弦#i=ACOS[#j]正切#i=TAN[#j]反正切#i=ATAN[#j]三、FANUC宏程序的条件表达式运算符运算符含义EQ等于NE不等于GT大于GE大于或等于LT小于LE小于或等于功能格式备注平方根#i=SQRT[#j]绝对值#i=ABS[#j]舍入#i=ROUND[#j]上取整#i=FIX[#j]下取整#i=FUP[#j]自然对数#i=LN[#j]指数函数#i=EXP[#j]运算中的误差注:1相对误差取决于运算结果。2使用两类误差的较小者。3绝对误差是常数,而不管运算结果。4函数TAN执行SIN/COS。5如果SIN、COS或TAN函数的运算结果小于1.0×10-8或由于运算精度的限制不为0的话,设定参数No.6004#1为1,则运算结果可以规算为0。变量值的精度约为8位十进制数。当在加/减运算中处理非常大的数时,将得不到期望的结果。•无条件转移:GOTOn(n为顺序号,1——99999)例1下面的程序计算数值1~10的总和。•O9500#1=0;存储和数变量的初值#2=1;被加数变量的初值N1IF[#2GT10]GOTO2;当被加数大于10时转移到N2#1=#1+#2;计算和数#2=#2+1;下一个被加数GOTO1;转到N1N2M30;程序结束四、FANUC宏程序的转移和循环Ⅰ四、FANUC宏程序的转移和循环Ⅱ条件转移:(IF语句)格式:IF[条件表达式]GOTOn当指定的条件表达式满足时,转移到标有顺序号n的程序段,如果指定的条件表达式不满足时,执行下个程序段四、FANUC宏程序的转移和循环Ⅲ–IF[条件表达式]THEN当指定的条件表达式满足时,执行预先决定的宏程序语句。•例:IF[#1EQ#2]THEN#3=0;四、FANUC宏程序的转移和循环ⅣWHILE[条件表达式]Dom;(m=1,2,3)注:循环允许嵌套,最多3层,但不允许交叉;条件不满足条件满足ENDm四、FANUC宏程序的转移和循环Ⅳ四、FANUC宏程序的转移和循环Ⅳ四、FANUC宏程序的转移和循环Ⅳ当指定的条件满足时,执行从WHILEDO到END之间的程序。否则,转而执行END之后的程序段。这种指令格式适用于IF语句。DO后的号和END后的号是指定程序执行范围的标号,标号值为1,2,3。若用1,2,3以外的值会产生P/S报警No.126。说明例:O0001;(1+10的和)#1=0;#2=1;WHILE[#2LE10]DO1;#1=#1+#2;#2=#2+1;END1;M30;五、FANUC宏程序的类型及调用Ⅰ一、A类宏程序格式:G65HmP#iQ#jR#k现已基本不用FANUC宏程序的调用二、B类宏程序1.非模态调用指令G65:格式:G65PpLl自变量指定其中p:要调用的程序号L:调用次数(默认为1)自变量:数据传递到宏程序2.模态调用指令(G66):格式:G66PpLl自变量指定;参数意义G67;(取消模态)其中p:要调用的程序号L:调用次数(默认为1)自变量:数据传递到宏程序六、FANUC宏程序特殊用法►宏程序还可以实现系统参数的控制,如,坐标系的读写、刀具偏置的读写、时间信息的读写、倍率开关的控制等。►当偏置组数小于等于200时,也可以用#2001——#24001.刀具补偿存储器C用G10指令进行设定P:刀具补偿号R:绝对值指令(G90)方式时的刀具补偿值。增量值指令(G91)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加。H代码的几何补偿值G10L10PR;D代码的几何补偿值G10L12PR;H代码的磨损补偿值G10L11PR;D代码的磨损补偿值G10L13PR;2.自动运行控制的系统变量#3003单程序段辅助功能的完成0有效等待1无效等待2有效不等待3无效不等待3.自动运行控制的系统变量#3004进给暂停进给速度倍率准确停止0有效有效有效1无效有效有效2有效无效有效3无效无效有效4有效有效无效5无效有效无效6有效无效无效7无效无效无效4.工件原点偏移值的系统变量Ⅰ#5201:#5204第1轴外部工件零点偏移值:第4轴外部工件零点偏移值#5221:#5224第1轴G54工件零点偏移值:第4轴G54工件零点偏移值#5241:#5244第1轴G55工件零点偏移值:第4轴G55工件零点偏移值4.工件原点偏移值的系统变量Ⅱ#5261:#5264第1轴G56工件零点偏移值:第4轴G56工件零点偏移值#5281:#5284第1轴G57工件零点偏移值:第4轴G57工件零点偏移值#5301:#5304第1轴G58工件零点偏移值:第4轴G58工件零点偏移值4.工件原点偏移值的系统变量Ⅲ#5321:#5324第1轴G59工件零点偏移值:第4轴G59工件零点偏移值#7001:#7004第1轴工件零点偏移值(G54.1P1):第4轴工件零点偏移值(G54.1P1)#7021:#7024第1轴工件零点偏移值(G54.1P2):第4轴工件零点偏移值(G54.1P2)4.工件原点偏移值的系统变量Ⅳ#7041:#7044第1轴工件零点偏移值(G54.1P3):第4轴工件零点偏移值(G54.1P3)#7061:#7064第1轴工件零点偏移值(G54.1P4):第4轴工件零点偏移值(G54.1P4)#7941:#7944第1轴工件零点偏移值(G54.1P48):第4轴工件零点偏移值(G54.1P48)4.工件原点偏移值的系统变量Ⅴ轴功能变量号第一轴外部工件零点偏移#2500#5201G54工件零点偏移#2501#5221G55工件零点偏移#2502#5241G56工件零点偏移#2503#5261G57工件零点偏移#2504#5281G58工件零点偏移#2505#5301G59工件零点偏移#2506#53214.工件原点偏移值的系统变量Ⅵ轴功能变量号第二轴外部工件零点偏移#2600#5202G54工件零点偏移#2601#5222G55工件零点偏移#2602#5242G56工件零点偏移#2603#5262G57工件零点偏移#2604#5282G58工件零点偏移#2605#5302G59工件零点偏移#2606#53224.工件原点偏移值的系统变量Ⅶ轴功能变量号第三轴外部工件零点偏移#2700#5203G54工件零点偏移#2701#5223G55工件零点偏移#2702#5243G56工件零点偏移#2703#5263G57工件零点偏移#2704#5283G58工件零点偏移#2705#5303G59工件零点偏移#2706#53234.工件原点偏移值的系统变量Ⅷ轴功能变量号第四轴外部工件零点偏移#2800#5204G54工件零点偏移#2801#5224G55工件零点偏移#2802#5244G56工件零点偏移#2803#5264G57工件零点偏移#2804#5284G58工件零点偏移#2805#5304G59工件零点偏移#2806#53245.用G10改变工件坐标系零点偏移值格式:G10
本文标题:数控加工中宏程序的编制方法.
链接地址:https://www.777doc.com/doc-2335066 .html