数控车床由浅入深的宏程序实例汇总_第1页
数控车床由浅入深的宏程序实例汇总_第2页
免费预览已结束,剩余35页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 宏程序 裳华职业技术中专 鲍新涛 宏程序概述 其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我 们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高 的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入 到系统中然后我们给出 Z 坐标并且每次加 10um 那么宏就会自动算出 X 坐标并 且进行切削,实际上宏在程序中主要起到的是运算作用。 宏一般分为 A 类宏 和 B 类宏。 A 类宏是以 G65 Hxx P#xx Q#xx R#xx 的格式输入的,而 B 类宏程序 则是以直接的公式和语言输入的和 C语言很相似在 0i 系统中应用比较广。 宏

2、程序的作用 数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用 变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语 句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃 至免除手工编程时进行繁琐的数值计算,以及精简程序量。 宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形 一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不 同的系列零件的编程。较大地简化编程;扩展应用范围。 宏的分类 B 类宏 由于现在 B 类宏程序的大量使用,很多书都进行了介绍这里我就不再重复了 ,但在 一些老系统中,比如发那科(FAN

3、UC) OTD 系统中由于它的 MDI 键盘上没有公 式符2 号,连最简单的等于号都没有,为此如果应用 B 类宏程序的话就只能在计算机 上编好再通过 RSN-32 接口传输的数控系统中,可是如果我们没有 PC 机和 RSN-32 电缆的话怎么办呢,那么只有通过 A 类宏程序来进行宏程序编制了 ,下面 我介绍一下A 类宏的引用; A 类宏 A 类宏是用 G65 Hxx P#xx Q#xx R#xx 或 G65 Hxx P#xx Qxx Rxx 格式输入的,xx 的意思就是数值,是以 um 级的量输入的,比如你输入 100 那就是 0.1MM.#xx 就是 变量号,变量号就是把数值代入到一个固定的

4、地址中 ,固定的地址就是变量,一般 OTD 系统中有#0#100#149#500#531 关闭电源时变量#100#149 被初始化成 空”而变量#500#531 保持数据.我们如果说#100=30 那么现在#100 地址内的 数据就是 30 了,就是这么简单好现在我来说一下 H 代码,大家可以看到 A 类宏的 标准格式中#xx 和 xx 都是数值,而 G65 表示使用 A 类宏,那么这个 H 就是要表示 各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之 间要进行一个什么运算,可以说你了解了 H 代码 A 类宏程序你基本就可以应用了 好,现在说一下 H代码的各个含义: 应用

5、以下都以#100 和#101 和#102 及数值 10 和 20 做为例子,应用的时候别把他们当 格式就行, 基本指令 H01 赋值;格式:G65H01P#101Q#102 把#102 内的数值赋予到#101 中 G65H01P#101Q#10 把#10 赋予到 #101 中 3 H02 加指令;格式 G65 H02 P#101 Q#102 R#103jE#102 的数值加上#103 的数值赋 予 #101 G65 H02 P#101 Q#102 R10 G65 H02 P#101 Q10 R#103 G65 H02 P#101 Q10 R20 上面 4 个都是加指令的格式都是把 Q 后面的数

6、值或变量号内的数值加上 R 后面 的数 值或变量号内的数值然后等于到 P 后面的变量号中. H03减指令;格式 G65 H03 P#101 Q#102 R#103把#102的数值减去#103的数值赋 予 #101 G65 H03 P#101 Q#102 R10 G65 H03 P#101 Q10 R#103 G65 H03 P#101 Q20 R10 上面 4 个都是减指令的格式都是把 Q 后面的数值或变量号内的数值减去 R 后面 的数 值或变量号内的数值然后等于到 P 后面的变量号中. H04乘指令;格式 G65 H04 P#101 Q#102 R#103把#102的数值乘上#103的数值赋

