机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

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

使用道具 举报

2#
 楼主| 发表于 2013-4-4 13:40:08 来自手机 | 只看该作者
z向平移代码使用方法
/ `- M9 w( A6 L' E8 v) x5 V    在调试产品中平移的对刀速度想对于传统对刀速度有很大的提升,但操作起来操作步骤和注意事项也相对较多…在此将其繁杂的步骤和注意事项做入代码中,从而提高操作效率降低操作失误率,使平移更容易理解使用。
* O& X5 \* c8 I& r- e$ A* j2 z    平移代码是以手动平移为原理,并整合所有步骤和注意事项在程序中,以代码调用子程序的方式执行。先介绍下手动平移的注意事项和步骤。6 G( h4 O3 j$ P; C. i1 L+ U8 h
    手动平移能正确使用的注意事项:
7 C. h4 P# t+ T, J    ①刀塔上所有刀具x,z向在同一基准上,如若有刀具不在以一号刀为基准的坐标系中,那么操作时一定要有对刀动作,遵循先平移后对刀的原理。) q8 ?5 q6 @; x0 _
    ②磨耗值会影响到平移精度,因为平移时在MDI的方式下磨耗不被计算到刀补里,所以平移前要将磨耗值加入刀补值中。
1 U0 g& \8 p) o( K1 r1 B    ③机床丝杆的间隙补偿会影响到对刀时产生绝对坐标,从而使MDI执行刀补和自动执行刀补有误差。操作时要使每次手轮手动都是固定向Z正或Z负方向移动。
; F6 v  g2 |9 {: R   手动平移的基本步骤:3 y$ P) ?7 G: ~
    ①用基准刀试切工件。
4 F. [5 J+ w* ?! q4 h# R( @    ②工件取下测量高度值。) x9 C9 s7 R3 s: e9 l
    ③MDI方式执行基准刀刀补(如T0101)。' U4 M& l! C/ U# ~1 V
    ④切换至坐标画面显示(pos键),将绝对坐标记录下来。  }! _# `- a+ A+ M$ d& m
    ⑤切换至坐标系将数值加进坐标中,注意正负,以加入后绝对坐标变为0为基准。/ U6 U  T6 T3 \
    ⑥加入测量工件计算后此处的z值,注意加入的正负性,以得到计算值为准。(平移完成)( ]$ F: C( r: T, I
    平移代码G100使用格式:
, t, X# Y& a/ i* A4 P5 A% ^    G100 Z_;
# s3 Q) K; K; P4 q5 t4 F# ?     Z_:指定当前位置的绝对坐标。7 ^, m4 j, |+ T  l, {1 v
    例:用一号刀试切后测量此处应为Z0.3,在MDI下执行G100 Z0.3;按启动,程序大约执行一秒不到,执行完切换坐标画面核对绝对坐标!平移完成…) p+ F, I! @( r3 ]
    G100 W_;
* u& f% i0 C3 ], g4 F5 X    W_:相对平移。; l7 i1 h3 |. N' \6 M$ O
    例:调试产品后需整体向下减0.2,在MDI执行G100 W-0.2;启动即可!
# O( F  P' k6 }6 F8 Y    G100 W0 A_;7 I. U0 e: g$ v$ Z- _' p! a/ x
    W0 为刀补录入功能选项。2 o: M% @/ ^2 E5 Y1 m
    A_:取值范围为负数,0,和不大于机床刀具号的整数!5 f/ m; s& e  u
    G100 W0 A_;
$ N% b1 |6 S! o    A为负数时:取消刀补对比功能,此时即使某把刀具刀补变化超过1毫米执行平移时也不会报警!此为模态,在不指定大于等于零的A值时一直被默认!/ o7 D& a# S$ u' n2 n
    G100 W0 A0;( M) N9 ]: O+ ?! @1 M
    现有所有刀补数据覆盖保存刀补数据,不发出任何报警!首次调试程序时执行一次,或者撞机后重新对所有刀具后必须执行一次(执行此选项必须保证所有刀具可用)。/ u* J8 }# Q9 K% k
    G100 W0 A_;  B" c% S  c' v7 v/ A7 n, B7 ^0 T
     保存当前刀补值;A值指定要保存的刀具号(大于零且小于等于机床刀具数的整数),用于新添加刀具后保存刀补,此时应注意对刀时应和当前基准刀具同一零点。6 z# x+ f6 N! Z1 y  n
    例:平移完成后,新添的一把刀具在10号刀位,对好后在MDI下执行G100 W0 A10;若对刀后未执行此命令,在下次平移时会报3110 X AND Z BIAN DONG;
