机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

搜索
查看: 4160 | 回复: 20
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2013-4-4 13:38:24 来自手机 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式
本帖最后由 wang2011214 于 2013-4-4 13:51 编辑$ N3 O! m: P$ o8 S9 l4 [' R# V6 {

" d3 Q8 r9 L) @+ S) d- C8 W背景:4 w0 q4 d, e+ ^$ S
我们厂的产品主要是售后的,批量很小,能上千的都很少。十几台数车加工每天的调试很频繁,没有技术员,全靠个人操作,还是计件的!加工刀具也多,少的三把,四把现在用新工艺加工最少就要五把刀,多的七八把刀加工,调试时对刀,调磨耗最麻烦。使用平移坐标系能很轻松解决这个问题,但好多同仁学了好多次也是模模糊糊不敢用。所以自己就做了个平移的代码,自己内测了两多星期,使用还算正常!想过些时候在组内推广…今天贴出来让专家们审核审核,多给点指导和意见…谢谢!来自: Android客户端
2#
楼主 | 发表于 2013-4-4 13:40:08 来自手机 | 只看该作者
z向平移代码使用方法* m; v3 _9 }: Q
在调试产品中平移的对刀速度想对于传统对刀速度有很大的提升,但操作起来操作步骤和注意事项也相对较多…在此将其繁杂的步骤和注意事项做入代码中,从而提高操作效率降低操作失误率,使平移更容易理解使用。" O: F. Z8 I4 [$ ]9 E
平移代码是以手动平移为原理,并整合所有步骤和注意事项在程序中,以代码调用子程序的方式执行。先介绍下手动平移的注意事项和步骤。
# [7 t3 O; ]0 p8 P* V7 n \' F手动平移能正确使用的注意事项:% y2 G" s7 Y4 C5 W: a7 V _- @
①刀塔上所有刀具x,z向在同一基准上,如若有刀具不在以一号刀为基准的坐标系中,那么操作时一定要有对刀动作,遵循先平移后对刀的原理。
# ?; p$ K& B4 j4 j7 E②磨耗值会影响到平移精度,因为平移时在MDI的方式下磨耗不被计算到刀补里,所以平移前要将磨耗值加入刀补值中。
# m# G/ X) g8 ^- P B③机床丝杆的间隙补偿会影响到对刀时产生绝对坐标,从而使MDI执行刀补和自动执行刀补有误差。操作时要使每次手轮手动都是固定向Z正或Z负方向移动。- S/ M+ m" y7 @8 f
手动平移的基本步骤:; s+ @/ g& k* w: g8 Z: X
①用基准刀试切工件。
! d( a- {8 c- Z% S0 R; y1 Z②工件取下测量高度值。
" a! b& _; b, s) j$ q0 x8 t% W, g) f③MDI方式执行基准刀刀补(如T0101)。
5 F7 a" c( A0 c. ^ g3 m④切换至坐标画面显示(pos键),将绝对坐标记录下来。
! H" J% T2 O$ f. U) j- H; }' b⑤切换至坐标系将数值加进坐标中,注意正负,以加入后绝对坐标变为0为基准。
3 W i0 _% \% L1 _$ Z1 T⑥加入测量工件计算后此处的z值,注意加入的正负性,以得到计算值为准。(平移完成)
9 b$ n* J# w y3 B" ^$ Q$ y$ e平移代码G100使用格式:
7 n2 w! S' U; bG100 Z_;, x% C% `. B. h# t8 U
Z_:指定当前位置的绝对坐标。
% h) N& j/ U" d' o例:用一号刀试切后测量此处应为Z0.3,在MDI下执行G100 Z0.3;按启动,程序大约执行一秒不到,执行完切换坐标画面核对绝对坐标!平移完成…
# D* ^& f9 Z1 e" K1 `/ AG100 W_;
2 a4 W2 p# \9 bW_:相对平移。
1 U+ `8 M& k4 a3 M L* s i, P: d' t9 G例:调试产品后需整体向下减0.2,在MDI执行G100 W-0.2;启动即可!( [4 v1 m/ @ n6 ]7 b
G100 W0 A_;- v. x) ~: b( a7 J
W0 为刀补录入功能选项。. r$ M5 V1 q1 v$ W2 F A3 Q% @2 x; q
A_:取值范围为负数,0,和不大于机床刀具号的整数!4 `1 w" v9 D; v. r6 u0 G
G100 W0 A_;5 q5 G9 ?5 `, y% B( n
A为负数时:取消刀补对比功能,此时即使某把刀具刀补变化超过1毫米执行平移时也不会报警!此为模态,在不指定大于等于零的A值时一直被默认!" |4 \: Y# r% N
G100 W0 A0;5 O7 r. k' m0 E/ f2 {, c
现有所有刀补数据覆盖保存刀补数据,不发出任何报警!首次调试程序时执行一次,或者撞机后重新对所有刀具后必须执行一次(执行此选项必须保证所有刀具可用)。1 W) e8 L* s; v$ E& V3 m
G100 W0 A_;
5 |7 p s8 v3 } g. u# T% {9 {* _保存当前刀补值;A值指定要保存的刀具号(大于零且小于等于机床刀具数的整数),用于新添加刀具后保存刀补,此时应注意对刀时应和当前基准刀具同一零点。4 G/ s% Z8 @% r6 p/ r
例:平移完成后,新添的一把刀具在10号刀位,对好后在MDI下执行G100 W0 A10;若对刀后未执行此命令,在下次平移时会报3110 X AND Z BIAN DONG;
9 z. b3 n& z3 @' a/ c, k g1 E$ }, O& yG100 T_ Z_;
. f) o2 _( W0 [0 b, _+ [指定基准刀具偏移;在不指定T值的情况下默认基准刀为一号刀。
! N+ o9 T1 F. F* F3 r例:只使用一号刀以外一把或几把刀具加工时,例如只使用四号刀,用四号刀试切后指定Z0,MDI下执行G100 T4 Z0;即可。9 h1 P: s7 d0 H/ D4 i
不能试切刀具与执行刀具不一样,因为如果不一样坐标会出错,程序也会执行换刀动作!
7 e5 |, m- U" L% D" v例:用三号刀试切,MDI下执行G100 T4 Z0;此时将以四号刀刀补计算坐标,得出的坐标值与三号刀有误差,但绝对坐标显示为Z0,且刀塔换刀换为四号刀!# r' J9 J, Q, b8 ?1 O+ z
报警信息与处理:; s0 M4 y. b( o7 q- s' H U
3001 Z AND W KONG;
6 V( Y( p5 @% ?+ [5 u0 j执行时Z,W不能同时不指定。
; q0 C, q3 g4 B7 t" e/ o3002 Z AND W CHONG;& W! Q# k, ]7 X7 m$ }
重复指定了Z和W。
/ T! h C. F+ O! q3001 NO X;. u/ w7 [- P6 A: `
不可指定X。
9 D. m$ s/ h, M! E6 p- v" w) A3001 NO U;
- m- q1 h! {0 D* o0 }6 Y4 f/ V ~不可指定U。
' } [& ]) [. L6 \: X9 k+ Y3003 T DA YU 10;
/ r8 P/ Z0 f# ?5 H3 B7 O指定基准刀具号大于机床刀位数。6 G% z6 e5 O/ \" R" ~% Z
3004 A ERROR;
' E4 E. Q- \9 F: ~A 不在取值范围。0 L1 O! I1 C# G1 I% ?* y
以上为录入数据错误报警,报警时没进行平移动作复位后录入正确数据即可。- `* U+ W1 P3 N- j4 b( H
A值为负时,刀补对比取消,此时无论执行什么在程序结束时都会有提醒“PIAN YI OK”,意为偏移程序结束,未进行刀补对比。" {- w- }6 k: D- U& o" p+ p, s0 _
3100报警;
) w3 _6 V# s, o$ h+ k1 B" I9 O以31开头报警为刀补变动的错误报警,31后两位为报警刀具号。如3108是八号刀刀补变动超过一毫米。* [( ~! V' c8 U: B9 ]
31__ Z BIAN DONG;
* h. C4 E# |! T! e; e- @$ u报警刀具刀补z方向变动超过一毫米。; F/ S4 C+ k' o. y. `
31__ X BIAN DONG;6 Z0 Y M3 z0 x
报警刀具刀补X方向变动超过一毫米。% @) i$ ^7 B. ?/ ]' h
31__ X AND Z BIAN DONG;
0 Q1 K. K1 h3 ?/ E: e! E报警刀具刀补X,Z方向都变动超过一毫米。
3 t; k( E1 g. J* F2 w8 _上述报警出现时,为此次平移的所有刀补值较上次变动超过一毫米,此时平移已经完成,出错刀具如果不安全可以直接对刀,完成后执行G100 W0;保存报警刀具刀补。报警后程序会记录下报警刀具号,保存刀补时可不指定A值。如果没保存已经正确的刀补值,下次平移时还会报出同样的错误。" d! k8 ^" m5 g/ L' i$ B9 g
注意:在平移时为消除丝杆间隙的影响,刀塔会有一个毫米的往返运动。误操作可能导致刀塔换刀。所以要远离工件操作!
: y: ~5 w( \9 P& x此代码为调用子程序,没有子程序或未对机床进行设置不能使用。+ ]# G" T. e' k+ ]3 N) h4 h! N" Q
报警只是提供参考,不能以其作为安全保障,错误的操作可能会保存错误的刀补数值。程序测试成功后其逻辑性是正确的,因此不对任何误操作引起的后果负责,请在完全理解的情况下使用!此代码为方便操作,提高调试效率和安全性,但不能完全替代手动操作,扎实的基本功、良好的调试习惯才是安全和效率的保障。" w- F2 D, W: i( o. E2 S% \' u
如有需要改进的地方请即使反馈作出修改...来自: Android客户端
3#
楼主 | 发表于 2013-4-4 13:41:53 来自手机 | 只看该作者
自己写的代码说明…下面贴出源程序,比较庸长,自己也是新手,很多逻辑都是自己想了好久…专家们多多指点!来自: Android客户端
4#
楼主 | 发表于 2013-4-4 13:42:32 来自手机 | 只看该作者
本帖最后由 wang2011214 于 2013-4-4 13:54 编辑
/ l2 `; g( r# y. N8 c9 M
1 S9 _1 }( k( B7 k) L5 g3 xO9010(PIAN YI);
/ r: _; D1 k- k& N$ [. x$ iIF[[#26 EQ #0]AND [#23EQ#0]] THEN #3000=1 (Z AND W KONG);
& a) W' |& }( T: u2 P3 \IF[[#26 NE #0]AND [#23NE#0]] THEN #3000=2 (Z AND W CHONG);' B( X! m5 s/ D- Z
IF[#24 NE #0] THEN #3000=1(NO X);( f- y% R$ j, {1 F$ D% m6 d
IF[#21 NE #0] THEN #3000=1(NO U);+ p# P: |; q5 [- v% C+ z7 o h) x
IF[#20 GT 10] THEN #3000=3(T DA YU 10);
; d" b2 }. \0 o3 z8 s, }* tIF[#1 NE #0] THEN #620=#1;
E' j: Q& ?2 Y9 p* iIF[#620 LT 0] GOTO 90;
. k1 d H, D0 Y% x0 Q' o/ O# iIF[#23 EQ 0] GOTO 500;
6 @, A+ L2 B0 u0 q8 P u3 LN90 #20=FIX[#20];d) F# {5 u$ g" m$ G; f
IF[#20 LT 1] THEN #20=1;
5 v+ J) J1 g: p3 `$ ~0 l#[2800+#20]=#[2800+#20]+#[2100+#20];
" p' a7 W2 z% I R, C#[2100+#20]=0;
/ \) C& _0 v; Q) j$ @* ]IF[#23 NE #0] GOTO 100;
9 w+ X4 c, p) C; zT[#20*101]
2 ]9 R s0 p/ b3 m#5202=0;
: g: ~1 u' [+ C#5222=0;5 F+ J* G; f. b* g' Y; ?2 n
#2601=0;
+ q& ], I8 X! |- P/ k1 @- GG98 G1 W1. F500;
( o5 c' ~2 h- _& gW-1.;q$ N& a5 p" e& E/ r0 R
G99;
% r# i+ e1 m$ I% O" k8 T( o, b) Q#30=1;* B% }5 u0 L/ o0 v. d
WHILE[#5042 NE #26] DO1;# g, ?6 a; i0 f6 T1 n
IF[#30 GE 9] THEN #3000=3(PIAN YI ERROR);
. y3 |7 T. z" I' H#31=1;& Z! i( O+ Z5 K3 U
#32=1;) }" j2 E8 d0 B
#33=1;
5 {0 ]9 H1 X/ D6 n+ P& e$ fIF[[#30 EQ 5] OR [#30 EQ 6]] THEN #31=-1;
) ^4 N1 |, s2 I; |- a5 P$ M5 f+ AIF[[#30 EQ 7] OR [#30 EQ 8]] THEN #31=-1;2 v) n) A. H2 Z) n; }
IF[[#30 EQ 3] OR [#30 EQ 4]] THEN #32=-1;5 C9 ]6 A4 i0 Q5 D* Q; m, P
IF[[#30 EQ 7] OR [#30 EQ 8]] THEN #32=-1;
3 F; M" j$ y2 ]/ Z1 D" t Y7 UIF[[#30 EQ 2] OR [#30 EQ 4]] THEN #33=-1;/ O2 w% i5 ^) P$ Q$ t! G1 m
IF[[#30 EQ 6] OR [#30 EQ 8]] THEN #33=-1;* u s h* R% J# v, \
#5202=#31*#26+#32*#5022+#33*#[2800+#20];& ?, \1 O( V9 `, E0 x
#30=#30+1;0 e0 q( _- u: Y2 Z
END1;
6 U4 @$ y( ^: u1 g$ BGOTO 200;; ~% J; W8 }7 P# f8 M# P# j
N100 #10=#5042;
4 u+ |: }+ S5 K! E9 K2 b#14=1;2 i+ Z; q' y4 M3 A" @; w$ E
#15=1;! \# [* i6 j5 c* }' u
N300#5202=#5202+#14*#15*#23;, E- \% |& {0 o8 s2 Y, f
#14=2;% P5 ^! X$ P8 V, ]# X
#15=-1;
9 N. e0 d/ m7 ^1 ]3 OIF[#23 LE 0] GOTO 400;
$ B8 o3 c" V4 }7 a: a$ A. n0 nIF[#5042 GT #10] GOTO 300;1 j% M6 z* C/ ~4 \/ V
GOTO 200;
5 ~8 E1 ~9 r; M) l% E1 PN400 IF[#5042 LT #10] GOTO 300;1 K) Z) w+ \4 B! l5 z Z
N200(DUI BI);" v8 b: q- G, v( M4 o/ F
IF[#620 LT 0] GOTO 99;
, Z1 k- W- y, W! g2 P# w6 C#27=1;
' l; F9 u6 i, k* W! a% ?4 `WHILE[#27 LE 10] DO2;
s ~: C" f& L& s L#28=ABS[#[2800+#27]]-ABS[#[600+#27]];
3 b' V7 _6 w3 P; O+ _ dIF[ABS[#28] GE 1] THEN #600=#27;5 s" M6 w8 R; R: s9 \) z* k
#29=ABS[#[2700+#27]]-ABS[#[630+#27]];" v- p" D% |: y2 i+ H, N4 \4 j
IF[ABS[#29] GE 1] THEN #630=#27;
$ m; f! y! E/ K8 R) E6 M. q4 uIF[[ABS[#29] GE 1] AND [ABS[#28] GE 1]] THEN #3100=[100+#27](X AND Z BIAN DONG);/ m% _. }$ F# N
IF[ABS[#28] GE 1] THEN #3100=[100+#27](Z BIAN DONG);
+ `1 @9 p3 _# lIF[ABS[#29] GE 1] THEN #3100=[100+#27](X BIAN DONG);
& G6 }4 H2 p( M8 q#27=#27+1;- W& n% o0 a. k5 M5 j ~3 X- o
END2;
+ j1 x5 `( d, `0 x* KN99 IF[#620 LT 0] THEN #3006=1(PIAN YI OK);
! ^4 L+ z& R3 |' ?M99;
, Y" t* A, |5 l# j7 u: |; l* l- HN500(LU RU DAO BU);0 x4 p& _9 Z3 i3 p/ x1 c5 C
IF[#600 GT 0] GOTO 600;
1 Q* T' q! ~- ~5 j; IIF[#630 GT 0] GOTO 700;
9 k( b. I' h/ |' ^' KIF[[FIX[#1] NE ABS[#1]] OR [#1 GT 10]] THEN #3000=4(A ERRER);
4 n3 x$ X7 {4 pIF[#1 EQ 0] GOTO 800;
+ @) s% x0 n( A9 X! I3 R0 O; A* X3 rIF[#1 GE 1] GOTO 900;- g$ X/ g: \9 {1 ?9 S8 n8 {
GOTO 200;
; y# Q2 ]. i' w2 ^- {N600#[600+#600]=#[2800+#600];
8 O/ ^$ Y0 @6 X+ ^' {' @7 KGOTO 500;/ v6 ^* y8 G6 x3 s8 e& c
N700#[630+#630]=#[2700+#630];
! \6 J3 j6 b% X1 L; a" h/ y( rGOTO 500;" }, P5 r/ o1 Q/ y
N900 #600=#1;5 e. x1 Y- {& E( a; ^
#630=#1;H# @$ i4 \4 N' z/ S8 n9 U2 U
#1=#0;$ t7 ?" H& P" V0 U' Y
GOTO 500;
# ^% Q, f k/ p8 k% wN800(FU GAI);& t. V& W8 O; S' V8 w' C) |
#1=1;0 H* o7 B$ j% K4 b4 l( I4 S
WHILE[#1 LE 10] DO3;
9 B+ v# X) y$ W#[600+#1]=#[2800+#1];
+ Z" V) R( L5 h. ^, l#[630+#1]=#[2700+#1];2 M7 m0 ]- V% j# B, o. B4 |
#1=#1+1;
- _* X6 Y9 w8 i. T( f- k' nEND 3;$ O7 O8 ]) H5 m
#600=#0;$ ^# ?( p0 X& {: a' Q1 y9 s$ {
#630=#0;
{+ T4 _( i8 f5 x8 x$ q4 uM99;来自: Android客户端

点评

好深奥啊.学习了.不过只需改Z向可以坐标系偏移00坐标系.只需要对一把刀的Z向.差多少就改多少.很方便啊 发表于 2013-12-2 18:58
5#
发表于 2013-4-4 13:44:49 | 只看该作者
貌似没有必要吧?
6#
楼主 | 发表于 2013-4-4 13:47:09 来自手机 | 只看该作者
自己英文白痴,报警信息都是拼音…嘿嘿,能看懂就好了!来自: Android客户端
7#
楼主 | 发表于 2013-4-4 17:38:09 来自手机 | 只看该作者
风随意 发表于 2013-4-4 13:44
5 h0 |7 g3 a' b- I, @ 貌似没有必要吧?

H/ W+ v) R n7 S; t做这个程序是麻烦点,但使用很方便…特别是刀具多的时候!
8#
楼主 | 发表于 2013-4-4 17:42:53 来自手机 | 只看该作者
程序能自己寻找算法,报PIAN YI ERRER的时候是系统变量号不对,修改变量号就可以了,在三个版本的法兰克系统测试过了
9#
发表于 2013-4-4 18:05:12 | 只看该作者
用工件移不是更快
10#
楼主 | 发表于 2013-4-4 18:09:55 来自手机 | 只看该作者
veroinca 发表于 2013-4-4 18:05 8 J* e" h: d: C
用工件移不是更快
+ r. F. }( B9 L" c
和工件移一个道理,多了的就是刀具对比…工件移的前提就是刀具在一个基准上
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址(京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号)

GMT+8, 2024-5-10 05:02, Processed in 0.057836 second(s), 16 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

快速回复 返回顶部 返回列表