宏 程 序 设 计 宏程序与子程序类似,对编制相同加工的操作可以使程序简化.同时宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序设计。使相同加工操作的程序更方便,更灵活。本章以FANUC系统为例介绍宏程序设计的内容。 12.1 变量的定义 宏程序中使用的变量与日常生活中使用的变量不同,变量用符号“#”后跟变量的变量号指定。变量可分为四种类型。 1. 空变量 #0为空变量,该变量不能赋值。 2. 局部变量 #1~#33为局部变量,局部变量只能在宏程序中存储数据。当断电时局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值。局部变量的数值范围10-29~1047或-1047~-10-29,如果计算结果超过该范围则发出P/S报警No.111。 3. 公共变量 #100~#199、#500~#999为公共变量,公共变量在不同的宏程序中意义相同。当断电时,变量#100~#199被初始化为空,变量#500~#999的数据不会丢失。全局变量的数值范围10-29~1047或-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不符合顺序要求) 表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作用于宏程序某一级中的变量称为本级变量,即这一变量在同一程序级中调用时含义相同,若在另一级程序(如子程序)中使用,则意义不同。本级变量主要用于变量间的相互传递,初始状态下未赋值的本级变量即为空白变量。I=#j*#k #1=#2/#3 三 角 函 数 运 算 正弦 #i=SIN[#j] #1=SIN[#2] 角度以度指定35°30’ 表示为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时:-90°~90° 当#j超出-1~1时发出P/S报警No.111。 对于反余弦(ACOS)的取值范围如下: 取值范围180°~0° 当#j超出-1~1时发出P/S报警No.111。 对于反正切(ATAN)的取值范围如下: 当参数(No.6004#0)NAT位设为0时:0°~360° 当参数(No.6004#0)NAT位设为1时:-180°~180° 3. 其它函数计算 对宏程序中的变量还可以进行平方根(SQRT)、绝对值(ABS)、舍入(ROUN)、上取整(FIX)、下取整(FUP)、自然对数(LN)、指数(EXP)运算。运算功能和格式如表12-3所示。 对于自然对数LN[#j],相对误差可能大于10-8。当#j≤0时,发出P/S报警No.111。 对于批数函数EXP[#j],相对误差可能大于10-8。当运算结果大于3。65×1047(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=F
数控车FANUC系统宏程序教案.doc
下载此电子书资料需要扣除0点,