第七章 宏指令编程 A类宏指令 一、教学目的与要求 1.了解宏指令的概念、种类、特点及应用场合。 2.熟记A类宏指令的书写格式。 3.掌握宏指令的一般编程思路。 4.在数控机床上能熟练完成宏程序相关操作。 5.能应用宏指令完成相应零件的编程与加工。 6.能正确选择硬质合金刀具的切削用量。 二、教学重点与难点 宏程序编程的思路与步骤。 宏指令程序的编制。 三、实例导入 如何用A类宏程序完成如图7—1所示零件的加工。 四、理论讲授 在数控加工中把除了直线与圆弧之外,轮廓外形可以用数学表达式的形式给出的曲线称为非圆方程曲线,其表达式可以用直角坐标、极坐标、参数方程等多种形式给出。还有些轮廓形状是通过实验或测量的方法得到的,这些通过实验或测量得到的数据,在图样上是以坐标点的表格形式给出,我们把这类轮廓曲线称为列表曲线。为完成这些特殊曲线的加工,FANUC系统提供了具有相应功能的用户宏指令。采用这些方法不但可以完成上述曲线的编程而且还有利于程序的模块化。 用户宏程序是FANUC数控系统及类似产品中的特殊编程功能。所谓用户宏程序其实质与子程序相似,它也是把一组实现某种功能的指令,以子程序的形式事先存储在系统存储器中,通过宏程序调用指令执行这一功能。在主程序中,只要编入相应的调用指令就能实现这些功能。 一组以子程序的形式存储并带有变量的程序称为用户宏程序,简称宏程序;调用宏程序的指令称为“用户宏程序命令”,或宏程序调用指令。 宏程序与普通程序相比较,一般程序的程序字为常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。而用户宏程序本体中可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理,从而可以使用宏程序执行一些有规律变化的动作。 用户宏程序分为A、B两种。一般地,在一些较老的FANUC系统(如FANUC-0MD)中采用A类宏程序,而在较为先进的系统(如FANUC-OI)中则采用B类宏程序。 宏指令的分类 在FANUC系统提供的用户宏程序可分为A、B两种。一般地,在一些较老的FANUC系统 (如FANUC-0MD)中采用A类宏程序,而在较为先进的系统(如FANUC-OI)中则采用B类宏程序。 A类宏程序的变量表达方式 在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址,为了使程序更具有通用性更加灵活,在宏程序中设置了变量。 1.变量的表示 一个变量由#符号和变量组成,如:#I(I=1,2,3,…)。如下例所示: 例 #100,#500,#5等 2.变量的引用 将跟随在地址后的数值用变量来代替,即引入变量。 例 G011X#100Y-#110F#120;当#100=300.0、#110=80.0、#120=800时。 上式即表示为G011X300.0Y-80.0F800; 3.变量的种类 变量分局部变量,公共变量(全局变量)和系统变量三种。 局部变量#1~#33 局部变量是一个在宏程序中局部使用的变量。当宏程序A调用宏程序B而且都有变量#1时,由于变量#1服务于不同的局部,所以A中的#1与B中的#1不是同一个变量,因此可以赋于不同的值,相互间互不影响。 公共变量#100~#149、#500~#549 公共变量贯穿于整个程序过程,同样,当宏程序A调用宏程序B而且都有变量#100时,由于#100是全局变量,所以A中的#100与B中的#100是同一个变量。 系统变量 系统变量是指有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置值变量、接中的输入与输出信号变量、位置信号变量。 (三)变量的数学运算和转移指令 如表7—1所示A类宏指令的运算具有功能强大的运算与转移指令。 G码 H码 功 能 定 义 G65 H01 定义、替换 #I=#j G65 H02 加 #I=#j+#k G65 H03 减 #I=#j-#k G65 H04 乘 #I=#j×#k G65 H05 除 #I=#j÷#k G65 H11 逻辑或 #I=#j OR #k G65 H12 逻辑与 #I=#j AND #k G65 H13 异或 #I=#j XOR #k G65 H21 平方根 #I=#j G65 H22 绝对值 #I=|#j| G65 H23 求余 #I=#j-trunc(#j÷ #k)×#k G65 H2码二进制码 #I=BIN(#j) G65 H25 二进制码码 #I=BCD(#j) G65 H26 复合乘/除 #I=(#i ×#j)÷#k G65 H27 复合平方根1 #I=(#j2+#k2)开根号 G65 H28 复合平方根2 #I=(#j2-#k2)开根号 G65 H31 正弦 #I=#j×SIN(#k) G65 H32 余弦 #I=#j×cos(#k) G65 H33 正切 #I=#j×TAN(#k) G65 H34 反正切 #I=ATAN(#j/#k) G65 H80 无条件转移 GOTO n G65 H81 条件转移1(EQ) IF #j=#k,GOTO n G65 H82 条件转移2(NE) IF #j#k,GOTO n G65 H83 条件转移3(GT) IF #j #k,GOTO n G65 H84 条件转移4(LT) IF #j #k,GOTO n G65 H85 条件转移5(GE) IF #j#k,GOTO n G65 H86 条件转移6(LE) IF #j#k,GOTO n G65 H99 产生P/S报警 P/S报警号500+n出现 1.宏程序的运算指令 宏程序的运算命令通过指令G65的不同表达形式实现,其指令的一般形式为: G65 H m P # i Q # j R # k ; 格式中各参数的意义如下: m:可以是01~99,表示运算命令或转移命令的功能; # i:存放运算结果的变量; # j:需要运算的变量1;也可以是常数,常数可以直接表示,不带“#”; # k:需要运算的变量2,也可以是常数,常数可以直接表示,不带“#”; 指令所代表的意义为:#i = #j ○ # k;○代表运算符号,它由H m指定。 如:G65 H 02 P #100 Q #101 R #102 ;表示 #100 = #101+ #102 ; G65 H 03P #100 Q #101 R15; 表示 #100 = #101-15 ; G65 H 03P #100 Q-100 R #102; 表示 #100 =-100×#102; G65 H 04P #100 Q-100 R #102; 表示 #100 =-100÷#102等等。 变量值不含小数点#100 = 10时,X # 100代表0.01mm。另外,用G65指定的H代码,对偏置的选择没有任何影响。度指定单位是。在各运算中当必要的QR没指定时其值作为参加运算H、P、Q、R都必须写在G65之后,因此可以在G65以前的地址只有O、N。 由于变量值只取整数,当运算结果出现小数点后的数值时,其值将被舍掉。另外,还应注意宏程序的运算顺序与普通运算的区别。 例:若# 100 = 35,# 101 = 10,# 102 = 5依次执行如下指令,其运算结果如下: #
宏指令编程.doc
下载此电子书资料需要扣除0点,