Fanuc用户宏程序基础(NC车床).doc

上传人:罗晋 文档编号:8939012 上传时间:2021-01-26 格式:DOC 页数:37 大小:540KB
返回 下载 相关 举报
Fanuc用户宏程序基础(NC车床).doc_第1页
第1页 / 共37页
Fanuc用户宏程序基础(NC车床).doc_第2页
第2页 / 共37页
Fanuc用户宏程序基础(NC车床).doc_第3页
第3页 / 共37页
Fanuc用户宏程序基础(NC车床).doc_第4页
第4页 / 共37页
Fanuc用户宏程序基础(NC车床).doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《Fanuc用户宏程序基础(NC车床).doc》由会员分享,可在线阅读,更多相关《Fanuc用户宏程序基础(NC车床).doc(37页珍藏版)》请在三一文库上搜索。

1、Fanuc用户宏程序基础1、概要2、变量的指定3、变量(1)局部变量(2)公共变量(3)系统变量4、运算指令5、控制指令6、利用机床内部传感器测外径时宏程序的组合方法以及步骤介绍7、的灵活使用8、刀具最大磨损值作为寿命值9、机床外部测量以及输入输出端口1、 概要 宏程序对大家来讲都比较困难,即便是阅读了使用说明书。的确,关于宏程序是有一些比较难以理解的部分,鉴于此种情况,这一次以简单实例并加以详细说明来解释何谓宏程序。这个教材的对象是已经能够熟练掌握了NC加工编程的人员。本资料作为参考,希望能够对大家有所帮助。到现在为止,宏程序是基于NC语言,由主、子程序来组合而成。说到宏程序和子程序的最大区

2、别就是宏程序能够调用变量。所以最近机器人、装载机无人化系统上应用到的内部外部测定、刀具破损、刀具寿命管理、负荷监视系统、工件判断等,像这些领域,宏程序就不得不被使用到了。不管怎么样,总之原本是人进行的作业转由机床来进行,所以要必须方方面面都要考虑到。另外,本资料针对的是FANUC 18T, 16T, 15T, 11T, 10T, 0T(用户宏程序B), YASNUC作为说明对象的。、变量指定关于宏变量的调用,请看下例。() 形状相同,尺寸不同的时候、各尺寸定义为AD等变量;() 刀尖的进给路线的程序用宏程序来编制。主程序宏程序()宏调用及变量指定G65 P9000 () () () ()此命令

3、为编集、输入AD图面尺寸值,并执行跳转至(O9000)。像上述程序中,AD的内容即使更改,AD也仍然使用对应的#1、#2、#3、#7变量(最初指定后就不能更改)。这些常数都是分配给局部变量的。与宏程序相关的指令,除了G65以外还有G66(宏模态调用)、G67(宏模态调用取消)。如果定义G65,定义的宏程序只被调用一次;G66是模态调用指令,每次轴移动指令都调用宏程序,直到G67(取消模态调用)。具体参考控制装置厂商的使用说明书。非G代码选配的宏模态调用的指令也有。如果定义了M96 P,系统不管外部有没有其他信号还是处于加工过程中,会强制执行宏模态调用。宏程序一般是O9000号。但是O1000或

4、者是别的也可以,但是系统有相关参数可以设定O9000、O8000号程序不能够被删除。即、所有的程序都被误删,O9000、O8000号程序也不能被删除,具有这个优点。另外某些参数更改后G、M、T代码也能调用宏变量(须参考厂家使用说明书)。、精加工的程序已经说明了,实际粗加工也有使用宏程序的必要,在学习了粗加工宏程序后,请练习试试看。端面的取材,余量控制在一刀。外径切削量设为E、X轴精加工量设为U(直径)、Z轴精加工量设为W、倒角量设为X。()变量定义的地址以及相对应的局部变量变量的对象是变量定义、控制装置的厂家决定的,作为用户是不能够更改的。变量定义有TYPE1、TYPE2两种。(表一、表二)注

