非标机械门户网站

非标准机械设计论坛

 找回密码
 立即注册
查看: 160|回复: 2

[分享] 数控宏程序

[复制链接]

该用户从未签到

发表于 2017-7-13 09:03:49 | 显示全部楼层 |阅读模式
  分享QQ空间赚金币,很轻松赚金币,每 10 个好友点击你的分享进入网站,系统自动奖励你 20 个金币   点击我 赚金币!   奖励排行榜

找资料、寻方案、学技术、最重要的是认识朋友,马上注册获取更多资源吧!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

分享一篇数控编程文章,有需要的朋友可以看下,自己做了几年工装夹具了,欢迎大家交流可以加下我微信号:bmb2015(微信号)

目前数控程序编制基本上采用软件编写(CAM),手工编写两种方式。对于形状规则,简单,节点交少的零件采用手工编程可以很方便的解决。对于一些复杂的零件往往采用软件编写。但是零件都是由一些面,孔或者曲面等组成,不管是手工编制还是软件编制,无外乎是对这些特征来编制。然而零件的尺寸更改或者刀具等更改,我们还得重新编制程序,也就是说“一个萝卜一个坑”的程序。而很多形状相同而尺寸不相同的零件,或者说零件加工有一定规律,我们可以采用宏编程来实现此类零件的编写,这样可以大大简化我们的编程。

: q% L& t# F4 I: J7 T# [- `
                               
登录/注册后可看大图

图1


$ i2 d0 W) g, a6 d3 k

变量的实际理解应用

下面要讲的是一个最简单的宏程序,也是一个是大家最容易理解,最容易学会的宏程序。

先看一下,图2里的图A和图B。

1 F. h4 O" [' ^2 |" t
                               
登录/注册后可看大图

图2


, p! Y0 Y7 z; _0 V) u' S# D& h

它们的外形是不是很相似,只是大小不一样。如果你所在的工厂接到这样的一笔加工任务,要求加工的零件有100多个,而且每一个都不一样,注意只是大小不一样,外形是十分相拟的。那么你应该如何编程呢?

我们分析图A和图B发现走刀轨迹都是一样,只是坐标点要变化,那么我们能不能找个东西代替一下坐标呢?在使用不同的图纸的时候,我们让图标变化一下不就可以了吗?

如下图,把各点坐标都标出来,分别用A,B,C,D,E来表示,(X轴标直径,Z轴标长度)


& c7 ~8 z9 ?. H/ |9 ?( s% V' D9 y8 U                               
登录/注册后可看大图

图3

5 H/ }5 l, q) s* l; k3 ~8 J9 v

先研究一下图纸的规律,首先是D点的X值是B点X值的两倍。然后是C点的Z值就是B点的X值,E点的Z值就是D点的X值(当然我们这里只是举一个例子,现实生产中,不可能有这么凑巧的例子,目的是让大家体会下宏变量)。

# C2 p# z, \9 _+ ~; x
                               
登录/注册后可看大图

