机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

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

使用道具 举报

2#
 楼主| 发表于 2013-4-4 13:40:08 来自手机 | 只看该作者
z向平移代码使用方法
! l. l! C* k+ f" H& k" ?: u    在调试产品中平移的对刀速度想对于传统对刀速度有很大的提升,但操作起来操作步骤和注意事项也相对较多…在此将其繁杂的步骤和注意事项做入代码中,从而提高操作效率降低操作失误率,使平移更容易理解使用。
* P! @) E2 |: G1 n0 Y2 W' g    平移代码是以手动平移为原理,并整合所有步骤和注意事项在程序中,以代码调用子程序的方式执行。先介绍下手动平移的注意事项和步骤。
- K3 Z/ f/ d, G. _8 g( m& D    手动平移能正确使用的注意事项:
1 t" \! `/ Q2 x. u* ^* Q8 `    ①刀塔上所有刀具x,z向在同一基准上,如若有刀具不在以一号刀为基准的坐标系中,那么操作时一定要有对刀动作,遵循先平移后对刀的原理。8 ]# F8 @8 B' p7 j! `2 N; I
    ②磨耗值会影响到平移精度,因为平移时在MDI的方式下磨耗不被计算到刀补里,所以平移前要将磨耗值加入刀补值中。* n3 I6 ?+ P5 T% q2 u9 I
    ③机床丝杆的间隙补偿会影响到对刀时产生绝对坐标,从而使MDI执行刀补和自动执行刀补有误差。操作时要使每次手轮手动都是固定向Z正或Z负方向移动。' X9 z# g% O: f3 l8 j, N7 @
   手动平移的基本步骤:
4 N0 F/ _6 O9 b+ `    ①用基准刀试切工件。
0 m5 c4 Y! w( i* ~    ②工件取下测量高度值。
2 X8 P6 u2 a: G1 o    ③MDI方式执行基准刀刀补(如T0101)。6 K) T$ k4 R2 z8 V" e+ v  a$ T
    ④切换至坐标画面显示(pos键),将绝对坐标记录下来。
: N, A6 O4 R1 M/ I+ Q    ⑤切换至坐标系将数值加进坐标中,注意正负,以加入后绝对坐标变为0为基准。* D4 N+ u& a% K# h7 _
    ⑥加入测量工件计算后此处的z值,注意加入的正负性,以得到计算值为准。(平移完成)- E% B& [( N0 h7 A' k4 Q  X
    平移代码G100使用格式:
: }( {# b; o; L% Z+ k( r  f' H. P( [    G100 Z_;
$ y: u7 T& V! r0 B& T2 N2 |     Z_:指定当前位置的绝对坐标。
; s. @3 N  Q4 T" C8 i    例:用一号刀试切后测量此处应为Z0.3,在MDI下执行G100 Z0.3;按启动,程序大约执行一秒不到,执行完切换坐标画面核对绝对坐标!平移完成…& X( Y& D* _- |3 Q
    G100 W_;
- r- e  J0 C) K! ?% T    W_:相对平移。
+ u$ D( g1 O7 P" v1 I# A" w    例:调试产品后需整体向下减0.2,在MDI执行G100 W-0.2;启动即可!0 c+ S5 C, _9 H
    G100 W0 A_;$ Y; }( m2 p$ B0 r& N6 v
    W0 为刀补录入功能选项。# K$ Q' ~9 W! C' C# E6 V
    A_:取值范围为负数,0,和不大于机床刀具号的整数!
5 [4 v, h: R- {1 j/ K( a    G100 W0 A_;; M$ R; k1 o. t7 X" m2 N& X
    A为负数时:取消刀补对比功能,此时即使某把刀具刀补变化超过1毫米执行平移时也不会报警!此为模态,在不指定大于等于零的A值时一直被默认!
6 ~  y) W4 ?: U  D    G100 W0 A0;% {: d7 l# E" D$ ^0 [
    现有所有刀补数据覆盖保存刀补数据,不发出任何报警!首次调试程序时执行一次,或者撞机后重新对所有刀具后必须执行一次(执行此选项必须保证所有刀具可用)。9 m+ ]1 T; Z& y7 G7 E% H/ `' Y4 }
    G100 W0 A_;, g( K2 c3 M8 }+ H
     保存当前刀补值;A值指定要保存的刀具号(大于零且小于等于机床刀具数的整数),用于新添加刀具后保存刀补,此时应注意对刀时应和当前基准刀具同一零点。% o$ ^7 Q) `4 b/ J0 O/ a3 c: `5 o1 O  G
    例:平移完成后,新添的一把刀具在10号刀位,对好后在MDI下执行G100 W0 A10;若对刀后未执行此命令,在下次平移时会报3110 X AND Z BIAN DONG;