5、)变量定义的话,除了G、L、N、O、P,其他地址都可以定义,另外无须按照拉丁字母顺序来定义。但是,I、J、K必须按照拉丁字母顺序来指定。注)、定义I、J、K的时候,必须按照拉丁字母顺序排列。另外变量定义类型的情况下,I、J、K的后缀分别将I、J、K各组按顺序分组,实际情况下指令不按照此格式书写。、无指定变量必要的地址内,可以省略指令。这时无指令的地址的相对应的局部变量为。、如果有个变量号被重复指定的时候,以后指定的变量有效。、I、J、K被重复指定的情况下,因为I、J、K作为一组的顺序是固定的,对应这个顺序的变量号码是固定的。()自变量指定、的混合即使G65段内同时有、型的自变量指定调用,也不会

6、有任何报警。如果自变量和自变量混合指定的话,后指定的自变量类型有效。对于上例中#变量,当有自变量I4.0和D5.0同时指定时,取后指定的D5.0。自变量一般都指定符号以及小数点。如果不指定小数点,小数点的位置见下表。注)、上面的数值表示的是小数点的在第几位。、当参数PM1000 D0(YASNUC)时,取()内的数值。通常,自变量像下例的方式指定的话也是很容易理解的,而且程序的兼容性比较好。、变量变量分为局部变量、公共变量、系统变量个种类。() 局部变量()局部变量是在宏程序中使用的变量。就如同“局部”这个词语,从主程序跳转至子程序,AD的内容只在子程序内有效。当断电时,局部变量被初始化为空。

7、假设在程序内输入,然后执行程序,宏程序画面会显示#1001。刀补的画面也是,如果输入0.1也会显示0.1,即使断电数据也不会丢失。但是宏变量#100如果断电的话该变量就会被初始化为空(什么都不显示)。即,的值并不指零。像这种状态称为。#500号跟刀补同样,即使断电数据也不会丢失。如果想把#500号置的话,程序内执行就可以实现。()公共变量(、)局部变量是在当前宏程序内可以使用的,但是公共变量是主程序包括其子程序都可以通用的。#i的当前值在所有宏程序中都是相同的。因此在一个宏程序内演算的结果(公共变量#i)在别的宏程序内也可以使用。(a) 公共变量在断电重启时有两种情况。:断电重启时,状态初始化

8、为;也有参数可以更改初始化时不为空。:即使断电,数据也不会丢失。(b) 公共变量根据选配可以追加组数。(参考说明书)(c)轴车床,刀塔之间有共通的用户宏变量。轴的情况下,有两套数控装置,也就是说能够实现相互变量数值更改读取的通用变量。例如,假设ZL-25下刀塔精加工外径,上刀塔作为测量用。但是即使上刀塔测量得出尺寸也不能对对下刀塔进行补正。在这种情况下,可以活用共通用户宏变量。上刀塔测定的数值可以写入共通用户宏变量,这样可以将数值传递给下刀塔。反之也可以。注)如果刀塔之间没有共通宏变量,可以使用#1033#1035、#1133#1135来实现上下数据传递。关于#1033#1035、#1133#

9、1135,根据控制系统的不同可能会有所不同,具体请参考使用说明书。()系统参数是有固定用途的变量。如下表:其中,经常使用的输入输出信号、刀具补正量、报警、段信息、位置坐标、跳跃信号位置等必须要熟记。另外、这些变量是由控制系统的生产商决定的,不可以被更改。但是10001035、11001135是输入输出用的,所以是由森精机决定。因此,地址的更改是可以通过输入输出的配线更改来实现的。、运算指令(有标记的,务必记牢)运算指令有以下规则。可以实现变量之间的运算。可以按照一般的运算式来进行编程。i在中,变量、常数通过运算符号或者函数组合来进行运算,结果可以代入指定的变量。中无小数点的情况下看作在末尾。(

10、)变量的定义、置换ij()加法形运算 ()乘法形运算 ()函数正弦余弦正切 余切平方根 绝对值二进制十进制 四舍五入华整 下取整上取整反正弦反余弦对数e为底的指数小数点追加上面是按照来说明的。其他控制装置稍微有点区别,具体使用时请参考操作说明书。() 运算组合运算、函数都可以运用在宏程序中。运算的优先顺序:函数、乘除、加减。(6)括号改变运算的优先顺序 需要优先运算的部分可加括号来实现。 括号、加上函数最高可以有5重。 (7)关于精度的注意点使用宏功能编集程序时,精度有没有达到要求,这点必须注意。例如,1与2的实际值如下19876543210123.45629876543277777.777执