! A. p; ?2 r* p! m% s6 L  J    G100 T_ Z_;8 i& h( E" U& N7 Q) ?
    指定基准刀具偏移;在不指定T值的情况下默认基准刀为一号刀。
. A* }9 u! c$ U6 s8 \- P( d5 a' U    例:只使用一号刀以外一把或几把刀具加工时,例如只使用四号刀,用四号刀试切后指定Z0,MDI下执行G100 T4 Z0;即可。
& P. A# `! G6 l4 d( D: x/ u1 G$ s    不能试切刀具与执行刀具不一样,因为如果不一样坐标会出错,程序也会执行换刀动作!
0 b$ }% h7 K) s/ V    例:用三号刀试切,MDI下执行G100 T4 Z0;此时将以四号刀刀补计算坐标,得出的坐标值与三号刀有误差,但绝对坐标显示为Z0,且刀塔换刀换为四号刀!
& j( Y" C3 M" q    报警信息与处理:
/ v- F* z4 U0 E    3001 Z AND W KONG;) B3 k7 ?) ~/ X: g
    执行时Z,W不能同时不指定。) Q* x& C9 m) [1 J* A- A  O) ?1 l
    3002 Z AND W CHONG;
3 y2 P$ O: m; g+ l% i! `    重复指定了Z和W。& t; l1 E  d' j7 ?4 G; A% q9 I5 M
    3001 NO X;2 C; B3 I8 N0 L+ c! T% s
    不可指定X。
7 B6 A) ~3 `7 w$ E7 q/ O3 w0 b    3001 NO U;
& q  n$ r: ?, `    不可指定U。
6 p* v6 @, g: g7 K0 p- O    3003 T DA YU 10;
; K8 M6 k8 k/ k, D9 z* [    指定基准刀具号大于机床刀位数。
& L0 S0 D) @  [8 d& E; V' x    3004 A ERROR;
4 h* |0 ~4 e* W; A, e- g. E$ W     A 不在取值范围。
! o$ x7 V# y7 p) J' T    以上为录入数据错误报警,报警时没进行平移动作复位后录入正确数据即可。
9 k3 W, o7 w* j% p    A值为负时,刀补对比取消,此时无论执行什么在程序结束时都会有提醒“PIAN YI OK”,意为偏移程序结束,未进行刀补对比。1 Z, j/ p4 U: M5 D
    3100报警;# e" B, u+ N/ ^. S4 ^
    以31开头报警为刀补变动的错误报警,31后两位为报警刀具号。如3108是八号刀刀补变动超过一毫米。
% d8 P% G/ l. T7 l5 x' ]    31__ Z BIAN DONG;
9 X& H! \& H/ P" j" ~9 G    报警刀具刀补z方向变动超过一毫米。5 C* `4 T6 e& h; f$ {* [5 n
    31__ X BIAN DONG;! L; H7 f  a6 i3 S/ v
    报警刀具刀补X方向变动超过一毫米。! c( Q) n! I" ?+ f; D
    31__ X AND Z BIAN DONG;: g( ~# `% Z! e- |  b
    报警刀具刀补X,Z方向都变动超过一毫米。
  e1 P: k0 S# |1 a) k$ W    上述报警出现时,为此次平移的所有刀补值较上次变动超过一毫米,此时平移已经完成,出错刀具如果不安全可以直接对刀,完成后执行G100 W0;保存报警刀具刀补。报警后程序会记录下报警刀具号,保存刀补时可不指定A值。如果没保存已经正确的刀补值,下次平移时还会报出同样的错误。
: l3 W6 ], e( s3 P    注意:在平移时为消除丝杆间隙的影响,刀塔会有一个毫米的往返运动。误操作可能导致刀塔换刀。所以要远离工件操作!9 t# p% Z+ c3 e" a3 {/ ?
    此代码为调用子程序,没有子程序或未对机床进行设置不能使用。
" P! z: A- J- m0 U% s$ p    报警只是提供参考,不能以其作为安全保障,错误的操作可能会保存错误的刀补数值。程序测试成功后其逻辑性是正确的,因此不对任何误操作引起的后果负责,请在完全理解的情况下使用!此代码为方便操作,提高调试效率和安全性,但不能完全替代手动操作,扎实的基本功、良好的调试习惯才是安全和效率的保障。! ?+ F3 C8 @6 J) p
    如有需要改进的地方请即使反馈作出修改...来自: Android客户端
回复 支持 反对

使用道具 举报

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

使用道具 举报

4#
 楼主| 发表于 2013-4-4 13:42:32 来自手机 | 只看该作者
本帖最后由 wang2011214 于 2013-4-4 13:54 编辑
8 b! j7 v% H1 o4 z' v+ X, h9 E( }
O9010(PIAN YI);
. g1 i$ e6 R' yIF[[#26 EQ #0]AND [#23EQ#0]] THEN #3000=1 (Z AND W KONG);
( V' V6 U" T9 x7 V9 Y IF[[#26 NE #0]AND [#23NE#0]] THEN #3000=2 (Z AND W CHONG);. ~8 {4 V. }8 w, Y0 X8 |( ^8 B) {
IF[#24 NE #0] THEN #3000=1(NO X);
; K& m/ f8 v  j IF[#21 NE #0] THEN #3000=1(NO U);" S4 g: W) @; V9 C5 M' E) {
IF[#20 GT 10] THEN #3000=3(T DA YU 10);
4 F0 A% E0 z; s8 Y IF[#1 NE #0] THEN #620=#1;# w, }) Q+ r- W4 |: U/ P
IF[#620 LT 0] GOTO 90;
2 T9 |. u) A4 g/ p IF[#23 EQ 0] GOTO 500;
' ]* Z+ i8 V- @3 vN90 #20=FIX[#20];. A) Y+ `6 w3 p; ?1 f2 n7 x3 G
IF[#20 LT 1] THEN #20=1;7 V$ U# J9 ^. i% Z6 E
#[2800+#20]=#[2800+#20]+#[2100+#20];
% F9 @, o, r1 {; G#[2100+#20]=0;
2 y4 R0 S1 N9 _0 [3 M6 }/ o IF[#23 NE #0] GOTO 100;; S' _% F. T0 V, s1 Y
T[#20*101]
# x) F4 D3 X4 `8 L3 x" F#5202=0;0 {) M, I! k3 q' _7 ]/ a8 b! u, D
#5222=0;
2 }: n) G; M1 T/ z#2601=0;
  t2 I6 F  D  A/ @% O  NG98 G1 W1. F500;& h, n) m% ~& f' B
W-1.;* d# L/ L4 R. d, x- \
G99;# E8 }7 _& p. t4 R; v" d
#30=1;. }8 I- P$ _% F
WHILE[#5042 NE #26] DO1;0 W. ~/ s( D% m! C1 j, k6 [
IF[#30 GE 9] THEN #3000=3(PIAN YI ERROR);% @* ^) k/ \$ F# y  h
#31=1;
: X9 P, D! D& Z  }$ s$ K#32=1;2 X- g0 D8 k" l
#33=1;
* s+ s, p2 b* i; t, X$ CIF[[#30 EQ 5] OR [#30 EQ 6]] THEN #31=-1;2 H9 R/ t0 H( h
IF[[#30 EQ 7] OR [#30 EQ 8]] THEN #31=-1;! N1 V7 q8 q3 |% ~7 L8 Q
IF[[#30 EQ 3] OR [#30 EQ 4]] THEN #32=-1;
- g" M2 Q# B8 g: UIF[[#30 EQ 7] OR [#30 EQ 8]] THEN #32=-1;
3 e% D! @1 t  K/ G' C. x: e9 s/ BIF[[#30 EQ 2] OR [#30 EQ 4]] THEN #33=-1; - C: P* Y7 i% N7 T+ o( q
IF[[#30 EQ 6] OR [#30 EQ 8]] THEN #33=-1;
- o5 `5 p, {& @1 K' s#5202=#31*#26+#32*#5022+#33*#[2800+#20];' M* w4 u" I. T1 x: Q  Z' G/ b
#30=#30+1;9 h# h5 d7 H9 M! @9 W
END1;
' Q( c9 `  H1 b% d" @2 B2 ~GOTO 200;8 r  x7 x( e6 u2 i4 u
N100 #10=#5042;
6 P2 Q% l; J) M- U8 |( ~3 d* c#14=1;
0 I8 I4 Q: P& k* v) R#15=1;1 }# H2 m' F' ?; n
N300#5202=#5202+#14*#15*#23;
3 n) E* i1 M4 y" p- b, _% u) [; P#14=2;
6 t$ z. Z6 s* I( Z/ K% n. }#15=-1;
7 R, d# [4 ~) @9 l6 ^. K$ nIF[#23 LE 0] GOTO 400;/ A  j1 o: d/ p) H+ ?7 M0 r/ \
IF[#5042 GT #10] GOTO 300;
8 i- ?' ?5 U! L% V7 O0 tGOTO 200;
0 S; |' ^7 J6 V) ~N400 IF[#5042 LT #10] GOTO 300;' k2 b" L7 \* m+ _  M  v8 k1 R
N200(DUI BI);5 J; \0 F' O; v) W3 Y8 F0 V2 C
IF[#620 LT 0] GOTO 99;
* L. q2 T/ v: }/ F9 Q- [#27=1;
  ^$ i+ ?, s7 j8 R# mWHILE[#27 LE 10] DO2;
) A) d+ Q) g: A% p0 d#28=ABS[#[2800+#27]]-ABS[#[600+#27]];
7 s6 w: U1 I0 C7 k; I" kIF[ABS[#28] GE 1] THEN #600=#27;
1 m# w3 o0 r% Z1 s$ V #29=ABS[#[2700+#27]]-ABS[#[630+#27]];
1 @1 E+ i: k1 E# @& M( h- k6 e* p2 IIF[ABS[#29] GE 1] THEN #630=#27;
: `9 s3 o4 y, R' N0 S) x% L3 ~7 x) lIF[[ABS[#29] GE 1] AND [ABS[#28] GE 1]] THEN #3100=[100+#27](X AND Z BIAN DONG);9 x) P( J7 c! d6 `8 ]- ~3 R' N- V
IF[ABS[#28] GE 1] THEN #3100=[100+#27](Z BIAN DONG);7 {$ r2 h$ }, t! l$ J, Z
IF[ABS[#29] GE 1] THEN #3100=[100+#27](X BIAN DONG);' s( G( w& W, q1 e) Y' E1 x
#27=#27+1;! d0 R7 K% V. H3 g6 x% Q9 ?4 q/ m
END2;1 o: N4 w3 y% F0 v9 `
N99 IF[#620 LT 0] THEN #3006=1(PIAN YI OK);
9 _) w  Z3 H! R/ TM99;1 n, K7 Z" f' M; t% n- v% l7 n% o
N500(LU RU DAO BU);  S( l0 O) f$ A" \- _+ F) B% @- T
IF[#600 GT 0] GOTO 600;/ [! J- X& L4 r$ k9 [
IF[#630 GT 0] GOTO 700;
9 a: x, B- b+ G4 bIF[[FIX[#1] NE ABS[#1]] OR [#1 GT 10]] THEN #3000=4(A ERRER);
2 L- N' E! r8 T9 \9 EIF[#1 EQ 0] GOTO 800;8 o8 b. H! j- N0 t; g) N, p
IF[#1 GE 1] GOTO 900;6 C: l. H0 S8 }. E; G
GOTO 200;
) g$ [1 S2 ^/ TN600#[600+#600]=#[2800+#600];3 ]! C- S. U& x* D8 A9 B
GOTO 500;   a  B. d9 F1 S7 ?- b8 J; J; h
N700#[630+#630]=#[2700+#630];
6 {: \# f; x( C7 d2 D; f2 NGOTO 500;
+ L4 ~: G$ ~0 z2 VN900 #600=#1;4 H) E; [" t9 J% }, e0 G$ Q, @! d
#630=#1;
2 P0 T$ `; X" m+ K8 g#1=#0;+ e  j( F; ^* z' e) O
GOTO 500;9 E* O8 T' P) z- M; x
N800(FU GAI);2 p$ g, @/ m) L$ [
#1=1;& {% u  }+ \) y! T! _
WHILE[#1 LE 10] DO3;# B2 @  o( c& @9 R
#[600+#1]=#[2800+#1];3 N9 i+ R- K, o6 N
#[630+#1]=#[2700+#1];9 h( j! i7 A  R/ a# s& U( _. q
#1=#1+1;
- h) O% V( G. c* _' HEND 3;
# p  |" a7 J6 ^7 h9 N' F#600=#0;
+ _& y. }) U/ ^8 I$ Z" @#630=#0;
& x5 _' B( m9 n2 JM99;来自: 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
1 |5 N8 c) T8 k* ]3 w; L貌似没有必要吧?
+ b% W2 o5 @/ V3 V0 D2 q3 r
做这个程序是麻烦点,但使用很方便…特别是刀具多的时候!
回复 支持 反对

使用道具 举报

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:057 t8 M( ]4 ^& o4 r8 h! `
用工件移不是更快
) z- x8 J& [3 U( t' e! L" a
和工件移一个道理,多了的就是刀具对比…工件移的前提就是刀具在一个基准上
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 01:31 , Processed in 0.057427 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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