找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5134|回复: 20

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

[复制链接]
发表于 2013-4-4 13:38:24 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 wang2011214 于 2013-4-4 13:51 编辑 : a6 G% L& a# }5 j3 l
: E+ Y4 I9 C( M' S7 ~
背景:2 c" J. o0 o8 j* m$ M( C/ r
我们厂的产品主要是售后的,批量很小,能上千的都很少。十几台数车加工每天的调试很频繁,没有技术员,全靠个人操作,还是计件的!加工刀具也多,少的三把,四把现在用新工艺加工最少就要五把刀,多的七八把刀加工,调试时对刀,调磨耗最麻烦。使用平移坐标系能很轻松解决这个问题,但好多同仁学了好多次也是模模糊糊不敢用。所以自己就做了个平移的代码,自己内测了两多星期,使用还算正常!想过些时候在组内推广…今天贴出来让专家们审核审核,多给点指导和意见…谢谢!来自: Android客户端
回复

使用道具 举报

 楼主| 发表于 2013-4-4 13:40:08 来自手机 | 显示全部楼层
z向平移代码使用方法! R6 E: e: D: S$ y; h
    在调试产品中平移的对刀速度想对于传统对刀速度有很大的提升,但操作起来操作步骤和注意事项也相对较多…在此将其繁杂的步骤和注意事项做入代码中,从而提高操作效率降低操作失误率,使平移更容易理解使用。
" ~! x" J' g' _1 j9 t. u+ ]$ Z9 K    平移代码是以手动平移为原理,并整合所有步骤和注意事项在程序中,以代码调用子程序的方式执行。先介绍下手动平移的注意事项和步骤。
/ H# ]+ o* h. [  D( B& k8 t    手动平移能正确使用的注意事项:
$ D: M9 s  B- W' u7 L9 q1 F* z    ①刀塔上所有刀具x,z向在同一基准上,如若有刀具不在以一号刀为基准的坐标系中,那么操作时一定要有对刀动作,遵循先平移后对刀的原理。
' _2 G4 H' ~0 R; l/ e4 q% f    ②磨耗值会影响到平移精度,因为平移时在MDI的方式下磨耗不被计算到刀补里,所以平移前要将磨耗值加入刀补值中。. M! g6 D% ^, \) @
    ③机床丝杆的间隙补偿会影响到对刀时产生绝对坐标,从而使MDI执行刀补和自动执行刀补有误差。操作时要使每次手轮手动都是固定向Z正或Z负方向移动。
. _3 ?% ^# a9 c( V   手动平移的基本步骤:8 O: M' k! P7 W1 D/ F% L; ?
    ①用基准刀试切工件。