7、 予 #101 G65 H04 P#101 Q#102 R10 G65 H04 P#101 Q10 R#103 G65 H04 P#101 Q20 R10 上面 4 个都是乘指令的格式都是把 Q 后面的数值或变量号内的数值乘上 R 后面 的数 值或变量号内的数值然后等于到 P 后面的变量号中. 4 H05 除指令;格式 G65 H05P#101 Q#102 R#103 把#102 的数值除以#103 的数值赋 予 #101 G65 H05 P#101 Q#102 R10 G65 H05 P#101 Q10 R#103 G65 H05 P#101 Q20 R10 上面 4 个都是除指令格式都是把

8、 Q 后面的数值或变量号内的数值除以 R 后面的 数 值或变量号内的数值然后等于到 P 后面的变量号中 (余数不存,除数如果为 0 的话 会出现 112 报警) 三角函数指令 H31 SIN 正玄函数指令:格式 G65 H31 P#101 Q#102 R#103 含义 Q 后面的#102 是 三角形的斜边 R 后面的#103 内存的是角度.结果是#10 仁#102*SIN#103,也就是说 可以直接用这个求出三角形的另 一条边长和以前的指令一样 Q 和 R 后面也可以直接写数值. H32 COS 余玄函数指令:格式 G65 H32 P#101 Q#102 R#103;含义 Q 后面的#102

9、是三角形的斜边 R 后面的#103 内存的是角度.结果是#10 仁#102*COS#103 也就是说可以直接用 这个求出三角形的 另一条边长和以前的指令一样 Q 和 R 后面也可以直接写数值. H33 和 H34 本来应该是 TAN 和 ATAN 的可是经过我使用得数并不准确,希望有 知道的人能够告诉我是为什么? 开平方根指令 H21;格式 G65 H21 P#101 Q#102 ;意思是把#102 内的数值开了平方根然后存到 5 #101 中(这个指令是非常重要的如果在车椭圆的时候没有开平方根的指令是没 可能用宏做到的 无条件转移指令 H80;格式:G65 H80 P10 直接跳到第 10

10、程序段 有条件转移指令 H81 H82 H83 H84 H85 H86 ,分别是等于就转的 H81;不等于就转的 H82;小于就转 的H83;大于就转的 H84;小于等于就转的 H85;大于等于就转的 H86; 格式:G65 H8x P10 Q#101 R#102;将#101 内的数值和#102 内的数值相比较,按上 面的 H8x 的码带入 H8x 中去,如果条件符合就跳到第 10 程序段,如果不符合就继 续执行下面的程序段. 4B 类宏程序 定义 能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定 M、S、 T、G 代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像

11、 调用子程序一样使用。这样的程序也称作用户宏程序 l 调用宏程序的指令 - 宏指令 l 特点:使用变量 变量的表示和使用 (一) 变量表示 #1(1=123, 或# 例:#5, #109, #501, #1+#2- 12 (二) 变量的使用 6 1. 地址字后面指定变量号或公式 格式: #1 这里的“ I 代表变量号 例:F#103,设#103=15 则为 F15 Z #110,设#110=250 则为 Z 250 X#24+#18*COS#1 2. 变量号可用变量代替 例:#30,设#30=3 则为#3 3. 变量不能使用地址 O, N, I 例:下述方法下允许 0#1; I#2 6.00

12、X00.0; N#3 Z200.0; 4. 变量号所对应的变量,对每个地址来说,都有具体数值范围 例:#30=1100 时,贝卩 M#30 是不允许的 5. #0 为空变量,没有定义变量值的变量也是空变量 6. 变量值定义: 程序定义时可省略小数点,例:#123=149 MDI 键盘输一.变量的种类 1. 局部变量#1#33 一个在宏程序中局部使用的变量,其运算结果其他程序不可使用 例:A 宏程序 B 宏程序 7 #10=20 X#10 不表示 X20 断电后清空,调用宏程序时代入变量值 2. 公共变量。早期(#100#149, #500#531 )、新系统(#100#199, #500#99

13、9) 各用户宏程序内公用的变量 ,其运算结果任何程序调用都相同。 例:上例中#10 改用#100 时,B 宏程序中的 X#100 表示 X20 #100#149 断电后清空 #500#531 保持型变量(断电后不丢失) 3. 系统变量 固定用途的变量,其值取决于系统的状态 例:#2001 值为 1 号刀补 X 轴补偿值 #5221 值为 X 轴 G54 工件原点偏置值 入时必须输入小数点,小数点省略时单位为 am 运算指令 运算式的右边可以是常数、变量、函数、式子 式中#j, #k 也可为常量 式子右边为变量号、运算式 1. 定义 #I=#j 2. 算术运算 #l=#j+#k #I=#j #k

