发那科用户宏程序资料

上传人:灯火****19 文档编号:22421209 上传时间:2021-05-25 格式:PPT 页数:75 大小:734.50KB
收藏 版权申诉 举报 下载
发那科用户宏程序资料_第1页
第1页 / 共75页
发那科用户宏程序资料_第2页
第2页 / 共75页
发那科用户宏程序资料_第3页
第3页 / 共75页
资源描述:

《发那科用户宏程序资料》由会员分享,可在线阅读,更多相关《发那科用户宏程序资料(75页珍藏版)》请在装配图网上搜索。

1、1 用户宏程序 虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。 2(最多999次) 3 4 5 一、变量1、变量 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100; G01 X#1 F300;2、变量的表示 计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。 表达

2、式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如: #1 #1+#2-12 6 3、变量的类型 7 4、变量值得范围 局部变量和公共变量可以有0值或下面范围中的值: 1047至1029 或 1029至1047 5、变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,把表达式放在括号中。 例如:G01 X#1 F#2+#3 8 被引用变量的值根据地址的最小设定单位自动地舍入。 例如: G00 X#1, 以11000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00 X12.346;。 改变引用变量的值的符号,要把负号(一)放在#的前面。

3、 例如:G00 X#1; 当引用未定义的变量时,变量及地址字都被忽略。 例如: 当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为: G00X0; 9 6、未定义的变量 变量值未定义时,这样的变量成为“空”变量。变量#0总是空变量。它不能写,只能读。(1)引用 10 (2)运算 11 (3)条件表达式 12 7、限制 程序号、顺序号和程序跳转号不能使用变量 例如:O#1; N#2G00X100.0 /#3Y200.0 13 二、系统变量1、刀具补偿值 14 2、时间信息 15 3、自动运行控制 可以改变自动运行的控制状态 16 当电源接通时,该变量的值为0。当单程序段停

4、止无效时,即使单程序段开关设为ON,也不执行单程序段停止。当不指定等待辅助功能(M,S和T功能)完成时,在辅助功能完成之前,程序执行到下列程序段。而且分配完成信号DEN不输出。 17 18 当电源接通时,该变量的值为0。当进给暂停无效时:(1)当进给暂停按钮被按下时,机床在单段停止方式停止。但是。当用变量#3003使单程序段方式无效时,单程序段停止不执行。(2)当进给暂停按钮压下又松开时,进给暂停灯亮,但是,机床不停止;程序继续执行,并且机床停在进给暂停有效的第一个程序段。当进给速度倍率无效时,总是100的倍率,而不管机床操作面板上的进给速度倍率开关的设置。 当准确停止检测无效时,即使那些不执

5、行切削的程序段也不进行准确停止检测(位置检测)。 19 攻丝循环中使用变量3004的例子N5 N7 20 4、已加工的零件数 21 5、当前位置(只读) 22 图中第1位代表轴号(从1到4)。变量#5081#5084存储的刀具长度偏置值是当前的执行值,不是后面的程序段的处理值。在G31(跳转功能)程序段中跳转信号接通时的刀具位置贮存在变量#5061到#5068中。当G31程序段中的跳转信号不接通时,这些变量中贮存指定程序段的终点值。 移动期间不能读是指由于缓冲(预读)功能的原因,不能读期望值. 23 6、工件坐标系补偿值(工件零点偏移值) 24 25 三、算术和逻辑运算 下列的运算可以在变量中

6、执行。运算符右边的表达式可包含常量和或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋值。1、(定义)赋值: #i=#j;2、加法: #i=#j+#k3、减法: #i=#j-#k4、乘法: #i=#j*#k5、除法: #i=#j/#k 26 6、正弦: #i=SIN#j ;7、反正弦: #i=ASIN#j;8、余弦: #i=COS#j; 角度以度指定9、反余弦: #i=ACOS#j; 9030表示为10、正切: #i=TAN#j; 90.5度11、反正切: #i=ATAN#j/#K;12、平方根: #i=SQRT#j;13、绝对值: #i=ABS#j

7、;14、舍入: #i=ROUND#j;15、上取整: #i= FUP#j ;16、下取整: #i= FIX#j ;17、自然对数: #i=LN#j; y=lnx18、指数函数: #i=EXP#j; y=e x 27 19、或: #i=#j OR #k ; 20、异或: #i=#j XOR #k ; 按位执行21、与: #i=#j AND #k ;22、从BCD转为BIN #i=BIN#j ;23、从BIN转为BCD #i=BCD#j ;注:ARCSIN #i=ASIN#j 取值范围 当No.6004.0=0时 :27090 No.6004.0=1时 :-9090ARCCOS #I=ACOS#j

