搜索
cad2007下载
软件下载
solidworks下载
proe下载
机械标准
机械招聘
机械图纸
机械百科
机械交易网
网站建设
机械设计手册
proe视频教程
cad2013视频教程
solidworks2008视频教程
CAD2004视频教程

偏移子程序…现在在个人内测,专家们审核审核,多多提意见!

[复制链接]
查看: 406|回复: 9

该用户从未签到

发表于 2013-10-31 22:04:42 | 显示全部楼层 |阅读模式
背景:
我们厂的产品主要是售后的,批量很小,能上千的都很少。十几台数车加工每天的调试很频繁,没有技术员,全靠个人操作,还是计件的!加工刀具也多,少的三把,四把现在用新工艺加工最少就要五把刀,多的七八把刀加工,调试时对刀,调磨耗最麻烦。使用平移坐标系能很轻松解决这个问题,但好多同仁学了好多次也是模模糊糊不敢用。所以自己就做了个平移的代码,自己内测了两多星期,使用还算正常!想过些时候在组内推广…今天贴出来让专家们审核审核,多给点指导和意见…谢谢!
来自: Android客户端
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-10-31 22:05:33 | 显示全部楼层
z向平移代码使用方法
  在调试产品中平移的对刀速度想对于传统对刀速度有很大的提升,但操作起来操作步骤和注意事项也相对较多…在此将其繁杂的步骤和注意事项做入代码中,从而提高操作效率降低操作失误率,使平移更容易理解使用。
  平移代码是以手动平移为原理,并整合所有步骤和注意事项在程序中,以代码调用子程序的方式执行。先介绍下手动平移的注意事项和步骤。
  手动平移能正确使用的注意事项:
  ①刀塔上所有刀具x,z向在同一基准上,如若有刀具不在以一号刀为基准的坐标系中,那么操作时一定要有对刀动作,遵循先平移后对刀的原理。
  ②磨耗值会影响到平移精度,因为平移时在MDI的方式下磨耗不被计算到刀补里,所以平移前要将磨耗值加入刀补值中。
  ③机床丝杆的间隙补偿会影响到对刀时产生绝对坐标,从而使MDI执行刀补和自动执行刀补有误差。操作时要使每次手轮手动都是固定向Z正或Z负方向移动。
手动平移的基本步骤:
  ①用基准刀试切工件。
  ②工件取下测量高度值。
  ③MDI方式执行基准刀刀补(如T0101)。
  ④切换至坐标画面显示(pos键),将绝对坐标记录下来。
  ⑤切换至坐标系将数值加进坐标中,注意正负,以加入后绝对坐标变为0为基准。
  ⑥加入测量工件计算后此处的z值,注意加入的正负性,以得到计算值为准。(平移完成)
  平移代码G100使用格式:
  G100 Z_;
Z_:指定当前位置的绝对坐标。
  例:用一号刀试切后测量此处应为Z0.3,在MDI下执行G100 Z0.3;按启动,程序大约执行一秒不到,执行完切换坐标画面核对绝对坐标!平移完成…
  G100 W_;
  W_:相对平移。
  例:调试产品后需整体向下减0.2,在MDI执行G100 W-0.2;启动即可!
  G100 W0 A_;
  W0 为刀补录入功能选项。
  A_:取值范围为负数,0,和不大于机床刀具号的整数!
  G100 W0 A_;
  A为负数时:取消刀补对比功能,此时即使某把刀具刀补变化超过1毫米执行平移时也不会报警!此为模态,在不指定大于等于零的A值时一直被默认!
  G100 W0 A0;
  现有所有刀补数据覆盖保存刀补数据,不发出任何报警!首次调试程序时执行一次,或者撞机后重新对所有刀具后必须执行一次(执行此选项必须保证所有刀具可用)。
  G100 W0 A_;
