数控车FANUC系统宏程序教案[1].doc
《数控车FANUC系统宏程序教案[1].doc》由会员分享,可在线阅读,更多相关《数控车FANUC系统宏程序教案[1].doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、宏 程 序 设 计宏程序与子程序类似,对编制相同加工的操作可以使程序简化.同时宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序设计。使相同加工操作的程序更方便,更灵活。本章以FANUC系统为例介绍宏程序设计的内容。12.1 变量的定义 宏程序中使用的变量与日常生活中使用的变量不同,变量用符号“#”后跟变量的变量号指定。变量可分为四种类型。 1. 空变量 #0为空变量,该变量不能赋值。 2. 局部变量 #1#33为局部变量,局部变量只能在宏程序中存储数据。当断电时局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值。局部变量的数值范围10-291047或-1047-1
2、0-29,如果计算结果超过该范围则发出P/S报警No.111。 3. 公共变量 #100#199、#500#999为公共变量,公共变量在不同的宏程序中意义相同。当断电时,变量#100#199被初始化为空,变量#500#999的数据不会丢失。全局变量的数值范围10-291047或-1047-10-29,如果计算结果超过该范围则发出P/S报警No.111。 4. 系统变量 #1000为系统变量,系统变量用于读和写CNC运行时的各种数据,如刀具的当前位置和补偿 值等。 5. 变量与地址(自变量)的对应关系系统可用两种形式的自变量指定,表12-1为自变量指定I的自变量与变量的对应关系。表12-2为自变
3、量指宾II的自变量与变量的对应关系。表12-1 自变量指定I的变量对应关系地址(自变量)变量号地址(自变量)变量号地址(自变量)变量号A#1I#4T#20B#2J#5U#21C#3K#6V#22D#7M#13W#23E#8Q#17X#24F#9R#18Y#25H#11S#19Z#26在自变量指定I中,G、L、O、N、P不能用,地址I、J、K必须按顺序使用,其它地址顺序无要求。举例:G65 P3000 L2 B4 A5 D6 J7 K8 正确(J、K符合顺序要求)在宏程序中将会把4赋给#2,把5赋给#1,把6赋给#7,把7赋给#5,把8赋给#6 举例:G65 P3000 L2 B3 A4 D5
4、K6 J5 不正确(J、K不符合顺序要求)表12-2 自变量指定II的变量对应关系地址(自变量)变量号地址(自变量)变量号地址(自变量)变量号A#1K3#12J7#23B#2I4#13K7#24C#3J4#14I8#25I1#4K4#15J8#26J1#5I5#16K8#27K1#6J5#17I9#28I2#7K5#18J9#29J2#8I6#19K9#30K2#9J6#20I10#31I3#10K6#21J10#32J3#11I722K10#33 自变量指定II使用A、B、C和1次,使用I、J、K各10次。 系统能够自动识别自变量指定I和自变量指定II并赋给宏程序中相应的变量号。如果自变量指
5、定I和自变量指定II混合使用,则后指定的自变量类型有效。 举例:G65 A1.0 B2.0 I-3.0 I4.0 D5.0 p1000宏程序中:#1:1.0#2:2.0,#3:#4:-3.0#5:#6:#7:5.0 说明:I4.0为自变量指定II,D为自变量指定I,所以#7使用指定类型中的D5.0,而不使用自变量指定II中的I4.0。6. 本级变量#1#33作用于宏程序某一级中的变量称为本级变量,即这一变量在同一程序级中调用时含义相同,若在另一级程序(如子程序)中使用,则意义不同。本级变量主要用于变量间的相互传递,初始状态下未赋值的本级变量即为空白变量。 局部变量#1#33(一个宏程序中的同名
6、变量)从0到4级,主程序是0级。每调用一个含有同名变量的宏程序,级别加1,前一级的变量被保存。当一个宏程序结束(执行M99)时,级别减1。例如:主程序宏程序宏程序宏程序宏程序(0级)(1级)(2级)(3级)(4级)O0001O0002O0003O0004 O0005#1=1;#1=2#1=3#1=4#1=5G65P2A2;G65P3A3G65P4A4G65P5P5M99M30M99M99M9912.2 变量的运算 对宏程序中的变量可以可以进行算术运算和逻辑运算。 1. 算术运算 可以进行加、减、乘、除运算。运算功能和格式如表12-3所示。举例:G00X#1+#2X坐标的值是变量1与变量2之和。
7、 2. 三角函数计算对宏程序中的变量可进行正弦(SIN)、反正弦(ASIN)、余弦(COS)、反余弦(ACOS)、正切(TAN)、反正切(ATAN)函数运算。三角函数中的角度以度为单位。运算功能和格式如表12-3所示。表12-3 变量运算功能表类型功能格式举例备注算术运算加法#i=#j+#k#1=#2+#3常数可以代替变量减法#i=#j-#k#1=#2-#3乘法#i=#j*#k#1=#2*#3除法#I=#j*#k#1=#2/#3三角函数运算正弦#i=SIN#j#1=SIN#2角度以度指定3530表示为35.5常数可以代替变量反正弦#i=ASI#j#1=ASIN#2余弦#i=COS#j#1=CO
8、S#2反余弦#i=ACOS#j#1=ACOS#2正切#i=TAN#j#1=TAN#2反正切#i=ATAN#j#1=ATAN#2其它函数运算平方根#i=SQRT#j#1=SQRT#2常数可以代替变量绝对值#i=ABS#j#1=ABS#2舍入#i=ROUN#j#1=ROUN#2上取整#i=FIX#j#1=FIX#2下取整#i=FUP#j#1=FUP#2自然对数#i=LN#j#1=LN#2指数对数#i=EXP#j#1=EXP#2逻辑运算与#i=#jAND#k#1=#2AND#2按位运算或#i=#j OR #k#1=#2OR#2异或#i=#j XOR #k#1=#2XOR#2转换运算BCD转BIN#i
9、=BIN#j#1=BIN#2BIN转BCD#i=BCD#j#1=BCD#2对于反反正弦(ASIN)取值范围如下: 当参数(No.6004#0)NAT位设为0时:27090 当参数(No.6004#0)NAT位设为1时:-9090 当#j超出-11时发出P/S报警No.111。对于反余弦(ACOS)的取值范围如下: 取值范围1800 当#j超出-11时发出P/S报警No.111。对于反正切(ATAN)的取值范围如下: 当参数(No.6004#0)NAT位设为0时:0360 当参数(No.6004#0)NAT位设为1时:-1801803. 其它函数计算对宏程序中的变量还可以进行平方根(SQRT)、
10、绝对值(ABS)、舍入(ROUN)、上取整(FIX)、下取整(FUP)、自然对数(LN)、指数(EXP)运算。运算功能和格式如表12-3所示。对于自然对数LN#j,相对误差可能大于10-8。当#j0时,发出P/S报警No.111。对于批数函数EXP#j,相对误差可能大于10-8。当运算结果大于3。651047(j大约110)时,出现溢出并发出P/S报警No.111。对于取整函数ROUN#j,根据最小设定单位四舍五入。例如,假设最小设定单位为1/1000mm,#1=1.2345,则#2=ROUN#1的值是1.0。对于上取整FIF#j,绝对值值大于原数的绝对值。对于下取整FUP绝对值小于原数的绝对
11、值。例如,假设#1=1.2,则#2=FIX#1的值是2.0。 假设#1=1.2,则#2=FUP#1的值是1.0。 假设#1=-1.2,则#2=FIX#1的值是-2.0。 假设#1=-1.2,则#2=FUP#1的值是-1.0。4. 逻辑运算对宏程序中的变量可进行与、或、异或逻辑运算。逻辑运算是按位进行。运算功能和格式如表12-3所示。5. 数制转换变量可以在BCD码与二进制之间转换。 6. 关系运算 由关系运算符和变量(或表达式)组成表达式。系统中使用的关系运算符如下。 (1)等于(EQ)用EQ与两个变量(或表达式)组成表达式,当运算符EQ两边的变量(或表达式)相等时,表达式的值为真,否则为假。
12、例如,#1EQ#2,当#1与#2相等时,表达式的值为真。 (2)不等于(NE)用NE与两个变量或表达式组成表达式,当运算符NE两边的变量(或表达式)不相等时,表达式的值为真,否则为假。例如,#1NE#2,当#1与#2不相等时,表达式的值为真。 (3)大于等于(GE)用GE与两个变量或表达式组成表达式,当左边的变量(或表达式)大于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。例如,#1GE#2,当#1大于或等于#2时,表达式的值为真。否则为假。 (4)大于(GT)用GT与两个变量或表达式组成表达式,当左边的变量(或表达式)大于右边的变量(或表达式)时,表达式的值为真,否则为假。例如,
13、#1GT#2,当#1大于#2时,表达式的值为真。否则为假。 (5)小于等于(LE)用LE与两个变量或表达式组成表达式,当左边的变量(或表达式)小于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。例如,#1LE#2,当#1小于或等于#2时,表达式的值为真。否则为假。 (6)小于(LT)用LT与两个变量或表达式组成表达式,当左边的变量(或表达式)小于右边的变量(或表达式)时,表达式的值为真,否则为假。例如,#1GE#2,当#1大于#2时,表达式的值为真。否则为假。 7. 运算优先级运算符的优先顺序是(1)函数。函数的优先级最高。(2)乘、除、与运算。乘、除、与运算的优先级次于函数的优先级
14、。(3)加、减、或、异或运算。加、减、或、异或运算的优先级次于乘、除、与运算。乘、除、与运算的优先级。 (4)关系运算。关系运算的优先级最低。 用方括号可以改变优先级,括号不能超过5层。超过5层时,发出P/S报警No.111。 8. 变量值的精度变量值的精度为8位十进制数。例如,用赋值语句#1=9876543210123.456时,实际上#1=9876543200000.000。 用赋值语句#2=9876543277777.456时,实际上#1=9876543300000.000。12.3 宏程序结构宏程序从结构上可以有顺序结构、分支结构和循环结构。本节介绍分支和循环结构的实现方法。 1. 无
15、条件转移(GOTO) 格式:GOTOn;n为顺序号(19999)例如,GOTO6; 语句组 N6 G00X100; 执行GOTO6语句时,转去执行标号为N6的程序段。 2. 条件转移(IF) 格式:IF关系表达式GOTOn;例如,IF#1LT30 GOTO7 语句组 N7G00X100X5 如果#1大于30,转去执行标号为N7的程序段,否则执行GOTO7下面的语句组。 3. 条件转移(IF) 格式:IF表达式THEN THEN后只能跟一个语句。例如,IF#1EQ#2THEN#3=0; 当#1等于#2时,将0赋给变量#3。4. 循环(WHILE)格式:WHILE关系表达式DO m; 语句组; E
16、ND m;当条件表达式成立时执行从DO到END之间的程序,否则转去执行END后面的程序段。例如,#1=5;WHILE#1LE30DO 1; #1=#1+5; G00X#1Y#1;END 1;M99; 当#1小于等于30时,执行循环程序,当#1大于30时结束循环返回主程序。12.4 宏程序的调用与返回 1. 宏程序的简单调用宏程序的简单调用是指在主程序中,宏程序可以被单个程序段单次调用。调用指令格式:G65P(宏程序号)L(重复次数)(变量分配)其中:G65宏程序调用指令P(宏程序号)被调用的宏程序代号;L(重复次数)宏程序重复运行的次数,重复次数为1时,可省略不写;(变量分配)为宏程序中使用的
17、变量赋值。宏程序与子程序相同的一点是,一个宏程序可被另一个宏程序调用,最多嵌套4层。2. 宏程序的开始与返回宏程序的编写格式与子程序相同。其格式为:O0010(00018999为宏程序号) /程序名N10 /指令 N30 M99 /宏程序结束 宏程序以程序号开始,以M99结束。12.5 宏程序应用举例例1:加工如图12-1所示的椭圆表面,材料为中碳钢。由于一般的数控系统无椭圆插补功能,手工编程可用宏程序实现编程计算。本例使用20键槽铣刀分两层铣削,每一次切削深度为5mm。按刀具刀具轨迹编程。图12-1 椭圆轮廓图主程序O0001N0001 G92X0.0Y0.0Z150.0;工件坐标系原点设在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数控 FANUC 系统 程序 教案
限制150内