发那科用户宏程序资料.ppt

上传人:牧羊曲112 文档编号:5045274 上传时间:2023-05-31 格式:PPT 页数:75 大小:455KB
返回 下载 相关 举报
发那科用户宏程序资料.ppt_第1页
第1页 / 共75页
发那科用户宏程序资料.ppt_第2页
第2页 / 共75页
发那科用户宏程序资料.ppt_第3页
第3页 / 共75页
发那科用户宏程序资料.ppt_第4页
第4页 / 共75页
发那科用户宏程序资料.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《发那科用户宏程序资料.ppt》由会员分享,可在线阅读,更多相关《发那科用户宏程序资料.ppt(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;。改变引用变量的值的符号,要把负号(一)放在#的前面。例如:G00 X#1

3、;当引用未定义的变量时,变量及地址字都被忽略。例如:当变量#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。当单程序段停止无效时,即使单程序段开关设为O

4、N,也不执行单程序段停止。当不指定等待辅助功能(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;14、舍入:#i=ROUND#j;15、上取整:#i=FUP#j;

7、16、下取整:#i=FIX#j;17、自然对数:#i=LN#j;y=lnx18、指数函数:#i=EXP#j;y=ex,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 取值范围 1800,28,29,ARCTAN#i=ATAN#j/#K;取值范围 当No.6004.0=0时:0360 No.60

8、04.0=1时:-180180,3/2,/2,2,0,/2,-/2,-,0,第一象限,第二象限,第四象限,第一象限,第二象限,第三象限,第三象限,第四象限,30,ROUND函数在逻辑运算指令IF、WHILE中,ROUND函数在第一个小数位四舍五入。例如#2=1.2345;#1=ROUND#2;变量1的值是1.0在NC语句地址中,ROUND函数根据地值得最小设定单位指定四舍五入。例如#1=1.2345;#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+

9、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,运算次序 函数乘、除(*、/、AND)加、减(+、-、OR、XOR)括号嵌套(方括号,圆括号用于说明)括号用于改变运算次序,可以使用5级。,33,四、宏程序语句和NC,下面的程序段为宏程序语句:包含算术或逻辑运算()的程序段。

10、包含控制语句(例如,GOTO,DO,END)的程序段。包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段。除了宏程序语句以外的任何程序段都为 NC语句。,34,说明 与NC语句的不同 即使置于单程序段运行方式,机床也不停止。但是,当参数设定为1时,在单程序段方式中,机床停止。在刀具半径补偿方式中宏程序语句段不做为不移动程序段处理。,35,与宏程序语句有相同性质的NC语句 含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)句 不包含或L以外的指令地址的程序段其性质与宏程序语句相同。,36,五、转移和循环,使用GOTO语句和IF语句可以改变

11、控制的流向。有三中转移和循环可供使用。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#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

12、=#2+1;GOTO 1;N2 M30;,39,3、循环 WHILE DO m;程序;END m;程序;说明:m=1,2,3,可以多次使用。最多嵌套三层。省略WHILE,则产生从DO 到END的 无限循环。WHILE比GOTO 处理快。,条件满足,条件不满足,40,标号可以多次使用: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

13、1;程序;WHILE DO 2;END1;程序;END2;,转移不能进入循环区:IF GOTO n;WHILE DO 1;N1;END1;,42,六、宏程序调用,宏程序调用方法:非模态调用(G65)模态调用(G66、G67)用G代码调用宏程序 用M代码调用宏程序 用M代码调用子程序 用T代码调用子程序,43,1、非模态调用(G65)格式:G65 Pp Ll 其中:p:要调用的程序号 l:重复次数(默认值为1)自变量:数据传递到宏程序,其值被赋值到相应的局部变量,有两种指定形式。,44,自变量指定,注:每个字母只指定一次,可以不按顺序,但I、J、K需 按顺序指定。,45,自变量指定,46,自变量

14、指定、混合。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级。,主程序,48,例:如图所示,编制一个宏程序加工圆上的孔,孔深为Z。圆周的半径为I,起始角为A,间隔为B,钻孔数为H,圆的中心是(X,Y)。,49,调用格式:G65 P9100 Xx Yy Zz Rr Ii Aa Bb Hh;X:圆心的X坐标(#24)Y:圆心的Y坐标(#25)Z:孔深(#26)R:快速趋近点坐标(#18)F:切削进

15、给速度(#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;钻孔循环,也可以使用L0 IF#3 EQ 90 GOTO1;在G90方式转移到N1#24=#5001+#24;计算圆心的X坐标#25=#5002+#25;计算圆心的Y坐标 N1 WHILE#11 GT 0 DO1;直到剩

16、余孔数为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:重复次数(默认值为1)自变量:数据传递到宏程序 G67取消模态调用。注:嵌套可以4级;在G66程序段中,不能调用多个宏程序 在只有辅助功能无移动指令的程序段中不能调用宏程序;局部变量只能在G66程序段中指定,每次执行模态调用时,不再指定局部变量。,

17、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=0,R点,Z,R,初始平面,I点,55,G65 P9110 Xx Yy Zz Rr Ff L1X:孔的X坐标(由绝对值指定)(#24)Y:孔的Y坐标(由绝对值指定)(#25)Z:Z点坐标(由绝对值指定)(#26)R:R点坐标(由绝对值指定)(#18)F:切削进给速度(#9)L:重复次数,56,主程序:O001

18、;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 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;

19、,58,3、用G代码调用宏程序 在参数(No.6050 到 No.6059)中设置调用用户宏程序(O9010 到 O9019)的G代码号(从1到 9999),调用方法同G65.注:不能嵌套!,59,参数号和程序号之间的对应关系:,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,参数号和程序号之间的对应关系:,63,O0001;G50 A1 B

20、2;M30;,O9020;M99;,参数No.6080=50,64,5、用M代码调用子程序 在参数(No.6071 到 No.6079)中设置调用用户宏程序(O9001 到 O9009)的M代码号(从1到 9999),调用方法同M98.,65,参数号和程序号之间的对应关系:,66,O0001;M03;M30;,O9001;M99;,参数No.6071=03,67,6、用T代码调用子程序 设置参数No.6001的第5位TCS=1,当加工程序中指定T代码,可以调用宏程序O9000。在加工程序中指定的T代码赋值到公共变量#149中。,68,O0001;T23;M30;,O9000;M99;,参数No

21、.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个孔的角度位置的值;#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#10

22、0 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#505 F#507 N210 G00 Z#506 N220 G65 H02 P#100 Q#100 R1 N230 G65 H84 P130 Q#100 R#101 N240 M99,73,O0010N10 G54 G90 G00 X0

23、 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平面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坐标初值Y0M99/宏程序结束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号