" P( N+ K# f: t    G100 T_ Z_;% z$ W; B9 V! ~- H3 v8 E
    指定基准刀具偏移;在不指定T值的情况下默认基准刀为一号刀。
7 i5 r$ ^" P) w' T7 C    例:只使用一号刀以外一把或几把刀具加工时,例如只使用四号刀,用四号刀试切后指定Z0,MDI下执行G100 T4 Z0;即可。
) k3 v+ N. U. K5 E: c- s    不能试切刀具与执行刀具不一样,因为如果不一样坐标会出错,程序也会执行换刀动作!: g& `1 d9 A1 E$ e6 n+ J' `
    例:用三号刀试切,MDI下执行G100 T4 Z0;此时将以四号刀刀补计算坐标,得出的坐标值与三号刀有误差,但绝对坐标显示为Z0,且刀塔换刀换为四号刀!
6 K/ f' Y( u& M3 G5 O: ^    报警信息与处理:9 x* G# }1 w2 k. d9 a, J, Z8 h  n3 C
    3001 Z AND W KONG;* V8 _- ^; P. O; N' `
    执行时Z,W不能同时不指定。
8 A! e$ I, M* @* v) T    3002 Z AND W CHONG;9 z# a' V- f) Q+ O0 o
    重复指定了Z和W。9 G2 i4 P4 a% D; }' P
    3001 NO X;3 ?& I" ]: f5 K' N/ X( K
    不可指定X。& E0 N8 F. a8 ]' n( y0 ^* T
    3001 NO U;3 k9 I  L/ J" L9 [
    不可指定U。