14、 8 #l=#j*#k #l=#j/#k 3. 逻辑运算 #l=#JOK#k #l=#JXOK#k #l=#JAND#k 4. 函数 #I=SIN#j正弦 #I=COS#j余弦 #I=TAN#j正切 #I=ATAN#j反正切 #1二SQRT#j平方根 #I=ABS#j绝对值 #I=ROUND#j 四舍五入化整 #I=FIX#j 上取整 #I=FUP#j下取整 #I=BIN#j BCD BIN (二进制) #I=BCN#j BIN BCD 1. 说明 1) 角度单位为度 例:90 度 30 分为 90. 5 度 2) ATAN 函数后的两个边长要用“/隔开 例:#1=ATAN1/ -1时,#1

15、为了 35. 0 3) ROUND 用于语句中的地址,按各地址的最小设定单位进行四舍五入 例:设#1 = 1. 2345, #2=2. 3456,设定单位 gm 9 G91 X #1; X 1. 235 X #2 F300; X 2. 346 X#1+#2 ; X3. 580 未返回原处,应改为 XR0UND#1+R0UND#2; 4) 取整后的绝对值比原值大为上取整,反之为下取整 例:设#1 = 1. 2, #2= 1. 2 时 若#3=FUP#1时,则 #3=2. 0 若#3=FIX#1时,则 #3=1. 0 若#3=FUP#2时,贝卩 #3= 2. 0 若#3=FIX#2时,则 #3=

16、1. 0 5) 指令函数时,可只写开头 2 个字母 例: ROUN0RO FIX FI 6) 优先级 函数乘除(* , 1, AND )加减(+,, OR, XOR) 例:#仁#2+#3*SIN#4; 7) 括号为中括号,最多 5 重,园括号用于注释语句 例:#仁 SIN#2+#3*#4+#5*#6 ; (3 重) 转移与循环指令 1. 无条件的转移 格式: GOTO 1; GOTO #10; 10 2. 条件转移 格式:IFv 条件式GOTO n 条件式: #j EQ#k 表示二 #j NE#k 表示工 #j GT#k 表示 #j LT#k 表示 #j GE#k 表示 #j LE#k 表示

17、DO m; (m=1, 2, 3) 11 ENDm 说明:1.条件满足时,执行 DOm 到 ENDm,则从 DOm 的程序段 不满足时,执行 DOm 到 ENDm 的程序段 2. 省略 WHILE 语句只有 DOm-ENDm,则从 DOm 到 ENDm 之间形成死循环 3. 嵌套 4. EQ NE 时,空和“0”同 其他条件下,空和“ 0 相同 例:求 1 到 10 之和 O0001; #1=0; #2=1; WHILE #2LE10 DO1; #1=#1+#2; #2=#2+#1; END1 ; M30 由浅入深宏程序1-宏程序入门基础之销轴加工 对于没有接触过宏程序人,觉得它很神秘,其实很

18、简单,只要掌握了各类系统宏程序的基本格式,应 用指令代码,以及宏程序编程的基本思路即可。 对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到 独立编制宏程序的目的。本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁 提供更好的思路。 下面大家先看一个简单的车床的程序,图纸如下:12 要求用外圆刀切削一个短轴,这里只列举程序的前几步: T0101 M3S800 G0X82Z5 G0 X76 G1Z-40F0.2 X82 G0Z5 G0X72 G1Z-40F0.2 X82 G0Z5 G0 X68 G1Z-40F0.2 X8G0Z5 G0X6