11、行,但是实际得不到67654.321这个结果。为什么呢?就是因为宏变量的精度为十进制8位,即上述1与2在系统中的 实际值为19876543200000.00029876543300000.000只能达到这种精度。(系统内部是2进制,所以精确来讲与上面的值还是稍微有点区别。)因此,会产生12100000.000的误差。关于运算误差的详细说明请参考使用说明书。另外,逻辑关系(后面的控制指令章节里介绍)的ED,NE,GT,LT,GE,LE基本上与加减运算同样存在此运算误差,必须要注意。5、控制指令控制指令有下面的规则。根据以下指令可以控制程序的执行。()条件转移(a)IF GOTO n成立的话,程序

12、会跳转至“n”执行。如果使用其他变量或者式子可以更改跳转地址。条件不成立则直接执行IF下面的语句。如果此命令句省略IF ,程序则无条件执行跳转(执行“n”)。内有以下各种指令。条件式意义 上面的变量也可用式子来代替。跳转的程序号“n”也可用变量或者式子来替代。(注)如果执行GOTO n,在“n”指定的程序段中,程序号“n”必须处于该程序段最前面。反方向跳转比顺方向所需时间要长。(例)例文解说IF#1 EQ 1 GOTO 1 #等于则执行N,否则接下去执行。IF#1 EQ 2 GOTO 2 等于则执行N,否则接下去执行。GOTO 10 跳转至N10N1.GOTO 10 跳转至N10N2.GOTO

13、 10 跳转至N10N10M99回主程序(b) IF条件式THEN 宏指令: 条件式条件成立则执行宏指令。但是此处的宏指令仅限于一段指令。(例)例文 IF #1 EQ #2 THEN #3=0;解说 如果#1等于#2则将#3置为零。 注)上述指令在环境下使用。(2)循环 条件式 (,) END m 成立的时间范围内,重复执行Do m到END m之间的程序段。即、判断成立与否,成立则执行Do m后面的程序段,否则执行END m后面的程序段。条件式与IF一样可以省略,省略掉的情况下程序会出现从Do m到END M之间的死循环。条件式和是配对使用的,根据“m”可以互相区别开。例如 #120=1; N

14、1 WHILE #120 LE 10 DO 1; N2 WHILE #30 EQ 1 DO 2; N3 END 2; #120=#120+1; N4 END 1;注)Do m与END m的关系具体参考厂商使用说明书。6、机床内用传感器一点测定外径的宏模块以及准备的说明用常用的传感器,来测定外径为100.00.02的工件,只测一点。() 将传感器安装在刀塔上一号刀位。() 传感器也是刀具的一种,也需初期设定。即要输入传感器的几何植。(a)Z方向的测定 (b)X方向的测定方法最后切记在MDI模式下输入G99。 这种方法跟一般刀具直接测量唯一的区别就在于使用了G31跳跃指令。我们就用宏程序按照(a)

15、、(b)的方法来编集X方向的测量输入过程,以此作为练习。将机床运行至上图状态,然后实行O1000号程序。主程序O1000 暂定为100;G65 P9010 A100.0 X轴原点在其负方向则A为-100.0M30 X轴原点在其正方向则A为 100.0宏程序 #517 X原点方向的标志 正方向为原点时设为为“1”O9010 负方向为原点时设为为“-1”G98G31U-20517 F#518#2701=#5021-#1517G99G00U 4517M99 #518 传感器靠近工件端面的进给率考虑到JIS配置或其他配置系统的兼容性故使用变量。#2701=#5021-#1,其中#5021指的是X轴从机