8、 取值范围 1800 28/20-/21-1 3/2/20-1 1 1-1 0 /2 29 ARCTAN #i=ATAN#j/#K; 取值范围 当No.6004.0=0时 :0360 No.6004.0=1时 :-1801803/2/22 0 /2-/2 -0 第一象限第二象限第四象限第一象限第二象限第三象限第三象限第四象限0- 002 30 ROUND函数在逻辑运算指令IF、WHILE中,ROUND函数在第一个小数位四舍五入。 例如 #2=1.2345; #1=ROUND#2; 变量1的值是1.0在NC语句地址中,ROUND函数根据地值得最小设定单位指定四舍五入。 例如 #1=1.2345;

9、 #2=2.3456; G00 G91 X-#1; G01 X-#2 F300; G00 X#1+#2; 1.2345+2.3456=3.5801=3.580不返回到初始位置或 G00 X-ROUND#1+ROUND#2 1.235+2.346=3.581 刀具返回到初始位置 31 上取整和下取整CNC处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时为上取整, 小于原数的绝对值时为下取整。 设:#1=1.2, #2=-1.2 #3=FUP#1; 则2.0赋给#3 #3=FIX#1; 则1.0赋给#3 #3=FUP#2; 则-2.0赋给#3 #3=FIX#2; 则-1.0赋给#3 32

10、 运算次序 函数乘、除(*、/、AND)加、减(+、-、OR、XOR)括号嵌套(方括号,圆括号用于说明) 括号用于改变运算次序,可以使用5级。 33 四、宏程序语句和NC下面的程序段为宏程序语句:包含算术或逻辑运算()的程序段。包含控制语句(例如,GOTO,DO,END)的程序段。包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段。 除了宏程序语句以外的任何程序段都为 NC语句。 34 说明 与NC语句的不同 即使置于单程序段运行方式,机床也不停止。但是,当参数No.6000.5SBM设定为1时,在单程序段方式中,机床停止。 在刀具半径补偿方式中宏程序语

11、句段不做为不移动程序段处理。 35 与宏程序语句有相同性质的NC语句 含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序) 句 不包含O.N.P或L以外的指令地址的程序段其性质与宏程序语句相同。 36 五、转移和循环 使用GOTO语句和IF语句可以改变控制的流向。有三中转移和循环可供使用。 GOTO无条件转移 IF条件转移 WHILE当型循环1、无条件转移 GOTO n; n为顺序 例如:GOTO 1; GOTO #10; 37 2、条件转移 IF GOTO n 例如: IF #1 GT 10 GOTO 2 程序 N2 G00 G91 X10.0 IF THEN 例如: IF

12、#1 EQ #2 THEN #3=0 运算符: EQ 等于(=) NE 不等于 () GT 大于() GE 大于等于() LT 小于() LE 小于等于() 条件不满足条件满足 38 例:求110的总和。 O9000; #1=0; #2=1; N1 IF#2 GT 10 GOTO 2; #1=#1+#2; #2=#2+1; GOTO 1; N2 M30; 39 3、循环 WHILE DO m; 程序 ; END m; 程序;说明: m=1,2,3,可以多次使用。 最多嵌套三层。 省略WHILE,则产生从DO 到END的 无限循环。 WHILE比GOTO 处理快。条件满足条件不满足 40 标号可

13、以多次使用:WHILE DO 1; 程序;END1; WHILE DO 1; 程序;END1;可以嵌套3层:WHILE DO 1; WHILE DO 2; WHILE DO 3; 程序; END3; END2; END1;可以跳到循环外边:WHILE DO 1; IF GOTO n;END1; N1 41 DO的范围不能交叉:WHILE DO 1; 程序;WHILE DO 2; END1; 程序;END2;转移不能进入循环区:IF GOTO n; WHILE DO 1;N1;END1; 42 六、宏程序调用宏程序调用方法: 非模态调用(G65) 模态调用(G66、G67) 用G代码调用宏程序

14、用M代码调用宏程序 用M代码调用子程序 用T代码调用子程序 43 1、非模态调用(G65) 格式: G65 Pp Ll 其中: p:要调用的程序号 l: 重复次数(默认值为1) 自变量:数据传递到宏程序,其值被赋值到相应的局部变量,有两种指定形式。 44 地址变量号 地址变量号 地址变量号ABCDEFH #1#2#3#7#8#9#10 IJKMQRS #4#5#6#13#17#18#19 TUVWXYZ #20#21#22#23#24#25#26自变量指定注:每个字母只指定一次,可以不按顺序,但I、J、K需 按顺序指定。 45 地址变量号 地址变量号 地址变量号ABCI1J1K1I2J2K2I