19、8 G1Z-40F0.2 X8G0Z5 G0X40 G1Z-40F0.2 X82 G0Z5 G0X150Z150 M5 M30 从上面程序可以看出, 每次切削所用程序都只是切削直径 X 有变化,其他程序代码未变。因此可以将一个 变量赋给 X,而在每次切削完之后,将其改变为下次切削所用直径即可。 05679 T0101 M3S800 G0X82Z5 #1=76 赋初始值,即第一次切削直径 N10 G0X#1 将变量赋给 X,则 X 方向进刀的直径则为#1 变量中实际存储值。N10 是程序 G1Z-40F0.2 段的编号, 用来标识本段,为后面循环跳转所用。 X82 G0Z5 #1=#1-4 每行

20、切深为 2mm,直径方向递减 4mm IF #1GE40 GOTO 10 如果#1 = 40 ,即此表达式满足条件,则程序跳转到 N10 继续执行。 G0X150Z150 当不满足#1 = 40,即#1= 40 ,即此表达式满足条件,则程序跳转到 N10 继续执行。 M03S1200 当不满足#1 = 40,即#1= 0,即此表达式满足条件,则程序跳转到 N10 继续执行。 G0X150Z150 当不满足#1 =0,即#1 抛物线宏程序结构流程: 31 抛物线宏程序编制: 00272; M03 S800; G98; G00 X90 Z100; N10 #24=0;(抛物线顶点处 X 值) #2

21、6=0; (抛物线顶点处 Z值) #17=-10;(常量) #22=42;(抛物线开口处直径) #6=1;(每次步进量) #9=100;(进给率) G00 X#24 Z#26+5; (加工起点) G01 Z#26 F2*#9; N30 #24=#24+#6; (X 向递增) #26=#24*#24/#17; (构造 G01X2*#24 Z#26 F#9; N60 IF #24 LT #22/2 GOTO 30; G01 X#22 Z#26 F3*#9; M05; M30; (如果 X 值小于开口处直径一半跳转到 30 句) 32 双曲线过渡类零件的宏程序编制 焦点在 X 轴上的双曲线,其标准方

22、程为 X2 Y2 2 _ 2 = 1(a 0, b 0) a b33 4”很曲绒过渡类宰件的宏程序编制 嫖点程x*由上的双曲绘,英标准丹锂为 焦点在 Y 轴上的双曲线宏程序编制: 34 双力兹參教方程; X *j0+20/tan (t) 程序编制: 00273; TO1O1; M03 S500; G98; G01 X10; Z-5.05; X17.524; #1=20; N10 #2=38-10/SIN#1; #3=-60+20/TAN#1; G01 X2*#2 Z#3; #1=#1+1; IF #1 LT 80 GOTO 10; G01 X56 Z-56.473; X60; G00 X100

23、; Z100; M05; M30; 焦点在X轴上的双曲线宏程序编程:35 00045; T0101; G98; M03 S500; G00 X60 Z0; G01 X0; #100=0; N15 #101=4/3*SQRT#100-6*#100-6-36; G01 X2*#101 Z#100; #100=#100-1; IF #100 GT -16.594 GOTO 15; G01 X58 Z-16.594; X60; G00 Z0; G00 X100; Z100; M05; M30; 椭圆轮廓的加工 对椭圆轮廓,其方程有两种形式。对粗加工,采用 G71/G72G71/G72 走刀方式时,用直

24、角坐标方 程比较方便;而精加工(仿形加工)用极坐标方程比较方便。 X = 2a sin 日 极坐标方程“ b cose aX 向椭圆半轴长; bZ 向椭圆半轴长; 0 椭圆上某点的圆心角,零角度在 Z 轴正向。 加工图 7 7- -2 2 所示椭圆轮廓,棒料4545,编程零点放在工件右端面就曲塢方程 直角坐标方程: 2 2 36 %200 G50 X100 Z200; T0101; G95 G0 X41 Z2 M03 S800; G1 Z-100 F0.3; 粗加工开始 G0 X42; Z2; #仁 20*20*4; 4a2 #2=60; b #3=35 ; X 初值(直径值) WHILE #3 GE 0 DO1; 粗加工控制 #4=#2*SQRT1-#3*#3/#1; Z G0 X#3+1; 进刀 G1 Z#4-60+0.2 F0.3; 切削 G0 U1; 退刀 Z2; 返回 #3=#3-7; 下一刀切削直径 END1; #10=0.8; x 向精加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论