宏程序A类B类G65等常见公式用法_第1页
宏程序A类B类G65等常见公式用法_第2页
宏程序A类B类G65等常见公式用法_第3页
宏程序A类B类G65等常见公式用法_第4页
宏程序A类B类G65等常见公式用法_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、一、宏程序编程概念 宏程序的编制方法简单地解释就是:利用变量编程的方法。 用户利用数控系统提供的变量、数学运算功能、逻辑判断功能、程序循环功能等功能,来实现一些特殊的用法。 例如:椭圆的解析方程: 椭圆的参数方程:其中t为变量,用户宏功能的最大特点是,可以对变量进行运算,使程序应用更加灵活、方便。 用户宏功能常用的有A类宏功能和B类宏功能两类。 宏指令既可以在主程序体中使用, 也可以当作子程序来调用。,放在主程序体中 O001 N50 #100=30.0 N60 #101=20.0 N70 G01 X#100 Y#101 F500.0 M30,高技能人才培训宏程序教案,主程序: G65 P10

2、00 X30.0 Y20.0 ,宏程序: O1000 #100 = #24 #101 = #25 M99,当作子程序调用:,二、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)变量的表示变量可以用“#”号和跟随其后的变量序号来表示:#i(i1,2,3.)例:#5, #109

3、, #501。(2)变量的引用将跟随在一个地址后的数值用一个变量来代替,即引入了变量。例:对于F#103,若#10350时,则为F50;对于Z-#110,若#110100时,则Z为-100;对于G#130,若#1303时,则为G03。,(3)变量的类型 1)公共变量 公共变量在不同的的宏程序中的意义相同,是在主程序和主程序调用的各用户宏程序内公用的变量。也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的。公共变量的序号为:#100#131;#500#531。其中#100#131公共变量在电源断电后即清零,重新开机时被设置为“0”;#500#531公共变量即使断电后,它们的值也保持不

4、变,因此也称为保持型变量。 2)系统变量 系统变量定义为:有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置变量,接口的输入/输出信号变量,位置信息变量等。系统变量的序号与系统的某种状态有严格的对应关系。例如,刀具偏置变量序号为#01#99,这些值可以用变量替换的方法加以改变,在序号199中,不用作刀偏量的变量可用作保持型公共变量#500#531。,接口输入信号#1000#1015,#1032。通过阅读这些系统变量,可以知道各输入口的情况。当变量值为“1”时,说明接点闭合;当变量值为“0”时,表明接点断开。这些变量的数值不能被替换。阅读变量#1032,所有输入信号一次读入。 2、宏指

5、令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#10115,3、宏功能指令 (1)算术运算指令 算术运算指令表,算术宏指令表(续),1)变

6、量的定义和替换 #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#103;(#101#102-#103)4)乘法 #i#j#k编程格式 G65 H04 P#i Q#j R#k例 G65 H04

7、 P#101 Q#102 R#103;(#101#102#103),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#102) 8)复合平方根1 #i编程格式 G65 H27 P#i Q#j R#k例 G65 H27 P#101 Q#102 R#103;(

8、#101= 9)复合平方根2 #i编程格式 G65 H28 P#i Q#j R#k例 G65 H28 P#101 Q#102 R#103(#101,(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例 G65 H12 P#101 Q#102 R#103;(#101#102 AND #103),(3)三角函数指令 三角函数指令表 1)正弦函数#i#jSIN(#k

9、) 编程格式G65 H31 P#i Q#j R#k (单位:度) 例G65 H31 P#101 Q#102 R#103;(#101#102SIN(#103),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 R#k (单位:度)例G65 H33 P#101 Q#102 R#103;(#101#102TAN(#103)4)反正切#iATAN(#j/#k)编程格式G65 H34 P#i Q#j R