保存当前刀补值;A值指定要保存的刀具号(大于零且小于等于机床刀具数的整数),用于新添加刀具后保存刀补,此时应注意对刀时应和当前基准刀具同一零点。
  例:平移完成后,新添的一把刀具在10号刀位,对好后在MDI下执行G100 W0 A10;若对刀后未执行此命令,在下次平移时会报3110 X AND Z BIAN DONG;
  G100 T_ Z_;
  指定基准刀具偏移;在不指定T值的情况下默认基准刀为一号刀。
  例:只使用一号刀以外一把或几把刀具加工时,例如只使用四号刀,用四号刀试切后指定Z0,MDI下执行G100 T4 Z0;即可。
  不能试切刀具与执行刀具不一样,因为如果不一样坐标会出错,程序也会执行换刀动作!
  例:用三号刀试切,MDI下执行G100 T4 Z0;此时将以四号刀刀补计算坐标,得出的坐标值与三号刀有误差,但绝对坐标显示为Z0,且刀塔换刀换为四号刀!
  报警信息与处理:
  3001 Z AND W KONG;
  执行时Z,W不能同时不指定。
  3002 Z AND W CHONG;
  重复指定了Z和W。
  3001 NO X;
  不可指定X。
  3001 NO U;
  不可指定U。
  3003 T DA YU 10;
  指定基准刀具号大于机床刀位数。
  3004 A ERROR;
A 不在取值范围。
  以上为录入数据错误报警,报警时没进行平移动作复位后录入正确数据即可。
  A值为负时,刀补对比取消,此时无论执行什么在程序结束时都会有提醒“PIAN YI OK”,意为偏移程序结束,未进行刀补对比。
  3100报警;
  以31开头报警为刀补变动的错误报警,31后两位为报警刀具号。如3108是八号刀刀补变动超过一毫米。
  31__ Z BIAN DONG;
  报警刀具刀补z方向变动超过一毫米。
  31__ X BIAN DONG;
  报警刀具刀补X方向变动超过一毫米。
  31__ X AND Z BIAN DONG;
  报警刀具刀补X,Z方向都变动超过一毫米。
  上述报警出现时,为此次平移的所有刀补值较上次变动超过一毫米,此时平移已经完成,出错刀具如果不安全可以直接对刀,完成后执行G100 W0;保存报警刀具刀补。报警后程序会记录下报警刀具号,保存刀补时可不指定A值。如果没保存已经正确的刀补值,下次平移时还会报出同样的错误。
  注意:在平移时为消除丝杆间隙的影响,刀塔会有一个毫米的往返运动。误操作可能导致刀塔换刀。所以要远离工件操作!
  此代码为调用子程序,没有子程序或未对机床进行设置不能使用。
  报警只是提供参考,不能以其作为安全保障,错误的操作可能会保存错误的刀补数值。程序测试成功后其逻辑性是正确的,因此不对任何误操作引起的后果负责,请在完全理解的情况下使用!此代码为方便操作,提高调试效率和安全性,但不能完全替代手动操作,扎实的基本功、良好的调试习惯才是安全和效率的保障。
  如有需要改进的地方请即使反馈作出修改...
来自: Android客户端
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-10-31 22:06:09 | 显示全部楼层
自己写的代码说明…下面贴出源程序,比较庸长,自己也是新手,很多逻辑都是自己想了好久…专家们多多指点!
来自: Android客户端
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-10-31 22:06:51 | 显示全部楼层

