项目九:非圆公式曲线加工 -宏程序法
【项目目标】 学会应用变量编椭圆弧、抛物线加工程序 【知识目标】 1、了解变量的表示方法; 2、掌握条件表达式、转移与循环语句的形式; 3、掌握应用变量编程的方法。
一、非圆公式曲线的加工方法 1.非圆公式曲面的加工特点 椭圆曲线
2.非规则曲面的编程方法 (1)自动编程法 (2)宏程序法 宏程序的编程加工,一般是采用厂方所提供的宏程序(或用户自行开发的宏程序)通过对变量进行赋值及处理后完成程序的加工任务。 普通加工程序直接用数值指定G代码和移动距离;例如,G01X100.0Z2.0。 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI 面板上的操作改变。
二、宏程序编程 1、变量的表示 一个变量由符号“#”和变量序号组成,如:#i (i=1,2,3,…),此外,变量还可以用表达式进行表示,但其表达式必须全部写入方括号“[ ]”中。 例: #100,#500,#5,#[#1+#2+10];
2、变量的引用 例: G01 X#100 Y-#101 F[#101+#103]; 将跟随在地址符后的数值用变量来代替的过程称为引用变量。同样,引用变量也可以采用表达式。 例: G01 X#100 Y-#101 F[#101+#103]; 当#100=100.0、#101=50.0、#103=80.0时,上例即表示为: G0l Xl00.0 Y-50.0 F130;
根据变量号,宏变量可分成四种类型,如表1所示。 表1 变量的类型 3、宏变量的类型 根据变量号,宏变量可分成四种类型,如表1所示。 表1 变量的类型 变量号 变量类型 功 能 #0 空变量 该变量总是空,没有值能赋给该变量。 #1~#33 局部变量 局部变量只能用在宏程序中存储数据,例 如,运算结果。当断电时,局部变量被初 始化为空。调用宏程序时,自变量对局部 变量赋值。 #100~#199 #500~#999 全局变量 公共变量在不同的宏程序中的意义相同。 当断电时,变量#100-#199 初始化为空, 变量#500-#999 的数据保存,即使断电也 不丢失。 #1000~#9999 系统变量 系统变量用于读和写CNC 运行时的各种 数据,例如,刀具的当前位置和补偿值。
4、算术和逻辑运算(见表2) 表2 算术和逻辑运算 函数 格 式 备 注 赋值 #i=#j 求和 求差 乘积 求商 #i=#j+#k 格 式 备 注 赋值 #i=#j 求和 求差 乘积 求商 #i=#j+#k #i=#j-#k #i=#j*#k #i=#j/#k 正弦 余弦 正切 反正切 #i=SIN[#j] #i=COS[#j] #i=TAN[#j] #i=ATAN[#J]/[#k] 角度用十进制度表示。 90°30′表示为90.5 度。 平方根 绝对值 四舍五入 向下取整 向上取整 #i=SQRT[#j] #i=ABS[#j] #i=ROUND[#j] #i=FIX[#j] #i=FUP[#j] 或OR 异或XOR 与AND #I=#J OR #K #I=#J XOR #K #I=#J 逻辑运算用二进制数按位操作 十—二进制转换 二—十进制转换 #I=BIN[#J] #I=BCD[#J] 用于转换发送到PMC的信号或从PMC 接收的信号
5、宏程序指令 (1)无条件转移 格式:GOTO n; n——(转移到的程序段)顺序号 例:GOTO1; GOTO#10; (2)条件分支IF语句 在IF后指定一条件,当条件满足时,转移到顺序号为n的程序段,不满足则执行下一程序段。 格式: IF [表达式] GOTOn; …; Nn …; n:顺序号(1~99999) 例:O0002(宏程序) N5 IF [#3GT90.0]GOTO10; …; GOTO5; N10 M99;
①条件表达式 条件表达式由两变量或一变量一常数中间夹比较运算符组成,条件表达式必需包含在一对方括号内。条件表达式可直接用变量代替。 ②比较运算符 比较运算符由两个字母组成,用于比较两个值,来判断它们是相等,或一个值比另一个小或大。注意不能用不等号(见表3)。
表3 比较运算符 运算符 含 义 EQ 相等equal to (=) NE 不等于not equal to (≠) GT 含 义 EQ 相等equal to (=) NE 不等于not equal to (≠) GT 大于Greater than (>) GE 大于等于greater than or equal to(≥) LT 小于less than (<) LE 小于等于less than or equal to (≤)
(3)循环语句 格式: WHILE [条件表达式]DOm ; … ENDm ; 例:O0002 WHILE[#3LE90.0]DO2; 在WHILE 后指定一条件表达式,当条件满足时,执行WHILE到END之间的程序,(然后返回到WHILE 重新判断条件,) 不满足则执行END后的下一程序段。 格式: WHILE [条件表达式]DOm ; … ENDm ; 例:O0002 WHILE[#3LE90.0]DO2; …; END 2; M99;
6、宏程序使用格式
7、宏程序使用方法 (1)非模态调用(单纯调用) 非模态调用指一次性调用宏主体,即宏程序只在一个程序段内有效。格式: G65 P(宏程序号)L(重复次数)<指定引数值> 一个引数是一个字母,对应于宏程序中变量的地址,引数后边的数值赋给宏程序中对应的变量,同一语句可以有多个引数。
模态调用功能近似固定循环的续效作用,在调用后,机床在指定的多个位置循环执行宏程序。用G67指令取消模态调用。格式: (2)模态调用 模态调用功能近似固定循环的续效作用,在调用后,机床在指定的多个位置循环执行宏程序。用G67指令取消模态调用。格式: G66 P(宏程序号)L(重复次数)<指定引数>;此时机床不动 X_Y_;机床在这些点开始加工 X_Y_; … G67;停止宏程序调用
三、宏程序编程实例 加工如图1所示椭圆零件。毛坯尺寸 62mm棒料, 材料为45#钢。 图1
1、椭圆参数方程 式中:a—长轴半径; b—短轴半径。 以X为自变量,可求得Z值。经推导得:
2、零件分析 图1 中:
程序内容 程序注释 G28U0W0 N1 G0G40G97G99S500M3T11 X60.Z0.5 G90X50.5Z-39.8F0.2 #1=25. N60 #1=#1-1.5 #2=SQRT[1600.-2.56*#1*#1] G90X[2*#1+0.5]Z[#2-40.+0.2] IF[#1GT0]GOTO60 第一工步:粗加工 加工起始点 单循环加工 短轴半径 1.5为切削深度 每次切削长轴坐标点计算 短轴留量1.5,长轴留量0.2 如果#1大于0,则返回N60语句
程序内容 程序注释 N2 G0X0.5Z0.2 #1=0 N120 #1=#1+0.2 #2=SQRT[ABS[1600.-2.56*#1*#1]] G01X[2*#1+0.3]Z[#2-40.+0.05] IF[#1LT25.]GOTO120 第二工步:半精加工 加工起始点 短轴留量0.3,长轴留量0.03 如果#1小于25,则返回N120语句
程序内容 程序注释 N3 S1200 G0Z0 X0 #1=0 WHILE[#1LT25.] DO1 #2=SQRT[ABS[1600.-2.56*#1*#1]] G01X[2*#1]Z[#2-40.] #1=#1+0. 1 END1 G01Z-60.0 X61.0 G28U0W0M05 M30 第三工步:精加工 主轴转速为1200 当#1小于25时执行下一条 语句,否则执行end1后的 语句。 增量值为0.1
3.抛物线类零件的宏程序编制 抛物线的一般方程: 可转化为:
抛物线宏程序结构流程:
抛物线宏程序编制:
O0272; M03 S800; G98; G00 X90 Z100; N10 #24=0;(抛物线顶点处X值) #26=0; (抛物线顶点处Z值) #17=-10;(常量) #22=42;(抛物线开口处直径) #6=1;(每次步进量) #9=100;(进给率) G00 X#24 Z[#26+5];(加工起点) G01 Z#26 F[2*#9]; N30 #24=#24+#6;(X向递增) #26=[#24*#24]/[#17]; (构造 ) G01X2*#24 Z#26 F#9; N60 IF [#24 LT #22/2] GOTO 30;(如果X值小于开口处直径一半跳转到30句) G01 X#22 Z#26 F[3*#9]; M05; M30;
四、巩固练习 1、毛坯尺寸为Φ55棒料,材料为45#钢,试车削如图2所示零件。 椭圆曲线 图2
2、毛坯尺寸为Φ30棒料,材料为45#钢,试车削如图3所示零件。