您好,欢迎访问三七文档
数控车床用户宏程序目录一、概述二、宏程序基础理论三、用户宏程序应用实例学习目标和重点目标:•学习和了解用户宏程序的编程思路和程序结构。•掌握宏程序的调用规定及其特点。•能运用宏程序编制中等难度零件的加工程序。重点:•宏程序各种控制指令的灵活应用及技巧。•编制宏程序时数学模型的建立、数学关系的表达思路。1.宏程序的定义用变量及变量运算,系统变量输入、输出,逻辑判断语句组成的程序叫宏程序。2.宏程序与普通程序的对比用户宏程序与普通程序存在一定的区别,简要对比如下:宏程序普通程序可以使用变量,可以对变量赋值只能够使用常量变量之间可以运算常量之间不可以运算程序运行可以跳转程序只能顺序执行,不能跳转一、概述3.宏程序编程的特点(1)能将有规律的形状或尺寸用最短的程序段表示出来。(2)具有极好的易读性和易修改性。(3)编写出的程序非常简洁,逻辑性严密,通用性极强。(4)机床在执行宏程序时,较执行CAD/CAM软件生成的程序更加快捷,反应更迅速。4.宏程序与CAD/CAM软件生成程序的加工性能对比(1)宏程序:在执行宏程序时,数控系统的计算机可以直接进行插补运算,且运算速度极快,在加上伺服电动机和机床的迅速响应,使得加工效率极高。(2)CAD/CAM软件生成的程序:程序比较庞大,绝大部分都不得不以DNC方式进行在线加工。那么机床与电脑之间的传输速度成了影响加工速度的第一个“瓶颈”因素。再加上RS-232口通信抗干扰能力有限,DNC在线加工方式下的加工效率便大打折扣。程序执行时,相邻的每两个逼近点之间数控系统都要进行直线插补运算。系统计算机的工作量巨大,反映到机床上,必然表现为运动迟钝,不连贯。(一)FANUC0i系统提供两种用户宏程序:1、用户宏程序功能A:用户宏程序功能A是FANUC系统标准配置功能,但需要用“G65Hm”(m:01~99)格式来表达各种数学运算和逻辑运算,极不直观,可读性差,现在已经很少使用它。2、用户宏程序功能B:用户宏程序功能B虽然不算是FANUC系统的标准配置功能,但绝大部分的FANUC系统也都支持它。我们学习的是用户宏程序功能B及应用技巧。二、宏程序基础理论(FANUCOi系统)用户宏程序作用:对由直线、圆弧组成的零件,数控系统有标准的指令编程→G01/G02/G03。•对于一些非圆曲线或形状复杂的零件(如椭圆、抛物线等二次曲线),G01/G02/G03等标准指令无能为力了,为了处理这些要素的编程,数控系统提供了用户宏程序的功能。•用户宏程序的功能是对数控系统功能的扩展,为用户利用数控系统提供了工具,是数控系统对用户的部分开放。(二)变量•普通加工程序直接用数值指定G代码和移动距离。例如:G01和X100.0,这些直接指定的数值,在程序运行过程中其值不能被改变,这些数值称为常量。•使用用户宏程序时,数值可以直接指定或用变量指定。在程序运行过程中,其值可以改变的量,称为变量。当用变量时,变量值可以用程序或由MDI设定或修改。1、变量的表示计算机允许使用变量名,用户宏程序则不行。用户宏程序中的变量需用变量符号“#”和后面的变量号指定。表达式可以用来指定变量号,这时表达式必须封闭在中括号中。#i#-变量符号;i-变量号•#i——(变量号i=0,1,2,3……)例:#8、#110、#1100•#[表达式]——表达式必须用括号括起来例:#[#1+#2-12]变量名变量类型功能#0空变量该变量值总为空#1-#33局部变量在宏程序中局部使用,存储数据(运算结果),断电后初始化为空;在程序中可以对其赋值#100~#199#500~#999公共变量在不同的宏程序中意义相同,断电后#100~#199初始化为空;#500~#999断电前后数值维持不变。#1000以上系统变量系统内置的固定用途的变量。用于读写CNC系统运行时的数据,如刀具当前位置和补偿值等2、变量的类型和功能说明:局部变量、公共变量、系统变量•局部变量(#1-#33)是在宏程序中局部使用的变量,当宏程序P调用宏程序Q而且都有变量#1时,由于变量#1服务于不同的的局部,所以P中的#1与Q中的#1不是同一个变量,因此可以赋予不同的值,且互不影响。•公共变量(#100~#199、#500~#999)贯穿于整个程序过程,当宏程序M调用宏程序N而且都有变量#100时,由于#100是公共变量,所以P中的#100与Q中的#100是同一个变量。•系统变量(#1000以上)决定系统的状态,禁止一般用户使用。3、变量值的范围局部变量和公共变量可以是0值或以下范围的值:-1047~-10-29或10-29~1047,如果计算结果超出有效范围,则触发程序错误P/S报警NO.1114、小数点的省略当在程序中定义变量值时,整数值的小数点可以省略。例如:当定义#11=123;变量#11的实际值是123.0005、变量的引用(1)在程序中使用变量值时,应指定后跟变量号的地址,当用表达式指定变量号时,必须把表达式放在括号中。例如:G01X#[#11+#123]F#3;(2)被引用变量值根据地址的最小设定单位自动的舍入(四舍五入)。例如:X#150——当#150=12.3456时,如系统最小设定单位为0.001时,则X12.346被指定(3)改变引用变量的值的符号,要把负号(-)放在#号前面,例如:G01X-#11。(4)当引用未定义的变量时,变量及地址都被忽略。例如:变量#11的值是0,并且变量#22的值是空时,G01X#11Z#22;执行结果为G01X0。•注意:“变量的值是0”与“变量值是空”是两个完全不同的概念。(5)不能用变量代表的地址符有:程序号O,顺序号N,任选程序段跳转号/。(6)使用ISO代码编程时,可用“#”代码表示变量。使用EIA代码,则应用“&”代码代替“#”代码,因EIA代码中无“#”代码。1、算术运算运算格式运算格式加法#i=#j+#k反正切#i=ATAN[#j]/[#k]减法#i=#j-#k平方根#i=SQRT[#j]乘法#i=#j*#k绝对值#i=ABS[#j]除法#i=#j/#k舍入#i=ROUND[#j]正弦#i=SIN[#j]对数#i=LN[#j]反正弦#i=ASIN[#j]指数函数#i=EXP[#j]余弦#i=COS[#j]上取整#i=FIX[#j]反余弦#i=ACOS[#j]下取整#i=FUP[#j]正切#i=TAN[#j](三)算术和逻辑运算混合运算时运算顺序上述运算和函数运算可以进行混合,这样就涉及到运算的优先级。其运算顺序与一般数学上的定义基本一致,优先级顺序从高到低依次为:运算的优先顺序:①函数;②乘除、逻辑与;③加减、逻辑或、逻辑异或。可以用[]来改变顺序。例如:#1=#2+#3*COS[#4]赋值就是将一个数据赋予一个变量。例如:#11=0,则表示#11的值是0,其中#11代表变量,“=”是赋值符号,起语句定义作用,0就是给变量#11赋的值。•说明:1、赋值符号“=”两边的内容不能够随意互换,左边只能够是变量,右边可以是表达式、数值或者常量。2、一个赋值语句只能够给一个变量赋值。3、可以多次给一个变量赋值,新变量值将取代原变量值。(四)赋值与变量4、赋值语句具有运算功能。一般形式:变量=表达式表达式:可以是变量自身与其它数据的运算结果,如#11=#11+1,则表示#11的值为#11+1。#11=#11+1可以说是宏程序的原动力,任何宏程序都离不开这种类型的赋值运算。5、赋值表达式的运算顺序同数学运算。运算符号如下表:格式作用格式作用#jEQ#k#j等于#k#jNE#k#j不等于#k#jGE#k#j大于等于#k#jGT#k#j大于#k#jLE#k#j小于等于#k#jLT#k#j小于#k(五)表达式中的运算符号宏程序的控制指令主要有转移和循环两种。转移又分为无条件转移和条件转移。用控制指令可以改变程序的运行顺序。1、无条件转移(GOTO语句)格式:GOTOn;式中:n——顺序号(1~99999),可用变量表示。举例:GOTO1;GOTO#10;(六)控制指令2、条件转移(IF语句)格式Ⅰ:IF[条件表达式]GOTOn;式中:条件表达式——转移的条件n——转移的目标程序段号语义:表示如果条件表达式满足时,则转移(跳转)到标有顺序号n的程序段,如果不满足指定的条件表达式,则顺序执行下一个程序段。举例:求1到10之和。O7100;#1=0;存储和的变量初值#2=1;被加数变量初值N1IF[#2GT10]GOTO2;#2大于10转到N2程序段#1=#1+#2;计算和#2=#2+1;下一个被加数GOTO1;无条件转到N1程序段N2M30;格式Ⅱ:IF[条件表达式]THEN…;举例:IF[#1GT#2]THEN#3=10;如果#1>#2那么#3=10说明:1)条件表达式必须包括运算符,且运算符插在变量中间或变量与常量之间,用中括号[]封闭。2)运算符有两个字母组成,用于两个值的比较。由于误差一般不要使用不等号和等号,以免出现判断错误。3、循环(WHILE语句)格式:WHILE[条件表达式]DOm;……ENDm;式中:条件表达式——循环条件m——循环执行范围的识别号,只能是1、2和3,否则系统报警语义:循环和嵌套的格式说明2.DO范围不能交叉WHILE[…]DO1;程序WHILE[…]DO2;←错︰END1;程序END21.标号1-3可根据需要多次使用WHILE[…]DO1;程序END1;:WHILE[…]DO1;程序END1;:4.(条件)转移可以跳出循环的外边WHILE[…]DO1;IF[…]GOTOn;END1;Nn…;︰5.(条件)转移不能进入循环区内IF[…]GOTOn;︰WHILE[…]DO1;←错Nn…︰END1;3.DO循环可以3重嵌套WHILE[…]DO1;:WHILE[…]DO2;:WHILE[…]DO3;程序END3;:END2;:END1;举例:求1到10之和。O7200;#1=0;存储和的变量初值#2=1;被加数变量初值WHILE[#2LE10]DO1;当被加数小于等于10时,执行DO1到END1之间的程序段#1=#1+#2;计算和#2=#2+1;下一个被加数END1;循环1结束M30;说明:1、DOm和ENDm必须成对使用,而且DOm一定要在ENDm指令之前。2、当指定DO而没有指定WHILE语句时,为一个无限循环。3、在使用EQ或者NE的条件表达式中,值为空和值为零将会有不同的效果.其它形式的表达式中,空被当作零。4、IF语句和WHILE语句,从逻辑关系上说,二者不过是从正反两个方面描述一件事情,从实现的功能上说,具有相当的可替代性。IF语句使用更多、更灵活。三、用户宏程序应用实例(一)、椭圆宏程序的编制椭圆标准方程标准方程图象范围对称性顶点坐标焦点坐标半轴长焦距a,b,c关系离心率22221(0)xyabab22221(0)xyabba|x|≤a,|y|≤b|x|≤b,|y|≤a关于x轴、y轴成轴对称;关于原点成中心对称。(a,0),(0,b)(b,0),(0,a)(c,0)(0,c)长半轴长为a,短半轴长为b.焦距为2c;a2=b2+c2cea用户宏程序应用实例椭圆方程的数学变形12222bXaZ221XaZb=aZab/22椭圆标准方程221ZbXa=bXba/22XZ椭圆宏程序的编制——此即为椭圆的参数方程,其中的几何意义为——离心角(极角),α——椭圆几何角度。ZOXAMNBα)(sincos为椭圆极角bXaZ椭圆参数方程椭圆宏程序的编制221ZbXa=bXba/22221XaZb=aZab/22)(sincos为椭圆离心角bXaZG01X#24Z#26F#9;椭圆宏程序的编制【例1】编制如图所示椭圆的精加工程序。1、椭圆本体宏程序编制12222bXaZ221XaZb=aZab/22123402222XZ2240123XZ=40/402322Z自变量赋值说明#1=(A)-椭圆长半轴(40)#2=(B)
本文标题:生产实习用宏程序
链接地址:https://www.777doc.com/doc-330396 .html