资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 宏 程 序 设 计宏程序与子程序类似,对编制相同加工的操作可以使程序简化.同时宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序设计。使相同加工操作的程序更方便,更灵活。本章以FANUC 系统为例介绍宏程序设计的内容。12.1 变量的定义宏程序中使用的变量与日常生活中使用的变量不同,变量用符号“#”后跟变量的变量号指定。变量可分为四种类型。1. 空变量#0 为空变量,该变量不能赋值。2. 局部变量#1#33 为局部变量,局部变量只能在宏程序中存储数据。当断电时局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值。局部变量的数值范围10-291047或-1047-10-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 为自变量指宾II 的自变量与变量的对应关系。表 12-1 自变量指定I 的变量对应关系地址(自变量)变量号地址(自变量)变量号地址(自变量)变量号A #1 I #4 T #20 B #2 J #5 U #21 C #3 K #6 V #22 D #7 M #13 W #23 E #8 Q #17 X #24 F #9 R #18 Y #25 H #11 S #19 Z #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 K6 J5 不正确( J、K 不符合顺序要求)2 表 12-2 自变量指定II 的变量对应关系地址(自变量)变量号地址(自变量)变量号地址(自变量)变量号A #1 K3 #12 J7 #23 B #2 I4 #13 K7 #24 C #3 J4 #14 I8 #25 I1 #4 K4 #15 J8 #26 J1 #5 I5 #16 K8 #27 K1 #6 J5 #17 I9 #28 I2 #7 K5 #18 J9 #29 J2 #8 I6 #19 K9 #30 K2 #9 J6 #20 I10 #31 I3 #10 K6 #21 J10 #32 J3 #11 I7 22 K10 #33 自变量指定II 使用 A、B、 C 和 1 次,使用I、J、K 各 10 次。系统能够自动识别自变量指定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. 本级变量 #1#33 作用于宏程序某一级中的变量称为本级变量,即这一变量在同一程序级中调用时含义相同,若在另一级程序 (如子程序) 中使用, 则意义不同。 本级变量主要用于变量间的相互传递,初始状态下未赋值的本级变量即为空白变量。局部变量 #1#33(一个宏程序中的同名变量)从0 到 4 级,主程序是0 级。每调用一个含有同名变量的宏程序,级别加 1,前一级的变量被保存。当一个宏程序结束(执行 M99 )时,级别减 1。例如:主程序宏程序宏程序宏程序宏程序(0 级)(1 级)(2 级)(3 级)(4 级)O0001 O0002 O0003 O0004 O0005 #1=1;#1=2 #1=3 #1=4 #1=5 G65P2A2;G65P3A3 G65P4A4 G65P5P5 , ,M99M30 M99 M99 M99 3 12.2 变量的运算对宏程序中的变量可以可以进行算术运算和逻辑运算。1. 算术运算可以进行加、减、乘、除运算。运算功能和格式如表12-3 所示。举例: G00X#1+#2 X 坐标的值是变量1 与变量 2 之和。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=COS#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=BIN#j #1=BIN#2 BIN 转 BCD #i=BCD#j #1=BCD#2 对于反反正弦(ASIN )取值范围如下:当参数( No.6004#0)NAT 位设为 0 时: 270 90当参数( No.6004#0)NAT 位设为 1 时: -9090当#j 超出 -11 时发出 P/S 报警 No.111。对于反余弦( ACOS)的取值范围如下:取值范围18004 当#j 超出 -11 时发出 P/S 报警 No.111。对于反正切( ATAN )的取值范围如下:当参数( No.6004#0)NAT 位设为 0 时: 0360当参数( No.6004#0)NAT 位设为 1 时: -1801803. 其它函数计算对宏程序中的变量还可以进行平方根(SQRT)、绝对值( 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 绝对值小于原数的绝对值。例如,假设 #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 两边的变量(或表达式)相等时,表达式的值为真,否则为假。例如, #1EQ#2,当 #1 与#2 相等时,表达式的值为真。(2)不等于( NE)用 NE 与两个变量或表达式组成表达式,当运算符NE 两边的变量 (或表达式) 不相等时,表达式的值为真,否则为假。例如, #1NE#2,当 #1 与#2 不相等时,表达式的值为真。(3)大于等于(GE)用 GE 与两个变量或表达式组成表达式,当左边的变量 (或表达式) 大于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。例如, #1GE#2,当 #1 大于或等于 #2 时,表达式的值为真。否则为假。(4)大于( GT)用 GT 与两个变量或表达式组成表达式,当左边的变量(或表达式)大于右边的变量(或表达式)时,表达式的值为真,否则为假。5 例如, #1GT#2,当 #1 大于 #2 时,表达式的值为真。否则为假。(5)小于等于(LE)用 LE 与两个变量或表达式组成表达式,当左边的变量(或表达式)小于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。例如, #1LE#2,当 #1 小于或等于 #2 时,表达式的值为真。否则为假。(6)小于( LT )用 LT 与两个变量或表达式组成表达式,当左边的变量(或表达式)小于右边的变量(或表达式)时,表达式的值为真,否则为假。例如, #1GE#2,当 #1 大于 #2 时,表达式的值为真。否则为假。7. 运算优先级运算符的优先顺序是(1)函数。函数的优先级最高。(2)乘、除、与运算。乘、除、与运算的优先级次于函数的优先级。(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. 无条件转移(GOTO )格式: GOTOn ;n 为顺序号( 19999)例如, GOTO6 ;语句组N6 G00X100 ;执行 GOTO6 语句时,转去执行标号为N6 的程序段。2. 条件转移( IF)格式: IF 关系表达式 GOTOn; 例如, IF#1LT30 GOTO7 语句组N7G00X100X5 如果 #1 大于 30,转去执行标号为N7 的程序段,否则执行GOTO7 下面的语句组。6 3. 条件转移( IF)格式: IF 表达式 THEN THEN 后只能跟一个语句。例如, IF#1EQ#2THEN#3
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号