15、3J3 #1#2#3#4#5#6#7#8#9#10#11 K3I4J4K4I5J5K5I6J6K6I7 #12#13#14#15#16#17#18#19#20#21#22 J7K7I8J8K8I9J9K9I10J10K10 #23#24#25#26#27#28#29#30#31#32#33自变量指定 46 自变量指定、混合。CNC内部能够自动识别自变量指定、,后指定的有效。 例如: G65 A1.0 B2.0 I-3.0 I4.0 D5.0 P1000; 则 #1=1.0 #2=2.0 #3 #4=-3.0 #5= #6 #7=4.0 #7=5.0 47 调用嵌套和局部变量的级别:可以嵌套4级

16、。主程序局部变量 (0级) 1 #1#33(1级) 2 #1#33(2级) 3 #1#33(3级) 4 #1#33(4级) 5 #1#33O001;#1=1;G65 P2 A2;M30; O002;#1=2;G65 P3 A3;M99; O003;#1=3;G65 P4 A4;M99; O004;#1=4;G65 P5 A5;M99; O005;#1=5;M99;(0级)宏程序(1级)宏程序(2级)宏程序(31级)宏程序(4级) 48 例:如图所示,编制一个宏程序加工圆上的孔,孔深为Z。圆周的半径为I,起始角为A,间隔为B,钻孔数为H,圆的中心是(X ,Y)。(X,Y) 1000 BBBB50

17、Y X 49 调用格式: G65 P9100 Xx Yy Zz Rr Ii Aa Bb Hh;X:圆心的X坐标 (#24)Y:圆心的Y坐标 (#25)Z:孔深(#26)R:快速趋近点坐标(#18)F:切削进给速度(#9)I: 圆半径(#4)A:第一孔的角度(#1)B:增量角(指定负值时为顾时针)(#2)H:孔数(#11) 50 主程序:O002;G90 G92 X0 Y0 Z100;G65 P9100 X100 Y50 R30 Z-50 F500 I100 A0 B45 H5;M30; 51 宏程序 : O9100; #3=#4003;储存03组G代码 G81Z#26R#18F#9K0;钻孔循

18、环,也可以使用L0 IF#3 EQ 90 GOTO1;在G90方式转移到N1 #24=#5001+#24;计算圆心的X坐标 #25=#5002+#25;计算圆心的Y坐标 N1 WHILE#11 GT 0 DO1;直到剩余孔数为0 #5=#24+#4COS#1;计算X轴上的孔位 #6=#25+#4SIN#1;计算Y轴上的孔位 G90 X#5 Y#6;移动到目标位置之后执行钻孔 #1=#1+#2;更新角度 #11=#11-1;孔数-1 END1; G#3 G80;返回原始状态的G代码 M99; 52 2、模态调用(G66)格式: G66 Pp Ll 其中: p:要调用的程序号 l: 重复次数(默认

19、值为1) 自变量:数据传递到宏程序 G67取消模态调用。注:嵌套可以4级; 在G66程序段中,不能调用多个宏程序 在只有辅助功能无移动指令的程序段中不能调用宏程序; 局部变量只能在G66程序段中指定,每次执行模态调用时,不再指定局部变量。 53 O0001;G66P9100 L2 A1.0 B2.0;G00 G90 X100.0;Y200.0X150 Y300;G67;M30; O9100;G00 Z-#1;G01 Z-#2 F300;M99; 54 例:用宏程序编制G81固定循环的操作第1步第2步第3步第4步Z=0R点ZR初始平面I点 55 G65 P9110 Xx Yy Zz Rr Ff

