用户宏程序B编程说明(初稿)

合集下载

数车宏程序B及其应用实例16K

数车宏程序B及其应用实例16K

FANUC 0i Mate-TC系统宏程序B功能实例应用FANUC 0i Mate-TC系统宏程序B功能序宏程序作为一种数控程序编制指令现在已经被广大数控机床用户所认识,尤其是近年来随着各类数控大赛的不断开展,宏程序在大赛中的广泛应用,在数控行业中掀起了宏程序的热潮。

宏程序根据所用的数控机床的不同略有不同,但大同小异,我们学会了一种机床的宏程序后,再学习其它机床的宏程序就容易了。

本文以国际上比较流行的FANUC 0i Mate数控系统为例,介绍一下宏程序的编程。

FANUC 0i Mate数控系统中宏程序分为用户宏程序功能A和用户宏程序功能B两类。

A类宏程序是采用了G代码和引数进行赋值来表达各种数学运算和逻辑关系的一种方法,现在这种方法由于编制起来相对复杂,一般只有数控机床上没有配置用户宏程序功能B的用户才使用用户宏程序功能A。

目前大多数用户都使用用户宏程序功能B进行编制,所以本书仅以用户宏程序功能B为重点深入介绍宏程序的相关知识。

讲座中编写了近年广泛应用的一些例子和笔者最近开发的零件使用宏程序的复杂例子。

以FANUC 0i Mate数控系统数控车床和加工中心为例进行讲解,本讲座已经作为我学院的宏程序教案进行推广,同时在我学院进行培训的高级技师、技师及高级工中进行了讲授反映良好,特将本教案作为实例供广大使用FANUC 0i Mate数控系统的用户和有兴趣研究宏程序的读者作为参考。

一、宏程序的基本概念在一般的程序中,程序字为常量,只能描述固定的几何形状,缺乏灵活性和适用性。

若能用改变参数的方法使同一主程序能加工形状(属性)相同但尺寸(参数)不同的零件,加工就会非常方便,也提高了可靠性。

加工不规则形状零件时,机床可能要作非圆曲线运动,一般手工编程达不到要求。

在进行自动测量时机床要对测量数据进行处理,这些数据属于变量,一般程序是不能处理的。

针对这种情况,数控机床提供了另一种编程方式,即宏编程。

在程序中使用变量,通过对变量进行赋值及处理使程序具有特殊功能,这种有变量的程序叫宏程序。

宏程序

宏程序

第八节B类型用户宏程序一、编程实例采用B类宏程序编写如图5—31所示零件型腔的精加工程序。

曲线方程为:X2/502+Y2/302=1图5-31完成此零件型腔的编程需掌握以下知识点。

二、B类宏程序的运算指令1.B类宏程序变量的赋值(1)直接赋值变量可以在操作面板上用MDI方式直接赋值,也可在程序中以等式方式赋值,但等号左边不能用表达式。

例#100=100.0;#100=30.0+20.0;(2)引数赋值宏程序以子程序方式出现,所用的变量可在宏调用时赋值。

如下所示:例 G65P1000X100.0Y30.0Z20.0;此处的X、Y、Z不代表坐标字,F也不代表进给字,而是对应于宏程序中的变量号,变量的具体数值由引数后的数值决定。

引数宏程序体中的变量对应关系有两种(如下表5-9及表5-10所示),此两种方法可以混用,其中G、L、N、O、P不能作为引数替变量赋值。

表5-9 变量赋值方法Ⅰ例变量赋值方法ⅠG65P0020A50.0X40.0F100.0经赋值后#1=50.0,#24=40.0,#9=100.0。

变量赋值方法ⅡG65P0030A50.0I40.0J100.0K0I20.0J10.0K40.0;经赋值后#1=50.0,#4=40.0,#5=100.0,#6=0,#7=20.0,#8=10.0,#9=40.0。

变量赋值方法Ⅰ、Ⅱ混合G65P0030A50.0D40.0I100.0K0I20.0;经赋值后,I20.0与D40.0同时分配给变量#7,则后一个#7有效,所以变量#7=20.0,其余同上。