16、械原点到刀塔位置的坐标,所以减去工件的尺寸就能得出传感器的几何值,式子左边的“#2701”是将值写入一号刀补的命令。不管用哪种方法都是可行的,不过在使用跳转(G31)是必须考虑到一些问题。因为上述条件的机器停止位置与机器实际机器停止位置多少会有些误差。除了这种误差以外,另外还有传感器的中心高度、实际测量的方法以及刀补的寸法都会产生误差,多少有修正的必要。另外又由于是机内测定,所以热变位也必须考虑到。传感器也是刀具的一种,所以基于绝对坐标测定的补正也是输入刀具几何补正表内。()测定顺序流程图传感器补正测量完以后,接下去考虑的是外径公差100.00.02的测定顺序。主程序运行完毕后,如果全数测定的

17、话非常花时间,所以决定每几个测定一次外径。具体顺序请看下页。()主程序的编集方法测定宏组块的自变量内容0001 加工 05 65901120242623 M30A:测定工件的直径(公差的中心值) 符号和程序内相同D:不需要补正的范围(值) 参考下图E:不会报警的范围(值) 参考下图X:测定部位的X轴的坐标值 符号和程序内相同Z:测定部位的Z轴的坐标值 参考下图()T:需要补正的刀号 宏内进行刀补值更改W:工件Z轴定位坐标省略则 G00Z#23中如果#23为按照X轴坐标来定位。 空,则无动作执行。NG的话出现报警。测定数值和使用的变量是公共变量#100。计数器等必须要设定的变量最好取#500号这

18、一段。#513 设定每多少个测量一次。#514 计数器(5)宏程序O9011 (SENSERRING OUT SIDE)#514=#514+1公共变量514自增1并替换本身值IF #514 GE #513 GOTO 10如果514513则跳转至N10M99否则跳回至主程序段N10#514=0计数器清零GOOT0100调用传感器到位#108=#504123值为空则无动作,机床产生报警信号并停止#109=#5042 G31有跳转信号时的坐标值G00 Z#23 X#24G98 Z#26G31 X#1-20*#517 F#518#100=#5061G00G99 X#24 Z#23 X#108 保存起始

19、点 Z#109#110=ABS #1ABS #100公差的中间值测取值110#111= ABS #110 取110的绝对值付给111IF #111 GE #8 GOTO901 111比E值大就跳转至N901IF #111 LE #7 GOTO20 111比D值小的话跳转至N20# 2000 + #20 =# 2000 + #20+#110*#517补正更改,补正量110N20M99N901#3000=911 (MESURRING ERR.N.G) 的情况下,会产生911号报警,并在CRT上显示括号内的内容,同时返回起始点。 以上面的流程图为基础,宏程序O9011自然就编集成了。构思流程图时,机

20、械动作及判定顺序要确定好,跳转段落的程序号要写明,另外需要定义的变量最好做成一览表(为了不重复)整理好,会事半功倍。 这样,以一点测量外径为例说明了宏程序的运用,同样两点测量外、内径按照同样的思路来考虑的话,关于机内计测的宏程序也可以编集出来的。7、变量的活用前面外径测量已经说明了,因为是无人操作测量外径100,另外通电开始加工第一个工件时,我们一般必须留有足够余量,加工测量补正后再按照通常的加工继续。因此就存在了第一个工件不得不测量的问题。这样,将程序O9011怎样修改才能实现每次通电后就测量一次,关于这一点来考虑一下。我们就利用100以后的变量断电后自动初始化为空的特点来实现。在前面的流程

21、图的加工终了与(计数值UP)之间只要追加下面的判断语句就可以了。宏程序如下:O9011 (SENSERRING OUT SIDE)IF #140 EQ #0 GOTO O30 通电时跳转至N30GOTO40N30#140=1置, 则值不为空#514=#513-1 减去当前的测定个数N40#514=#514+1后相同如同这样,根据通电时的判断结果可以跳转至其他程序,进行不同的机械动作(例如空运转等)。8、磨耗量的范围作为工具寿命的判断依据连续加工并测定工件,同时替换刀具的补正量。利用补正量的变化可以用来判断工具寿命。这样将刀具的初始补正量输入#500号段的参数,然后与根据传感器测定出来的新补正值

