280 likes | 489 Views
数控编程技术. 第七章. 主编 周平 吴有恩 副主编 冯新红 揭晓 金黎明. 第 7 章 数控宏程序. FANUC 0i 用户宏程序 FANUC 系统A类宏程序应用 FANUC 系统B类宏程序应用 SIEMENS 系统宏程序应用 华中世纪星数控系统宏程序应用. 第 7 章 数控宏程序. 7.1 FANUC 0i 用户宏程序. 7.1.1 用户宏功能.
E N D
数控编程技术 第七章 主编 周平 吴有恩 副主编 冯新红 揭晓 金黎明
第7章 数控宏程序 FANUC 0i用户宏程序 FANUC系统A类宏程序应用 FANUC系统B类宏程序应用 SIEMENS系统宏程序应用 华中世纪星数控系统宏程序应用
第7章 数控宏程序 7.1 FANUC 0i用户宏程序 7.1.1 用户宏功能 • 在编程中,经常把能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来代表它们,使用时只需要给出这个总指令就能执行其功能.所存入的一系列指令称作用户宏程序或用户宏功能主体,这个总指令称作用户宏功能指令. • 数控系统可以使用用户宏程序的功能称为用户宏功能. 7.1.2 FANUC 0i系统的用户宏程序 FANUC 0i系统提供两种用户宏程序,即用户宏程序功能A和用户宏程序功能B。用户宏程序功能A可以说是FANUC系统的标准配置功能,任何配置的FANUC系统都具备此功能,而用户宏程序功能B虽不是FANUC系统的标准配置功能,但大多数的FANUC系统也支持用户宏程序功能B。
第7章 数控宏程序 7.1 FANUC 0i用户宏程序 7.1.4 变量 • 变量用变量符号“#”和后面的变量号指定。例如:#12 • 表达式可以用于指定变量号,此时,表达式必须封闭在括号中。 • 例如:#[#1+#2-12] • 宏程序中变量的类型: • 局部变量:#1~#33 • 公共变量:#100~#149,#500~#509 • 系统变量:#1000~#5335
第7章 数控宏程序 7.2 FANUC系统A类宏程序应用 7.2.1 A类宏变量 FANUC 0i-MB系统的变量分为公共变量和系统变量两类。1)公共变量 公共变量是在主程序和主程序调用的各用户宏程序内公用的变量。也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的。 公共变量的序号为:#100~#131;#500~#531。其中#100~#131公共变量在电源断电后即清零,重新开机时被设置为“0”;#500~#531公共变量即使断电后,它们的值也保持不变,因此也称为保持型变量。 2)系统变量 系统变量定义为:有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置变量,接口的输入/输出信号变量,位置信息变量等。 系统变量的序号与系统的某种状态有严格的对应关系。例如,刀具偏置变量序号为#01~#99,这些值可以用变量替换的方法加以改变,在序号1~99中,不用作刀偏量的变量可用作保持型公共变量#500~#531。 接口输入信号#1000~#1015,#1032。通过阅读这些系统变量,可以知道各输入口的情况。
第7章 数控宏程序 7.2 FANUC系统A类宏程序应用 7.2.2、宏指令G65宏指令G65可以实现丰富的宏功能,包括算术运算、逻辑运算等处理功能。 一般形式: G65 Hm P#i Q#j R#k式中: m--宏程序功能,数值范围01~99;#i--运算结果存放处的变量名;#j--被操作的第一个变量,也可以是一个常数;#k--被操作的第二个变量,也可以是一个常数。
第7章 数控宏程序 7.2 FANUC系统A类宏程序应用 7.2.3、宏功能指令 (1)算术运算指令(如下表)
第7章 数控宏程序 7.2 FANUC系统A类宏程序应用 7.2.3、宏功能指令 (2)逻辑运算指令(如下表) (3)三角函数指令(如下表)
第7章 数控宏程序 7.2 FANUC系统A类宏程序应用 7.2.3、宏功能指令 (4)控制类指令(如下表)
第7章 数控宏程序 7.2 FANUC系统A类宏程序应用 7.2.4、用户宏程序应用举例 例:用宏程序和子程序功能顺序加工圆周等分孔。设圆心在O点,它在机床坐标系中的坐标为(X0,Y0),在半径为r的圆周上均匀地钻几个等分孔,起始角度为α,孔数为n。以零件上表面为Z向零点。见右图 。 使用以下保持型变量:#502:半径r;#503:起始角度α;#504:孔数n,当n>0时,按逆时针方向加工,当n<0时,按顺时针方向加工;#505:孔底Z坐标值;#506:R平面Z坐标值;#507:F进给量。使用以下变量进行操作运算:#100:表示第i步钻第i孔的记数器;#101:记数器的最终值(为n 的绝对值);#102:第i个孔的角度位置θi的值;#103:第i个孔的X坐标值;#104:第i个孔的Y坐标值;
第7章 数控宏程序 用用户宏程序编制的钻孔子程序如下:O9010N110 G65 H01 P#100 Q0 //#100 = 0N120 G65 H22 P#101 Q#504//#101 = │#504│N130 G65 H04 P#102 Q#100 R360//#102 = #100 ×360oN140 G65 H05 P#102 Q#102 R#504 //#102 = #102 / #504N150 G65 H02 P#102 Q#503 R#102 //#102 = #503 + #102当前孔角度位置 θi =α+ (360o×i) / nN160 G65 H32 P#103 Q#502 R#102 //#103 = #502 ×COS(#102)当前孔的 X坐标N170 G65 H31 P#104 Q#502 R#102 //#104 = #502 ×SIN(#102) 当前孔的Y坐标N180 G90 G98 G81 X#103 Y#104 Z#505 R#506 F#507 //加工当前孔(返回开始平面)N190 G65 H02 P#100 Q#100 R1 //#100 = #100+1孔计数N200 G65 H84 P-130 Q#100 R#101 //当#100 < #101时,向上返回到130程序段N210 M99 //子程序结束 调用上述子程序的主程序如下:O0010N10 G54 G90 G00 X0 Y0 Z20 //进入加工坐标系N20 M98 P9010 //调用钻孔子程序,加工圆周等分孔N30 Z20 //抬刀N40 G00 G90 X0 Y0 //返回加工坐标系零点 N50 M30 程序结束设置G54:X=-400,Y=-100,Z=-50。变量#500~#507可在程序中赋值,也可由MDI方式设定。
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 • 7.3.1 基本指令 • 1、宏程序调用G65、G66 • 宏程序的非模态调用(G65) 宏程序的非模态调用是指在主程序中,宏程序可以被单个程序段单次调用。使用非模态代码G65,地址P指定的用户宏程序被调用。数据(自变量)能传递到用户宏程体中。调用指令格式: G65P(宏程序号) L(重复次数)(变量分配) 其中:G65――非模态宏程序调用指令P(宏程序号)――被调用的宏程序代号;L(重复次数)――宏程序重复运行的次数,重复次数为1时,可省略不写; (变量分配)――为宏程序中使用的变量赋值。 • 宏程序的模态调用(G66) G66指定宏程序模态调用,即执行沿移动轴移动的程序段后调用宏程序。数据(自变量)能传递到用户宏程体中。 调用指令格式: G66P(宏程序号) L(重复次数)(变量分配) 与子程序调用一样,宏程序调用包括非模态调用(G65)和模态调用(G66)都可以嵌套,一个宏程序可被另一个宏程序调用,最多可调用4重。宏程序嵌套时,局部变量也分别从0到4级嵌套,主程序是0级。
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 7.3.1 基本指令 2、变量的分配类型 使用自变量指定时,其值被赋值到相应的局部变量。所谓自变量,就是在由用户宏指令调出的宏程序本体中,可给所用变量赋予的实际值。 文字变量与数字序号变量之间的关系 上表中,文字变量为除G、L、N、O、P以外的英文字母,一般可不按字母顺序排列,但I、J、K例外;#1~#26为数字序号变量。例:G65 P1000 A1.0 B2.0I3.0则上述程序段为宏程序的非模态调用格式,其含义为:调用宏程序号为1000的宏程序运行一次,并为宏程序中的变量赋值,其中:#1为1.0,#2为2.0,#4为3.0。
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 B类宏程序的算术和逻辑运算
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 3、控制指令 控制指令可以控制用户宏程序的程序流程。 条件转移语句1 I F [ 条件表达式 ] GOTO n 当条件满足时,程序就跳转到同一程序 中语句标号为n的语句上继续执行 当条件不满足时,程序执行下一条语句 条件转移语句2 WHILE [ 条件表达式 ] DO m ... … END m 当条件满足时,从DO m到ENDm之间的程序就重复执行。 当条件不满足时,程序就执行ENDm下一条语句
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 3、控制指令 控制指令可以控制用户宏程序的程序流程。 条件转移语句1 I F [ 条件表达式 ] GOTO n 当条件满足时,程序就跳转到同一程序 中语句标号为n的语句上继续执行 当条件不满足时,程序执行下一条语句 条件转移语句2 WHILE [ 条件表达式 ] DO m ... … END m 当条件满足时,从DO m到ENDm之间的程序就重复执行。 当条件不满足时,程序就执行ENDm下一条语句
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 7.3.2 应用举例 椭圆的解析方程: 椭圆的参数方程: y b t x a
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 例1 椭圆程序 O0001 N2 #100=1 角度步长 N4 #101=0 初始角度 N6 #102=361 终止角度 N8 #103=45 长半轴 N10 #104=25 短半轴 N12 #105=-10.0 深度 N13 G90G00X[#103+20]Y0Z100.0 刀具运行到(65,0,100)的位置 N14 S1000M03 N15 G01Z[#105]F1000.0 刀具下到-10mm N16 #114=#101 赋初始值 N18 #112=#103*COS[#114] 计算X坐标值 N20 #113=#104*SIN[#114] 计算Y坐标值 N22 G01G42X[ROUND[#112]]Y[ROUND[#113]]D02F500.0 走到第一点,并运行一个步长 N24 #114=#114+#100 变量#114增加一个角度步长 N26 IF[#114LT#102]GOTO18 条件判断#114是否小于361,满足则返回18 N28 G01G40X[#103+20]Y0 取消刀具补偿,回到(65,0) N30 G90G00Z100.0M05 快速抬刀 N32 M30 程序结束
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 例2:以下图零件为例在车床上加工。该系列零件的右端面半球球径可取R15和R10,可将球径用变量表示。编程零件设在工件右端面中心,棒料Φ45。 从图中可以看出,编程所需节点,除A、D、E三点外,B、C点均与球径R有关。下面给出各节点坐标。
第7章 数控宏程序 7.3 FANUC系统B类宏程序应用 加工程序如下: O1001 T0101; G54 G90 G0 G95 M03 S800; X45 Z2 M07; #1=15; G71 U7 R1; G71 P10 Q20 U1 W0.2 F0.4 S750; N10 G0 X0 S1200; G3 X[2*#1] Z-#1 R#1 F0.15; G1 Z[-20-2*#1]; X40 Z-60; Z-100; N20 X45; G70 P10 Q20; G0 X200 Z200; M30;
第7章 数控宏程序 7.4 SIEMENS系统宏程序应用 7.4.1计算参数 SIEMENS系统宏程序应用的计算参数如下: R0~R99----可自由使用; R100~R249----加工循环传递参数(如程序中没有使用加工循环,这部分参数可自由使用); R250~R299----加工循环内部计算参数(如程序中没有使用加工循环,这部分参数可自由使用)。 7.4.2 赋值方式 为程序的地址字赋值时,在地址字之后应使用“=”,N、G、L除外。 7.4.3 控制指令 控制指令主要有: IF 条件 GOTOF 标号IF 条件 GOTOB 标号 说明: IF----如果满足条件,跳转到标号处;如果不满足条件,执行下一条指令; GOTOF----向前跳转; GOTOB----向后跳转; 标号----目标程序段的标记符。
第7章 数控宏程序 7.4 SIEMENS系统宏程序应用 7.4.4 应用举例 例:采用Φ20R4铣刀加工SR30的球,已知球心坐标为 (X0,Y0,Z-5.) 分析: 铣球程序一般采用自动编程来实现,但是,利用宏程序强大的功能同样也可以实现,而且程序更加简洁。 编程思路: 铣球可以认为是多个铣圆的组合。 排刀分布: 有两种方案,一是按Z向分布,二是按圆心角分布。从保证表面质量来看,最佳方案为按圆心角分布。
第7章 数控宏程序 7.4 SIEMENS系统宏程序应用 7.4.4 应用举例 计算: 圆弧起点计算,从X正向开始起刀。 刀具根部R4的圆心在XZ平面的运动轨迹为与R30等距的圆R34,刀尖点上4mm处的轨迹(即褐色轨迹)为红色轨迹沿X正向平移6毫米,刀尖点坐标为褐色轨迹沿Z轴向下平移4mm(即绿色轨迹)。 起始角度=ARCSIN((5+4)/34)=15.349º 起始位置X值=34*COS(15.349)+6=38.787 起始位置Z值=0 (通用表达式=34*sin(15.349)-5-4) 变量定义: R1为圆心角,范围由(15.349,90) R2为刀尖中心X值,=34*COS[#1]+6 R3为刀尖中心Z值,=34*SIN[#1]-5-4
第7章 数控宏程序 7.4 SIEMENS系统宏程序应用 7.4.4 应用举例 加工程序: M03S3000; G00G90G54Z100.; R1=15.349 X50.Y0; Z10.; LABEL:R2=34*COS(R1)+6; R3=34*SIN(R1)-5-4; G01Z=R3F900; X=R2; G02X=R2Y0I=-R2J0; R1=R1+1; IF R1<=90 GOTOB LABEL G00Z100.; M30;
第7章 数控宏程序 7.5 华中世纪星数控系统宏程序应用程序应用 7.5.1 宏变量及常量 (1)宏变量 1)公共变量:分为全局变量和局部变量。 #0~#49 当前局部变量 #50~#199 全局变量 #200~#249 0 层局部变量 #250~#299 1 层局部变量 #300~#349 2 层局部变量 #350~#399 3 层局部变量 #400~#449 4 层局部变量 #450~#499 5 层局部变量 #500~#549 6 层局部变量 #550~#599 7 层局部变量 华中数控系统可以子程序嵌套调用,调用的深度最多可以有九层。每一层子程序都有自己独立的局部变量,变量个数为50。如当前局部变量为#0~#49;第一层局部变量为#200~#249;第二层局部变量为#250~#299;依此类推。 2)系统变量:为有固定用途的变量,它的值决定系统的状态。 (2) 常量 PI: 圆周率π TRUE: 条件成立(真) FALSE: 条件不成立(假)
第7章 数控宏程序 7.5 华中世纪星数控系统宏程序应用程序应用 7.5.2 运算符与表达式 (1) 算术运算符 +, -, *, / (2) 条件运算符 EQ(=), NE(≠),GT(>) GE(≥), LT(<), LE(≤) (3) 逻辑运算符 AND, OR, NOT (4) 函数 SIN(正弦), COS(余弦), TAN(正切), ATAN(反正切) ABS(绝对值), INT(取整), SIGN(取符号), SQRT(平方根), EXP(指数) (5) 表达式 用运算符连接起来的常数宏变量构成表达式。 7.5.3 赋值语句 格式:宏变量=常数或表达式
第7章 数控宏程序 7.5 华中世纪星数控系统宏程序应用程序应用 7.5.4 条件判别语句IF, ELSE, ENDIF 格式:(i) IF 条件表达式 …条件成立(真) ELSE …条件不成立(假) ENDIF 格式:(ii) IF 条件表达式 …条件成立(真) ENDIF 指令说明:条件成立时,执行IF和ELSE间的程序或IF和ENDIF间的程序。条件不成立,执行ELSE和ENDIF间的程序或ENDIF后的程序段。 7.5.5 循环语句WHILE,ENDW 格式: WIIILE 条件表达式 …条件成立(真) ENDW 指令说明:条件成立时,执行WHILE和ENDW间的程序。条件不成立,执行ENDW的下一个程序段。
谢谢观看! 撰稿教师:周平