10、#k (单位:度,0o #j 360o)例G65 H34 P#101 Q#102 R#103;(#101ATAN(#102/#103),(4)控制类指令 控制类指令表,1)无条件转移 编程格式G65 H80 Pn (n为程序段号)例G65 H80 P120;(转移到N120)2)条件转移1 #j EQ #k()编程格式G65 H81 Pn Q#j R#k (n为程序段号)例G65 H81 P1000 Q#101 R#102当#101#102,转移到N1000程序段;若#101 #102,执行下一程序段。3)条件转移2 #j NE #k()编程格式G65 H82 Pn Q#j R#k (n为程序

11、段号)例G65 H82 P1000 Q#101 R#102当#101 #102,转移到N1000程序段;若#101#102,执行下一程序段。,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,执行下一程序段。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,执行下

12、一程序段。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,执行下一程序段。,7)条件转移6 #j LE #k()编程格式G65 H86 Pn Q#j Q#k (n为程序段号)例G65 H86 P1000 Q#101 R#102当#101#102,转移到N1000;若#101#102,执行下一程序段。 4、使用注意为保证宏程序的正常运行,在使用用户宏程序的过程中,应注意以下几点;(1)由G65规定的H码不影响偏移量的任何选择;(2)如果

13、用于各算术运算的Q或R未被指定,则作为0处理;(3)在分支转移目标地址中,如果序号为正值,则检索过程是先向大程序号查找,如果序号为负值,则检索过程是先向小程序号查找。(4)转移目标序号可以是变量。,A类宏程序举例: G50 X100. Z130.;T0100;M42M03G98;G65 H01 P#100 Q15000; a=15MMG65 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; 毛坯直径

14、G65 H01 P#106 Q5000; 刀具引入量G65 H05 P#113 Q#100 R10; a/10=a,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; 加入刀具引入量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

15、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; 加入精车余量G65 H04 P#112 Q#112 R2; X半径变直径G65 H81 P20 Q#104 R0; 粗精车判断G94 X#112 Z#108 F50.; 粗车进给G65 H80 P10; 转回循环,G65 H81 P25 Q#104 R0 ; 判断整个程序是否彻底结束.(

16、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; 赋予变量背吃刀量为精车背吃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.; 进

17、给到终点防止因为计算出现小数而车不到终点 G00 X100. 退刀Z100.M42M05M30 程序结束,三、B类宏程序(FANUC-0i) (一)、变量 1变量的表示 变量可以用“#”号和跟随其后的变量序号来表示,即#i(i1,2,3,.)。例如:#5,#109,#501。 也可用表达式来表示变量,即#(表达式)。例如:#50,#2001-1,#1+#2-12,在地址号后可使用变量,例如: 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 ,2. 变量的种类 变量有局部

18、变量、公用变量(全局变量)和系统变量三种。 (1) 局部量变#1#33。局部变量是一个在宏程序中局部使用的变量。例如,当宏程序A调用宏程序B而且都有#1变量时,因为它们服务于不同局部,所以A中的#1与B中的#1不是同一个变量,互不影响。 (2) 公用变量(全局变量)。#100#149、#500#509。公用变量贯穿整个程序过程,包括多重调用。上例中若A与B同时调用全局变量#100,则A中的#100与B中的#100是同一个变量。,(3) 系统变量。宏程序能够对机床内部变量进行读取和赋值,从而完成复杂任务。系统变量主要包括: 接口信号。 刀具补偿#200#2200,其中长度补偿与半径补偿均在此区域

19、内。 工件偏置量#5201#5326。 报警信息#3000。#3000中存储报警信息地址,如:#3000=n,则显示n号警告。, 时钟#3001,#3002。 禁止单程序段停止和等待辅助机能结束信号#3003。 进给保持(不能手动调节机床进给速率)#3004。 模态信息#4001#4120。如:#4001为G00G03,若当前为G01状态,则#4001中值为01;#4002为G17G19,若当前为G17平面,则#4002值为17。 位置信息#5001#5105。保存各种坐标值,包括绝对坐标、距下一点距离等。 系统变量还有多种,它们为编制宏程序提供了丰富的信息来源。,常用变量 局部变量:#1#3

