QQ登录

只需一步,快速开始

快捷登录

登录 或者 注册 请先

UG爱好者

查看: 6312|回复: 11
打印 上一主题 下一主题

[经典资料] 卧式加工中心坐标系自动补偿原理及程序设计

[复制链接]

四级士官

Rank: 3Rank: 3

1

主题

102

帖子

839

积分
跳转到指定楼层
楼主
发表于 2015-1-25 20:10:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
简介
数控卧式加工中心机床在加工零件时,由于零件加工部位的需要,通常要求工作台旋转任意角度。当工件坐标系原点与工作台旋转中心重合时,工作台的旋转不会给加工带来影响。但是由于工件坐标系原点的选择是根据零件结构特点、编程的需要而确定的,通常被加工零件无法与工作台的旋转中心重合,工件坐标系原点的位置随着工作台的旋转,在机床坐标系中发生变化。因此,要重新设定工件坐标系原点。现在我们公司采用的方法是:一个面的工件坐标系原点设定好之后,根据补偿值,人工计算其他面的工件坐标系原点并输入到相应的工件坐标系中,容易出错,且只能计算工作台旋转90度、180度、270度位置的工件坐标系原点,不能计算任意旋转角度的坐标系原点。该程序可根据初始工件坐标系原点设定值,实现工作台旋转任意角度的工件坐标系原点自动补偿计算,并设定新的工件坐标系原点,自动输入到相应的工件坐标系中,减少了工件坐标系设定时间和出错的概率,提高了生产效率和准确性。
原理
   当工件随夹具在工作台上安装后,初始工件坐标系原点经测量、设定后,在机床坐标系中即被确定。工件坐标系原点与工作台旋转中心的关系如下图所示:
根据主轴B端(机床原点)和工作台回转中心的相对位置,分为两种情况,第一种情况如下:

图中#110、#111表示工作台旋转中心O在机床坐标系中的X、Z值,#101、#103为初始工件坐标系原点A的测量设定值X、Z,#106、#107表示A点随工作台旋转一定角度后的B点的X、Z坐标。根据以上几何关系设计的自动补偿程序如下:#110=-624.94;#111=-199.5;回转中心都是负值
主程序
O7888;
G65A1B90C2P7999;
G65A1B180C3P7999;
G65A1B270C4P7999;
M30;

