分享
分享赚钱 收藏 举报 版权申诉 / 75

类型宏程序设计.ppt

  • 上传人:dreamzhangning
  • 文档编号:5752533
  • 上传时间:2019-03-15
  • 格式:PPT
  • 页数:75
  • 大小:1.24MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    宏程序设计.ppt
    资源描述:

    1、数控加工工艺与编程 第6章 宏程序设计,宏程序与子程序类似,编制宏程序可以使程序更加简化。宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序设计。宏程序和子程序的调用区别在于用G65指令,在调用宏程序时还可以在主程序中为宏程序中的变量赋值。使程序设计更方便,更灵活。本章以FANUC oi-MA系统为例介绍宏程序设计的内容。,第六章 宏程序设计,了解变量的概念、变量的计算方法,变量的引用方法。了解宏程序的调用方法,变量的赋值方法,通过实例理解和掌握宏程序的设计和调用方法。,教学目的:,第六章 宏程序设计,学习内容与知识点:,变量的使用是宏程序最主要的特征。在宏程序中,地址后

    2、除了可以直接跟数值以外,还可使用各种变量,变量的值可以通过程序改变或通过MDI操作面板输入。执行宏程序时,变量随着设定值的变化而变化,使宏程序具有共性和通用性。,6.1 变量,6.1.1 变量的引用,1. 变量的表示 FANUC oi-MA系统中使用的变量与计算机语言中的变量表示不同,变量用符号“#”后跟数字指定。变量的格式如下: # “#”符号后跟数字。例如,#5、#99、#150、#2345均属于变量,6.1.1 变量的引用,2. 变量的引用 在程序中,可以使用“变量”直接代替“地址”后的数值,称为变量的引用。如G01 X#20O中的地址X就是引用了“变量”#200。如果在程序中引用了变量

    3、,程序中引用变量的“字地址”后的数值是通过“变量”决定。 如:对于F#120, 当变量 #120=15时,它与F15指令字相同;Z-#125, 当变量 #125=250时,与Z-250指令字相同; 在用户宏程序中,大部分地址后的数值可以使用“变量”进行指定。“变量”可以通过三种方式进行赋值。 (1)调用宏程序时,在主程序中对宏程序中的“变量”直接赋值。 (2)通过数控系统的操作面板,对“变量”进行事先设置。 (3)在用户宏程序本体中,通过赋值指令对“变量”进行赋值。使用变量时应注意以下几个问题: (1)地址O和N不能引用变量。如O#155、N#165等指令都是错误的。 (2)变量的值不能超过对

    4、应地址所规定的最大指令值范围,如对于M指令只能是两位数,若 #110=120,则M#110不能使用。 (3)变量值可以显示在数控系统的显示器上,也可以用系统的输入/输出面板给“变量”赋值,其操作方法应参见数控系统的使用说明书。,6.1.2 变量的类型,1. 空变量#0为空变量,该变量不能赋值。2. 局部变量#1#33为局部变量,在不同的宏程序中使用同一变量,其含义和数值可能不同。当断电时局部变量被初始化为空,主程序调用调用宏程序时,自变量对局部变量赋值。局部变量的数值范围10-291047或-1047-10-29,如果计算结果超过该范围则发出P/S报警No.111。3. 公共变量#100#19

    5、9、#500#999为公共变量,在不同的宏程序中使用同一个公共变量,可以具有相同的含义和数值。当断电时,变量#100#199被初始化为空,变量#500#999的数据不会丢失。全局变量的数值范围10-291047或-1047-10-29,如果计算结果超过该范围则发出P/S报警No.111。,6.1.2 变量的类型,4. 系统变量#1000及其以后为系统变量,系统变量用于读和写CNC运行时的各种数据,如刀具的当前位置和补偿值等。常用系统变量意义如表6-1所示。系统变量的详细使用请参阅FANUC 0i-MA系统操作说明书,在不清楚系统变量的作用时,不要随便改变系统变量的值,否则可能导致系统工作不正常

    6、。,6.1.2 变量的类型,表6-1系统变量,对变量可以进行算术运算、关系运算、逻辑运算,还可以进行三角函数运算、其它函数运算、数制转换运算。,6.2 变量的运算,1. 算术运算可以进行加、减、乘、除运算。运算功能和格式如表6-2所示。举例:G00 X#1+#2X坐标的值是变量1与变量2之和。,6.2 变量的运算,表6-2 算术运算功能表,2. 逻辑运算对宏程序中的变量可进行与、或、异或逻辑运算。逻辑运算是按位进行。运算功能和格式如表6-3所示。,6.2 变量的运算,表6-3 变量逻辑运算功能表,6.2 变量的运算,3. 关系运算由关系运算符和变量(或表达式)组成表达式。系统中使用的关系运算功

    7、能和格式如表6-4所示。,表6-4 变量关系运算功能表,6.2 变量的运算,(1)等于(EQ) 用EQ与两个变量(或表达式)组成表达式,当运算符EQ两边的变量(或表达式)相等时,表达式的值为真,否则为假。 例如,#1EQ#2,当#1与#2相等时,表达式的值为真。 (2)不等于(NE) 用NE与两个变量或表达式组成表达式,当运算符NE两边的变量(或表达式)不相等时,表达式的值为真,否则为假。 例如,#1NE#2,当#1与#2不相等时,表达式的值为真。 (3)大于等于(GE) 用GE与两个变量或表达式组成表达式,当左边的变量(或表达式)大于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。

    8、 例如,#1GE#2,当#1大于或等于#2时,表达式的值为真。否则为假。,(4)大于(GT) 用GT与两个变量或表达式组成表达式,当左边的变量(或表达式)大于右边的变量(或表达式)时,表达式的值为真,否则为假。例如,#1GT#2,当#1大于#2时,表达式的值为真。否则为假。 (5)小于等于(LE) 用LE与两个变量或表达式组成表达式,当左边的变量(或表达式)小于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。例如,#1LE#2,当#1小于或等于#2时,表达式的值为真。否则为假。 (6)小于(LT) 用LT与两个变量或表达式组成表达式,当左边的变量(或表达式)小于右边的变量(或表达式)

    9、时,表达式的值为真,否则为假。例如,#1GE#2,当#1大于#2时,表达式的值为真。否则为假。,6.2 变量的运算,6.2 变量的运算,4. 三角函数运算对宏程序中的变量可进行正弦(SIN)、反正弦(ASIN)、余弦(COS)、反余弦(ACOS)、正切(TAN)、反正切(ATAN)函数运算。三角函数中的角度以度为单位。运算功能和格式如表6-5所示。,表6-5 变量三角函数运算功能表,对于反正弦(ASIN)取值范围如下:当参数(No.6004#0)NAT位设为0时:27090当参数(No.6004#0)NAT位设为1时:-9090当#j超出-11时发出P/S报警No.111。 对于反余弦(ACO

    10、S)的取值范围如下:取值范围1800当#j超出-11时发出P/S报警No.111。 对于反正切(ATAN)的取值范围如下:当参数(No.6004#0)NAT位设为0时:0360当参数(No.6004#0)NAT位设为1时:-180180 举例:G01 X#1*COS#3 Y#1*SIN#3,6.2 变量的运算,6.2 变量的运算,5. 其它函数运算对宏程序中的变量还可以进行平方根(SQRT)、绝对值(ABS)、舍入(ROUN)、上取整(FIX)、下取整(FUP)、自然对数(LN)、指数(EXP)运算。运算功能和格式如表6-6所示。,表6-6 变量其它函数运算功能表,6.2 变量的运算,对于自然

    11、对数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。对于上取整FIX#j,绝对值值大于原数的绝对值。对于下取整FUP绝对值小于原数的绝对值。 例如,假设#1=1.2,则#2=FIX#1的值是2.0。假设#1=1.2,则#2=FUP#1的值是1.0。假设#1=-1.2,则#2=FIX#

    12、1的值是-2.0。假设#1=-1.2,则#2=FUP#1的值是-1.0。,6. 数制转换 变量可以在BCD码与二进制之间转换如表6-7所示。,6.2 变量的运算,表6-7 变量转换运算功能表,6.2 变量的运算,7. 运算优先级运算符的优先顺序是(1)函数。函数的优先级最高。(2)乘、除、与运算。乘、除、与运算的优先级次于函数的优先级。(3)加、减、或、异或运算。加、减、或、异或运算的优先级次于乘、除、与运算。(4)关系运算。关系运算的优先级最低。用方括号可以改变优先级,括号不能超过5层。超过5层时,发出P/S报警No.111。,6.2 变量的运算,8. 变量值的精度 变量值的精度为8位十进制

    13、数。 例如,用赋值语句#1=9876543210123.456时,实际上#1=9876543200000.000。用赋值语句#2=9876543277777.456时,实际上#1=9876543300000.000。,6.3 程序结构,在程序中(不仅是宏程序,其他程序也是一样)使用变量后,可以通过变量控制程序执行的顺序。数控加工程序和计算机语言程序类似,从结构上可以有顺序结构、分支结构和循环结构。本节介绍分支和循环结构的实现方法。,6.3 程序结构,1. 分支结构程序 (1)无条件转移(GOTO)格式:GOTO n;n为顺序号(19999) 例如,GOTO 6;语句组N6 G00 X100.;

    14、执行GOTO 6语句时,转去执行标号为N6的程序段。,6.3 程序结构,(2)条件转移(IF)格式:IF关系表达式 GOTO n; 例如,IF#1LT30GOTO 7语句组N7 G00 X100. X5.如果#1大于30,转去执行标号为N7的程序段,否则执行GOTO7下面的语句组。,6.3 程序结构,(3)条件转移(IF-THEN)格式:IF表达式THENTHEN后只能跟一个语句。 例如,IF#1EQ#2 THEN #3=0; 当#1等于#2时,将0赋给变量#3。,6.3 程序结构,2. 循环结构程序(WHILE) 格式:WHILE关系表达式DO m;语句组;END m; 当条件表达式成立时执

    15、行从DO到END之间的程序,否则转去执行END后面的程序段。 例如,#1=5; WHILE#1LE30DO 1;#1=#1+5;G00 X#1 Y#1; END 1; M99;当#1小于等于30时,执行循环程序,当#1大于30时结束循环返回主程序。,DO和END后的数字是用于表明循环执行范围的识别号,可以使用数字1、2和3,如果是其他符号,系统会产生报警。DOEND循环能够按需要使用多次。如下所示:,6.3 程序结构,6.4 宏程序调用,6.4.1 宏程序的调用与返回1. 宏程序的调用 宏程序的调用是指在主程序中,用宏调用指令调用宏程序。宏程序可以被单个程序段单次调用。调用指令格式:G65 P

    16、(宏程序号) L(重复次数)(变量分配) 其中:G65宏程序调用指令 P(宏程序号)被调用的宏程序代号; L(重复次数)宏程序重复运行的次数,重复次数为1时,可省略不写; (变量分配)为宏程序中使用的变量赋值。宏程序与子程序相同的一点是,一个宏程序可被另一个宏程序调用,最多嵌套4层。,6.4 宏程序调用,6.4.1 宏程序的调用与返回 2. 宏程序的开始与返回宏程序的编写格式与子程序相同。其格式为:O0010(00018999为宏程序号) /程序名N10 /指令 N30 M99 /宏程序结束,返回父程序宏程序以程序号开始,以M99结束。,6.4 宏程序调用,6.4.2 变量与地址(自变量)的对

    17、应关系,表6-8 自变量指定 I 的变量对应关系,在自变量指定 I 中,G、L、N、O、P不能用,地址I、J、K必须按顺序使用,其它地址顺序无要求。,6.4 宏程序调用,表6-9 自变量指定II的变量对应关系,6.4 宏程序调用,举例:G65 P3000 L2 B4.0 A5.0 D6.0 J7.0 K8.0 正确(J、K符合顺序要求) 在宏程序中将会把4赋给#2,把5赋给#1,把6赋给#7,把7赋给#5,把8赋给#6举例:G65 P3000 L2 B3.0 A4.0 D5.0 K6.0 J5.0 不正确(J、K不符合顺序要求) 自变量指定II使用A、B、C和1次,使用I、J、K各10次。,系

    18、统能够自动识别自变量指定I和自变量指定II并赋给宏程序中相应的变量号。如果自变量指定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.4 宏程序调用,6.4.3 本级变量#1#33,6.4 宏程序调用,局部变量#1#33(一个宏程序中的同名变量)从0到4级,主程序是0级。每调用一个含有同名变量的宏程序,级别加

    19、1,前一级的变量被保存。当一个宏 程序结束(执行M99)时,级别减1。图6-1中的4级宏程序调用中都使用了#1。在第3级宏程序中#1的值为4,调用第4级宏程序时给变量#1赋值为5,所以在第4级宏程序中变量#1的值为5。在第4级宏程序返回第3级宏程序后,#1的值仍然为4。,图6-1 本级变量,6.5 宏程序应用举例,图6-2 钻孔零件,6.5.1 钻孔类零件,6.5.1 钻孔类零件,该宏程序使用变量如下: #1分度圆半径(mm) #2分度圆上孔的个数(个) #3孔的深度(mm) #4分度圆中心坐标X(mm) #5分度圆中心坐标Y(mm) #6第一个孔与X轴的夹角(度) #7被钻孔中心坐标X(mm

    20、) #8被钻孔中心坐标Y(mm) #9两孔之间的中心角(度) #10动态角度,6.5.1 钻孔类零件,图6-3 走刀路线及孔位计算宏程序流程图,6.5.1 钻孔类零件,图6-4 分度圆钻孔主程序流程图,6.5.1 钻孔类零件,表6-10 钻孔刀具及切削用量表,6.5.1 钻孔类零件,表6-11 钻孔宏程序,6.5.1 钻孔类零件,表6-12 钻孔主程序,6.5.2 铣削椭圆轮廓,图6-5 椭圆轮廓图,6.5.2 铣削椭圆轮廓,椭圆槽宽度误差通过刀具半径补偿控制,铣削侧面外轮廓时,用椭圆槽中心线编程,设刀具直径为15.98mm,走刀采用逆时针走刀(顺铣),用左刀补,刀具半径7.99-5-0.01

    21、=2.98,具体补偿值还要根据刀具本身的公差值进行修正。铣削侧面内轮廓时,用椭圆槽中心线编程,走刀采用顺时针走刀(顺铣),用左刀补,刀具半径可用7.99-5-0.01=2.98,具体补偿值还要根据刀具本身的公差值进行修正。椭圆槽长短轴的尺寸误差取公差中间值,直接代入计算公式进行计算。长半轴的尺寸值为a=(150-0.02)/2=74.99,短半轴尺寸值为b=(100-0.017)/2=49.992。椭圆槽深度取公差中间值10.07。,表6-13 加工椭圆槽工序刀具的切削参数,6.5.2 铣削椭圆轮廓,6.5.2 铣削椭圆轮廓,宏程序中使用的变量如下: #1椭圆长半轴(74.99) #2椭圆短半

    22、轴(49.992) #3Z向深度值(-10.01) #4进给速度 #5X动点坐标 #6Y动点坐标 将变量代入(6-2)得: #6=#2*SQRT1-#5*#5/#1/#1 宏程序1加工椭圆槽外侧表面(逆时针走刀)如表6-14所示。 宏程序2加工椭圆槽内侧表面(顺时针走刀)如表6-15所示。,表6-14 加工椭圆槽外侧表面(逆时针走刀)宏程序,6.5.2 铣削椭圆轮廓,6.5.2 铣削椭圆轮廓,(续),6.5.2 铣削椭圆轮廓,表6-15 加工椭圆槽内侧表面(顺时针走刀)宏程序,6.5.2 铣削椭圆轮廓,(续表),6.5.2 铣削椭圆轮廓,表6-16 加工椭圆主程序,6.5.2 铣削椭圆轮廓,(

    23、续表),6.5.3 铣削斜面类零件,图6-6 凹槽表面零件,6.5.3 铣削斜面类零件,表6-17 实例3用刀具卡片,6.5.3 铣削斜面类零件,(续表),表6-18 数控加工工序卡,6.5.3 铣削斜面类零件,6.5.3 铣削斜面类零件,(续表),6.5.3 铣削斜面类零件,图6-7 工步1工步4的走刀路线图 图6-8 工步5工步7的走刀路线图,6.5.3 铣削斜面类零件,图6-7 工步5工步10的走刀路线图 图6-8 工步11工步14的走刀路线图,6.5.3 铣削斜面类零件,表6-19 主程序,6.5.3 铣削斜面类零件,(续表),6.5.3 铣削斜面类零件,(续表),6.5.3 铣削斜面类零件,(续表),6.5.3 铣削斜面类零件,(续表),(续表),6.5.3 铣削斜面类零件,(续表),6.5.3 铣削斜面类零件,6.5.3 铣削斜面类零件,表6-20 切削矩形宏程序表,6.5.3 铣削斜面类零件,表6-21 切削内腔两端余量宏程序表,6.5.3 铣削斜面类零件,表6-22 切削曲线轮廓宏程序表,6.5.3 铣削斜面类零件,(续表),6.5.3 铣削斜面类零件,表6-23 加工上斜面宏程序表,6.5.3 铣削斜面类零件,表6-24 加工下斜面宏程序表,6.5.3 铣削斜面类零件,表6-25 加工右斜面宏程序表,6.5.3 铣削斜面类零件,表6-26 加工左斜面宏程序表,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:宏程序设计.ppt
    链接地址:https://www.docduoduo.com/p-5752533.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开