! L& U( C& j* F* U$ x  h    ②工件取下测量高度值。$ q+ h2 r  g. c# a
    ③MDI方式执行基准刀刀补(如T0101)。
+ {4 C1 o6 |# e    ④切换至坐标画面显示(pos键),将绝对坐标记录下来。$ n$ q; E% d: W3 D9 u
    ⑤切换至坐标系将数值加进坐标中,注意正负,以加入后绝对坐标变为0为基准。
3 C# V) m/ }& V; K    ⑥加入测量工件计算后此处的z值,注意加入的正负性,以得到计算值为准。(平移完成)& u: s; A* s8 X" S8 h
    平移代码G100使用格式:1 D- U% I; r4 W- X4 m
    G100 Z_;
2 v2 a/ @# q! F; v9 M     Z_:指定当前位置的绝对坐标。3 u6 G' z( N3 f5 ^: l$ j
    例:用一号刀试切后测量此处应为Z0.3,在MDI下执行G100 Z0.3;按启动,程序大约执行一秒不到,执行完切换坐标画面核对绝对坐标!平移完成…% N% l& \6 C& O+ R/ }9 l6 S
    G100 W_;
( j/ b8 d& U9 r" ^+ |. g) Z    W_:相对平移。% M/ E# F* Q, n' I
    例:调试产品后需整体向下减0.2,在MDI执行G100 W-0.2;启动即可!0 w% ^' Z, P$ j  p, ~1 Q5 u
    G100 W0 A_;
0 ?5 f' J0 J8 [5 M' l: j/ W0 ?, E    W0 为刀补录入功能选项。7 ~1 T4 t, e- `
    A_:取值范围为负数,0,和不大于机床刀具号的整数!
' I4 H$ x% }9 d! `0 I  }1 M6 M2 t    G100 W0 A_;
: O" e) x7 K2 x% N. B2 Q! }8 u2 c; ]    A为负数时:取消刀补对比功能,此时即使某把刀具刀补变化超过1毫米执行平移时也不会报警!此为模态,在不指定大于等于零的A值时一直被默认!5 N  |0 {& j' i6 Z8 O
    G100 W0 A0;( ^- i1 o: |% C4 Y. {
    现有所有刀补数据覆盖保存刀补数据,不发出任何报警!首次调试程序时执行一次,或者撞机后重新对所有刀具后必须执行一次(执行此选项必须保证所有刀具可用)。
7 G6 p8 e% n, |7 z    G100 W0 A_;- w0 T  D, G0 r  b* G
     保存当前刀补值;A值指定要保存的刀具号(大于零且小于等于机床刀具数的整数),用于新添加刀具后保存刀补,此时应注意对刀时应和当前基准刀具同一零点。
; a! r, \6 L/ O+ ?- e. q5 S    例:平移完成后,新添的一把刀具在10号刀位,对好后在MDI下执行G100 W0 A10;若对刀后未执行此命令,在下次平移时会报3110 X AND Z BIAN DONG;
, G* D9 b/ |% g4 X: b) |; A    G100 T_ Z_;
: B5 A: o& H+ r9 [    指定基准刀具偏移;在不指定T值的情况下默认基准刀为一号刀。
# z  O* z3 Y* F: r, _6 }- x    例:只使用一号刀以外一把或几把刀具加工时,例如只使用四号刀,用四号刀试切后指定Z0,MDI下执行G100 T4 Z0;即可。
- A5 ~& y' A0 m! r7 |    不能试切刀具与执行刀具不一样,因为如果不一样坐标会出错,程序也会执行换刀动作!
( F2 A( W5 a% w    例:用三号刀试切,MDI下执行G100 T4 Z0;此时将以四号刀刀补计算坐标,得出的坐标值与三号刀有误差,但绝对坐标显示为Z0,且刀塔换刀换为四号刀!3 N# P7 I0 c- i* W' c1 {* e' ^; o& |1 y
    报警信息与处理:
8 B# X5 l. Y0 q) }) Z( I  Z    3001 Z AND W KONG;
  R" V. A/ j: x$ A+ h% a; P: f; w    执行时Z,W不能同时不指定。
# o* c0 C; P) J; q    3002 Z AND W CHONG;
# {8 _+ L0 Q9 w2 |- V1 x) e& c    重复指定了Z和W。, ]" ^. l- V& ?+ b, S
    3001 NO X;
) t  w* @$ w: t8 w    不可指定X。6 |/ H4 _6 L* d! [3 M
    3001 NO U;
' T7 D+ m1 S2 H7 T* q3 B/ b    不可指定U。
0 k6 G7 H6 O) Q* s$ l0 X    3003 T DA YU 10;
9 I+ V, D9 B& \    指定基准刀具号大于机床刀位数。
. f4 V9 ~  Y% ^& d/ K    3004 A ERROR;8 X. x: A9 B) @# }0 W7 r
     A 不在取值范围。* Y' _2 ], p2 E* d$ ?; B6 N
    以上为录入数据错误报警,报警时没进行平移动作复位后录入正确数据即可。
8 J( k  u! @% {6 ~. c    A值为负时,刀补对比取消,此时无论执行什么在程序结束时都会有提醒“PIAN YI OK”,意为偏移程序结束,未进行刀补对比。3 N& c3 `( S  x
    3100报警;
- B' S6 t8 j, }# c' S( n    以31开头报警为刀补变动的错误报警,31后两位为报警刀具号。如3108是八号刀刀补变动超过一毫米。) D+ z5 S* V4 `" k; D3 ?& F# o/ _
    31__ Z BIAN DONG;
) k& w( p; }5 z( p$ \    报警刀具刀补z方向变动超过一毫米。
: g: e9 u5 Q2 f( H/ J3 c' j$ q; }    31__ X BIAN DONG;# ~2 Q0 K. r. x4 O7 P5 d
    报警刀具刀补X方向变动超过一毫米。, b, `) c6 Q$ V  Y( Z
    31__ X AND Z BIAN DONG;. ]' |) w7 S5 d
    报警刀具刀补X,Z方向都变动超过一毫米。) o5 ~! `1 g2 R; z
    上述报警出现时,为此次平移的所有刀补值较上次变动超过一毫米,此时平移已经完成,出错刀具如果不安全可以直接对刀,完成后执行G100 W0;保存报警刀具刀补。报警后程序会记录下报警刀具号,保存刀补时可不指定A值。如果没保存已经正确的刀补值,下次平移时还会报出同样的错误。
- v  b, f+ l) t7 r  q4 o) u3 V    注意:在平移时为消除丝杆间隙的影响,刀塔会有一个毫米的往返运动。误操作可能导致刀塔换刀。所以要远离工件操作!
. ~" T# W& n- n3 F# S# {    此代码为调用子程序,没有子程序或未对机床进行设置不能使用。
8 Q2 J3 l6 j' {( u- k" d    报警只是提供参考,不能以其作为安全保障,错误的操作可能会保存错误的刀补数值。程序测试成功后其逻辑性是正确的,因此不对任何误操作引起的后果负责,请在完全理解的情况下使用!此代码为方便操作,提高调试效率和安全性,但不能完全替代手动操作,扎实的基本功、良好的调试习惯才是安全和效率的保障。4 Y- v- o/ D6 c0 ^8 u# E
    如有需要改进的地方请即使反馈作出修改...来自: Android客户端
 楼主| 发表于 2013-4-4 13:41:53 来自手机 | 显示全部楼层
自己写的代码说明…下面贴出源程序,比较庸长,自己也是新手,很多逻辑都是自己想了好久…专家们多多指点!来自: Android客户端
 楼主| 发表于 2013-4-4 13:42:32 来自手机 | 显示全部楼层
本帖最后由 wang2011214 于 2013-4-4 13:54 编辑 8 n' A3 f5 H% H7 i0 I4 X; J; Y
% \3 U' u2 }1 B
O9010(PIAN YI);' J& [: i' ~* w# F5 b% Q& l+ B+ h
IF[[#26 EQ #0]AND [#23EQ#0]] THEN #3000=1 (Z AND W KONG);
; p) S% T5 }' Z: n0 E/ h, w IF[[#26 NE #0]AND [#23NE#0]] THEN #3000=2 (Z AND W CHONG);
5 x% r* D) y$ }# d4 DIF[#24 NE #0] THEN #3000=1(NO X);
; n3 y* |4 ]2 [  V" _6 q, j IF[#21 NE #0] THEN #3000=1(NO U);/ z( H( j% d$ J3 i1 J! E( Q3 F
IF[#20 GT 10] THEN #3000=3(T DA YU 10);
) I6 T" d  T( Z" E4 L8 ? IF[#1 NE #0] THEN #620=#1;) z' s6 O( z& a2 u, {4 b, x+ B
IF[#620 LT 0] GOTO 90;6 Q* u6 w3 q9 f* f$ w- ?: J
IF[#23 EQ 0] GOTO 500;
" I! L4 h/ o/ U1 z' H+ LN90 #20=FIX[#20];
8 k% E' r& e0 _IF[#20 LT 1] THEN #20=1;
5 F4 w( M; l0 k+ v0 V2 @#[2800+#20]=#[2800+#20]+#[2100+#20];
4 s0 Y, D; J# h8 h#[2100+#20]=0;
" Q, [/ j% n2 t! v& i; {2 j IF[#23 NE #0] GOTO 100;/ k, k) Y  c% X/ W9 N+ n
T[#20*101]
9 O6 s9 t. {# ]& W8 x6 v3 H3 n2 \#5202=0;6 i# r+ Y  |( e0 u9 a9 L- ?
#5222=0;" G; p; W2 H* @9 a( h, R8 u4 [
#2601=0;* ]0 @, Z- w* _' S8 E5 h! M" R
G98 G1 W1. F500;  I( `, C( G- L+ ]
W-1.;4 j+ b6 ~7 f2 T' \/ t3 z( g
G99;+ X  D) ]. ~2 Q0 r' [3 U9 K
#30=1;, g4 W6 r. v! D3 n9 k% c9 g; `
WHILE[#5042 NE #26] DO1;6 g( O' H6 i2 E. j& k
IF[#30 GE 9] THEN #3000=3(PIAN YI ERROR);; J$ Q" G! o* E1 h7 F- L
#31=1;- A, Q: k1 R5 C, [- R
#32=1;
2 J! v. l+ a" s/ j' Z  `' s# z' k#33=1;
0 g/ g( F, f% S  _IF[[#30 EQ 5] OR [#30 EQ 6]] THEN #31=-1;
+ d& h2 g  o1 T2 UIF[[#30 EQ 7] OR [#30 EQ 8]] THEN #31=-1;
0 s* r# L+ A% L+ a/ T0 {IF[[#30 EQ 3] OR [#30 EQ 4]] THEN #32=-1;4 q# H% M: [5 y8 ^3 D' M) D
IF[[#30 EQ 7] OR [#30 EQ 8]] THEN #32=-1;
' d% }' P* P) j! b& TIF[[#30 EQ 2] OR [#30 EQ 4]] THEN #33=-1;
. ^1 ~  a7 H; A  Z6 qIF[[#30 EQ 6] OR [#30 EQ 8]] THEN #33=-1; 2 l* g) \1 b! h& d% ^# d4 o1 j
#5202=#31*#26+#32*#5022+#33*#[2800+#20];
+ K1 Z% q5 v3 H4 G& O#30=#30+1;4 m  R' s6 [9 v# x' k6 |6 `6 z
END1;
$ C- t1 Z  E7 M4 {$ D; n& A8 L3 r6 J* }GOTO 200;
, X: y$ d8 e8 s7 PN100 #10=#5042;
5 x1 h9 u+ A1 D7 D+ t  n# f#14=1;
% }/ F; e9 K. I  \, |4 w; H#15=1;/ }+ G: ]( N3 E1 O$ i
N300#5202=#5202+#14*#15*#23;8 ]" }' k& b2 w
#14=2;
6 ]4 N4 k# [# P+ f; a#15=-1;# G: J% T8 ?4 l1 J6 |
IF[#23 LE 0] GOTO 400;
, F1 e( @0 m9 W* P, J; _7 ]IF[#5042 GT #10] GOTO 300;
. b. q. O/ F, |3 H) yGOTO 200;
  z! H2 K- q# K$ A) G! LN400 IF[#5042 LT #10] GOTO 300;3 v/ s% ?' V" n: h) l) Y
N200(DUI BI);0 W& g8 _6 W# \/ l/ t; y
IF[#620 LT 0] GOTO 99;: o) s5 Q4 R& W7 y% W
#27=1;$ s$ a6 O4 {% l8 @9 G) f+ J& l6 u
WHILE[#27 LE 10] DO2;+ M$ Y) d  ]2 d5 P4 j" v& h6 b
#28=ABS[#[2800+#27]]-ABS[#[600+#27]];
$ e' e* Q& O/ U" X6 Y! y+ XIF[ABS[#28] GE 1] THEN #600=#27;2 A! Z' e3 [. A1 E$ F4 n
#29=ABS[#[2700+#27]]-ABS[#[630+#27]];
. P8 {+ f% }! u0 D2 H( Y8 NIF[ABS[#29] GE 1] THEN #630=#27;
! V' P5 i6 O. o  ]5 G5 `1 ]5 hIF[[ABS[#29] GE 1] AND [ABS[#28] GE 1]] THEN #3100=[100+#27](X AND Z BIAN DONG);
. {: H* ^" e( a, k% OIF[ABS[#28] GE 1] THEN #3100=[100+#27](Z BIAN DONG);! f, g6 Y5 w& b9 W; K) ^: s' Q
IF[ABS[#29] GE 1] THEN #3100=[100+#27](X BIAN DONG);
7 j' L% ]: c/ Q- U* I( m#27=#27+1;
3 u' n/ O" M' J6 _: h# ^# vEND2;
/ a7 J) A& ~8 Y, q' J% U$ y: u0 J3 ^N99 IF[#620 LT 0] THEN #3006=1(PIAN YI OK);
5 [4 f9 J- g% t  x9 FM99;6 \! D' F7 p3 e! v7 f
N500(LU RU DAO BU);
+ X/ s/ N% t3 ~' lIF[#600 GT 0] GOTO 600;
3 o; ~$ F: V. o$ uIF[#630 GT 0] GOTO 700;) r0 ^# B# ]# e' i
IF[[FIX[#1] NE ABS[#1]] OR [#1 GT 10]] THEN #3000=4(A ERRER);5 d/ @3 {- Q, ^) ^, s, V
IF[#1 EQ 0] GOTO 800;
" \% p+ d/ J9 t7 ], J4 q/ q9 ]IF[#1 GE 1] GOTO 900;3 `- B# [% G9 G! z! j0 t# J
GOTO 200;! s) V: v  z& f* p) g! a2 ]
N600#[600+#600]=#[2800+#600];
7 [$ U$ }; f) N7 LGOTO 500; ( `: w. C9 }$ J# Z1 ~
N700#[630+#630]=#[2700+#630];& m8 E9 A* K. X  G. @# ^! s3 n9 ?. t) {
GOTO 500;2 `& Z% O9 i" t2 r9 \7 `9 Y3 P
N900 #600=#1;
) Q" H& L- K+ p) o#630=#1;
' L. B+ E; E. ~#1=#0;/ x* R2 {3 v/ [# v
GOTO 500;
# I: F$ w5 F# }N800(FU GAI);
+ f# J+ E' @9 H4 Y; ?6 k5 ~4 K#1=1;* T2 _9 i" [$ w: {7 R9 f( ?
WHILE[#1 LE 10] DO3;% |" H9 `* }; a$ t
#[600+#1]=#[2800+#1];
+ A1 x/ |" k( e. r#[630+#1]=#[2700+#1];
/ B( Q. q" _( G( Z# w( h7 I6 Y2 a#1=#1+1;( N) E' t5 _* }5 u
END 3;* s7 ?# j5 F! H
#600=#0;+ k; Q: @$ L* x# H8 w
#630=#0;+ D' t- @) P( V6 M! F" }
M99;来自: Android客户端

点评

好深奥啊.学习了.不过只需改Z向可以坐标系偏移00坐标系.只需要对一把刀的Z向.差多少就改多少.很方便啊  发表于 2013-12-2 18:58
发表于 2013-4-4 13:44:49 | 显示全部楼层
貌似没有必要吧?
 楼主| 发表于 2013-4-4 13:47:09 来自手机 | 显示全部楼层
自己英文白痴,报警信息都是拼音…嘿嘿,能看懂就好了!来自: Android客户端
 楼主| 发表于 2013-4-4 17:38:09 来自手机 | 显示全部楼层
风随意 发表于 2013-4-4 13:44
+ w& r5 y( g5 K2 |8 n) ~8 Z貌似没有必要吧?
% @$ j& r2 i" l  q1 h
做这个程序是麻烦点,但使用很方便…特别是刀具多的时候!
 楼主| 发表于 2013-4-4 17:42:53 来自手机 | 显示全部楼层
程序能自己寻找算法,报PIAN YI ERRER的时候是系统变量号不对,修改变量号就可以了,在三个版本的法兰克系统测试过了
发表于 2013-4-4 18:05:12 | 显示全部楼层
用工件移不是更快
 楼主| 发表于 2013-4-4 18:09:55 来自手机 | 显示全部楼层
veroinca 发表于 2013-4-4 18:05+ {% }, s$ _+ ^' X+ D4 k( z; P! [
用工件移不是更快
$ z* ]+ i. G# S+ s( r
和工件移一个道理,多了的就是刀具对比…工件移的前提就是刀具在一个基准上
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-6-20 22:36 , Processed in 0.068304 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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