子程序
O7999;
#110=-624.94;
#111=-199.5;
IF[#1LT1]GOTO3000;
IF[#1GT60]GOTO3000;
IF[#1EQ49]GOTO3000;
IF[#1EQ50]GOTO3000;
IF[#1EQ51]GOTO3000;
IF[#1EQ52]GOTO3000;
IF[#1EQ53]GOTO3000;
IF[#1LE48]GOTO20;
#101=#[5221+[#1-54]*20];
#102=#[5222+[#1-54]*20];
#103=#[5223+[#1-54]*20];
#104=#[5224+[#1-54]*20];读取B轴的数据
GOTO30;
N20#101=#[7001+[#1-1]*20];
#102=#[7002+[#1-1]*20];
#103=#[7003+[#1-1]*20];
#104=#[7004+[#1-1]*20];
GOTO30;
N30#21=#101-#110;
#22=#103-#111;
#30=ABS[#21];
#31=ABS[#22];
IF[#2GT0]GOTO40;
#2=#2+360;
N40IF[#21EQ0]GOTO50;
IF[#22EQ0]GOTO60;
IF[#21GT0]GOTO70;
IF[#22GT0]GOTO80;
IF[#22LT0]GOTO90;
N50IF[#22EQ0]GOTO100;
IF[#22GT0]GOTO200;
IF[#22LT0]GOTO300;
N60IF[#21GT0]GOTO400;
IF[#21LT0]GOTO500;
N70IF[#22LT0]GOTO600;
IF[#22GT0]GOTO700;
N80#120=ATAN[#30] / [#31];
GOTO1000;
N90#120=ATAN[#31] / [#30]+90;
GOTO1000;
N100#101=#110;
#103=#111;
GOTO1050;
N200#120=180;
GOTO1000;
N300#120=0;
GOTO1000;
N400#120=270;
GOTO1000;
N500#120=90;
GOTO1000;
N600#120=ATAN[#30] / [#31]+180;
GOTO1000;
N700#120=ATAN[#31] / [#30]+270;
GOTO1000;
N1000#18=SQRT[[#101-#110]*[#101-#110]+[#103-#111]*[#103-#111]];
#19=#120+#2
#23=#18*SIN[#19];
#24=#18*COS[#19];
#25=ABS[#23];
#26=ABS[#24];
#108=#104+#2;
IF[#108LT360]GOTO800;
IF[#108GE360]GOTO900;
N900#108=#108-360;
N800IF[#19LE90]GOTO1010;
IF[#19LE180]GOTO1020;
IF[#19LE270]GOTO1030;
IF[#19LE360]GOTO1040;
IF[#19LE450]GOTO1010;
IF[#19LE540]GOTO1020;
IF[#19LE630]GOTO1030;
IF[#19LE720]GOTO1040;
N1010#106=#110-#25;
#107=#111+#26;
GOTO2000;
N1020#106=#110-#25;
#107=#111-#26;
GOTO2000;
N1030#106=#110+#25;
#107=#111-#26;
GOTO2000;
N1040#106=#110+#25;
#107=#111+#26;
GOTO2000;
N1050#106=#110;
#107=#111;
#108=#104+#2;
IF[#108GE360]GOTO1060;
N1060#108=#108-360;当基准工件坐标系是位于270时,旋转240度时超过360度的处理
N2000 IF[#3LT1]GOTO3000;
IF[#3GT60]GOTO3000;
IF[#3EQ49]GOTO3000;
IF[#3EQ50]GOTO3000;
IF[#3EQ51]GOTO3000;
IF[#3EQ52]GOTO3000;
IF[#3EQ53]GOTO3000;
IF[#3LE48]GOTO2200;
N2100#[5221+[#3-54]*20] =#106;
#[5222+[#3-54]*20] = #102;
#[5223+[#3-54]*20] = #107;
#[5224+[#3-54]*20] = #108;赋值B轴的数据
GOTO2300;
N2200#[7001+[#3-1]*20] =#106;
#[7002+[#3-1]*20] =#102;
#[7003+[#3-1]*20] = #107;
#[7004+[#3-1]*20] = #108; 赋值B轴的数据
N2300 M99;
N3000#3000=21;(#A&#C DATA ERROR)
该程序已经在‘斗山HM800卧式加工中心’成功验证。






第二种情况如下:#110=525.035; #111=-99.92;回转中心一正一负


主程序
O7888;
G65A1B90C2P7999;
G65A1B180C3P7999;
G65A1B270C4P7999;
M30;







评分

参与人数 1G币 +10 收起 理由
请叫我老师头 + 10 不错,支持!

查看全部评分

有奖推广贴子: 

回复

使用道具 举报

四级士官

Rank: 3Rank: 3

1

主题

102

帖子

839

积分
来自 2#
 楼主| 发表于 2015-1-25 20:10:53 | 只看该作者
(接上)子程序
O7999;
#110=-624.94;
#111=-199.5;
IF[#1LT1]GOTO3000;
IF[#1GT60]GOTO3000;
IF[#1EQ49]GOTO3000;
IF[#1EQ50]GOTO3000;
IF[#1EQ51]GOTO3000;
IF[#1EQ52]GOTO3000;
IF[#1EQ53]GOTO3000;
IF[#1LE48]GOTO20;
#101=#[5221+[#1-54]*20];
#102=#[5222+[#1-54]*20];
#103=#[5223+[#1-54]*20];
#104=#[5224+[#1-54]*20];
GOTO30;
N20#101=#[7001+[#1-1]*20];
#102=#[7002+[#1-1]*20];
#103=#[7003+[#1-1]*20];
#104=#[7004+[#1-1]*20];
GOTO30;
N30#21=#101-#110;
#22=#103-#111;
#30=ABS[#21];
#31=ABS[#22];
IF[#2GT0]GOTO40;
#2=#2+360;
N40IF[#21EQ0]GOTO50;
IF[#22EQ0]GOTO60;
IF[#21GT0]GOTO70;
IF[#22GT0]GOTO80;
IF[#22LT0]GOTO90;
N50IF[#22EQ0]GOTO100;
IF[#22GT0]GOTO200;
IF[#22LT0]GOTO300;
N60IF[#21GT0]GOTO400;
IF[#21LT0]GOTO500;
N70IF[#22LT0]GOTO600;
IF[#22GT0]GOTO700;
N80#120=ATAN[#30] / [#31];
GOTO1000;
N90#120=ATAN[#31] / [#30]+90;
GOTO1000;
N100#101=#110;
#103=#111;
GOTO1050;
N200#120=180;
GOTO1000;
N300#120=0;
GOTO1000;
N400#120=270;
GOTO1000;
N500#120=90;
GOTO1000;
N600#120=ATAN[#30] / [#31]+180;
GOTO1000;
N700#120=ATAN[#31] / [#30]+270;
GOTO1000;
N1000#18=SQRT[[#101-#110]*[#101-#110]+[#103-#111]* [#103-#111]];
#19=#120+#2
#23=#18*SIN[#19];
#24=#18*COS[#19];
#25=ABS[#23];
#26=ABS[#24];
#108=#104+#2;
IF[#108LT360]GOTO800;
IF[#108GE360]GOTO900;
N900#108=#108-360;
N800IF[#19LE90]GOTO1010;
IF[#19LE180]GOTO1020;
IF[#19LE270]GOTO1030;
IF[#19LE360]GOTO1040;
IF[#19LE450]GOTO1010;
IF[#19LE540]GOTO1020;
IF[#19LE630]GOTO1030;
IF[#19LE720]GOTO1040;
N1010#106=#110-#25;
#107=#111+#26;
GOTO2000;
N1020#106=#110-#25;
#107=#111-#26;
GOTO2000;
N1030#106=#110+#25;
#107=#111-#26;
GOTO2000;
N1040#106=#110+#25;
#107=#111+#26;
GOTO2000;
N1050#106=#110;
#107=#111;
#108=#104+#2;
IF[#108GE360]GOTO1060;
N1060#108=#108-360;
N2000 IF[#3LT1]GOTO3000;
IF[#3GT60]GOTO3000;
IF[#3EQ49]GOTO3000;
IF[#3EQ50]GOTO3000;
IF[#3EQ51]GOTO3000;
IF[#3EQ52]GOTO3000;
IF[#3EQ53]GOTO3000;
IF[#3LE48]GOTO2200;
N2100#[5221+[#3-54]*20] =#106;
#[5222+[#3-54]*20] = #102;
#[5223+[#3-54]*20] = #107;
#[5224+[#3-54]*20] = #108;
GOTO2300;
N2200#[7001+[#3-1]*20] =#106;
#[7002+[#3-1]*20] =#102;
#[7003+[#3-1]*20] = #107;
#[7004+[#3-1]*20] = #108;
N2300 M99;
N3000#3000=21;(#A&#C DATA ERROR)
回复 支持 反对

使用道具 举报

四级士官

Rank: 3Rank: 3

1

主题

102

帖子

839

积分
推荐
 楼主| 发表于 2015-1-30 21:29:54 | 只看该作者
liangliangnihao 发表于 2015-1-26 09:10
这个宏程序要怎么用呢,每旋转B轴都要执行一这个程序吗,还是一次装夹只要一次就可以了呢

只要一次就可以了。实现一次同时加工4面
回复 支持 1 反对 0

使用道具 举报

大校

Rank: 8Rank: 8

0

主题

535

帖子

1万

积分
板凳
发表于 2015-1-25 23:15:44 | 只看该作者
谢谢楼主分享
回复 支持 反对

使用道具 举报

六级士官

Rank: 4

0

主题

129

帖子

1145

积分
地板
发表于 2015-1-26 06:55:00 | 只看该作者
谢谢分享
回复 支持 反对

使用道具 举报

爱好者终身VIP

Rank: 11Rank: 11Rank: 11Rank: 11

19

主题

350

帖子

3022

积分

VIP会员活跃会员

5#
发表于 2015-1-26 08:56:42 | 只看该作者
感谢楼主分享!
回复 支持 反对

使用道具 举报

中校

Rank: 7Rank: 7Rank: 7

37

主题

1085

帖子

1万

积分
6#
发表于 2015-1-26 08:59:07 | 只看该作者
高手呀,谢谢楼主分享
回复 支持 反对

使用道具 举报

中校

Rank: 7Rank: 7Rank: 7

37

主题

1085

帖子

1万

积分
7#
发表于 2015-1-26 09:10:58 | 只看该作者
zhutou512 发表于 2015-1-25 20:10
(接上)子程序
O7999;
#110=-624.94;

这个宏程序要怎么用呢,每旋转B轴都要执行一这个程序吗,还是一次装夹只要一次就可以了呢
回复 支持 反对

使用道具 举报

中校

Rank: 7Rank: 7Rank: 7

7

主题

2683

帖子

1万

积分

论坛贡献

9#
发表于 2015-1-31 11:31:55 | 只看该作者
好好学习,天天向上
回复 支持 反对

使用道具 举报

上尉

Rank: 6Rank: 6

0

主题

997

帖子

5573

积分

灌水王

10#
发表于 2016-3-7 22:27:49 | 只看该作者
好好学习,天天向上
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

 
 
QQ:1359218528
工作时间:
9:00-17:00
 
微信公众号
手机APP
机械社区
微信小程序

手机版|UG爱好者论坛 ( 京ICP备10217105号-2 )    论坛管理员QQ:1359218528

本站信息均由会员发表,不代表本网站立场,如侵犯了您的权利请联系管理员,邮箱:1359218528@qq.com  

Powered by UG爱好者 X3.2  © 2001-2014 Comsenz Inc. GMT+8, 2024-11-22 06:05

返回顶部