机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2013-4-4 13:38:24 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wang2011214 于 2013-4-4 13:51 编辑
( _  }% J* r- ~# [$ |' `1 e) P+ X( C' z! q; G
背景:' w, G% Z2 Q  P- P$ _( n$ H7 ]
我们厂的产品主要是售后的,批量很小,能上千的都很少。十几台数车加工每天的调试很频繁,没有技术员,全靠个人操作,还是计件的!加工刀具也多,少的三把,四把现在用新工艺加工最少就要五把刀,多的七八把刀加工,调试时对刀,调磨耗最麻烦。使用平移坐标系能很轻松解决这个问题,但好多同仁学了好多次也是模模糊糊不敢用。所以自己就做了个平移的代码,自己内测了两多星期,使用还算正常!想过些时候在组内推广…今天贴出来让专家们审核审核,多给点指导和意见…谢谢!来自: Android客户端
回复

使用道具 举报

2#
 楼主| 发表于 2013-4-4 13:40:08 来自手机 | 只看该作者
z向平移代码使用方法
1 v8 {& E; j2 K3 o% a* S- Z    在调试产品中平移的对刀速度想对于传统对刀速度有很大的提升,但操作起来操作步骤和注意事项也相对较多…在此将其繁杂的步骤和注意事项做入代码中,从而提高操作效率降低操作失误率,使平移更容易理解使用。
' t  {* v8 D8 M( f) a# p    平移代码是以手动平移为原理,并整合所有步骤和注意事项在程序中,以代码调用子程序的方式执行。先介绍下手动平移的注意事项和步骤。
- u1 k4 K4 k, ~8 `# V- s* F$ y    手动平移能正确使用的注意事项:
' k, n! F$ d5 x5 H, x" b' d    ①刀塔上所有刀具x,z向在同一基准上,如若有刀具不在以一号刀为基准的坐标系中,那么操作时一定要有对刀动作,遵循先平移后对刀的原理。- I4 i1 Q6 L: v& `! o5 a: `' U) ^
    ②磨耗值会影响到平移精度,因为平移时在MDI的方式下磨耗不被计算到刀补里,所以平移前要将磨耗值加入刀补值中。4 ?1 q+ A2 r9 y4 C; n9 v
    ③机床丝杆的间隙补偿会影响到对刀时产生绝对坐标,从而使MDI执行刀补和自动执行刀补有误差。操作时要使每次手轮手动都是固定向Z正或Z负方向移动。" R4 d' |3 B, X8 n4 D/ l5 Q8 x2 n
   手动平移的基本步骤:
& c- v3 c& ]( |+ `; w* U9 \: T8 h    ①用基准刀试切工件。
9 _2 K% r* {3 y    ②工件取下测量高度值。# A1 g0 X! z6 q2 N% x
    ③MDI方式执行基准刀刀补(如T0101)。' o0 }8 C2 C5 A' s2 n! ]8 F
    ④切换至坐标画面显示(pos键),将绝对坐标记录下来。& n5 o- ~) Y2 D4 d
    ⑤切换至坐标系将数值加进坐标中,注意正负,以加入后绝对坐标变为0为基准。
6 b  x# @( b# b" v8 b    ⑥加入测量工件计算后此处的z值,注意加入的正负性,以得到计算值为准。(平移完成)
/ k3 n( d1 A: }4 @1 K0 H- U    平移代码G100使用格式:
4 l# q; P6 `) ~- r& ~    G100 Z_;. m" p: E. {( k; N5 \
     Z_:指定当前位置的绝对坐标。( O0 o1 a& ?! F0 e) ?
    例:用一号刀试切后测量此处应为Z0.3,在MDI下执行G100 Z0.3;按启动,程序大约执行一秒不到,执行完切换坐标画面核对绝对坐标!平移完成…  e* \1 K$ \- ~7 l( `3 I
    G100 W_;4 G7 y4 B2 j2 d% r7 R/ |3 m
    W_:相对平移。
5 |5 a4 r% t6 n* u* p    例:调试产品后需整体向下减0.2,在MDI执行G100 W-0.2;启动即可!+ ^& d. d/ ~/ |- P: F4 d' N; m, c2 x0 j
    G100 W0 A_;- S/ q2 G  f8 r0 ]/ b
    W0 为刀补录入功能选项。
, S. ^+ R0 ^) F- X, p% Q    A_:取值范围为负数,0,和不大于机床刀具号的整数!6 J8 A* |! d3 w
    G100 W0 A_;" `2 r- x! K8 I# K% a
    A为负数时:取消刀补对比功能,此时即使某把刀具刀补变化超过1毫米执行平移时也不会报警!此为模态,在不指定大于等于零的A值时一直被默认!
1 E# G, g8 b" W& o0 Y% z    G100 W0 A0;
; c7 m* a: W) N' C) G    现有所有刀补数据覆盖保存刀补数据,不发出任何报警!首次调试程序时执行一次,或者撞机后重新对所有刀具后必须执行一次(执行此选项必须保证所有刀具可用)。
9 y4 F5 k  L7 Z: y; [" u8 d    G100 W0 A_;  P. h. T' p! L# S- G
     保存当前刀补值;A值指定要保存的刀具号(大于零且小于等于机床刀具数的整数),用于新添加刀具后保存刀补,此时应注意对刀时应和当前基准刀具同一零点。0 }- r6 o' U, A3 C
    例:平移完成后,新添的一把刀具在10号刀位,对好后在MDI下执行G100 W0 A10;若对刀后未执行此命令,在下次平移时会报3110 X AND Z BIAN DONG;