图4


) \- }3 {. B7 R( Z9 c

现在开始定变量

A点坐标了一看就知道是(0,0),如果设定B的坐标为(#1,0)则

C(#1,—#1)

D(#2,—#1)

E(#2,—#2)

下面是通用的宏程序:

7 U% ]* L+ F' D
                               
登录/注册后可看大图

图5


; X5 y# V6 A, w* `+ {* n

看到了吗,使用好宏程序,你只需要改动一个数据,一秒钟就可以完成编程!刀具轨迹验证如下:


( B) \% Y7 U$ T6 r& W                               
登录/注册后可看大图

图6


0 B* C& z0 [: n; s8 P! v7 P2 w1 j- l" g' M
  m9 E! I& C6 U8 q8 ^* l0 u" w. G

9 @2 g. Y* n7 U. P- A5 a' U
- }: u+ ^0 z$ G" F+ Q) h& @7 ?/ T$ O0 k4 U0 n. G
% [6 @( T- q! L, f3 T4 t1 z: _
这是站长QQ广告服务\站务等请联系TA,技术交流请在论坛发帖

{墨钜机电论坛} - 注册会员注意事项希望大家相互讨论借鉴,提升自己的理论和实践知识。
分享知识,分享经验,为中国制造贡献一分自己的力量。
本网站由于耗费站长个人资金来租昂贵的服务器和获得相关技术支持,免费为大家提供全国性交流平台。
希望大家好好珍惜,不要乱发广告。
如若要发请联系站长,支付相关费用以维持网站发展。
希望大家好好交流,不进行人身攻击,不违反国家法律。
多多发帖聚集专业技术交流平台人气。

1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与{墨钜机电论坛}享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和{墨钜机电论坛}的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、{墨钜机电论坛}管理员和版主有权不事先通知发贴者而删除本文

该用户从未签到

 楼主| 发表于 2017-7-13 09:04:35 | 显示全部楼层
本例主要是为了帮助大家弄懂宏变量的意义,方便接下来案例的理解。; H8 g: V) D; k

* N4 `0 Z! `5 G5 h6 g3 g) q9 j! @4 r: F" L
分层铣刀具程序
- \' |4 w9 \4 e0 A来看一个简单的零件加工例子(分层铣外形100 x 50 x 30),分层铣的刀具轨迹如图7,刀具轨迹从第一层到最后一层,每层的刀路除了深度不同外,形状与上一个刀路都是相同的。
: G7 C- d* Z* p  K: c, x9 x  D
- s" d  D3 D) W8 d9 w6 ~图7
/ Y2 w3 O( F, X3 Y6 l我们采用宏变量来控制铣削的深度,编程时只需要编写一层的程序,从而加工出需要的深度。* K! e/ k9 I- |+ \5 ?" g
%9 g1 j  ~3 z) y; t& G  Y8 ?
O0001
) i+ s1 O5 Q. A  E# W7 u+ j(D20DIA. END MILL)
) ]: U' I% |; l4 C1 L2 J3 }" eG0G17G40G49G80G90
9 X$ m1 K+ j) l1 W& qT1M062 P6 ?# B; K1 c8 @9 k& o' R3 l
G54G00X-60.Y-40.(快速移至下刀点)5 Q. J  Z5 s# s5 ^! I# z. [
G43Z200.H1
' f9 z* `6 z' Q! u% I: {S1500M038 h5 A; Z+ v; h. ~) ~$ M/ _
#1=0(初始赋值)
7 J# s6 Y: ^: ]! L8 L! i( B3 I#2=-30(最终切削深度,)$ i) I2 _6 p& ]# g/ w4 q/ {4 ~% B
Z#1M08(快速移至工件表面Z=0)1 d7 M" ~/ R8 g
N5IF[#1LE#2]GOTO10(如果#1的值小于等于-30,执行N10段程序,否则顺序执行下个程序段)
  [" @1 |$ y" _2 X/ E6 s# u#1=#1-3.(每次下刀3mm)9 t" S3 [. y8 k& u  H1 V- \* O* a
G01Z#1F200.(F200速度Z轴移至#1的值)
: b& H6 X8 y' r% F2 qG41G01X-50.Y-35.D15 A4 `5 A* `8 m0 [
G01Y25.F50.; |" c& S' ]1 W. _0 h8 i; g3 s
X50.
9 _# W7 f6 z* Q  bY-25.
- R0 C5 b2 u, y2 L- d9 P' fX-51.
2 o7 m5 ?1 K) X4 H# tG40G1X-60.Y-40.F200.
, A. j' y9 R% V' u8 N% c% cGOTO5(转移至N5行). s3 x6 ?: A/ J% |: K
N10 G0Z100.1 F( i+ u, u* R' }; S
G91G28Z07 [6 Q4 k+ o/ Y. C! F
M30) e; q# z/ x  d9 b
%- ~2 H) M/ B: N" M+ \4 ]$ T9 J: e
程序验证结果如下:
- K/ t) c8 U' h1 }' o1 q4 {' t9 C, I6 |. x! t' e8 t- b3 R/ U4 v# E# T* {
图8* x& J0 [5 l3 J  V  o/ f, R( ]2 R5 [8 g
( F: Z0 E' }' \9 ^
从而实现了我们的分层铣。% o5 a* ^/ q  o7 `* V* b" ^; S5 d
类似如下图,我们不管用软件还是手工编写,只需编写一层的程序,深度变量化(并非普通程序所用的具体数值),即可实现分层铣。(零件加工深度变化时,只需把#3后面的数值更改下就OK了)  J; g' A( v; W2 ^, ]' ^0 D/ a' ^2 Z
" e3 p/ |2 ]; G, t9 [$ q
图9
$ _/ t3 h! k( |' d* A9 o; f; \& ?( h$ S2 E" F  p6 s& W

9 c% S0 A4 t0 O3 g1 h8 w2 r三角函数的宏案例
4 s  s! t' V* `/ Y' ]! G加工中遇到一个难题:一个特殊的倒角(如图10),编不出来,φ119.4通孔,孔口要倒2.5X20度的角,深约7毫米)。
- N" T! S9 G. p% I6 a4 s" e0 {
( [  n( g6 H# G8 C8 J, p* c- o: s图103 C* h5 ^% p3 z0 c) E; M

' M# T1 g2 R) p  e! C" Z经过思考后编了一个倒角的宏程序(里面用了三角函数):
$ b+ G. u6 v; p( w1 g" x  T%
' J: }) j# ~* p- |(D25R5 ENDMILL)$ P" ~* E0 Y7 D' ?# p7 a( C& k
(PROGRAMED BY QQ:1692455232)
2 ?$ {7 J, B$ h' @6 RGOOG90G54X51.2Y05 r6 v- Q1 X  g% H% N0 R5 m
S2000M03
" r2 l! Q  u. V8 j$ b( e% @Z10.M08
* O' P* t6 B( ?0 m4 aG01Z0.F500.4 n$ X9 A2 F; u6 R. P
#1=0
* V! K7 u1 i* }/ i, ^& H$ |WHILE[#1GE-10.3]DO1
( b6 Y# k: O: J/ [9 W#1=#1-0.1
" a3 L! ^" G. @#2=ABS[#1]*TAN[20]7 z# G6 W& c/ b9 z
G01X[51.2-#2]F200.
) p# V. ?# q/ @/ L, s, }: kZ#1
" @  l6 r" s  D2 }. G. A' X( a" e% rG02I-[51.2-#2], M$ R  G. `, N) H: N
END15 m& W  Y5 q2 R& o
G0Z50.M09/ d" b4 n* C" f
G91G28Z0." g1 L2 L# C& k- l) r0 h- R
M30* d/ R  H( h) x5 p
%6 C) P: _. |: r, G  n" G
仿真以后验证刀路轨迹。6 o1 F2 _! ?2 Y/ V2 O

6 g6 M% i- F" J图11
/ _1 h$ C- y/ B; o  _: D; A1 e& D7 m  e$ N0 F
程序说明:: |9 k# c  l5 Q  \$ Z* [. t
1.编程零点设在孔中心: G8 Y! f# ~# Q3 s3 M" i# C" r$ M
2. Z轴零件平面是工件表面6 {) A% M5 h$ p9 G; j
3.用于D119.4孔口倒角,2.5x20°$ U3 B$ u  D' `* ?
4.倒角后孔口为D124.4
! W* A/ |$ v" w: g# M* G9 j2 |4 q5.所用刀具为D25R5的圆鼻刀
- [5 S: ~( H! D! m3 R+ s! Y4 ~* p3 E5 v6.正式运行前,先将工件坐标系抬高50,检验程序是否输入有误6 ?) m" L4 Y: N; ~( Z6 ?' ~& f8 |
7.程序在宏仿真软件测试验证,刀轨正确8 m$ A  m- H9 D5 Q, v$ L
8 X) ~" e/ V, i7 J; ]9 {
图12
/ i: B; x! v+ O" ~8 M0 u3 t6 d& L) S4 ?) Y$ @
图13
8 ^; w3 D7 c9 g4 f# O  _: \. D2 F$ ?- [8 m
6 u: B( R- i- Z" L
条件语句使用实例—热机宏程序& j" q  b! s. n' K5 D7 T6 U
我们知道普通程序是从上而下运行的,宏程序中是可以实现无条件跳转的,下面分享一个无条件转移语句应用案例
% x3 h; _- h( {+ K, k% l0 A2 \# V' A' p; S  I  r; K
图14
/ y8 r: r0 j4 U5 H, C- t4 a
( s7 t% I/ R7 D6 H所有机床在冬天开机的时候,都要进行热机操作,这是所有人都知道的事情,那什么是热机呢?就是为了防止因冬天的气温低而导制突然开机时出现的一些问题,轻微的如精度不高,严重的问题为机床一些部件断裂。所以我们在冬天开机之前必须要进行热机操作,通过热机操作让机床部件受热均匀。
/ ?+ K6 W- ]4 C) ]那平时大家的热机操作是如何进行的呢?一般的人,也就是打开主轴让主轴转几十分钟,同时通过手动方式,让刀架在X轴和Z轴来回移动。就这样反复操作。如果这个时候,你有事情要想离开一会儿,而你又不希望机床停下来,怎么办呢?这个时候你是不是很想让机床自动运转?这可以实行吗?在你没学过宏程序,你会觉得这好像是一件不可以思议的事情。如果你懂一点宏程序,你就会发现其实这是一件简单的事情,很容易实现。8 x( P; w1 [3 l
在分享此案例前,先预习下无条件转移语句GOTO n (n表示序号的数字)  J$ G& X7 z' z8 O5 X, G. X
上面是GO和TO组成,含义是到……地方去,其中后面的n (n表示序号的数字)代表程序行号(如GOTO 100 ,表示跳转到N100行程序段)
9 b, v2 m" H& \. A* p, L好,我们可以学习如何通过宏语句实现这个自动热机功能。( n9 ]$ [# O# Z: h6 a- o* O4 D
O0001, j; g: r: {; |5 U) x
M03S300" m- p) V4 o$ W
N5 G01Z50.F50.
9 C# Q2 G& l) }" ]3 r8 EZ300.
' X, `- w9 a8 V6 P! lX200.* {+ l4 }  y. x- o' Y# m8 O
Y200.
, P! Z& }2 c4 b: q, r) A6 rX-200.# U2 Q. u) j) L( n1 D; l& c
Y-200.
8 j8 H/ B% a) h+ l, g) z" _GOTO 54 V& x3 ]5 x- V0 {$ x8 T
M30/ r3 |, E5 s6 G5 h( S
这就是一个最简单的宏程序热机。- u' Q9 G' F5 D( ~
在这里我们要学习一下GOTO语句的作用GOTO 5这个程序段要表达的意思就是:执行到此程序段的时候无条件转到N5这一行。
: z1 K4 e7 ~# ^( v1 e, S$ |$ u6 P, {2 x. n6 k* c! m
9 ^5 u  q% ?2 q& }7 j" d
数控车深孔循环宏程序+ Y, f2 y6 c5 i3 w) z0 C
欢迎大家(在法拉克-数车)验证后中使用4 \* i% K7 }" X: C/ f
序如下:, ]& E4 P+ n2 D. g6 d, o
G65 P_ K_ B_ W_ C_ F_  U$ T2 D) F; _$ m/ g( ]/ r
说明:
/ _8 a' t' `& Q: u9 L( ^4 OP:代表子程序号9 G7 f1 Q: G3 }9 h4 ?# N
K;深度
/ t/ J4 R# d& Q# l8 NB:回退量: W$ P2 m0 W( s: k) H
W:每次进给深度5 ]) L  m- ^0 A/ M
C:第一次进给深度
0 M" q# \! z8 }- oF:进给量
2 r: i  L: y( w! Q$ G" |比如:
0 H0 i# R# S7 B. gG65 P1 K-20. B0.3 W1.2 C0.8 F0.05
' S/ c. @- B7 N5 \, s2 b! K1 r% P其中1为子程序号,加工孔深为20.每次回退0.3,每次进给深度为1.2,第一次进给深度为0.8,每转进给0.05& X' t/ L; Q5 |( a0 y6 i+ e
子程序如下:) W7 r) Y8 t! e. [6 a: o
O0001(DEEP DRILL)- ^( ~" A* L: q  c) m
IF [#5002LT0]GOTO 100
& T5 Z. w' X  d9 PIF[#6GE0] GOTO 70
7 X3 O! p: T3 G0 S' u  X! H& Z! Q( ]G00W0.0
- \% s$ v+ ^( z7 ]#4=#5002+ Y# K% f9 ~/ F  E
#3=ABS[#3]
* v( x1 @+ F9 A#2=ABS[#2]2 x& y" y! P4 s3 _1 D  \
IF[#19EQ98]GOTO 1
4 f3 W  ?! f5 X1 B$ g( ]2 H4 E#19=99
1 H4 ~$ b# G, f: \7 F1 ~N1 G#19 F#9
% k5 o9 r1 N" F" K( Z# m#27=ABS[#23]
( w3 R& g2 s$ |#28=ABS[#6]-ABS[#26]
. K% ^5 O( N5 C7 q  d/ c: |#29=ABS[#26]- l8 q& Z- R% d3 Y/ ?+ Q6 c
DO 17 I$ Y; G. d. g! q3 n) `5 @8 @
IF[#27LE#3]GOTO 2$ l& q7 ~* W  k) W# f8 f
GOTO 3& O) W5 ]+ t9 R
N2 #27=#3
  a8 J/ R2 [, cN3 IF[#27GE#28]GOTO 44 k/ y& _* @( c
G00 Z[#2-#29]" K. B5 h  p* W' Y
G1 Z-[#29+#27]+ k; V, A( }$ H5 y& o" _& R  K8 B
G00 Z#40 i9 a  p/ ~% S+ {' a
G4 U#1
+ I1 P- Y# k  P7 N. d#28=#28-#27- f$ _* }, B% u' b+ ^& b
#29=#29+#271 ?. O, S. X# [" p! O4 A
#27=#27*0.5* P* Y) @/ V4 B9 k3 S
END 1
% E" s/ `6 p  x$ _1 ZN4 G00 Z[#2-#29]  r% `; b/ r: @6 P8 Y7 k
G1Z#6 F#9
' B6 ]- m. q7 \  }4 ]G00Z#4
  D. J3 ~  k' [/ CM99
1 \0 x& x7 ~4 ~* z' x& Y2 r5 ~N70 #3000=1(K MUST BE NEGATIVE)
) ~  u1 c7 H9 x+ u7 _N100
' l2 K# S# q) ?1 p3 F/ E1 N% DIF[#6LE#0] G0T0 170  W  P+ O* T8 s* C4 l+ M9 I( ^2 b. S
G00W0.0* U# v+ N' P" C6 P/ R9 a* T" {8 T6 y
#4=#50026 G( d4 p" l( K5 e7 P0 K
#3=ABS[#3]
1 T( z2 I  c! d#2=-[#2]/ _% Q$ `- H$ c) x( l4 V2 y0 j
IF[#19EQ98] GOTO 14 Y  z) {; x! `) Z
#19=99
/ H2 z, P" i8 h: P, x- AN1G#19 F#9. f; n6 t4 n, z: E+ W% o0 p5 X
#27=ABS[#23]
, o$ R; X- K( ?- G  h' F$ w) D( j8 z#28=ABS[#6]-ABS[#26]
3 u1 \0 r' a  J# e#29=ABS[#26]
; {, w. a- q* C3 VDO 1
: M8 P8 N8 h" AIF[#27LE#3]GOTO 22 a/ B/ F: s( ]" o# [; d7 N" B
GOTO 3
' w& n5 Z6 L$ Y; V  RN2 #27=#3
" b2 N: H/ g& t4 S- F' E3 C# xN3 IF[#27GE#28]GOTO 4
2 @4 B4 ?. s" J* c, GG00 Z[#2#29]* D7 a7 A  `+ U* ~
G1 Z[#29+#27]
/ j+ W( @7 W7 w) F5 @/ iG00 Z#4# O9 e; e( P* ^4 _  a, P
G4 U#1
: i. ?. I* e1 w3 c/ Z: A/ s: ?#28=#28-#27
/ F; {8 j. Q$ p#29=#29+#27; g) x* C/ y$ U8 ?
#27=#27*0.5
- L2 x4 A, [; S7 ^- e+ c3 i/ mEND 1
% U' F1 q6 q$ f+ N# {$ SN4 G00 Z[#2+#29]
- b/ \' J2 ?$ C+ ]G1Z#6 F#9% U: [7 t/ A. K8 k" D4 Q+ V
G00Z#4
: p& k' p. A( sM998 E  ]7 [* f, b! I# K4 }
N170 #3000=1(K MUST BE POSITIVE). c# U2 l. n+ G$ c4 u
我们使用此程序时候,只需把子程序(如O0001)保存在机床储存器中,后面只需用G65调用即可' d8 R2 i  Z# a: Q
比如钻100深的孔,程序如下:& n- v0 `8 X9 _) ~  u
%
: W( d/ j2 g' {O0003
' u- s6 c; C! U& fT01017 a5 E( }5 L" j4 U9 @( A5 u/ m  D
S1000M03' B, x) Y: [, R& h
G0X0.Z2.
3 E7 A& S" Y- o. b) z; t% ~G65 P1 K-100. B0.3 W5. C1. F0.053 q% H: ^8 x8 W
M30% c# U* Y% S* h4 z! }- k) `
%; b1 E* Z& l. r+ K5 D

9 k0 A& j6 m( N7 j& Y宏程序的实际案例是一个思路的理解过程,掌握基本语言和语句以后,参透上述的程序编写过程与步骤,相信就能举一反三,解决加工中的实际问题。9 |: p( G2 q+ _& F0 Z

, E& l; ?2 `5 d! h6 e/ l

该用户从未签到

 楼主| 发表于 2017-7-13 09:05:55 | 显示全部楼层
有同道中人欢迎交流,15990065462& o6 ^* x6 o1 N& ^1 o
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机论坛|Archiver|非标准机械设计网 ( 粤ICP备12057113号  

GMT+8, 2017-9-24 12:56 , Processed in 0.545116 second(s), 44 queries .

Powered by CNMOJ X3.2

© 2012-2016 CNMOJ

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