22、的比较值作为判断基准就可以了。这个值如果超过允许范围就会产生报警同时机器停止。例如、初期补正量假定为0.123#530 输入0.123(初期补正量)#531 设为0.2,如果与初期补正量的差超过0.2mm,机器停止这样,机器停止后交换刀片后再重启就可以了。 2 但是,如果刀塔上有预备刀具的话不用停止也可以继续进行加工。另外我们可以拿下面两个例子来练习一下,如果是送料仕样的话,(有相关要求的仕样),寿命(加工数)到了的话就使用下一把刀,或者是没有到达寿命加工数而是超过磨损范围时需要换刀,等等。9、机外测量以及输入输出端口前面就机内测量的宏程序做了说明。接下来关于送料式样的机床来举一例说明机外测定

23、器与机床之间的信号反馈方式。机外测定可以分为两大类。第一种是分为五种信号(、),以区分输出。另外一种就是输出数值。这里就常使用的第一种来说明。上图为NC与测定器的输入输出连接方式。首先,由测定器来判断被测定信号种类。从NC侧发出要求测量的信号(闭合#1100接点)。测定器侧根据采集信号通过CPU计算来确定信号属于5种中哪一种,然后输出。NC侧接受信号。宏程序的功能就是判断信号种类。宏程序如下:O9020#1100= 1G04U0.5G04U0#1100=0 输出0位接点闭合N10IF #1000EQ1 GOTO1 输入0位ON则跳转至N1IF #1001EQ1 GOTO2 输入1位ON则跳转至

24、N2IF #1002EQ1 GOTO3 输入2位ON则跳转至N3IF #1003EQ1 GOTO4 输入3位ON则跳转至N4IF #1004EQ1 GOTO5 输入4位ON则跳转至N5GOTO10N1#3000=909 (+NG)N2# 2000+#520 =# 2000+#520 -#521GOTO6N3GOTO6N4# 2000+#520 =# 2000+#520 +#521N6M99N5#3000= 908 (-NG) #520 设为补正号码 #521 设为补正值(+值)外部测定的话,反馈时间或脉冲信号的延迟的情况较多,所以#521的值设小一点比较好。从外部输入的信号,是通过宏程序语句I

25、F #1000 EQ 1以及IF #1000 EQ 0来判断的。值为1则表示ON,为0则表示OFF。由宏程序向外部装置输出信号时,#1100=1输出时,0位接点闭合通电;#1100=0时,接点打开切断输出。输入端口#1000#1031共32个、输出端口#1100#1131共32个,两侧各有32个。FANUC-15T各有32个、15T以外的控制系统是#1000#1015、#1100#1115,各16个。3 如果一出现NG(NG)信号机器就停止的话也会产生问题。例如测定时可能存在工件上有粉末附着的情况。因此我们考虑如果连续发生两次NG(NG)信号话,才强制使机器停止。大家可以考虑一下像这样的宏程序

26、以及流程图是应该怎么编集。通过输入输出端口也可以进行工件种类的确认。例如我们可以通过尾座的限位开关的状态来判断工件种类。O0001IF #1005 EQ 1 GOTO1 输入的第5位为ON时跳转至N1IF #1006 EQ 1 GOTO2 输入的第6位为ON时跳转至N2#3000=905 (NO WORK) 卡盘没夹紧或者是装载了其他工件N1A的加工程序GOTO3N2B的加工程序N3M30掌握了这种输入输出的原理我们可以应用到各种仕样上面。但是如果在FANUC-15T条件下,我们需要33个以上输入输出信号端口的话,该怎么办呢?输入输出虽然各只有32个,但是还有#1032(监视所有的输入位信号的变量)以及#1132(能够改变输出状态的变量)例如,IF #1032 EQ 15,该宏程序语句的含义为:到第三位为止(#1000,#1001,#1002,#1003)的输入信号是否全为1。换种方式说,如果执行#1132=15语句,到第三位为止(#1100,#1101,#1102,#1103)的输出信号全为ON,接点全部闭合输出信号。这样很容易理解输入输出各有232-1种组合可以使用。总之,以上以测定方面的应用进行了说明,测定用宏程序占了很大比例。大家要好好理解这份说明书,为了能够使用更多的仕样,要好好努力学习。(时间仓促,不正之处望大家指正)

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1