当前位置:首页 >> 机械/仪表 >>

用户宏程序


用户宏程序(或变量编程)
宏程序是一种特殊的子程序,是用户根据实际需要,用变量,计算机指令, 控制指令等编制的用以完成某一机能的子程序。例如非圆曲线的加工程序,自动 换刀,自动交换工作台,数控滚齿机的窜刀程序,数控磨床砂轮修正程序等。 特点:1 可以引用变量,可以通过主程序给变量赋值。 2 变量之间可以进行运算(加、减、乘、除、开方、平方等;函数) 3 增加了逻缉功能。

FANUC 系统的用户宏程序 一 变量 1 变量的表示 变量用变量符号 (#) 和后面数字、 变量、 表达式构成。 如#1, #[#5], #[#1+#5-12]。 2 变量的类型-----四种 #0--空变量。 该变量总是空,没有值能赋给该变量。 #1~#33--局部变量。 局部变量只能用在宏程序中存储数据。断电时局 部变量被初始化为空。调用宏程序时,自变量对局部变量赋值。 #100~#149 , #500~#549 公共变量。它在不同的宏程序中的意义相同。其中 #100~#149 为操作型变量,断电初始化为空,而#500~#549 为保持型,断电数据 也不丢失。 系统变量 用于读和写 CNC 的各种数据,有固定用途的变量。系统变量包括接 口信号,刀具补偿值,报警,模态信息,当前位置,工件坐标系补偿值等。 3 变量的引用 将跟随在地址后的数值用变量来代替。当用表达式指定变量时,要把表达式放在 方括号内。如 G01 X#100 Z-#101 F#102;G01 X[#1+#3] F#5 在编程时,变量的定义,变量的运算只允许每行写一个。否则系统报警。 二 算术和逻缉运算 例 加法 #i=#j+#k 乘 法 #i=#j*#k 平 方 根 #i=SQRT[#j] 正弦 #i=SIN[#j] 或 #i=#jOR#k 运算次序 函数-----乘和除------加和减 括号嵌套 括号(方括号) 用于改变运算次序. 括号可以使用 5 级, 包括函数 内部使用的括号。如:#1=COS[[#2+#3]*#4]*#5] 运算符:等于(=)-----EQ 不等于(≠)-----NE 大于(>)-----GT 大于或等于 (>=) ---- GE 小于 (<) -----LT 小于或等于 (<= ) LE 三 转移和循环 1 无条件转移 编程格式:GOTO N; 2 条件转移 编程格式:IF[条件表达式] GOTO N; IF[条件表达式] THEN 宏程序语句。只执行一个宏程序语句。

例 IF[#1EQ#2]THEN #3=0;如果#1 的值与#2 的值相等,则将 0 赋值给#3。

1

3 循环指令 编程格式:WHILF [条件式] Dom(m=1、2、3); ………… ENDm; 当条件式满足时, 就循环执行 WHILE 与 END 之间的程序段 m 次, 当条件不满足时, 就执行 ENDm 的下一个程序段. 四 零件加工宏程序编程的步骤 非圆曲线的数控编程加工的思路:当数控系统只具备直线插补,圆弧插补功 能时,如何加工非圆曲线轮廓的零件时,在确保加工精度的前提条件下,往往采 用短直线或圆弧去近似替代非圆曲线。将曲线细分成若干段, 每一段用直线拟合 法拟合曲线轮廓,进行直线插补。曲线细分越密加工出的曲线精度越高。 一般由分析图形特征、建立数学模型、定义变量和程序出口、编写参数程序四 步组成。 例 1 用? 16mm 的立铣刀加工长半轴为 50, 短半轴为 30 的椭圆的周边轮廓部分. 椭圆的方程为 X2/50*50+Y2/30*30=1 椭圆的方程的另一种表达方式(参数方程) 为:X=50*COSα Y=30*SINα “α” 是自变量, 坐标值 X Z 随角度的变化而变化, 是因变量。 #1:自变量角度 #2:因变量 X 坐标值 #3:因变量 Z 坐标值 O9001; N05 #1=0; 定义变量初值(角度) N10 WHILE[#1LE360]DO1; 循环语句, 当#1 的值小等于 360° 时 在 N10~N40 之间循环 N15 #2=50*COS[#1] ; 变量计箅 N20 #3=30*SIN[#1]; 变量计箅 N30 G01 X#2 Y#3 F100; 加工 N35 #1=#1+1; 计算变量更新角度,角度增量为 1 度 N40 END1; 循环语句结束 N50 M99;

2

例 2 数控车加工抛物线曲面

抛物线方程:Z=-X*X/40 #101: 曲线上各点的 Z 坐标 #102: 曲线上各点的 X 坐标 曲线精加工程序如下:

FANUC 编程: O111; G00 X10. Z2.0; #101=0; Z 坐标赋初值

SEIMENS 编程: R1:Z 坐标值变量 R2:X 函数值变量(半径) R3: X 坐标值变量(直径) G00 X10.0 Z2.0. R1=0; MA1: R2=SQRT (-R1*40.0) ; R3=R2*2 ; G01 X=R3 Z=R1 F100; R1=R1-0.1; IF R1>=-50. GOTOB MA1; GOO Z5. G00 X100. Z100.; M05; M30;

N10

#101=#101-0.1; Z 坐标变量每次减 0.1mm #103=SQRT[-#101*40] ;中间变量 #104=#103*2; 中间变量 ; G01 X#104 Z#101 F100 ; IF [#101GE-50.]GOTO 10 ; G01 X40.; G00 X100.0 Z120.0; M05; M30;

3

例 3 椭圆手柄的数控车精加工程序

椭圆的标准方程为:X*X/a*a+Y*Y/b*b=1 在数控车床坐标系中 X 轴为标准方程的 Y 轴,Z 轴为标准方程的 X 轴。当编程原 点与椭圆中心不重合时需进行坐标平移,得到新的方程。 椭圆手柄的曲线方程为:X*X/12.5*12.5+(Z+25)2/25*25=1 椭圆手柄的曲线方程的另一种表达方式(参数方程) 为: X=12.5*SINα Z=25*COSα-25 注意: 用极坐标编写椭圆时, 应注意终点处的极角不等于图样上已知的平 面角 146.3 度, 经换算后锝到该点的极角为 126.86 度. 10=12.5*sinα sinα=10/12.5=0.8 α=126.86 度 变量设定: #100: 椭圆 X 向半轴 a 的长度 #101: 椭圆 Z 向半轴 b 的长度 #102: 自变量角度α #103: a*sinα #104: b*cosα #105: 椭圆上各点在编程坐标系中的 X 坐标 #106: 椭圆上各点在编程坐标系中的 Z 坐标 O1234; T0101; M03 S1200; G00 X0 Z5.0; M98 P402; G02 X20. Z-70. R40; G01 Z-85.; G00 X100. Z100.; M30; O402; #100=12.5; #101=25.;

1 号刀(93 度硬质合金外圆车刀) 宏程序起点 调用子程序(精加工宏程序)

椭圆精加工宏程序 短半轴赋值 长半轴赋值
4

#102=0; 角度自变量α赋值 N40 #103=#100*SIN[#102]; #104=#101*COS[#102]; #105=2*#103; X 坐标因变量 #106=#104-25.; Z 坐标因变量 G01 X#105 Z#106 F0.1; 直线轨迹拟合 #102=#102+1; 自变量角度增量为 1 度 IF [#102 LE 126.86] GOTO 40; 条件判断, 极角<=126.86 度 M99; 返回主程序 SIEMENS 802D 编程: R1:椭圆 X 向半轴 a 的长度 R2: 椭圆 Z 向半轴 b 的长度 R3:自变量角度α R4:a*sinα R5: b*cosα R6: 椭圆上各点在编程坐标系中的 X 坐标 R7: 椭圆上各点在编程坐标系中的 Z 坐标 AA402; R1=12.5; 短半轴赋值 R2=25.; 长半轴赋值 R3=0; 角度自变量α赋值 MA1:R4=R1*SINR3; R5=R2*COSR3; R6=2*#103; X 坐标因变量 R7=R4-25.; Z 坐标因变量 G01 X=R6 Z=R7 F0.1; 直线轨迹拟合 R3=R3+1; 自变量角度增量为 1 度 IF [R3 < 126.86] GOTOB MA1; 条件判断, 极角<=126.86 度 M99; 返回主程序 用代数方程编制数控加工程序:自变量为 Z,每次变化为 1,X 为因变量。 加工宏程序格式如下: #1=× × ; 椭圆 Z 轴起点坐标 WHILE[#1 GT× × (椭圆 Z 轴终点坐标)]DO1; #2=[#1-(Z 原点至椭圆心距离)]× [#1-(Z 原点至椭圆心距离)]/ 长半轴 *长半轴; #3=[1-#2]* 短半轴*短半轴; #4=SQRT[#3]; #5=2*#4+(X 原点至椭圆心距离) ;X 轴直径编程 G01 X#5 Z#1 F0.1; #1=#1-1; END1;

5

例 4 凸模曲线(双曲线) 的精加工程序

双曲线方程:X=36/Z+3 编制程序时, 根据方程找出各点的 X 坐标和 Z 坐标之间 的对应关系并设定相应的变量. #101 为方程中的 Z 坐标(起点 Z=72) #102 为方程中的 X 坐标(起点半径值 X=3.5) #103 为工件坐标系中的 Z 坐标,#103=#101-72. #104 为工件坐标系中的 X 坐标,#104=2*#102 (直径值) O555; ……. G00 X9.0 Z2.0; #101=72.; #102=3.5; N100 #103=#101-72.; #104=2*#102; G01 X#104 Z#103 F0.1; #101=#101-0.1; 自变量 Z 每次递减 0.1mm #102=36/#101+3; 因变量 X 坐标(运算) IF [#101 GE 2.0] GOTO100; 判断 Z 坐标值大于等于 2, 跳转到 N100 程序段 G28 U0 W0; M30;

6

例 5 绕线筒曲线轮廓的数控车加工程序

该正弦曲线由两个周期组成, 总角度为 720 度(-630~90 度) 正弦曲线方程为:X=34+6*sinα 沿 Z 轴方向将该曲线分成 1000 条线段, 每段直线在 Z 轴方向的间距为 0.04mm, 对应其正弦曲线的角度增加 720/1000=0.72 度 X 坐标值,X=34+6sinα 变量设定

例 6 数控车加工油槽

7

油槽形状为渐进渐出

8

O0012; (宏 B) M03 S360 N1 T0404; G10 P4 U-0.2; (可编程数据设定,4 号刀刀补。 ) G00 X6. Z6; G32 X-0.3 Z3.3 F3.18; G32 X-3.2 Z1.3 F3.18; G32 X-3.2 Z-0.8 F3.18; G32 X-0.3 Z-3.3 F3.18; G32 X6. Z-6. F3.18; G00 Z6.0; #511=#5081; (#5081:读取当 X 轴刀具长度补偿值。 ) #512=ABS[#511]; (ABS: 取绝对值) IF [#512GT#501] GOTO2; IF [#512LT#501] GOTO1; N2 G0 X100;. G10 P4 X#500; M99; (#500=0;#501=3200) % 若用宏 A,只需更改宏语句 G65 H01 P#511 Q#5081; G65 H22 P#512 Q#511; G65 H83 P2 Q#512 R#511; H83:大于 G65 H84 P1 Q#512 R#511; H84:小于 例 7:数控滚齿机窜刀子程序 O9000 G90G01Y#504F100 IF[#505LE#506]GOTO5 IF[#503NE0]GOTO2 N1#504=#504+#502 IF[#504GE#501]GOTO3 G90G01Y#504F20 #505=1 GOTO6 N2#504=#504-#502 IF[#504LE#500]GOTO4 G90G01Y#504F20 #505=1 #500:Y 向起始点 #501:Y 向终点 #502: 窜刀量
9

GOTO6 N3G90G01Y#501F20 #504=#501 #503=1 #505=1 GOTO6 N4G90G01Y#500F20 #504=#500 #503=0 #505=1 GOTO6 N5#505=#505+1 N6M99

#503: #504:当前坐标 #505:几件活一窜 例 8 求 1~100 之和 两种程序: 变量和的初始值设定 加数变量的始值设定 加数变量的值设定>100 转移到 N2 求和计算 下一个加数 转移到 N1 程序段 程序结束

O1; #1=0; #2=1; N1 IF[#2GT100] GOTO2; #1=#1+#2; #2=#2+1; GOTO 1; N2 M30;

O2; #1=0; 变量和的初始值设定 #2=1; 加数变量的初始值设定 WHILE[#2LE100] DO1; 当加数小于等于 100 时,执行从 DO1 到 END1 之间的程序 #1=#1+#2; 求和计算 #2=#2+1; 下一个加数 END1; 条件满足,执行从 DO1 到 END1 之间的程序 M30; 例 9 自动换刀程序 O9000; #100=#4001; #101=#4003; #102=#4120; #103=#1032AND255; #104=BIN[#103]; IF [#102LT1]GOTO 2000; IF [#102GT16]GOTO 2000; IF [#102EQ#104]GOTO 1000; G91 G00 G30 Z0 M80; M81; M87; G28 Z0 M77; T#149; G30 Z0 M77; M88; M86; M82; G#100 G#101; N1000 M99;
10

N2000 #3000=20 (TOOLNO.ALARM) 五 用户宏程序调用指令(宏 B) 1 宏程序非模态调用 G65 格式:G65 P(p)L(l) (自变量赋值) ; (p) :要调用的程序号 (l) :重复次数(默认值为 1) (自变量赋值) :数据传递到宏程序 例 O123; O9011; . #3=#1+#4; G01 X#1 Y#3 F150; . . . G65 P9011 A10 I5; (自变量赋值 1 地址 A=用用户宏程序本体中的变 量#1; 地址 I=#4 ) . M30; 2 宏程序调用还有模态调用(G66,G67) ;G 代码调用;M 代码调用;T 代码 调用

附:常用非圆曲线方程
1、参数方程 (1)渐开线 圆(半径为 a)的渐开线方程为:

? x ? a(cos? ? ? sin ? ) ? ? y ? a(sin? ? ? cos? )
(2)摆线 圆(半径为 a)的摆线方程为:

? x ? a(? ? sin ? ) ? ? y ? a(1 ? cos? )

11

2、椭圆、双曲线、抛物线方程 见表 表 椭圆、双曲线和抛物线方程

椭圆、双曲线、抛物线的一般参数方程: 1 椭圆: X=a*cosα Y=b*sinα (a: 长半轴,b: 短半轴) 2 双曲线: X=a*secα Y=tgα 3 抛物线: X=2pt*t Y=2pt 实例 1、加工如图所示零件椭圆槽,材料为 YL12。使用?10 键槽铣刀分两层 铣削,每一次切削深度为 4 ㎜,试编程并加工零件。
12

图1 (1)零件图分析

椭圆槽加工编程

该零件材料为 YL12,已知毛坯尺寸为 100×100×15 的方形坯料,且顶面、 底面和四个侧面均已加工好。 (2)工艺分析 ①装夹定位的确定 ②加工刀具的确定 装夹采用压板或平口钳均可。 为了提高切削效率,采用 T01 为φ 10mm 的键槽铣刀,

按椭圆槽中心轨迹运动,每次铣削深度为 4 ㎜。 (3)确定加工坐标原点 根据零件图,可设置程序原点为工件中心的上表面。
x2 y2 (4)椭圆长半轴 a=40,短半轴 b=25,由椭圆方程 2 ? 2 ? 1 a b
y? 25 ? 40 ? 40 ? x ? x 40



图 1(工件)的刀具清单 产品名称及代 号 序号 1 刀具 编号 T01 Xxxxx 刀具规格/名称 Φ 10 键槽刀 零件名称 数量 1 Xxxx 加工内容 Φ 10 椭圆槽 零件 图号 刀具 半径 /mm 5 Xxxx 刀具 材料

13

图 1(工件)加工工艺表 产 品 名 单位名称 称 或 代 号 零件名称 零件图号 材 料

夹 工序 号 工序 编号 具 名 称 平 口+ 垫 块 加 工 内 容 刀具号 刀 具 名 称 键 1 铣椭 圆槽 T01 槽 铣 刀 图 1(工件)加工程序单 序号 程序内容 注释 %1510 程序名 N10 G90 G54 G00 X0 Y0 Z100 调用 G54 坐标系,初始定位 N20 M03 S900 主轴正转,转速 900 r / min N30 X-40 Y0 快速定位至椭圆左端点 Φ 10 900 80 0 主轴 转速 (r / min) 进给 速度 (mm / min) 背吃刀 量 加工余 量 备注 立式铣床 夹具编号 使用设备

工 序 号

刀具 规格 (mm)

(mm) (mm)

14

N40 N50 N60 N70 N80 N90 N100 N110 N120 N130 序号 %0001 N10 N20 N30 N40 N50 N60 N70 N80 N90 N100 N110 N120 N130 N140

G43 Z5 H01 #10=-4 IF [#10 GE -8] M98 P0001 #10=#10-4 ENDIF G01 Z5 G00 G49 X0 Y0 Z100 M05 M30 子程序内容 G01 Z[#10] F100 #1=-40 WHILE[#1LE40] #2=25/40*SQRT[40*40-#1*#1] G01 X{#1} Y[#2] F200 #1=#1+0.5 ENDW #1=40 WHILE[#1GE-40] #2=25/40*SQRT[40*40-#1*#1] G01 X{#1} Y-[#2] F200 #1=#1-0.5 ENDW M99

快速下到 Z5 Z 坐标赋值 条件语句 调用子程序 修改 Z 坐标 条件语句结束 抬刀 返回起始点 主轴停 程序结束 注释 程序名 下刀至铣削深度 给自变量 X 赋值,起点为-40 循环语句,加工上半椭圆 计算因变量 Y 的值 直线插补至相邻节点 修改 X 坐标 循环语句结束 给自变量 X 赋值,起点为 40 循环语句,加工下半椭圆 计算因变量 Y 的值 直线插补至相邻节点 修改 X 坐标 循环语句结束 子程序结束返回

15


相关文章:
用户宏程序
而我们一般将含有变量的子程序称为用户宏程序体, 简称“用户宏程序” ,在程序中调用用户宏程序的那条指令称为“用户宏指令” 。 用户宏程序有三个要点:一,在...
用户宏程序
用户宏程序(或变量编程) 宏程序是一种特殊的子程序,是用户根据实际需要,用变量,计算机指令,控制指令等编制的用以完 成某一机能的子程序。例如非圆曲线的加工...
用户宏程序
用户宏程序 1.概念 反复进行同一切削动作时,使用子程序效果较好,但若使用用户宏程序的话,可以使用运算 指令、条件转移等,适于编制更简单、通用性更强的程序。并且...
用户宏程序
用户宏程序(或变量编程)宏程序是一种特殊的子程序,是用户根据实际需要,用变量,计算机指令, 控制指令等编制的用以完成某一机能的子程序。例如非圆曲线的加工程序,...
用户宏程序简介X
宏程序宏程序隐藏>> 用户宏程序简介一.概述: 用户宏程序是以变量的组合,通过各种算术和逻辑 运算、转移和循环等命令,而编制的一种可以灵活运用 的程序。可以简化...
第五章 用户宏程序
数控车宏程序完成稿 41页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 第五章 用户宏程序 隐藏>> 第五章 用户...
FANUC系统用户宏程序基础
FANUC系统用户宏程序基础_一年级语文_语文_小学教育_教育专区。FUANC系统使用宏程序的入门级备用资料,加工人员人守一册FANUC 系统用户宏程序基础 相关搜索: 相关搜索...
宏程序编程知识
FANUC 系统 16/18/21 参数号 描述《有效数据位 1—255》 6050 G 代码调用存储在程序 O9010 中的用户宏程序 6051 G 代码调用存储在程序 O9011 中的用户宏...
宏程序
宏程序_机械/仪表_工程科技_专业资料。FUNNC 用户宏程序用户宏程序 能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只 需给出这个...
宏程序
宏程序_数学_自然科学_专业资料。FUNN 宏程序 用户宏程序 能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令 ...
更多相关标签:
宏程序编程入门 | 宏程序 | 宏程序编程实例 | 数控宏程序实例教程 | 数控宏程序编程入门 | 数控宏程序 | fanuc宏程序编程实例 | 加工中心宏程序 |