发那科用户宏程序资料_第1页
发那科用户宏程序资料_第2页
发那科用户宏程序资料_第3页
发那科用户宏程序资料_第4页
发那科用户宏程序资料_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

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+#k 3、减法: #i=#j-#k 4、乘法: #i=#j*#k 5、除法: #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、平方根: #

7、i=SQRT#j; 13、绝对值: #i=ABS#j; 14、舍入: #i=ROUND#j; 15、上取整: #i= FUP#j ; 16、下取整: #i= FIX#j ; 17、自然对数: #i=LN#j; y=lnx 18、指数函数: #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

8、No.6004.0=1时 :-9090 ARCCOS #I=ACOS#j 取值范围 1800,28,29, ARCTAN #i=ATAN#j/#K; 取值范围 当No.6004.0=0时 :0360 No.6004.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函数根据地值得最小设定单位指定四舍五

9、入。 例如 #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+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=F

10、IX#2; 则-1.0赋给#3,32,运算次序 函数乘、除(*、/、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

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

13、E比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 1; 程序; WHILE DO 2; END1; 程序; END2;,转移不能进入循环区: IF GOTO n; WHILE DO 1; N1; END1;,42,六、宏程序调用

14、,宏程序调用方法: 非模态调用(G65) 模态调用(G66、G67) 用G代码调用宏程序 用M代码调用宏程序 用M代码调用子程序 用T代码调用子程序,43,1、非模态调用(G65) 格式: G65 Pp Ll 其中: p:要调用的程序号 l: 重复次数(默认值为1) 自变量:数据传递到宏程序,其值被赋值到相应的局部变量,有两种指定形式。,44,自变量指定,注:每个字母只指定一次,可以不按顺序,但I、J、K需 按顺序指定。,45,自变量指定,46,自变量指定、混合。CNC内部能够自动识别自变量指定、,后指定的有效。 例如: G65 A1.0 B2.0 I-3.0 I4.0 D5.0 P1000;

15、 则 #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:切削进给速度(#9) I: 圆半径(#4) A:第一孔的角度(#1) B:增量角(指定负值时为顾时针)(#2)

16、 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;直到剩余孔数为0 #5=#24+#4COS#1;计算X轴上的孔位 #6=#25+#

17、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程序段中指定,每次执行模态调用时,不再指定局部变量。,53,O0001; G66P9100 L2 A1.

18、0 B2.0; G00 G90 X100.0; Y200.0 X150 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 L1 X: 孔的X坐标(由绝对值指定)(#24) Y: 孔的Y坐标(由绝对值指定)(#25) Z:Z点坐标(由绝对值指定)(#26) R: R点坐标(由绝对值指定)(#18) F: 切削进给速度 (#9) L: 重复次数,56,主程序: O001; G

19、92 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点 N

20、2 G#1 G#2 G#3; 恢复模态信息。 M99;,58,3、用G代码调用宏程序 在参数(No.6050 到 No.6059)中设置调用用户宏程序(O9010 到 O9019)的G代码号(从1到 9999),调用方法同G65. 注:不能嵌套!,59,参数号和程序号之间的对应关系:,60,O0001; G81 X10 Y20 Z-10 M30;,O9010; M99;,参数No.6050=81,61,4、用M代码调用宏程序 在参数(No.6080 到 No.6089)中设置调用用户宏程序(O9021 到 O9029)的M代码号(从1到 9999),调用方法同G65. 注:不能嵌套!,62,参

21、数号和程序号之间的对应关系:,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,参数号和程序号之间的对应关系:,66,O0001; M03; M30;,O9001; M99;,参数No.6071=03,67,6、用T代码调用子程序 设置参数No.6001的第5位TCS=1,当加工程序中指定T代码,可以调用宏程序O9000。在加工程序中指定的T代码赋值到公共变量#1

22、49中。,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个孔的角度位置的值;# 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

温馨提示

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

评论

0/150

提交评论