您好,欢迎访问三七文档
高级数控加工程序编制:FANUC用户宏程序SIEMENS参数编程机电学院数控技术研究室2013年10月第一部分:用户宏程序编程一、宏程序应用概述定义:用户宏程序是“除了使用通常的CNC指令外,还可以使用带变量的CNC指令,进行变量运算,使用跳转、循环指令等”具有某种功能的一组命令,象数控加工程序一样存储在内存中。存储的这组命令称为用户宏程序主体(简称宏程序),用户宏程序可以被“调用宏程序的指令”调用。可以作为主程序、子程序。调用宏程序指令具有某种功能的一组命令O0001;┇┇G65P9010R50.0L2;┇┇M30;O9010;#1=#18/2;G01X#1Z#1F0.3;G02X#1Z-#1R#1;┇┇M99;加工程序用户宏程序(一)宏程序与普通程序的对比一般意义上的数控编程(普通程序),是使用数控系统给定的指令代码进行编程。每个代码的功能固定,只要按规定使用即可。为了扩展编程功能,FANUC数控系统厂家在一般指令代码功能基础上,又提供了用户宏程序功能,简称宏程序。区别如下:◙普通程序使用常量,常量之间不能运算,程序只能顺序执行不能跳转,程序没有通用性;◙宏程序可以使用变量(可以赋值),变量之间可以运算,程序运行可以跳转,程序具有通用性。(二)宏程序与CAD/CAM软件生成的程序对比◙宏程序短小精悍,任何数控加工只要能够用宏程序完整表达,即使再复杂,其程序也比较精炼篇幅小,优化后的宏程序段数很少超过60行,这对于一般数控装置的程序存储空间为128KB、256KB标准配置来说,都能容纳下任何复杂的宏程序。不需要考虑因程序较长进行在线加工时,数控系统与外部电脑的传输率不够问题。◙CAD/CAM软件生成的程序通常都比较大,因为其生成刀具轨迹的原理采用直线(微线段)逼近曲线曲面,所以不但程序长,而且存在逼近误差。(三)用户宏程序与一般子程序对比子程序可用于同一操作的重复执行,用户宏程序具有此功能,还允许使用变量、算术和逻辑操作、条件转移等,也可以扩展一般程序,如凹槽循环和用户定义的循环。加工程序可以调用带有简单命令的用户宏程序。FANUC数控系统具有用户宏程序功能。宏程序的最大特点:在宏程序中,除了使用通常的CNC指令外,还可以使用带变量的CNC指令,进行赋值、变量运算,使用跳转、循环指令等指令。根据宏程序功能范围的不同分为:▋用户宏程序A▋用户宏程序B▋现代FANUC系统已不分“用户宏程序A”和“用户宏程序B”,取消了宏程序A,统称为用户宏程序。二、基础理论2.1变量概念▋普通加工程序用数值指定G代码和位移距离例如:G01和X100.0。▋使用宏程序时,数值可以直接指定,而且可用变量指定代码和位移等,变量值可以用程序或用MDI方式设定或修改。例如:#1=#2+100;G01X#1F500;G#3,#3=022.2变量的表示一般计算机程序语言允许使用变量名,用户宏程序则不行。用户宏程序的变量需用变量符号“#”和其后的变量号指定,变量号可以直接用数值或表达式表示,其格式为:#i(i=1、2、3、…)。例如,#12,#102,#1006等。用表达式指定变量号时,表达式必须放在括号内。例如,#[#1+#2-12]。变量可以代替宏程序中地址后面的数值,变量的值可由调用用户宏程序的指令给宏程序主体赋值,或者在执行宏程序主体时由得出的计算值决定。使用复数个变量时,可由变量号决定。2.2.1变量的引用1.变量可被引用为代替宏程序中地址后面的数值如F#103,表示进给速度由变量#103的值指定,当#103=1.5时,与F1.5指令的相同。又如,G#130,当#130=3时,与G03指令相同;2.变量可被引用为指定意义,如:位移、代码等。如G00Z-#100,表示刀具在-Z方向快速定位到变量#100指定的位置,当#100=250时,与G00Z-250.0指令的相同;此外,用变量#j代替变量号码i时,不能用##j表示,而用#9j。当#110=120(#110为#j,120为变量号码),#120=500时,则为#9110=500。地址O,N不能引用变量,即不能使用O#100,N#120。变量值可以显示,可以用MDI键设定。3.自变量赋值(指定)在宏程序中给使用的变量所赋予的实际值叫做自变量赋值。自变量由地址和后面的数字指定。除O之外的地址均可指定自变量,自变量的地址和变量号必须一一对应。例如自变量的地址I、J、K…与宏程序内的变量一一对应赋值:直接指定、调用宏程序指令传送、表达式指定此外自变量还有标志号,如指定自变量标志为1,否则为0。自变量被指定,变为指定值,否则变为下述情况:①参照CNC指令,指定的自变量地址无效。②参照运算指令和转移指令。2.2.2变量的类型按变量号、使用范围和功能,变量分为四种类型,见表1。表1变量类型变量号变量类型功能#0总是空(空变量)这个变量总是空,没有值赋予该变量。#1~#33局部变量局部变量只能在宏程序中存储数据,例如:运算结果。断电时,局部变量清除(初始化为空)。可以在程序中对其赋值。#100~#149(#199)#500~#531(#999)公共变量公共变量在不同的宏程序中的意义相同,即公共变量对于主程序和从这些主程序调用的每个宏程序来说是公用的。断电时,#100~#199清除(初始化为空)通电时复位到“0”。而#500~#999数据,即使在断电时,也不清除。#1000以上系统变量系统变量用于读和写CNC运行时各种数据变化。例如,刀具当前位置和补偿等。注:公共变量#150到#199及#532到#999是随意的(可选择)2.2.3变量值的范围局部变量和公共变量的值可以是0或以下范围中的值:-1047~-10290+10-29~+1047如果计算结果超出有效范围,则触发程序错误P/S,报警NO.111。2.2.4小数点的省略当在程序中定义变量值时,整数值的小数点可以省略。例如:#1=123,变量#1的实际值是123.000。2.2.5变量使用时注意的问题◆在程序中使用变量时,应指定变量号地址。◆当用表达式指定变量时,必须把表达式放在括号中,例如:G01X[#11+#22]F#3。◆被引用变量的值根据地址的最小设定单位自动的四舍五入。例如:当G00X#11,以1/1000mm的单位执行赋值12.3456时,CNC把12.3456赋值给变量#11,实际指令值为G00X12.346。◆改变引用变量的值的符号,要把“-”号放在#的前面,例如:G00X-#11。◆当引用未定义的变量时,变量及地址都被忽略。例如:当变量#11的值是0,并且变量#22的值是空时,G00X#11Y#22的执行结果是G00X0。◆所谓“变量的值是0”与“变量的值是空”是二个完全不同的概念,可以这样理解:“变量的值是0”相当于“变量的数值等于0”,“变量的值是空”意味着“变量所对应的地址不存在,不生效”,未定义。◆不能用的变量地址符号有:程序号O,顺序号N,任选程序段挑转号/。例如以下情况不能使用变量:O#11;/O#22G00X100.0;N#33Y200.0;◆使用ISO代码编程时,用“#”代码表示变量,若用EIA代码,则应用“&”代码代替“#”代码,因为EIA代码中没有“#”代码2.3系统变量空变量、局部变量和公共变量的意义见表1功能说明部分,不再赘述。下面介绍系统变量。系统变量用于读和写CNC内部数据,例如,刀具偏置值和当前位置数据。无论用户宏程序A或用户宏程序B,系统变量的用法都是固定的,而且某些系统变量为只读,用户必须严格按照规定使用。系统变量是自动控制和调用加工程序开发的基础。系统变量的内容见表2。表2FANUC0i系统变量一览表变量号含义#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扩展工件坐标系补偿值(工件零点偏移值)下面对系统变量进行说明2.3.1接口(输入输出)信号接口信号是可编程机床控制器(PMC)和用户宏程序之间交换的信号,具体内容见表3。表3FANUC0i接口信号的系统变量变量号功能#1000~#1015把16位信号从PMC送到用户宏程序。变量#1000#1032~#1015用于按位读取信号;变量#1032用于一次读取一个16位信号#1100~#1115输出:把16位信号从用户宏程序送到PMC。变量#1100#1132~#1115用于按位写信号;变量#1132用于一次写一个16位信号#1133变量#1133用于从用户宏程序一次写一个32位信号送到PMC。#1133的值为从-99999999到+99999999注:只有使用FANUCPMC时,才能使用上表中的变量。在运算中,系统变量#1000~#1015和#1032不能用作左边的项。下面对系统变量进行说明2.3.1接口(输入输出)信号接口信号是可编程机床控制器(PMC)和用户宏程序之间交换的信号,具体内容见表3。表3FANUC0i接口信号的系统变量变量号功能#1000~#1015把16位信号从PMC送到用户宏程序。变量#1000#1032~#1015用于按位读取信号;变量#1032用于一次读取一个16位信号#1100~#1115输出:把16位信号从用户宏程序送到PMC。变量#1100#1132~#1115用于按位写信号;变量#1132用于一次写一个16位信号#1133变量#1133用于从用户宏程序一次写一个32位信号送到PMC。#1133的值为从-99999999到+99999999注:只有使用FANUCPMC时,才能使用上表中的变量。在运算中,系统变量#1000~#1015和#1032不能用作左边的项。下面对系统变量进行说明2.3.1接口(输入输出)信号接口信号是可编程机床控制器(PMC)和用户宏程序之间交换的信号,具体内容见表3。表3FANUC0i接口信号的系统变量变量号功能#1000~#1015把16位信号从PMC送到用户宏程序。变量#1000#1032~#1015用于按位读取信号;变量#1032用于一次读取一个16位信号#1100~#1115输出:把16位信号从用户宏程序送到PMC。变量#1100#1132~#1115用于按位写信号;变量#1132用于一次写一个16位信号#1133变量#1133用于从用户宏程序一次写一个32位信号送到PMC。#1133的值为从-99999999到+99999999注:只有使用FANUCPMC时,才能使用上表中的变量。在运算中,系统变量#1000~#1015和#1032不能用作左边的项。2.3.2刀具补偿值用系统变量可以读和写刀具补偿值。通过系统变量赋值,可以修改刀具补偿值,见表4。表4FANUC0i刀具补偿存储器C的系统变量补偿号刀具长度补偿刀具半径补偿几何补偿磨损补偿几何补偿磨损补偿12┋199200201┇399400#11001(#2201)#11002(#2202)┋#11199#2399)#11200(#2400)#112001┇#11399#11400#10001(#2001)#10002(#2002)┋#10199(#2199)#10200(#2200)#10201┇#10399#10400#13001#13002┋#13199#13200#13201┋#13399#13400#12001#12002┋#12199#12200#12201┋#12399#12400刀具长度补偿:几何补偿(长度值)和磨损补
本文标题:用户宏程序
链接地址:https://www.777doc.com/doc-3508150 .html