2.B类宏程序运算指令B类宏程序的运算指令与A类宏程序的运算指令有很大的区别,它的运算类似于数学运算,用各种数学符号来表示。

常用运算指令如表5-11所示:宏程序计算说明如下:(1)函数SIN、COS等的角度单位是度,分和秒要换算成带小数点的度。

如90°30ˊ表示90.5°,而30°18ˊ表示30.3°。

B类宏程序编程方法与技巧

B类宏程序编程方法与技巧

B类宏程序编程方法与技巧摘要:数控加工已成为当今世界机械加工行业领先技术的代表,而数控宏程序的应用程度就更加体现出了数控加工水平的高低和对机床的利用率,直接关系到加工难度与加工效率。

本文以数控宏指令为基础,以华中数控操作系统为例,通过机械加工和无数次的宏程序的加工,总结B类宏程序编程方法与技巧。

关键词:数控;宏指令;方法与技巧;华中数控宏指令编程像高级语言一样,可以使用变量进行算术运算、逻辑运算和函数混合运算的程序编写形式,能提供循环、判断、分支和子程序调用的方法。

由于宏程序指令允许使用变量算术和逻辑运算及条件转移,可将相同加工操作编为通用程序,不仅使程序应用更加灵活,而且可大大精简程序量。

在数控加工中经常会遇到复杂轮廓的加工(如抛物线、椭圆、双曲线、半球、螺旋线等),用普通的手工编程方法处理周期长、计算量大、精度差、容易出错,难以满足生产要求。

随着数控技术的发展,先进的数控系统不仅向用户编程提供了一般的准备功能和辅助功能,而且为编程提供了扩展数控功能的手段,华中世纪星数控系统的宏程序编程,应用灵活、形式自由,具备计算机高级语言的表达式、算术和逻辑运算机类似的程序流程,使加工程序简练易懂,可实现普通编程难以实现的功能。

1. B类宏指令(华中数控)1.1 B类宏指令变量的类型B类宏是在A类宏的基础上发展起来的,随着数控技术的不断完善,在运用宏加工时就出现了一些运算问题,B类宏也就在这个前提下发展起来了,B类宏的好处在于能够经行四则运算,大大减少了宏的程序长度,大大减少了编程时间。

