精品课程宏程序编写

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

FANUC0i-MC数控系统用户宏程序第一节宏程序基本理论虽然子程序对编制相同的加工程序非常重要,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。例如型腔加工宏程序和用户开发固定循环。使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。1.1变量普通加工程序直接用数值指定G代码和移动距离,例如G01X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量指定时,变量值可用程序或用MDI面板操作改变。#1=#2+100;G01X#1F300;1.变量的表示一般编程方法允许对变量命名,但用户宏程序不行。变量用变量符号#和后面的变量号指定,例如#1。表达式可以用于指定变量号,此时,表达式必须封闭在括号中。例如:#【#1+#2-12】2.变量的类型变量根据变量号可以分为四种类型,如下:变量号变量类型功能#0空变量该变量总是空,没有值能赋给该变量#1~#33局部变量局部变量只能用于在宏程序中存储数据,例如运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值#100~#199#500~#999公共变量公共变量在不同的宏程序中的意义相同。当断电时,变量#100~#199初始化为空,变量#500~#999的数据保存#1000~系统变量系统变量用于读和写CNC的各种数据,例如刀具的当前位置和补偿值3.变量值的范围局部变量和公共变量可以为0值或下面范围中的值:-1047~-1029或10-29~1047如果计算结果超出有限范围,则发出P/S报警NO.111。4.小数点的省略当在程序中定义变量值时,小数点可以省略。例如:当定义#1=123时,变量#1的实际值是123.000。5.变量的引用在地址后指定变量号即可引用其变量值。当用表达式指定变量时,要把表达式放在括号中。例如:G01X【#1+#2】F#3;被引用变量的值根据地址的最小设定单位自动地舍入。例如:当系统的最小输入增量为1/1000mm单位,指令G00X#1,并将12.3456赋值给变量#1,实际指令值为G00X12.346。改变引用变量的值的符号,要把负号(-)放在#号的前面。例如:G00X-#1;引用未定义的变量时,变量及地址字都被忽略。例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为G00X0。注意,从这个例子可以看出,所谓“变量值是0”与“变量值是空”是两个完全不同的概念,可以这样理解,“变量值是0”相当于“变量的数值等于0”,而“变量值是空”则意味着“该变量所对应的地址根本就不存在,不生效”。除了用“空”赋值以外,其余情况下“空”与0相同。不能用变量代表的地址符有:程序号O,顺序号N,任选程序段跳转号/。例如以下情况不能使用变量:O#11;/O#22G00X100.0;N#33Y200.0;1.2系统变量系统变量用于读和写CNC内部数据,例如,刀具偏置值和当前位置数据。无论用户宏程序功能A或用户宏程序功能B,系统变量的用法都是固定的,而且某些系统变量为只读,用户必须严格按照规定使用。系统变量时自动控制和通用加工程序开发的基础,在这里仅就系统变量的部分(与编程及操作相关性较大)内容加以介绍。FANUC0i系统变量一览表变量号含义#1000~#1015,#1032接口输入变量#1100~#1115,#1132,#1133接口输出变量#10001~#10400,#11001~#11400刀具长度补偿值#12001~#12400,#13001~#13400刀具半径补偿值#2001~#2400刀具长度与半径补偿值(偏置组数≤200)#3000报警#3001,#3002时钟#3003,#3004循环运行控制#3005设定数据(SETTING值)#3006停止和信息显示#3007镜像#3011,#3012日期和时间#3901,#3902零件数#4001~#4120,#4130模态信息#5001#5104位置信息#5201#5324工件坐标系补偿值(工件零点偏置值)#7001~#7944扩展工件坐标系补偿值(工件零点偏置值)下面对各系统变量作详细说明。1.接口(输入/输出)信号接口信号时可编程机床控制器(PMC)和用户宏程序之间交换的信号。FANUC0i接口信号的系统变量变量号功能#1000~#1015,#1032把16位信号从PMC送到用户宏程序。变量#1000~#1015用于按位数读取信号,变量#1032用于一次读取一个16位信号#1100~#1115,#1132把16位信号从用户宏程序送到PMC。变量#1100~#1115用于按位数写信号,变量#1132用于一次写一个16位信号#1133变量#1133用于从用户宏程序一次写一个32位的信号送到PMC,注意,#1133的值为从-99999999~+99999999只有使用FANUCPMC时,才能使用上表中的变量。在运算中,系统变量#1000~#1015,#1032不能用作左边的项。2.刀具补偿值用系统变量可以读和写刀具补偿值。通过对系统变量赋值,可以修改刀具补偿值。FANUC0i刀具补偿存储器C的系统变量补偿号刀具长度补偿(H)刀具半径补偿(D)几何补偿磨损补偿几何补偿磨损补偿1#11001(#2201)#10001(#2001)#13001#120012#11002(#2202)#10002(#2002)#13002#12002199#11199(#2399)#10199(#2199)#13199#12199200#11200(#2400)#10200(#2200)#13200#12200201#11201#10201#13201#12201399#11399#10399#13399#12399400#11400#10400#13400#12400在FANUC0i系统中,刀具补偿分为几何补偿和磨损补偿,而且长度补偿和半径补偿也是分开的。刀具补偿号可达400个,换句话说,理论上系统支持控制容量高达400的刀库。当刀具补偿号≤200时(一般情况也的确如此),刀具长度补偿(H)也可使用#2001~#2400。例如,假设一把¢10mm的立铣刀,将其视为10号刀(若在加工中心上,是有非常明确和实在的含义,即应将此铣刀放置在刀库的10号位上;对于随机换刀的机床,刀号和刀库位置不一定对应;若在数控铣床上,尽管只能人工换刀,但为了使刀具管理和工艺管理更合理、更有序,同样也可效仿加工中心那样操作,即在系统中记录下相关的刀具补偿号和刀具补偿值,唯一的差别不过是没有刀库及自动换刀功能,而需要人工换刀。其刀具长度补偿(H)的两项补偿值在Z方向对刀完成后一般不再需奥特别处理,而编程时主要涉及其刀具半径补偿(D)的两项补偿值,从思路的条理性出发,显然适宜使几何补偿值等于刀具半径,即#13010=5.0,可以视为对刀具的识别,而设置和调整磨损补偿值(#12010)则可视为对尺寸的控制。在应用宏程序编写加工程序时,将会有以下描述:#20=#13010→把刀具补偿号10(10号刀,¢10mm的立铣刀)的半径补偿值中的几何补偿值赋值给变量#20,在这里假设#20=5.0。#22=#12010→把刀具补偿号10(10号刀,¢10mm的立铣刀)的半径补偿值中的磨损补偿值赋值给变量#22,在这里假设#20=1.2。3.模态信息正在处理的当前程序段之前的模态信息可以从系统变量中读出。FANUC0i模态信息的系统变量变量号功能#4001G00,G01,G02,G03,G33(组01)#4002G17,G18,G19(组02)#4003G90,G91(组03)#4004(组04)#4005G94,G95(组05)#4006G20,G21(组06)#4007G40,G41,G42(组07)#4008G43,G44,G49(组08)#4009G73,G74,G76,G80~G89(组09)#4010G98,G99(组10)#4011G50,G51(组11)#4012G65,G66,G67(组12)#4013G96,G97(组13)#4014G54~G59(组14)#4015G61~G64(组15)#4016G68,G69(组16)#4022待定(组22)#4102B代码#4107D代码#4109F代码#4111H代码#4113M代码#4114顺序号#4115程序号#4119S代码#4120T代码#4130P代码(现在选择的附加工件坐标系)注:(1).P代码为当前选择的附加工件坐标系。(2).当执行#1=#4002时,在#1中得到的值是17,18或19。(3).系统变量#4001~#4120不能用于运算指令左边的项。(4).模态信息不能写,只能读。另外如果阅读模态信息指定的系统变量为不能用的G代码时,系统则发出程序错误P/S报警。4.当前位置信息当前位置信息不能写,只能读。FANUC0i当前位置信息的系统变量变量号位置信息相关坐标系移动时的读操作刀具补偿值(长度、半径补偿)#5001#5002#5003#5004X轴程序段终点位置(ABSIO)Y轴程序段终点位置(ABSIO)Z轴程序段终点位置(ABSIO)4th轴程序段终点位置(ABSIO)工件坐标系可以不考虑刀尖位置(程序指令位置)#5021#5022#5023#5024X轴当前位置(ABSMT)Y轴当前位置(ABSMT)Z轴当前位置(ABSMT)4th轴当前位置(ABSMT)机床坐标系不可以考虑刀具基准点位置(机床坐标)#5041#5042#5043#5044X轴当前位置(ABSOT)Y轴当前位置(ABSOT)Z轴当前位置(ABSOT)4th轴当前位置(ABSOT)工件坐标系不可以考虑刀具基准点位置(与位置的绝对坐标显示相同)#5061#5062#5063#5064X轴跳跃信号位置(ABSKP)Y轴跳跃信号位置(ABSKP)Z轴跳跃信号位置(ABSKP)4th轴跳跃信号位置(ABSKP)工件坐标系可以已考虑刀具基准点位置#5081X轴刀具长度补偿值不可以已考虑#5082Y轴刀具长度补偿值#5083Z轴刀具长度补偿值#50844th轴刀具长度补偿值#5101X轴伺服位置补偿#5102Y轴伺服位置补偿#5103Z轴伺服位置补偿#51044th轴伺服位置补偿注:(1)、ABSIO:工件坐标系中,前一程序段终点坐标值。ABSMT:机床坐标系中,当前机床坐标位置。ABSOT:工件坐标系中,当前坐标位置。ABSKP:工件坐标系中,G31程序段中跳跃信号有效的位置。(2)、在G31(触发功能)程序段中,当触发信号接通时的刀具位置存储在变量#5061~#5064中。当G31程序段中的触发信号不接通时,这些变量存储指定程序段的终点值。(3)、变量#5081~#5084所存储的刀具长度补偿值是当前的执行值(即当前正在执行中的程序段的量),不是后面的程序段的处理值。(4)、移动期间不能读取是由于缓冲(预读)功能的原因,不能读取目标指令值。5.工件坐标系补偿值(工件零点偏移值)用系统变量可以读和写工件零点偏移值。FANUC0i工件零点偏移值的系统变量变量号功能#5201#5204第1轴外部工件零点偏移值第4轴外部工件零点偏移值#5221#5224第1轴G54工件零点偏移值第4轴G54工件零点偏移值#5241#5244第1轴G55工件零点偏移值第4轴G55工件零点偏移值#5261#5264第1轴G56工件零点偏移值第4轴G56工件零点偏移值#5281#5284第1轴G57工件零点偏移值第4轴G57工件零点偏移值#5301#5304第1轴G58工件零点偏移值第4轴G58工件零点偏移值#5321#5324第1轴G59工件零点偏移值第4轴G59工件零点偏移值#7001#7004第1轴工件零点偏移值(G54.1P1)第4轴工件零点偏移值(G54.1P1)#7021#7024第1轴工件零点偏移值(G54.1P2)第4轴工件零点偏移值(G54.1P2)#7941#7944第1轴工件零点偏移值(G54.1P48)第4轴工件零点偏移值(G5

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功