20、3 公共变量:#100#149,#500#509 系统变量:#1000#5335,3. 变量的赋值 1) 直接赋值 变量可在操作面板上直接输入,也可用MDI方式赋值,还可在程序内用以下所示方式赋值,但等号左边不能用表达式: #_=数值(或表达式) 例:O0521 #1=10 #2=8 . 1000M03,2) 引数赋值 宏程序体以子程序方式出现,所用的变量可在宏调用时赋值。例如: G65 P9120 X100.Y20.F20; 其中X、Y、F对应于宏程序中的变量号,变量的具体数值由引数后的数值决定。引数与宏程序体中变量的对应关系有两种(见表1和表2),这两种方法可以混用。其中G、L、N、O、P

21、不能作为引数为变量赋值。,表1 变量赋值方法,表2 变量赋值方法,例:采用自变量赋值的螺旋插补法铣多孔宏程序 刀具 10,主程序 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 螺旋加工时刀具中心

22、的回转半径,G00X#5 G00移动到起始点上方 Z-#4+1. G00下降至Z-#4面以上一点 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 宏程序结束返回,自变量赋值说明: #1=(A ) 圆孔直径 #2=(B) 孔深 #3=(C) 刀具直径 #4=(I)

23、 Z坐标设为自变量 #9=(F) 进给速度 #17=(Q) 每次切深递增量(层间距),(二)、功能指令: 宏程序具有赋值、算术运算、逻辑运算、函数运算等功能 算术运算 加法:#i=#j + #k 减法: #i=#j - #k 乘法: #i=#j * #k 除法: #i=#j / #k,函数运算: 正弦 #i=SIN #j 单位:度 余弦 #i=COS #j 单位:度 正切 #i=TAN #j 单位:度 反正切 #i=ATAN #j / #k 单位:度 平方根 #i=SQRT #j 绝对值 #i=ABS #j 取整 #i=ROUND #j,逻辑运算: 等于:EQ 格式: #j EQ #k 不等于

24、:NE格式: #j NE #k 大于:GT格式: #j GT #k 小于:LT格式: #j LT #k 大于等于:GE格式: #j GE #k 小于等于:LE格式: #j LE #k,(三)、控制指令 控制指令可起到控制程序流向的作用。 1.无条件转移(GOTO语句) 格式: GOTOn; n 为顺序号,范围19999 转移至标有顺序号n(俗称行号)的程序段。当指定19999以外的顺序号时,会出现报警信号。 例如:GOTO 99; 即转移至第99行,2.条件转移(IF语句) 格式如下: IFGOTO n 如果指定的条件表达式满足时,则转移到标有顺序号n的程序段。如果不满足指定的条件,则顺序执行

25、下一个程序段。 说明: 1、条件表达式必须包括运算符,运算符插在两个变量或常量中间,并且用“ ”封闭,表达式可以替代变量。 2、运算符由2个字母组成,用于两个值的比较,以决定它们是相等,还是一个值小于或大于另一个值。不能使用不等号。,例:用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; 程序结束,3、循环(WHILE语句) 格式: WHILE 条件表达式 DO m

26、 . END m 在WHILE后指定一个条件表达式,当条件满足时,执行从DO m到END之间的程序;当条件不满足时,程序就执行END下一条语句。 DO 后面的号m是指定程序执行范围的标号,标号值为1,2,3(即m=1,2,3),循环(WHILE语句)的有关说明 1、 DO m和END m必须成对使用,而且DO m一定要在END m指令之前。用识别号m来识别。 2、无限循环:当指定DO而没有指定WHILE语句时,将产生从DO到END之间的无限循环。 3、条件转移(IF语句)和循环( WHILE语句)的关系:从逻辑关系上来说,两者是从正反两个方面描述的同一件事情;从实现的功能上来说,两者具有相当程度的相互替代性;从具体的用法和使用的限制上来说,条件转移(IF语句)受到系统的限制相对更少,使用更灵活。,例题:椭圆铣削加工程序 椭圆的解析方程: 椭圆的参数方程:,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)的位置 N14S100

温馨提示

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

评论

0/150

提交评论