9 q, k( T& u. Y1 c- M! W9 r/ t    3003 T DA YU 10;
8 g/ G- L0 G+ j3 q; ^9 K    指定基准刀具号大于机床刀位数。
2 U# o9 I: S: E0 D' r0 X! R    3004 A ERROR;% S! m+ c7 Z2 [5 g
     A 不在取值范围。
5 J! r' h# ~* Z) o% j. R6 b    以上为录入数据错误报警,报警时没进行平移动作复位后录入正确数据即可。
0 f! t" c: X5 d; T' V    A值为负时,刀补对比取消,此时无论执行什么在程序结束时都会有提醒“PIAN YI OK”,意为偏移程序结束,未进行刀补对比。. p0 q; q( B+ @6 n: y2 Y1 ~
    3100报警;
, I* A3 D! j3 c3 s    以31开头报警为刀补变动的错误报警,31后两位为报警刀具号。如3108是八号刀刀补变动超过一毫米。2 a! Y2 w( `2 m4 R( G" {3 F! c
    31__ Z BIAN DONG;$ l. e6 D/ f. m
    报警刀具刀补z方向变动超过一毫米。" U) g* l6 C  {# W8 ]
    31__ X BIAN DONG;
7 m0 W3 h. d* Z9 @" V, j. {8 a! X6 s    报警刀具刀补X方向变动超过一毫米。1 I5 N. Q' F5 A  |4 p! t
    31__ X AND Z BIAN DONG;0 I0 m% A" ~1 ?; d, C8 a
    报警刀具刀补X,Z方向都变动超过一毫米。
* D  ~' \8 n; R$ u    上述报警出现时,为此次平移的所有刀补值较上次变动超过一毫米,此时平移已经完成,出错刀具如果不安全可以直接对刀,完成后执行G100 W0;保存报警刀具刀补。报警后程序会记录下报警刀具号,保存刀补时可不指定A值。如果没保存已经正确的刀补值,下次平移时还会报出同样的错误。
9 J; [# d" T+ F. E    注意:在平移时为消除丝杆间隙的影响,刀塔会有一个毫米的往返运动。误操作可能导致刀塔换刀。所以要远离工件操作!$ E- y, @* N2 i$ Z
    此代码为调用子程序,没有子程序或未对机床进行设置不能使用。
$ A* D1 D" P+ {9 p" t    报警只是提供参考,不能以其作为安全保障,错误的操作可能会保存错误的刀补数值。程序测试成功后其逻辑性是正确的,因此不对任何误操作引起的后果负责,请在完全理解的情况下使用!此代码为方便操作,提高调试效率和安全性,但不能完全替代手动操作,扎实的基本功、良好的调试习惯才是安全和效率的保障。! u( B8 ~/ C* V- R6 L! q1 a# z8 H5 h
    如有需要改进的地方请即使反馈作出修改...来自: Android客户端
回复 支持 反对

使用道具 举报

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

使用道具 举报

4#
 楼主| 发表于 2013-4-4 13:42:32 来自手机 | 只看该作者
本帖最后由 wang2011214 于 2013-4-4 13:54 编辑 & S+ a; ?7 O  Z6 `# ~
8 Y1 _( F& v4 D0 D, A
O9010(PIAN YI);. c/ v  l' f: A) W2 L3 o% D
IF[[#26 EQ #0]AND [#23EQ#0]] THEN #3000=1 (Z AND W KONG);
/ @$ q) d$ B0 X" ` IF[[#26 NE #0]AND [#23NE#0]] THEN #3000=2 (Z AND W CHONG);
: T5 {( h3 t& T4 p" `/ b+ ]; f2 zIF[#24 NE #0] THEN #3000=1(NO X);! J" G+ T* R) R2 |$ N) m
IF[#21 NE #0] THEN #3000=1(NO U);
1 G2 T5 u& H, a# C7 \, q  ] IF[#20 GT 10] THEN #3000=3(T DA YU 10);! U7 e  V2 @! v- Z, k+ W9 e* T1 D
IF[#1 NE #0] THEN #620=#1;
6 i, p; l1 ~) r  l& X/ c IF[#620 LT 0] GOTO 90;
& m8 B' r, x4 @6 M% T IF[#23 EQ 0] GOTO 500;# w3 V% v- I4 R' O/ r& }7 r' h& A3 q: {
N90 #20=FIX[#20];
8 D! O# s5 W! B) ?! p) pIF[#20 LT 1] THEN #20=1;
, M# p+ G. c2 ~#[2800+#20]=#[2800+#20]+#[2100+#20];7 N+ |4 \+ S& s5 T! q
#[2100+#20]=0;
$ m" z9 @  C7 j IF[#23 NE #0] GOTO 100;. S- u1 \& B6 X7 h
T[#20*101]# `1 I6 f6 o8 u8 P
#5202=0;
! U0 l, k+ {% J4 ?9 `$ j#5222=0;5 `- v2 a3 d. e
#2601=0;
; n6 w  w3 B# ^( h4 `6 g0 \G98 G1 W1. F500;
" J! h) f; O* g9 K7 H. f0 h7 ^W-1.;
5 x' {# E# M" a- g: lG99;+ O0 u) R: e- ]" u/ I" f
#30=1;
: H  ]2 ^3 d! Z- lWHILE[#5042 NE #26] DO1;
5 l3 q" [' a( F) D+ {8 f+ ]2 FIF[#30 GE 9] THEN #3000=3(PIAN YI ERROR);
! s' @6 B1 o' Y& s#31=1;) `+ l# d9 g1 m! Y; b! c7 u  l
#32=1;
- H5 M  o! j3 Q#33=1;3 c( \7 Y5 p2 d+ @4 j* s$ E) `3 U
IF[[#30 EQ 5] OR [#30 EQ 6]] THEN #31=-1;
/ t& E5 z& g5 X8 T- JIF[[#30 EQ 7] OR [#30 EQ 8]] THEN #31=-1;6 N% ?) T( P; g4 _! z5 j
IF[[#30 EQ 3] OR [#30 EQ 4]] THEN #32=-1;- n* x, ^9 [/ w
IF[[#30 EQ 7] OR [#30 EQ 8]] THEN #32=-1;
2 B* h8 {: G  N  w- o9 n$ hIF[[#30 EQ 2] OR [#30 EQ 4]] THEN #33=-1; . u3 ]$ x1 Z, G2 |+ S4 ~8 K' ~
IF[[#30 EQ 6] OR [#30 EQ 8]] THEN #33=-1;
0 F% K7 T' D* J* K8 |+ y#5202=#31*#26+#32*#5022+#33*#[2800+#20];
9 J# |1 t3 n2 ]! h2 K( }#30=#30+1;! p9 Q% |' H1 \: z0 j
END1;8 D; D* y, F0 T% B! O% \
GOTO 200;$ x0 v9 E6 l0 u7 L% `! B' n8 q# z3 A* c
N100 #10=#5042;
! B5 Z! v- M* y& ^. l% j7 S#14=1;
6 j; C" f9 {& G* b! \9 ?3 h#15=1;
& `$ @; z8 v9 j3 @: iN300#5202=#5202+#14*#15*#23;
  z: p$ |  g/ a2 |& v#14=2;
6 X3 N+ l% b3 k- q. @8 e( h5 J6 P#15=-1;6 X1 L" U/ [- \& e, i
IF[#23 LE 0] GOTO 400;4 c- k+ r, u% I3 Q; l
IF[#5042 GT #10] GOTO 300;
4 V* S' m% Y: n7 HGOTO 200;0 q1 w% n: ?2 j$ ]
N400 IF[#5042 LT #10] GOTO 300;2 J3 X) R. n1 t! x( b' \: k0 j
N200(DUI BI);
4 H+ ]1 Y# \0 Z* \. D- {0 e5 oIF[#620 LT 0] GOTO 99;
' h0 F9 k8 h! F! [" b  Z7 r#27=1;
+ n- e2 v; f& b! e& v% ZWHILE[#27 LE 10] DO2;" @0 ^1 K" j* ?) `8 |
#28=ABS[#[2800+#27]]-ABS[#[600+#27]];% Q- ]" O) h5 z
IF[ABS[#28] GE 1] THEN #600=#27;( v! N8 ]% C5 F. ?: R
#29=ABS[#[2700+#27]]-ABS[#[630+#27]];& e5 @' K. [7 k( m+ a0 O8 |$ m- c. C* F
IF[ABS[#29] GE 1] THEN #630=#27; 4 t0 I8 u$ x% P7 H8 g# u
IF[[ABS[#29] GE 1] AND [ABS[#28] GE 1]] THEN #3100=[100+#27](X AND Z BIAN DONG);, h+ @+ X' |# Q5 G
IF[ABS[#28] GE 1] THEN #3100=[100+#27](Z BIAN DONG);
' B) x6 p) E0 M- z" l4 D9 R- NIF[ABS[#29] GE 1] THEN #3100=[100+#27](X BIAN DONG);; m  j8 Z0 |7 i, z
#27=#27+1;; ^" i6 M: p) k7 T( R2 Y6 U& @
END2;% {9 W% U/ z; g* V
N99 IF[#620 LT 0] THEN #3006=1(PIAN YI OK);+ r! {1 r/ i2 m  [6 h
M99;
" c  N, r' M  A/ yN500(LU RU DAO BU);
, x3 \) i) C* IIF[#600 GT 0] GOTO 600;
5 q# m" t3 D+ DIF[#630 GT 0] GOTO 700;
* v+ V% B6 Y/ x6 l6 B4 EIF[[FIX[#1] NE ABS[#1]] OR [#1 GT 10]] THEN #3000=4(A ERRER);" J& S5 S, o2 v' o* P& I! n
IF[#1 EQ 0] GOTO 800;
" B3 w0 o1 P. \. _' @IF[#1 GE 1] GOTO 900;
% C, S9 p" ?; u) l: RGOTO 200;
' G2 [! O2 K" O1 }2 jN600#[600+#600]=#[2800+#600];
) ?; r0 v; e3 _GOTO 500;
6 s' a4 M  J7 g, n7 P) n7 ~% AN700#[630+#630]=#[2700+#630];2 O" ]; I! k% L5 j- i* U
GOTO 500;
) ]1 x( E# F2 z' R' SN900 #600=#1;& _% ~% E0 w- R& e
#630=#1;
5 `2 f1 s: ^! L" Z/ k# S4 x' e# L#1=#0;
' C/ d$ S  ~; V1 h6 j: }" P: `GOTO 500;: _/ s) v1 j% n. e3 ^5 a
N800(FU GAI);
- x4 R* [  b/ a. T3 I+ F9 p4 a#1=1;
& D! e: l3 ~8 Y8 qWHILE[#1 LE 10] DO3;* |4 _; `1 U5 x
#[600+#1]=#[2800+#1];
/ R: S3 F# m- o, f5 e# H  V#[630+#1]=#[2700+#1];
* j( }/ @" z4 A#1=#1+1;. c. V+ \8 ?) H) {) M0 ]. h
END 3;: ]8 }) V* E: @& y6 G! V8 }
#600=#0;% `- M! K' n) _9 l4 S- o$ C. d, |
#630=#0;0 h4 P* Q: n3 K- a9 U- ]6 S; k0 A
M99;来自: 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
3 }: {7 H+ P8 a7 J# L7 i貌似没有必要吧?
1 \! j! g' j) d( H) a7 c
做这个程序是麻烦点,但使用很方便…特别是刀具多的时候!
回复 支持 反对

使用道具 举报

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:059 o0 L" t4 Q7 g
用工件移不是更快
& w* W* P( Z3 l. X/ o& n% q
和工件移一个道理,多了的就是刀具对比…工件移的前提就是刀具在一个基准上
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 07:05 , Processed in 0.063170 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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