20、L1X: 孔的X坐标(由绝对值指定)(#24)Y: 孔的Y坐标(由绝对值指定)(#25)Z:Z点坐标(由绝对值指定)(#26)R: R点坐标(由绝对值指定)(#18)F: 切削进给速度 (#9)L: 重复次数 56 主程序:O001;G92 X0 Y0 Z50;G00 G90 X100 Y50;G66 P9110 Z-20 R1 F500;G90 X20 Y20;X50 ;Y50;X0 Y80;G67;M30; 57 宏程序:O9110;#1=#4001;储存G00/G01#2=#4003;储存G90/G91#3=#4019;储存切削进给速度#5=#5003;储存钻孔开始的Z坐标G00 G90

21、 Z#18; 定位在R点G01 Z#26 F#9; 切削进给到Z点IF4010 EQ 98 GOTO 1; 返回到I点G00 #18; 定位在R点GOTO 2;N1 G00 Z#5; 定位在I点N2 G#1 G#2 G#3; 恢复模态信息。M99; 58 3、用G代码调用宏程序 在参数(No.6050 到 No.6059)中设置调用用户宏程序(O9010 到 O9019)的G代码号(从1到 9999),调用方法同G65. 注:不能嵌套! 59 程序号参数号O9010O9011O9012O9013O9014O9015O9016O9017O9018O9019 6050605160526053605

22、460556056605760586059参数号和程序号之间的对应关系: 60 O0001;G81 X10 Y20 Z-10M30; O9010;M99;参数No.6050=81 61 4、用M代码调用宏程序 在参数(No.6080 到 No.6089)中设置调用用户宏程序(O9021 到 O9029)的M代码号(从1到 9999),调用方法同G65. 注:不能嵌套! 62 程序号参数号O9020O9021O9022O9023O9024O9025O9026O9027O9028O9029 6080608160826083608460856086608760886089参数号和程序号之间的对应关系

23、: 63 O0001;G50 A1 B2;M30; O9020;M99;参数No.6080=50 64 5、用M代码调用子程序 在参数(No.6071 到 No.6079)中设置调用用户宏程序(O9001 到 O9009)的M代码号(从1到 9999),调用方法同M98. 65 程序号参数号O9001O9002O9003O9004O9005O9006O9007O9008O9009 607160726073607460756076607760786079参数号和程序号之间的对应关系: 66 O0001;M03;M30; O9001;M99;参数No.6071=03 67 6、用T代码调用子程序

24、设置参数No.6001的第5位TCS=1,当加工程序中指定T代码,可以调用宏程序O9000。在加工程序中指定的T代码赋值到公共变量#149中。 68 O0001;T23;M30; O9000;M99;参数No.6001的5位=1#149=23 69 70 使用以下保持型变量:# 502:半径r;# 503:起始角度 ;# 504:孔数n,当n时,按逆时针方向加工,当n时,按顺时针方向加工;# 505:孔底Z坐标值;# 506:平面坐标值;# 507:进给量。 71使用以下变量进行操作运算:# 100:表示第i步钻孔的记数器;# 101:记数器的最终值(为n的绝对值)# 102:第i个孔的角度位

25、置的值;# 103:第i个孔的X坐标值;# 104:第i个孔的Y坐标值; 72 O9010N110 G65 H01 P#100 Q0 N120 G65 H22 P#101 Q# 504 N130 G65 H04 P#102 Q#100 R360 N140 G65 H05 P#102 Q#102 R#504 N150 G65 H02 P#102 Q#503 R#102 N160 G65 H32 P#102 Q#502 R#102 N170 G65 H31 P#104 Q#502 R#102 N180 G90 G00 X#103 Y#104 )N190 G00 Z#506 N200 G01 Z#5

26、05 F#507 N210 G00 Z#506 N220 G65 H02 P#100 Q#100 R1 N230 G65 H84 P130 Q#100 R#101 N240 M99 73O0010N10 G54 G90 G00 X0 Y0 Z20 / 进入加工坐标系N20 M98 P9010 / 调用钻孔子程序,加工圆周等分孔N30 Z20 / 抬刀N40 G00 G90 X0 Y0 / 返回加工坐标系零点N50 M30 / 程序结束 74 首先在MDI方式中, 设定以下变量的值:#502:半径r为50;#503:起始角度=30;#504:孔数n为8;#505:孔底Z坐标值为20;#506:R

27、平面Z坐标值为5;#507:F进给量为50。 75 O6000N6010 #30=#101 / 基准点保存N6020 #31=#102 / 基准点保存N6030 #32=1 / 计数值置1N6040 WHILE#32 LE ABS#11 DO1 / 进入孔加工循环体N6050 #33=#1+360*#32-1/#1 / 计算第孔的角度N6060 #101=#30+#18*COS#33 / 计算第孔的X坐标值N6070 #102=#31+#18*SIN#33 / 计算第孔的Y坐标值N6080 G90 G81 G98 X#101 Y#102 Z#26 R#3 F#9 / 钻削第孔N6090 #32=#32+1 / 计数器对孔序号计数累加N6100 #100=#100+1 / 计算已加工孔数N6110 END 1 / 孔加工循环体结束N6120 #101=#30 / 返回X坐标初值X0N6130 #102=#31 / 返回Y坐标初值Y0 M99 / 宏程序结束

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!