O9010(PIAN YI);
IF[[#26 EQ #0]AND [#23EQ#0]] THEN #3000=1 (Z AND W KONG);
IF[[#26 NE #0]AND [#23NE#0]] THEN #3000=2 (Z AND W CHONG);
IF[#24 NE #0] THEN #3000=1(NO X);
IF[#21 NE #0] THEN #3000=1(NO U);
IF[#20 GT 10] THEN #3000=3(T DA YU 10);
IF[#1 NE #0] THEN #620=#1;
IF[#620 LT 0] GOTO 90;
IF[#23 EQ 0] GOTO 500;
N90 #20=FIX[#20];
IF[#20 LT 1] THEN #20=1;
#[2800+#20]=#[2800+#20]+#[2100+#20];
#[2100+#20]=0;
IF[#23 NE #0] GOTO 100;
T[#20*101]
#5202=0;
#5222=0;
#2601=0;
G98 G1 W1. F500;
W-1.;
G99;
#30=1;
WHILE[#5042 NE #26] DO1;
IF[#30 GE 9] THEN #3000=3(PIAN YI ERROR);
#31=1;
#32=1;
#33=1;
IF[[#30 EQ 5] OR [#30 EQ 6]] THEN #31=-1;
IF[[#30 EQ 7] OR [#30 EQ 8]] THEN #31=-1;
IF[[#30 EQ 3] OR [#30 EQ 4]] THEN #32=-1;
IF[[#30 EQ 7] OR [#30 EQ 8]] THEN #32=-1;
IF[[#30 EQ 2] OR [#30 EQ 4]] THEN #33=-1;
IF[[#30 EQ 6] OR [#30 EQ 8]] THEN #33=-1;
#5202=#31*#26+#32*#5022+#33*#[2800+#20];
#30=#30+1;
END1;
GOTO 200;
N100 #10=#5042;
#14=1;
#15=1;
N300#5202=#5202+#14*#15*#23;
#14=2;
#15=-1;
IF[#23 LE 0] GOTO 400;
IF[#5042 GT #10] GOTO 300;
GOTO 200;
N400 IF[#5042 LT #10] GOTO 300;
N200(DUI BI);
IF[#620 LT 0] GOTO 99;
#27=1;
WHILE[#27 LE 10] DO2;
#28=ABS[#[2800+#27]]-ABS[#[600+#27]];
IF[ABS[#28] GE 1] THEN #600=#27;
#29=ABS[#[2700+#27]]-ABS[#[630+#27]];
IF[ABS[#29] GE 1] THEN #630=#27;
IF[[ABS[#29] GE 1] AND [ABS[#28] GE 1]] THEN #3100=[100+#27](X AND Z BIAN DONG);
IF[ABS[#28] GE 1] THEN #3100=[100+#27](Z BIAN DONG);
IF[ABS[#29] GE 1] THEN #3100=[100+#27](X BIAN DONG);
#27=#27+1;
END2;
N99 IF[#620 LT 0] THEN #3006=1(PIAN YI OK);
M99;
N500(LU RU DAO BU);
IF[#600 GT 0] GOTO 600;
IF[#630 GT 0] GOTO 700;
IF[[FIX[#1] NE ABS[#1]] OR [#1 GT 10]] THEN #3000=4(A ERRER);
IF[#1 EQ 0] GOTO 800;
IF[#1 GE 1] GOTO 900;
GOTO 200;
N600#[600+#600]=#[2800+#600];
GOTO 500;
N700#[630+#630]=#[2700+#630];
GOTO 500;
N900 #600=#1;
#630=#1;
#1=#0;
GOTO 500;
N800(FU GAI);
#1=1;
WHILE[#1 LE 10] DO3;
#[600+#1]=#[2800+#1];
#[630+#1]=#[2700+#1];
#1=#1+1;
END 3;
#600=#0;
#630=#0;
M99;
来自: Android客户端
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-10-31 22:07:22 | 显示全部楼层
貌似没有必要吧?
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-10-31 22:07:52 | 显示全部楼层
自己英文白痴,报警信息都是拼音…嘿嘿,能看懂就好了!
来自: Android客户端
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-10-31 22:08:42 | 显示全部楼层

风随意 发表于 2013-4-4 13:44
貌似没有必要吧?

做这个程序是麻烦点,但使用很方便…特别是刀具多的时候!
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-10-31 22:09:18 | 显示全部楼层
程序能自己寻找算法,报PIAN YI ERRER的时候是系统变量号不对,修改变量号就可以了,在三个版本的法兰克系统测试过了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2013-10-31 22:09:51 | 显示全部楼层
用工件移不是更快
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2013-10-31 22:10:36 | 显示全部楼层

veroinca 发表于 2013-4-4 18:05
用工件移不是更快

和工件移一个道理,多了的就是刀具对比…工件移的前提就是刀具在一个基准上
回复 支持 反对

使用道具 举报

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

本版积分规则

Copyright © 2012-2035 厦门鑫时器科技有限公司 版权所有
闽ICP备2023009579号-1 技术支持:机械网站建设  Powered by Discuz! X3.4
快速回复 返回顶部 返回列表