1.2 B类宏指令变量的赋值、算术运算和逻辑运算通常在计算机中每个变量都有其变量名,计算机允许使用变量名,但是数控系统中用户宏程序不能直接使用变量名,采用变量符号(#)和后面的变量号指定变量。

表达式可以用指定的变量号。

此时,表达式必须封闭在括号中。

2. B类宏程序的编程技巧很多人都认为宏程序比较难编写。

通过研究我找到了一种利用填充式的方法进行宏程序的编写,就算不能理解宏程序的人员也能进行编写,通过简单的数字填充来编写宏程序。

FANUC用户宏B功能

FANUC用户宏B功能

FANUC-0I数控车用宏指令户说明书河北师大职技学院机械系FANUC用户宏B功能使用子程序编程可以重复同样的操作,简化程序的书写工作,但是用户宏B提供了更丰富的编程功能,它允许使用变量、算术和逻辑操作及条件分支,使得用户可以自行编辑软件包、固定循环程序。

一、变量(1)变量概述一个普通的零件加工程序指定G码并直接用数字值表示移动的距离,例:G100 X100.0。

而利用用户宏,既可以直接使用数字值也可以使用变量号。

当使用变量号时,变量值既可以由程序改变,也可以用MDI面板改变。

变量书写规格:当指定一个变量时,在#后指定变量号。

个人计算机允许赋名给变量,宏没有此功能。

例:#1也可以用表达式指定变量号,这时表达式要用方括号括起来。

例:#[#1+#2—12]变量值的范围:地方变量和公共变量可以有值0和在下述范围内的值:-1047~-10—19;10—29~1047,如果计算结果无效,发出111号报警。

忽略小数点:在程序中定义变量时,可以忽略小数点。

例:当#1=123被定义时,变量#1的实际值为123.000。

未定义的变量:当变量的值未定义时,这样的一个变量被看作“空”变量,变量#0总是“空”变量,是一个只读变量。

变量的类型:引用变量:为了在程序中引用变量,指定一个字地址其后跟一个变量号。

当用表达式指定一个变量时,须用方括号括起来。

例:G01 X[#1+#2] F#3。

引用的变量值根据地址的最小输入增量自动进行四舍五入。

例:G00 X#1;其中#1值为12.3456,CNC 最小输入增量1/1000mm ,则实际命令为G00 X12.346。

为了将引用的变量值的符号取反,在#号前加“—”号。

例:G00 X —#1;当引用一个未定义的变量时,忽略变量及引用变量的地址。

例:#1=0 ,#2=“空”,则G00 X#1 Y#2;的执行结果是G00 X0; 显示变量值:1)按键 MENUOFFSET 显示刀具补偿页面2)按软键[MACRO]显示宏变量页面 3)按输入一个变量号,然后按将光标移到输入的变量号的位置。

图文解说B类宏程序 实用的宏程序编程

图文解说B类宏程序  实用的宏程序编程

未定义的变量 当变量值未定义时,这样的变量成为“空”变量。变量#0 总是空变量。
它不能写,只能读。 (a)引用 当引用一个未定义的变量时,地址本身也被忽略。
(b)运算 除了用<空>赋值以外,其余情况下<空>与 0 相同。
当变量值是空白时,变量是空。 符号********表示溢出(当变量的绝对值大于 99999999 时)或下 溢出(当变量的绝对值小于 0.0000001 时)。 限制
·注意,相对误差可能大于 10-8。 自然对数#i=LN[#j]; ·当反对数(# j)为 0 或小于 0 时,发出 P/S 报警 No.111。 ·常数可以代替变量# j。 ·注意,相对误差可能大于 10-8。 指数函数#i=EXP[#j] ·当运算结果超过 3.65×1047(j 大约是 110)时,出现溢出并发出 P/S 报警 No.111。 ·常数可以代替变量#j。 ROUND(舍入)函数 ·当算术运算或逻辑运算指令 IF 或 WHILE 中 包含 ROUND 函数时,则 ROUND 函数在第 1 个小数位置四舍五入。 例: 当执行#1=ROUND[#2];时,此处#2=1.2345,变量 1 的值是 1.0。 ·当在 NC 语句地址中使用 ROUND 函数时,ROUND 函数根据地址 的最小 设定单位将指定值四舍五入。 例: 编制钻削加工程序,按变量#1 和#2 的值切削,然后返回到初始位置。 假定最小设定单位是 1/1000mm,变量#1 是 1.2345, 变量#2 是 2.3456, 则, G00 G91 X-#1;移动 1.235mm G01 X-#2 F300;移动 2.346mm G00 X[#1+#2];由于 1.2345+2.3456=3.5801,移动距离为 3.580,刀具 不会返回到初始位置。 该误差来自于舍入之前还是舍入之后相加。必须指定 G00 X-[ROUND[#1]+ROUND[#2]]以使刀具返回到初始位置。 上取整和下取整

FANUC系统数控车床B类宏程序编程应用

FANUC系统数控车床B类宏程序编程应用

FANUC系统数控车床B类宏程序编程应用虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。

可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

#1二#2+100G01 X#1 F0.3一、变量普通加工程序直接用数值指定和X100.0。

使用用户宏程序时, 当用变量时,变量值可用程序或用如:#2=30;G代码和移动距离;例如,G100数值可以直接指定或用变量指定。

MDI面板上的操作改变。

1、变量的表示变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中例如:#[#1+#2-12]2、变量的类型变量根据变量号可以分成四种类型3、变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-10 47到-10-290 10 -29到10 47如果计算结果超出有效范围,则发出P/S报警No.111.4、小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#仁123;变量#1的实际值是123.000。

5、变量的引用为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当G00X#1; 以 1/1000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00X12.346;。

改变引用的变量值的符号,要把负号(一)放在#的前面。

例如:G00X— #1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1的值是0 ,并且变量#2的值是空时,G00X#1 Z#2 的执行结果为G00X0。

6、未定义的变量(当变量值未定义时,这样的变量成为“空”变量。

图文解说FanucB类宏程序高级编程手册

图文解说FanucB类宏程序高级编程手册

宏程序数控程序中含有变量的程序称为宏程序。

虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。

例如型腔加工宏程序和用户开发固定循环。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

1.1 变量普通加工程序直接用数值指定G代码和移动距离;例如,G01 和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI 面板操作改变。

#1=#2+100;G01 X#1 F300;说明变量的表示一般编程方法允许对变量命名,但用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型。

变量值的范围局部变量和公共变量可以为0 值或下面范围中的值:-1047 到-10-29或10-29 到1047如果计算结果超出有效范围,则发出P/S 报警No.111小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1 的实际值是123.000。

变量的引用在地址后指定变量号即可引用其变量值。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当系统的最小输入增量为1/1000mm 单位,指令G00X#1,并将12.3456 赋值给变量#1,实际指令值为G00X12.346;。

改变引用变量的值的符号,要把负号(-)放在#的前面。

例如:G00X-#1;当引用未定义的变量时,变量及地址字都被忽略。

例如:n当变量#1 的值是0,并且变量#2 的值是空时,G00X#1 Y#2 的执行结果为G00X0;。

双轨迹(双轨迹控制)的公共变量对双轨迹控制,系统为每一轨迹都提供了单独的宏变量。

6-2B类宏程序

6-2B类宏程序

≥#1000
用于读和写CNC运行时各种数据的变化,例如刀具的当前位置 系统变量 和补偿值。各个系统变量的应用方法是固定的。分只读、只写 和可读写三类
2、 B类宏程序的变量表示与引用
①变量表示方法 一个变量由“#”和变量序号组成: #i (i=1、2、3、4…),例如:#5,#100,#2001 变量号可以用运算指令组成的表达式指定。此时,表达式必须封闭在括号 中。例如:#[#1+#2-12]
②变量引用
将地址符后的数值用变量来代替的方法称为变量引用。 如:X#01、Z#02、F#3 还可以用表达式进行表示。 如:X[#1+#2-10]
3、变量使用的注意事项:
(1)当在程序中定义变量时,小数点可以省略。 (2)在程序中引用变量,变量号须放在地址字符后。 (3)如改变引用的变量值的符号,要把负号“-”放在“#” 的前面。 (4)表达式可以用于表示变量号和变量,当用表达式指定 一个变量号或变量,须把表达式放在方括号“[ ]”中。 (5)当引用一个未定义的变量时,程序运行时将忽略变量 及引用变量的地址。 (6)程序号、程序段段号、任选段跳跃号不能使用变量。
5、B类用户宏程序的控制指令(语句):
①作用: 可通过语句改变程序的流向,让其反复运算执行,即可达到简化编 程的目的。
②种类:
(1)无条件转移(GOTO语句)
GOTO n
无条件跳转到顺序号(段号)为n的程序段中。顺序号必须位于程序段的 最前面。顺序号也可以用变量或<表达式>来代替。 (2)条件转移(IF 语句) I F [ <条件表达式> ] GOTO n 当条件满足时,程序就跳转到同一程序中顺序号为n的程序段上继续执 行,当条件不满足时,程序执行下一条语句

B类宏程序

B类宏程序

数控程序中含有变量的程序称为宏程序。

虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。

例如型腔加工宏程序和用户开发固定循环。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

1.1 变量普通加工程序直接用数值指定G代码和移动距离;例如,G01 和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI 面板操作改变。

#1=#2+100;G01 X#1 F300;说明变量的表示一般编程方法允许对变量命名,但用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型。

变量值的范围局部变量和公共变量可以为0 值或下面范围中的值:-1047 到-10-29或10-29 到1047如果计算结果超出有效范围,则发出P/S 报警No.111小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1 的实际值是123.000。

变量的引用在地址后指定变量号即可引用其变量值。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当系统的最小输入增量为1/1000mm 单位,指令G00X#1,并将12.3456 赋值给变量#1,实际指令值为G00X12.346;。

改变引用变量的值的符号,要把负号(—)放在#的前面。

例如:G00X—#1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1 的值是0,并且变量#2 的值是空时,G00X#1 Y#2 的执行结果为G00X0;。

双轨迹(双轨迹控制)的公共变量对双轨迹控制,系统为每一轨迹都提供了单独的宏变量。

FANUC系统数控车床B类宏程序编程应用

FANUC系统数控车床B类宏程序编程应用

FANUC系统数控车床B类宏程序编程应用虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。

可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

#1二#2+100G01 X#1 F0.3一、变量普通加工程序直接用数值指定和X100.0。

使用用户宏程序时, 当用变量时,变量值可用程序或用如:#2=30;G代码和移动距离;例如,G100数值可以直接指定或用变量指定。

MDI面板上的操作改变。

1、变量的表示变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中例如:#[#1+#2-12]2、变量的类型变量根据变量号可以分成四种类型3、变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-10 47到-10-290 10 -29到10 47如果计算结果超出有效范围,则发出P/S报警No.111.4、小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#仁123;变量#1的实际值是123.000。

5、变量的引用为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当G00X#1; 以 1/1000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00X12.346;。

改变引用的变量值的符号,要把负号(一)放在#的前面。

例如:G00X— #1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1的值是0 ,并且变量#2的值是空时,G00X#1 Z#2 的执行结果为G00X0。

6、未定义的变量(当变量值未定义时,这样的变量成为“空”变量。

FANUC系统数控车床B类宏程序编程应用

FANUC系统数控车床B类宏程序编程应用

FANUC系统数控车床B类宏程序编程应用虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。

可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

一、变量普通加工程序直接用数值指定 G代码和移动距离;例如, G100和 X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用 MDI 面板上的操作改变。

如:#2=30;#1=#2+100;G01 X#1 F0.31、变量的表示变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]2、变量的类型变量根据变量号可以分成四种类型。

3、变量值的范围局部变量和公共变量可以有 0 值或下面范围中的值:-1047到-10-29 0 10-29到 1047如果计算结果超出有效范围,则发出 P/S报警No.111.4、小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1的实际值是 123.000。

5、变量的引用为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当 G00X#1;以 1/1000mm 的单位执行时,CNC把 12.3456 赋值给变量#1,实际指令值为 G00X12.346;。

改变引用的变量值的符号,要把负号(一)放在#的前面。

例如: G00X—#1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1的值是 0,并且变量#2的值是空时,G00X#1 Z#2 的执行结果为 G00X0。

6、未定义的变量(当变量值未定义时,这样的变量成为“空”变量。

用户宏程序编程说明书

用户宏程序编程说明书

第十章用户宏程序用户宏程序功能可以使用变量、运算指令以及条件转移,使一般程序的编写变得更加容易。

加工程序可以用一个简单的指令调用用户宏程序,就像调用子程序一样。

10.1变量普通的加工程序直接用数值指定G代码和移动量,例如G00、X100.0。

使用用户宏程序时,除了可直接指定数值外,还可以指定变量号,可通过程序或对R参数表操作来改变数值。

如:#1=#2+100G01X#1F30010.1.1 变量的表达方式当指定一个变量时,在符号“#”的后面指定变量号。

#i(i=1,2,3,4,……)(例)#5#109#500或者使用后面将要叙述的“运算指令”项目中的<表达式>,按照如下方式表达。

#[<表达式>](例)#[#100]#[#500+1]#[#6/2]下面说明中的变量#i,可以用变量#[<表达式>]来替换。

10.1.2变量的种类根据变量号,可以将变量分为局部变量、公共变量、系统变量、各类变量的用途和特性各不相同。

10.1.3变量的范围局部变量和公共变量可使用下列范围内的任意值。

1. 局部变量(#1~#33)局部变量就是在宏内被局部使用的变量。

局部变量用于传输自变量,其与自变量地址之间的对应关系,请参阅宏程序调用指令的章节。

没有被传输自变量的局部变量,在初始状态下位0值,用户可以自由使用。

局部变量的属性为可读/写。

2. 公共变量(#100~#199、#500~#999)局部变量在宏内部被局部使用,而公共变量,则是在主程序、从主程序调用的各子程序、各个宏之间通用。

也即,在某一宏只使用的#i与在其他宏中使用的#i是相同的。

此外,有某一宏运算出来的公共变量#i,可以在别的宏中使用。

公共变量的用途没有在系统中确定,因此,用户可以自由使用。

公共变量的个数为600个公共变量,可以使用公共变量#100~#199和#500~#999,其中#100~#199将会由于电源切断而被清除,但是,#500~#999即使在电源切断之后仍会被保留起来。

图文解说B类宏程序

图文解说B类宏程序

宏程序数控程序中含有变量的程序称为宏程序。

虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。

例如型腔加工宏程序和用户开发固定循环。

使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。

1.1 变量普通加工程序直接用数值指定G代码和移动距离;例如,G01 和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI 面板操作改变。

#1=#2+100;G01 X#1 F300;说明变量的表示一般编程方法允许对变量命名,但用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型。

变量值的范围局部变量和公共变量可以为0 值或下面范围中的值:-1047 到-10-29或10-29 到1047如果计算结果超出有效范围,则发出P/S 报警No.111小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1 的实际值是123.000。

变量的引用在地址后指定变量号即可引用其变量值。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当系统的最小输入增量为1/1000mm 单位,指令G00X#1,并将12.3456 赋值给变量#1,实际指令值为G00X12.346;。

改变引用变量的值的符号,要把负号(—)放在#的前面。

例如:G00X—#1;当引用未定义的变量时,变量及地址字都被忽略。

例如:当变量#1 的值是0,并且变量#2 的值是空时,G00X#1 Y#2 的执行结果为G00X0;。

双轨迹(双轨迹控制)的公共变量对双轨迹控制,系统为每一轨迹都提供了单独的宏变量。

B类宏程序编制 赵军华37页PPT

B类宏程序编制  赵军华37页PPT
举例:O7100;
#1=0; #2=1; N1 IF [#2 GT 10] GOTO 2; #1=#1+#2; #2=#2+1; GOTO 1; N2 M30;
13
6.3.2 控制指令
3、循环(WHILE语句) 格式:WHILE [条件式] DO m; …… END m;
式中:m——循环执行范围的识别号,只能是1、 2和3,否则系统报警
B
#2
J4
#14
J8
#26
C
#3
K4
#15
K8
#27
I1
#4
I5
#16
I9
#28
J1
#5
J5
#17
J9
#29
K1
#6
K5
#18
K9
#30
I2
#7
I6
#19
I10
#31
J2
#8
J6
#20
J10
#32
K2
#9
K6
#21
K10
#33
I3
#10
I7
#22
J3
#11
J7
#23
K3
#12
K7
#24
注:① 任何自变量前必须指定G65;② I、J、K的下标用于确定自变量指定顺序, 在编程中不写。
3
6.1.2 变量的类型和功能
变量号
变量类型
#0

#1-#33
00~#999 保持型
公共变量
#1000
系统变量
功能
该变量值总为空
只能用在宏程序中存储数据, 例如,运算结果。当断电时局 部变量被初始化为空。调用宏 程序时,自变量对局部变量赋 值。 在不同的宏程序中的意义相同。 当断电时,变量#100~#199 初始化为空。变量#500~ #999的数据保存,即使断电 也不丢失。 固定用途的变量
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

变 次


序、、






2.控制指令
1、无条件转移(GOTO语句) -格式:GOTO n; -式中:n——顺序号(1~9999),可用变量表示。 -举例:GOTO 1;
GOTO #10;
2、条件转移(IF语句) -格式:IF[条件式]GOTO n; -条件式:
#j EQ #k #j 是否= #k #j GT #k
#4001 #4003 #4014 #4009 #4010
例如: #33 = #4003 ( 如果当前程序执行G90,变量号#33=90 )
位置信息
局部变量的级别
模态调用(G66)
用G代码调用宏程序的参数号和程序号之间的对应关系
• 用M代码调用宏程序的参数号和程序号之间的对应关系
用M代码调用子程序的参数号和程序号之间的对应关系
用户宏程序应用实例①续
被调用的程序: O9500; G81 Z#26 R#18 F#9 L0;-----钻孔循环,也可以使用K0 WHILE [#11 GT 0] DO 1;---直到剩余孔数为0 #5 = #24+#4*COS[#1];------计算X轴上的孔位 #6 = #25+#4*SIN[#1];------计算Y轴上的孔位 X#5 Y#6;------------------移动到目标位置后执行钻孔 #1 = #1+#2;---------------更新角度 #11 = #11-1;--------------孔数-1 END 1; G80;----------------------取消固定循环加工 M99;
-注意:DO—END循环能够按需要使用多次,即 循环嵌套。
循环嵌套:
DO--END循环嵌套: WHILE [条件式1] DO 1; …… WHILE [条件式2] DO 2; …… WHILE [条件式3] DO 3; …… END 3; …… END 2 …… END 1;
2.控制指令
-IF语句举例: 计算数值1-10的总和 O0001; #1=0; #2=1; N1 IF [#2 GT 10] GOTO 2; #1=#1+#2; #2=#2+1; GOTO 1; N2 M30;
母作为 地址。
-自变量赋值Ⅱ-------使用A、B、C各1次,I、J、K 10 次为地 址,用于传递诸如三维坐标值的变量。
自变量赋值Ⅰ的地址与变量号码之间的对应关系
自变量赋值II的地址与变量号码之间的对应关系
#1 A #8 J2 #15 K4 #22 I7 #29 J9 #2 B #9 K2 #16 I5 #23 J7 #30 K9 #3 C #10 I3 #17 J5 #24 K7 #31 I10 #4 I1 #11 J3 #18 K5 #25 I8 #32 J10 #5 J1 #12 K3 #19 I6 #26 J8 #33 K10 #6 K1 #13 I4 #20 J6 #27 K8 #7 I2 #14 J4 #21 K6 #28 I9
刀具补偿(储存器A)
Offset 1 2 99 200
Variable No #2001 - #10001 #2002 - #10002
#2099 - #10099 #2200 - #10200
当刀具偏置组数大于200时使用#10000+No.
刀具补偿(储存器C)
Offset
H
Geometry Wear
功能 程序号 S 代码 T 代码
例如 : #100 = #4120 ( 储存刀具号码至变量 #100 )
G代码明细
代码 G00, G01, G02, G03 G90, G91 G54, G55, G56 ~G59 G73, G76, G81~G89 G98, G99
组别 01 03 14 09 10
• 一般的手编程序没有的指令也可以用宏程序来编制。
学习目标和重点
目标: • 学习和了解用户宏程序的编程思路和程序结构。 • 掌握宏程序的调用规定及其特点。 • 中等难度的零件能运用宏程序编制加工程序。
重点: • 宏程序各种控制指令的灵活应用及技巧。 • 编制宏程序时数学模型的建立、数学关系的表达思
实训项目:宏程序椭圆铣削加工
假定椭圆长轴(X向)、短轴(Y向)半长分别为A和B。 编程条件:编程原点在椭圆中心,长轴A=50,短轴B=30,椭圆轮廓为外轮廓,下 刀点在椭圆右极限点,刀具直径φ18,加工深度10mm。
O0005; G90 G54 G00 G17 G40; G43 Z50. H01 ; M03 S1000; X60. Y-15.; Z5. M08; G01 Z-12. F800 ; G42 X50. Y0. D01 F100; #1 = 0.5;(θ变量初始值0.5度)
• 掌握宏程序的调用方式、编程特点和使用技巧。 应具有熟练运用宏程序使数控加工程序简化的能 力。
• 尽管子程序对重复性的相同操作很有用,但仍不 能和宏程序相提并论。用户宏程序功能允许使用 变量、算术和逻辑运算、以及条件分支控制,这 便于普通加工程序的发展,如发展成打包好的自 定义的固定循环。
D
Geometry Wear
1 #2001 #2201 #2401 #2601
2 #2002 #2202 #2402 #2602
-
200 #2200 #2400 #2600 #2800
>200 #11000+ #10000+ #13000+ #12000+
(H) G90 G10 L10 P2 R5. same #2002 = 5. (D) G90 G10 L11 P2 R4. same #2402 = 4.
2.变量的类型和功能
宏程序调用
1. 宏程序调用指令
-格式:G65 P___ L___ <自变量赋值> ;
-式中:P-----宏程序号;
-
L-----重复调用次数(1~9999,1次时L可省略)
- <自变量赋值>----用以对宏程序中的局部变量赋值。
- 自变量赋值是由地址及数值构成。
2 .自变量赋值 -自变量赋值Ⅰ-------使用除去G、L、N、O、P以外的其他字
用户宏程序B 基础编程
本说明参考FANUC Series 16M 牧野中国PM应用部
序言
用户宏程序是由客户自己编制独立的程序(如自动循环,模式功能) 登记在存储器里,同子程序一样,必要时在程序里调用的客户独自的 程序。在这里讲的宏程序跟一般的数控程序不同,对动作和功能用特
。 定的变量通用化的程序,使类似的加工和动作可通用的程序
加工时间输入
用户宏程序应用实例①
【例1】圆周等份孔加工:在半径I的圆周上钻削H个等分孔,已知加工第一个 孔的起始角度为A,相邻两孔之间角度的增量为B,圆周中心坐标为(x,y)。
宏程序调用程序: O0003; G90 G54 G00 X0 Y0 Z100.; M03 S800; G65 P9500 X100. Y50. R10. Z-20. F300 I100. A60. B30. H4; G00 X0 Y0 Z100.; M30;
• 特点
• 用户宏程序,除了G01 X_Y_ 等指令以外,可使用加法、除法等四则运算和三 角函数、平方根等,如像个人计算机似的可编制客户独自的软件。
• 例如:依次的进刀量逐渐改变的固定循环、作为NC功能没有具备的椭圆程序、 由立铣刀加工模式化的型腔等。
• 如果编程人员认为宏程序编程可能更简单的话,那么他们可以把机床的数控 程序根据个人的喜好改变为更适合自己的宏程序。
V
注意点
自变量赋值Ⅰ • 地址G,L,N,O,和P不能在自变量中使用。 • 不需要指定的地址可以省略,对应于省略地址的局部变量设为空。 • 地址不需要按字母顺序指定。但I,J,K需要按字母顺序指定。
自变量赋值II • I,J,K需要按字母顺序指定。 I,J,K的下标用于确定自变量指定的顺
序,在实际编程中不写。
用户宏程序应用实例②续
被调用的程序: O9800; #101 = #1;-----------------半球体的半径赋值给#101 #102 = #2;-----------------刀具的半径赋值给#102 #103 = #1-#2;--------------计算出X轴的起刀点 #104 = #7;-----------------第一刀的切入角度赋值给#104 G00 X[#103] ; G01 Z0 F120; WHILE [#104 LE 90] DO 1;---直到切入角度为90度 #110 = #103 *COS[#104];----计算X轴上的入刀位 #120 = #103 *SIN[#104];----计算Z轴上的入刀位 G01 X[#110] Z-[#120] F80 ;-斜向切入到位 G02 I-[#110];--------------顺时针圆弧插补一周 #104 = #104+#7;------------更新下一刀的切入角度 END 1; M99;
X, Y, Z X, Y, Z X, Y, Z X, Y, Z X, Y, Z X, Y, Z X, Y, Z
模态信息
变量号 #4000~21 #4107 #4109 #4111 #4113 #4114
功能 G 代码明细 D 代码 F 代码 H 代码 M 代码 顺序号
变量号 #4115 #4119 #4120
#j 是否> #k #j GE #k
#j 是否≥ #k
#j NE #k #j 是否≠ #k #j LT #k #j 是否< #k #j LE #k #j 是否≤ #k
2.控制指令
3、循环(WHILE语句)-格式:WHILE [条件式] DO m;
-
……
相关文档
最新文档