4 I/ b3 O7 E" |- D    G100 T_ Z_;
5 c# E* n8 U& F/ h$ _    指定基准刀具偏移;在不指定T值的情况下默认基准刀为一号刀。; j5 k5 [! x& {' }* y+ B# p
    例:只使用一号刀以外一把或几把刀具加工时,例如只使用四号刀,用四号刀试切后指定Z0,MDI下执行G100 T4 Z0;即可。6 B/ ?+ x6 j% C, a  i
    不能试切刀具与执行刀具不一样,因为如果不一样坐标会出错,程序也会执行换刀动作!! t3 m+ p$ b" c$ M) j/ `
    例:用三号刀试切,MDI下执行G100 T4 Z0;此时将以四号刀刀补计算坐标,得出的坐标值与三号刀有误差,但绝对坐标显示为Z0,且刀塔换刀换为四号刀!8 M- R: y( l4 a1 ]9 C  [. K4 x
    报警信息与处理:
6 v/ V5 U# J- \3 M) K! u' [, \    3001 Z AND W KONG;. d# J9 |* ~, \( v$ ]
    执行时Z,W不能同时不指定。
) c1 t9 c& ?+ w% ?    3002 Z AND W CHONG;" {. d: I/ v" b3 {8 @
    重复指定了Z和W。" O: W7 K, B8 i. v
    3001 NO X;
/ p$ K3 s* F  z- J    不可指定X。
& M  v4 n: P% y2 d( K; \. Z    3001 NO U;
  X! `% u: |8 Q" l5 Q  M    不可指定U。0 W) P  |: e1 k, ]  ]- M2 Q' e  J1 w
    3003 T DA YU 10;% R! c1 `" \. _
    指定基准刀具号大于机床刀位数。
8 [, C( h$ W5 B, P- o0 O    3004 A ERROR;, z/ n9 x; b8 X% k
     A 不在取值范围。
" ?; Q  d2 _; }. `- {( x/ o& S    以上为录入数据错误报警,报警时没进行平移动作复位后录入正确数据即可。6 \  }; w) g. d3 N. \) l6 u
    A值为负时,刀补对比取消,此时无论执行什么在程序结束时都会有提醒“PIAN YI OK”,意为偏移程序结束,未进行刀补对比。
% e! O9 Y& Z" N3 a) |. o    3100报警;
2 ~' p. Y. Q/ b/ N7 W    以31开头报警为刀补变动的错误报警,31后两位为报警刀具号。如3108是八号刀刀补变动超过一毫米。
( U+ }1 w6 n0 r3 x5 m% s    31__ Z BIAN DONG;+ T6 @& o% e6 c
    报警刀具刀补z方向变动超过一毫米。
& ^$ j' `: o/ Y( c/ P' }1 u    31__ X BIAN DONG;9 B& U7 [' {8 F& i
    报警刀具刀补X方向变动超过一毫米。
) m1 Q: y# x3 _5 [+ n    31__ X AND Z BIAN DONG;
' ]2 S+ B: E3 P    报警刀具刀补X,Z方向都变动超过一毫米。
! D! B1 C" x) a( M1 v) v( x8 ~    上述报警出现时,为此次平移的所有刀补值较上次变动超过一毫米,此时平移已经完成,出错刀具如果不安全可以直接对刀,完成后执行G100 W0;保存报警刀具刀补。报警后程序会记录下报警刀具号,保存刀补时可不指定A值。如果没保存已经正确的刀补值,下次平移时还会报出同样的错误。
6 z3 U3 z  ?% `* K; E    注意:在平移时为消除丝杆间隙的影响,刀塔会有一个毫米的往返运动。误操作可能导致刀塔换刀。所以要远离工件操作!
5 c# @% L" N8 t. r5 H: M    此代码为调用子程序,没有子程序或未对机床进行设置不能使用。
" q/ N1 V4 Q# N4 _8 j. C# U    报警只是提供参考,不能以其作为安全保障,错误的操作可能会保存错误的刀补数值。程序测试成功后其逻辑性是正确的,因此不对任何误操作引起的后果负责,请在完全理解的情况下使用!此代码为方便操作,提高调试效率和安全性,但不能完全替代手动操作,扎实的基本功、良好的调试习惯才是安全和效率的保障。
4 x- {6 N" s% J+ ^    如有需要改进的地方请即使反馈作出修改...来自: Android客户端
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2013-4-4 13:41:53 来自手机 | 只看该作者
自己写的代码说明…下面贴出源程序,比较庸长,自己也是新手,很多逻辑都是自己想了好久…专家们多多指点!来自: Android客户端
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2013-4-4 13:42:32 来自手机 | 只看该作者
本帖最后由 wang2011214 于 2013-4-4 13:54 编辑 " m* p& X' R. g9 N" S$ w
' }5 m9 C' G4 T: d9 q
O9010(PIAN YI);
! w2 @- l0 ?2 rIF[[#26 EQ #0]AND [#23EQ#0]] THEN #3000=1 (Z AND W KONG);
+ p, @  q* k- q* i4 D+ J. |  d% U IF[[#26 NE #0]AND [#23NE#0]] THEN #3000=2 (Z AND W CHONG);
( @( }# J( s5 ^8 w& zIF[#24 NE #0] THEN #3000=1(NO X);
+ l; c' t6 J( {6 Q7 k IF[#21 NE #0] THEN #3000=1(NO U);
: D* y$ D& X4 U: L( j. S9 l4 Z, O IF[#20 GT 10] THEN #3000=3(T DA YU 10);* _/ c. N3 v' H, I; O6 {
IF[#1 NE #0] THEN #620=#1;, j; G( r- n/ k, V3 Q
IF[#620 LT 0] GOTO 90;
$ w1 S4 k4 A2 r& e- D2 C, c  L: x IF[#23 EQ 0] GOTO 500;8 |. w$ t. s( m5 P4 d% t+ o$ T
N90 #20=FIX[#20];
! H4 ^4 {( u6 Z9 d" ^8 YIF[#20 LT 1] THEN #20=1;
. o4 n2 k2 Q+ P9 w  T9 O4 ^#[2800+#20]=#[2800+#20]+#[2100+#20];0 Z% ?. e* L4 k) }9 \
#[2100+#20]=0;
  T' {& D3 U4 b IF[#23 NE #0] GOTO 100;
+ K8 C; s- [5 E# eT[#20*101]2 \; Y7 `1 v; j! c
#5202=0;! y8 n: n. `) g' t! I! V3 M6 x
#5222=0;* P/ T9 d( T' W- \' x6 j8 C
#2601=0;
. H8 b- c! \" h" RG98 G1 W1. F500;
% b( B* `% b, g: L8 iW-1.;
/ f! X3 Z5 m  z) BG99;
5 k9 _) _/ A  F6 I' Z) H: m#30=1;! p) w' Z/ `/ _6 v. E3 ~; J" z
WHILE[#5042 NE #26] DO1;. U. y' [1 b1 w/ \8 l0 C' ]  ]
IF[#30 GE 9] THEN #3000=3(PIAN YI ERROR);
  k% ~* c- U5 a% j9 Q#31=1;: W* @- j3 T( s1 H/ f
#32=1;
2 b( q, I- ~- S2 X. y% y3 K6 h/ c#33=1;$ e% n# d2 _: g1 W
IF[[#30 EQ 5] OR [#30 EQ 6]] THEN #31=-1;
3 G3 {; L5 E; q! h" V* rIF[[#30 EQ 7] OR [#30 EQ 8]] THEN #31=-1;0 N% ?+ r' f2 p. A8 j1 @$ o" `5 A
IF[[#30 EQ 3] OR [#30 EQ 4]] THEN #32=-1;0 @" K: W$ _8 [7 p* Z9 _" D
IF[[#30 EQ 7] OR [#30 EQ 8]] THEN #32=-1;
  n0 J# {) E7 P" s- ]IF[[#30 EQ 2] OR [#30 EQ 4]] THEN #33=-1; , g9 ~4 a3 x7 S0 A; r" I
IF[[#30 EQ 6] OR [#30 EQ 8]] THEN #33=-1;
4 _+ M) _* M  |3 I# z#5202=#31*#26+#32*#5022+#33*#[2800+#20];
1 t" G! {; r* ]/ {! }6 i6 D#30=#30+1;: j1 R3 D, Q( T- z
END1;2 q9 a/ O5 i  U. m  [( M0 j: q. {
GOTO 200;7 Z2 J* [8 Y% ]  p- ~- H
N100 #10=#5042;
! e5 N9 Q2 \+ E& `8 ^3 @" N) O) [#14=1;9 v; d2 L; a$ e1 w+ g  {
#15=1;* [" P  x5 @% a; d) X( T( l) W
N300#5202=#5202+#14*#15*#23;
9 i' _: {6 \* o3 u/ ]7 T#14=2;
1 ?0 a* s6 X* j% C- L) ^% E* L#15=-1;7 z. S* M: }' Z- D& e. s
IF[#23 LE 0] GOTO 400;- h5 [. |+ g& }, V* j' l4 L
IF[#5042 GT #10] GOTO 300;2 e2 w- A1 M" o, x1 k# t* P
GOTO 200;! R9 y9 e( ~: S# t4 `! R! A
N400 IF[#5042 LT #10] GOTO 300;; M7 O0 B' _. {3 d
N200(DUI BI);5 C' z8 @2 o$ q
IF[#620 LT 0] GOTO 99;
" E0 O' v) P, k& @+ u& T# F! y. y#27=1;
$ J: m" P% o! `/ F/ UWHILE[#27 LE 10] DO2;
  L. P. Z1 o! ^$ U: x) z#28=ABS[#[2800+#27]]-ABS[#[600+#27]];
# h  V: V! P) Q3 fIF[ABS[#28] GE 1] THEN #600=#27;
) z) H7 U7 H( j% \7 W: A1 Z+ f/ _ #29=ABS[#[2700+#27]]-ABS[#[630+#27]];
) @% Y5 M; Z" @8 IIF[ABS[#29] GE 1] THEN #630=#27; & I. I( C; ~6 u* i, `: t
IF[[ABS[#29] GE 1] AND [ABS[#28] GE 1]] THEN #3100=[100+#27](X AND Z BIAN DONG);: Y7 {$ o( c! t& i* U
IF[ABS[#28] GE 1] THEN #3100=[100+#27](Z BIAN DONG);
2 I  P% \# D: Q4 E/ X9 Q- [5 @+ D+ aIF[ABS[#29] GE 1] THEN #3100=[100+#27](X BIAN DONG);6 _  m, R7 D; V, h" U9 x+ b
#27=#27+1;
9 D! e( ~' \/ L" y8 ~END2;3 V+ v9 u5 o/ P" w6 P0 p8 \4 B; W
N99 IF[#620 LT 0] THEN #3006=1(PIAN YI OK);; h. i6 X3 }7 T, K) X3 r0 ^
M99;
8 n! t& ^7 ]) h4 h  f+ d* XN500(LU RU DAO BU);
- n# K9 ?8 t2 k2 g+ ?4 f7 KIF[#600 GT 0] GOTO 600;5 V, T! P0 t' e% h* m
IF[#630 GT 0] GOTO 700;
0 I+ _* x5 I+ D0 JIF[[FIX[#1] NE ABS[#1]] OR [#1 GT 10]] THEN #3000=4(A ERRER);
% u+ q9 K0 K& a" B. _IF[#1 EQ 0] GOTO 800;% c" E. @& E3 [0 u' K
IF[#1 GE 1] GOTO 900;, F# Q, e+ Y, b% S1 C
GOTO 200;
& X& M; O) D0 p" e# T, vN600#[600+#600]=#[2800+#600];
$ C  }& z2 C  ^GOTO 500;
" k/ z. U. `; i, R; [N700#[630+#630]=#[2700+#630];# a% n, |3 I& o6 u: d6 M
GOTO 500;
5 ]% n! U! m! C3 R! _/ a4 HN900 #600=#1;9 i) b. b, X3 w  f4 h
#630=#1;
6 I! g7 F- @6 t) B4 e#1=#0;+ f7 r, W8 W9 L) ?
GOTO 500;
5 B0 @3 S) N4 ?N800(FU GAI);2 \- i) k5 G  l3 X- z, J& [* l
#1=1;
/ L9 C0 U" C% J; a) O% PWHILE[#1 LE 10] DO3;9 X# H# W& S& l/ j6 S+ W4 ^
#[600+#1]=#[2800+#1];
6 D) [7 C+ \$ ?* x2 E+ [#[630+#1]=#[2700+#1];& v2 B2 o2 [" b+ M
#1=#1+1;
8 q% U+ r- ^" A  LEND 3;
: X) q$ n% s! w* O5 W: e; P( }( z; d#600=#0;
' J3 u5 k( W9 W; \' O% _#630=#0;
* O- E, e& m6 |+ Q7 F! @' V# w+ U, XM99;来自: 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
& C: |+ |& H9 y- l貌似没有必要吧?
) R1 Y% p1 z, l* W
做这个程序是麻烦点,但使用很方便…特别是刀具多的时候!
回复 支持 反对

使用道具 举报

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! b" r8 T% y: @/ G: g5 v6 ~
用工件移不是更快
2 D6 ]6 i! `; Z7 d2 U* d
和工件移一个道理,多了的就是刀具对比…工件移的前提就是刀具在一个基准上
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 06:26 , Processed in 0.071350 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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