《宏程序A类B类G65等常见公式用法【专业研究】.ppt》由会员分享,可在线阅读,更多相关《宏程序A类B类G65等常见公式用法【专业研究】.ppt(53页珍藏版)》请在三一文库上搜索。
1、一、宏程序编程概念 宏程序的编制方法简单地解释就是:利用变量编程的方法。 用户利用数控系统提供的变量、数学运算功能、逻辑判断功能、程序循环功能等功能,来实现一些特殊的用法。 例如:椭圆的解析方程: 椭圆的参数方程:其中t为变量,1,特制内容,用户宏功能的最大特点是,可以对变量进行运算,使程序应用更加灵活、方便。 用户宏功能常用的有A类宏功能和B类宏功能两类。 宏指令既可以在主程序体中使用, 也可以当作子程序来调用。,2,特制内容,放在主程序体中 O001 N50 #100=30.0 N60 #101=20.0 N70 G01 X#100 Y#101 F500.0 M30,3,特制内容,高技能人
2、才培训宏程序教案,主程序: G65 P1000 X30.0 Y20.0 ,宏程序: O1000 #100 = #24 #101 = #25 M99,当作子程序调用:,4,特制内容,二、A类宏功能(FANUC-0TD) A类宏程序采用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式,输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1 mm 1、变量在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址。为了使程序更具通用性、更加灵活,在宏程序中设置了变量,即将变量赋给一个地址。(1)变量的表示变量可以用“#”号和跟随其后的变
3、量序号来表示:#i(i1,2,3.)例:#5, #109, #501。(2)变量的引用将跟随在一个地址后的数值用一个变量来代替,即引入了变量。例:对于F#103,若#10350时,则为F50;对于Z-#110,若#110100时,则Z为-100;对于G#130,若#1303时,则为G03。,5,特制内容,(3)变量的类型 1)公共变量 公共变量在不同的的宏程序中的意义相同,是在主程序和主程序调用的各用户宏程序内公用的变量。也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的。公共变量的序号为:#100#131;#500#531。其中#100#131公共变量在电源断电后即清零,重新开机
4、时被设置为“0”;#500#531公共变量即使断电后,它们的值也保持不变,因此也称为保持型变量。 2)系统变量 系统变量定义为:有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置变量,接口的输入/输出信号变量,位置信息变量等。系统变量的序号与系统的某种状态有严格的对应关系。例如,刀具偏置变量序号为#01#99,这些值可以用变量替换的方法加以改变,在序号199中,不用作刀偏量的变量可用作保持型公共变量#500#531。,6,特制内容,接口输入信号#1000#1015,#1032。通过阅读这些系统变量,可以知道各输入口的情况。当变量值为“1”时,说明接点闭合;当变量值为“0”时,表明接点
5、断开。这些变量的数值不能被替换。阅读变量#1032,所有输入信号一次读入。 2、宏指令G65宏指令G65可以实现丰富的宏功能,包括算术运算、逻辑运算等处理功能。一般形式: G65 Hm P#i Q#j R#k式中: m-宏程序功能,数值范围0199;#i-运算结果存放处的变量名;#j-被操作的第一个变量,也可以是一个常数;#k-被操作的第二个变量,也可以是一个常数。例如,当程序功能为加法运算时:程序P#100 Q#101 R#102.含义为#100#101#102程序P#100 Q-#101 R#102.含义为#100-#101#102程序P#100 Q#101 R15.含义为#100#101
6、15,7,特制内容,3、宏功能指令 (1)算术运算指令 算术运算指令表,8,特制内容,算术宏指令表(续),9,特制内容,1)变量的定义和替换 #i#j 编程格式G65 H01 P#i Q#j例 G65 H01 P#101 Q1005; (#1011005) G65 H01 P#101 Q-#112;(#101-#112) 2)加法 #i#j#k编程格式 G65 H02 P#i Q#j R#k 例 G65 H02 P#101 Q#102 R#103;(#101#102#103)3)减法 #i#j-#k编程格式 G65 H03 P#i Q#j R#k例 G65 H03 P#101 Q#102 R#
7、103;(#101#102-#103)4)乘法 #i#j#k编程格式 G65 H04 P#i Q#j R#k例 G65 H04 P#101 Q#102 R#103;(#101#102#103),10,特制内容,5)除法 #i#j / #k编程格式 G65 H05 P#i Q#j R#k例 G65 H05 P#101 Q#102 R#103;(#101#102/#103)6)平方根 #i编程格式 G65 H21 P#i Q#j例 G65 H21 P#101 Q#102;(#101 )7)绝对值 #i#j编程格式 G65 H22 P#i Q#j例 G65 H22 P#101 Q#102;(#101
8、#102) 8)复合平方根1 #i编程格式 G65 H27 P#i Q#j R#k例 G65 H27 P#101 Q#102 R#103;( #101= 9)复合平方根2 #i编程格式 G65 H28 P#i Q#j R#k例 G65 H28 P#101 Q#102 R#103(#101,11,特制内容,(2)逻辑运算指令 逻辑运算指令表 1)逻辑或#i#j OR #k编程格式G65 H11 P#i Q#j R#k例G65 H11 P#101 Q#102 R#103;(#101#102 OR #103)表 2)逻辑与 #i#j AND #k编程格式 G65 H12 P#i Q#j R#k例 G
9、65 H12 P#101 Q#102 R#103;(#101#102 AND #103),12,特制内容,(3)三角函数指令 三角函数指令表 1)正弦函数#i#jSIN(#k) 编程格式G65 H31 P#i Q#j R#k (单位:度) 例G65 H31 P#101 Q#102 R#103;(#101#102SIN(#103),13,特制内容,2)余弦函数#i#jCOS(#k)编程格式G65 H32 P#i Q#j R#k (单位:度)例G65 H32 P#101 Q#102 R#103;(#101#102COS(#103)3)正切函数#i#jTAN#k编程格式G65 H33 P#i Q#j
10、 R#k (单位:度)例G65 H33 P#101 Q#102 R#103;(#101#102TAN(#103)4)反正切#iATAN(#j/#k)编程格式G65 H34 P#i Q#j R#k (单位:度,0o #j 360o)例G65 H34 P#101 Q#102 R#103;(#101ATAN(#102/#103),14,特制内容,(4)控制类指令 控制类指令表,15,特制内容,1)无条件转移 编程格式G65 H80 Pn (n为程序段号)例G65 H80 P120;(转移到N120)2)条件转移1 #j EQ #k()编程格式G65 H81 Pn Q#j R#k (n为程序段号)例G
11、65 H81 P1000 Q#101 R#102当#101#102,转移到N1000程序段;若#101 #102,执行下一程序段。3)条件转移2 #j NE #k()编程格式G65 H82 Pn Q#j R#k (n为程序段号)例G65 H82 P1000 Q#101 R#102当#101 #102,转移到N1000程序段;若#101#102,执行下一程序段。,16,特制内容,4)条件转移3 #j GT #k ( )编程格式G65 H83 Pn Q#j R#k (n为程序段号)例G65 H83 P1000 Q#101 R#102当#101 #102,转移到N1000程序段;若#101 #102
12、,执行下一程序段。5)条件转移4 #j LT #k()编程格式G65 H84 Pn Q#j R#k (n为程序段号)例G65 H84 P1000 Q#101 R#102 当#101 #102,转移到N1000;若#101 #102,执行下一程序段。6)条件转移5 #j GE #k()编程格式G65 H85 Pn Q#j R#k (n为程序段号)例G65 H85 P1000 Q#101 R#102当#101 #102,转移到N1000;若#101#102,执行下一程序段。,17,特制内容,7)条件转移6 #j LE #k()编程格式G65 H86 Pn Q#j Q#k (n为程序段号)例G65
13、H86 P1000 Q#101 R#102当#101#102,转移到N1000;若#101#102,执行下一程序段。 4、使用注意为保证宏程序的正常运行,在使用用户宏程序的过程中,应注意以下几点;(1)由G65规定的H码不影响偏移量的任何选择;(2)如果用于各算术运算的Q或R未被指定,则作为0处理;(3)在分支转移目标地址中,如果序号为正值,则检索过程是先向大程序号查找,如果序号为负值,则检索过程是先向小程序号查找。(4)转移目标序号可以是变量。,18,特制内容,A类宏程序举例: G50 X100. Z130.;T0100;M42M03G98;G65 H01 P#100 Q15000; a=1
14、5MMG65 H01 P#101 Q30000; b=30MMG65 H01 P#102 Q1000; Z背吃量(粗)G65 H01 P#103 Q10; Z背吃量(精)G65 H01 P#104 Q500; 精车余量G65 H01 P#105 Q35000; 毛坯直径G65 H01 P#106 Q5000; 刀具引入量G65 H05 P#113 Q#100 R10; a/10=a,19,特制内容,G65 H05 P#114 Q#101 R10; b/10=bG65 H04 P#109 Q#109 R2; 起刀点半径X变直径XG65 H02 P#109 Q#105 R#106; 加入刀具引入量
15、G00 X#109 Z#101; 刀具移动到粗车起点G65 H01 P#110 Q#102; 赋予变量背吃量之粗车被吃量 G65 H01 P#108 Q#101; 赋予Z运算值.(N5) G65 H03 P#108 Q#108 R#110; 计算Z坐标当前值.(N10)G65 H84 P15 Q#108 R0; 判断进给是否到重点 G65 H01 P#112 Q#108;G65 H26 P#112 Q100000 R#114;G65 H28 P#112 Q1000000 R#112;G65 H26 P#112 Q#113 R100000;G65 H02 P#112 Q#112 R#104; 加
16、入精车余量G65 H04 P#112 Q#112 R2; X半径变直径G65 H81 P20 Q#104 R0; 粗精车判断G94 X#112 Z#108 F50.; 粗车进给G65 H80 P10; 转回循环,20,特制内容,G65 H81 P25 Q#104 R0 ; 判断整个程序是否彻底结束.(N15) G65 H02 P#115 Q#100 R#104;G65 H04 P#115 Q#115 R2;G94 X#115 Z0.; 粗车进给到终点防止计算出现小数而车不到终点M44; 提速4档G00 X0. Z#101; 刀快速走到精车起点 G65 H01 P#110 Q#103; 赋予变量
17、背吃刀量为精车背吃G65 H01 P#104 Q0; 精车余量赋0;G65 H80 P5; 转回循环进行精车坐标计算G01 X#112 Z#108 F10; 精车进给.(N20)G65 H80 P10; 转计算坐标环节G65 P#100 Q#100 R2;.(N25) G01 X#100 Z0.; 进给到终点防止因为计算出现小数而车不到终点 G00 X100. 退刀Z100.M42M05M30 程序结束,21,特制内容,三、B类宏程序(FANUC-0i) (一)、变量 1变量的表示 变量可以用“#”号和跟随其后的变量序号来表示,即#i(i1,2,3,.)。例如:#5,#109,#501。 也可
18、用表达式来表示变量,即#(表达式)。例如:#50,#2001-1,#1+#2-12,22,特制内容,在地址号后可使用变量,例如: F#9 若#9=200.0,则表示F200 Z#26 若#26=10.0,则表示Z10.0 G#13 若#13=3.0,则表示G03 M#5 若#5=08.0,则表示M08 ,23,特制内容,2. 变量的种类 变量有局部变量、公用变量(全局变量)和系统变量三种。 (1) 局部量变#1#33。局部变量是一个在宏程序中局部使用的变量。例如,当宏程序A调用宏程序B而且都有#1变量时,因为它们服务于不同局部,所以A中的#1与B中的#1不是同一个变量,互不影响。 (2) 公用
19、变量(全局变量)。#100#149、#500#509。公用变量贯穿整个程序过程,包括多重调用。上例中若A与B同时调用全局变量#100,则A中的#100与B中的#100是同一个变量。,24,特制内容,(3) 系统变量。宏程序能够对机床内部变量进行读取和赋值,从而完成复杂任务。系统变量主要包括: 接口信号。 刀具补偿#200#2200,其中长度补偿与半径补偿均在此区域内。 工件偏置量#5201#5326。 报警信息#3000。#3000中存储报警信息地址,如:#3000=n,则显示n号警告。,25,特制内容, 时钟#3001,#3002。 禁止单程序段停止和等待辅助机能结束信号#3003。 进给保
20、持(不能手动调节机床进给速率)#3004。 模态信息#4001#4120。如:#4001为G00G03,若当前为G01状态,则#4001中值为01;#4002为G17G19,若当前为G17平面,则#4002值为17。 位置信息#5001#5105。保存各种坐标值,包括绝对坐标、距下一点距离等。 系统变量还有多种,它们为编制宏程序提供了丰富的信息来源。,26,特制内容,常用变量 局部变量:#1#33 公共变量:#100#149,#500#509 系统变量:#1000#5335,27,特制内容,3. 变量的赋值 1) 直接赋值 变量可在操作面板上直接输入,也可用MDI方式赋值,还可在程序内用以下所
21、示方式赋值,但等号左边不能用表达式: #_=数值(或表达式) 例:O0521 #1=10 #2=8 . 1000M03,28,特制内容,2) 引数赋值 宏程序体以子程序方式出现,所用的变量可在宏调用时赋值。例如: G65 P9120 X100.Y20.F20; 其中X、Y、F对应于宏程序中的变量号,变量的具体数值由引数后的数值决定。引数与宏程序体中变量的对应关系有两种(见表1和表2),这两种方法可以混用。其中G、L、N、O、P不能作为引数为变量赋值。,29,特制内容,表1 变量赋值方法,30,特制内容,表2 变量赋值方法,31,特制内容,例:采用自变量赋值的螺旋插补法铣多孔宏程序 刀具 10,
22、32,特制内容,主程序 O0522 S1000M03 G54G90G00X0Y0 G52X-30.Y0 在孔1处建立局部坐标系 G65P1522A18.B19.C10.I0Q0.95F200 精加工18通孔 G52X25.Y9.5 G65P1522A28.B5.6C10.I0Q1.12F200 精加工28通孔G65P1522A16.B19.C10.I5.6Q1.34F200 精加工28通孔 G52X0Y0 取消局部坐标系 M30 宏程序 O1522 #5=#1-#3/2 螺旋加工时刀具中心的回转半径,33,特制内容,G00X#5 G00移动到起始点上方 Z-#4+1. G00下降至Z-#4面以
23、上一点 G01Z-#4F#9*0.2 Z方向下降至当前开始加工深度Z-#4 WHILE#4LT#2DO1 如果加工深度#4圆孔深度#2,循环1继续 #4=#4+#17 Z坐标依次递增#17 G03I-#5Z-#4F#9 逆时针螺旋加工至下一层 END1 循环1结束 G03I-#5 到达圆孔深度逆时针走一整圆 G01X#5-1. G01向中心退1mm G00Z30 快速退刀至安全高度 M99 宏程序结束返回,34,特制内容,自变量赋值说明: #1=(A ) 圆孔直径 #2=(B) 孔深 #3=(C) 刀具直径 #4=(I) Z坐标设为自变量 #9=(F) 进给速度 #17=(Q) 每次切深递增量
24、(层间距),35,特制内容,(二)、功能指令: 宏程序具有赋值、算术运算、逻辑运算、函数运算等功能 算术运算 加法:#i=#j + #k 减法: #i=#j - #k 乘法: #i=#j * #k 除法: #i=#j / #k,36,特制内容,函数运算: 正弦 #i=SIN #j 单位:度 余弦 #i=COS #j 单位:度 正切 #i=TAN #j 单位:度 反正切 #i=ATAN #j / #k 单位:度 平方根 #i=SQRT #j 绝对值 #i=ABS #j 取整 #i=ROUND #j,37,特制内容,逻辑运算: 等于:EQ 格式: #j EQ #k 不等于:NE格式: #j NE
25、#k 大于:GT格式: #j GT #k 小于:LT格式: #j LT #k 大于等于:GE格式: #j GE #k 小于等于:LE格式: #j LE #k,38,特制内容,(三)、控制指令 控制指令可起到控制程序流向的作用。 1.无条件转移(GOTO语句) 格式: GOTOn; n 为顺序号,范围19999 转移至标有顺序号n(俗称行号)的程序段。当指定19999以外的顺序号时,会出现报警信号。 例如:GOTO 99; 即转移至第99行,39,特制内容,2.条件转移(IF语句) 格式如下: IFGOTO n 如果指定的条件表达式满足时,则转移到标有顺序号n的程序段。如果不满足指定的条件,则顺
26、序执行下一个程序段。 说明: 1、条件表达式必须包括运算符,运算符插在两个变量或常量中间,并且用“ ”封闭,表达式可以替代变量。 2、运算符由2个字母组成,用于两个值的比较,以决定它们是相等,还是一个值小于或大于另一个值。不能使用不等号。,40,特制内容,例:用IF语句编制1100的累加程序 O009 #1=0; 存储和数变量的初值 #2=1; 被加数变量的初值 N5IF#2 GT 100GOTO 99;当被加数大于100时转移到N99 #1=#1+2 计算和数 #2=#2+1; 下一个被加数 GOTO 5; 转到N5 N99 M30; 程序结束,41,特制内容,3、循环(WHILE语句) 格
27、式: WHILE 条件表达式 DO m . END m 在WHILE后指定一个条件表达式,当条件满足时,执行从DO m到END之间的程序;当条件不满足时,程序就执行END下一条语句。 DO 后面的号m是指定程序执行范围的标号,标号值为1,2,3(即m=1,2,3),42,特制内容,循环(WHILE语句)的有关说明 1、 DO m和END m必须成对使用,而且DO m一定要在END m指令之前。用识别号m来识别。 2、无限循环:当指定DO而没有指定WHILE语句时,将产生从DO到END之间的无限循环。 3、条件转移(IF语句)和循环( WHILE语句)的关系:从逻辑关系上来说,两者是从正反两个方
28、面描述的同一件事情;从实现的功能上来说,两者具有相当程度的相互替代性;从具体的用法和使用的限制上来说,条件转移(IF语句)受到系统的限制相对更少,使用更灵活。,43,特制内容,例题:椭圆铣削加工程序 椭圆的解析方程: 椭圆的参数方程:,44,特制内容,O0001 N2#100=1 角度步长 N4#101=0 初始角度 N6#102=361 终止角度 N8#103=45 长半轴 N10#104=25 短半轴 N12#105=-10.0 深度 N13G90G00X#103+20Y0Z100.0 刀具运行到(65,0,100)的位置 N14S1000M03 N15G01Z#105F1000.0 刀具
29、下到-10mm N16#114=#101 赋初始值 N18#112=#103*COS#114 计算X坐标值 N20#113=#104*SIN#114 计算Y坐标值 N22G01G42XROUND#112YROUND#113D02F500.0 走到第一点,并运行一个步长 N24#114=#114+#100 变量#114增加一个角度步长 N26IF#114LT#102GOTO18 条件判断#114是否小于361,满足则返回18 N28G01G40X#103+20Y0 取消刀具补偿,回到(65,0) N30G90G00Z100.0M05 快速抬刀 N32M30 程序结束,45,特制内容,例:椭圆车削
30、加工宏程序,46,特制内容,设定工件坐标系 确定切削刀具 1号刀 35度外圆车刀 2号刀 35度外圆车刀 加工路线 先车端面;再粗车42,34,28,24,椭圆,X向留 0.4mm、Z向留0.2mm的精加工量;然后精车整个零件。,47,特制内容,加工程序 O0010 T0101 G00X100Z100 M03S800 M08 G00X50Z5 Z0 G1X0F0.2 G0X50Z5 G73U20W1R5 G73P10Q20U0.4W0.2F0.3,48,特制内容,N10G0X0Z2 G1X0Z0F0.2 #100=0 N15#101=#100+12 #102=9*SQRT1-#101*#101
31、/144 G1X#102*2Z#100 #100=#100-1 IF#100GE-9GOTO15 G1W-6 X21 X24W-1.5 W-10,49,特制内容,X28 X34W-8 W-10 G2X42W-4R4 G1W-9 N20X45 G0X100Z100 T0202 S1000 G70P10Q20 G0X100Z100 M05 M30,50,特制内容,四、宏程序编程常用曲线方程 1、椭圆 标准方程: 参数方程(直角坐标系): (叫椭圆的离心角),51,特制内容,2、双曲线 标准方程 参数方程(直角坐标系): (叫双曲线的离心角),52,特制内容,3、抛物线 标准方程: 参数方程(极坐标): (P为焦舷之半) 4、摆线 参数方程(直角坐标系):,53,特制内容,