|
本帖最后由 鄉(xiāng)村非主流 于 2013-12-13 21:34 編輯 # Q P7 K) h6 d" W" W
/ u5 ]1 G5 q# K/ I 經(jīng)常會看到有人發(fā)與宏程序有關(guān)的帖子.不是難度太高就是講得不怎么靠譜.今天講講我自己對宏程序的理解..! h0 q( n. z% z3 @
宏程序一般分為A類和B類.A類宏調(diào)用比較麻煩.B類宏用起來比較方便.類似于C語言.現(xiàn)在的機床基本上都支持B類宏.. k( o/ H+ D) N5 O1 I
本人只操作過廣數(shù)和Fanuc系統(tǒng).她們宏程序應(yīng)用基本都是一樣的.現(xiàn)在以Fanuc為例說說.本帖目的只在于溝通與探討..
% |5 r0 }! r" TFanuc系統(tǒng)的變量由符號#和變量序號組成.如:#I(I=1,2,3,...,,例如#5, #500,, #100等).將跟隨在地址符后的數(shù)值用變量來代替的過程稱為引用變量.例如:G01 X#100 Y-#101 F#102;.當(dāng) #100=100. #101=50. #102=80時.上式即代表為:G01 X100. Y-50. F80;.& v3 I5 V# l% h5 N1 L/ }, s
變量的種類.變量分為局部變量.公共變量.系統(tǒng)變量.局部變量(#1-#33)是在宏程序中局部使用的變量.當(dāng)1號宏程序調(diào)用2號宏程序且都有變量#1時,,由于變量#1服務(wù)于不同的局部.所以1號程序中的#1與2號程序中的#1不是同一個變量.因此可以賦予不同的值.互不影響.公共變量(#100-#149,#500-#549)貫穿于整個程序過程.當(dāng)宏程序1調(diào)用宏程序2時.且都有#100變量時.由于#100是公共變量.所以1中的#100與2中的#100都是同一個變量.系統(tǒng)變量是指有固定用途的變量.她的值決定系統(tǒng)的狀態(tài).包括刀具偏置變量.接口輸入.輸出信號變量.及位置信號變量等等..(系統(tǒng)變量這塊還搞不懂.有的是生產(chǎn)廠家定的.希望有人能夠指點指點).宏程序通常使用局部變量和公共變量.#500以上的變量斷電后不丟失.3 P6 f3 d0 `/ i! y. R! j
B類宏賦值:直接賦值例如:#100=100.0
$ g" x/ I* `" @% ?* S& v, P #100=30.+20." `: c) `$ [# d; z2 k$ h) k+ y
常用混合計算例如:#1=#2+#3*SIN[#4]
, q7 y# \1 E, z* W2 e+ p 運算次序為:1,;函數(shù)SIN[#4]
" h7 k3 ~% W9 e! s- B 2,;乘和除運算#3*SIN[#4]' Y8 ^% |& `( s7 y5 U; d
3:加減運算#2+#3*SIN[#4]
+ b9 m4 Y7 V; o( Y& d 也可以通過括號改變運算順序例如:#1=SIN[ [ [ #2 = #3 ] * 4 + #5 ] / #6 ]# n+ q: ~+ F: X; x0 e
轉(zhuǎn)移指令GOTO的應(yīng)用,;
h1 H! Q( s: u# p9 Y1 u$ k例如:GOTO100
2 H0 r l# J$ D+ p9 m1 C# C) Y無條件轉(zhuǎn)移到N100程序段.用的較多.可以省去了跳段符號.不過很多人習(xí)慣用跳段開關(guān).我比較喜歡這個方便. 1 o @+ V. l; @; D! S y
條件轉(zhuǎn)移例如:IF [ #1 GT #100 ] GOTO 100
7 Y+ \) Y3 r0 U* b% H當(dāng)#1大于#100時轉(zhuǎn)移到N100程序段.至于什么大于小于這些自己看書去.打字累的慌.
( U, [5 L. u( W# \3 I& S還有個循環(huán)指令WHILE[條件式]DOm(m=1.2.3.....)& h8 n# K7 r6 L5 D n9 n& ]
......4 r2 k5 o! r5 V% |, }2 J3 I
ENDm;這個比較少用.大概格式就這樣了
: T" @! s6 u' L1 }其實在實際加工中宏程序用的比較少.也許是現(xiàn)在很多人不會用的原因.( M+ h" w' m$ D5 Z/ A/ `- H
我現(xiàn)在舉個簡單的例子:比如我們加工棒料是有時從直徑150車到100時.如果用G90比較費時間.當(dāng)然電腦編程全部用的是G01.走刀.速度比循環(huán)車要快.但是程序繁瑣.那我們就用宏程序來編個吧.比如我們每刀切削2MM.退刀1MM., X6 ^. a, j0 x' _
O520 ;
! \/ q! Q# `, b8 m, A2 ?& u& S; y#501=151 ; 賦值* U0 S# p* |, @
#502=100 ;賦值# B) g0 E3 Y9 c
M44 ;( ^ h: F% y# b( Z2 b
T0303 M8 ;
4 ~5 p6 Z- B1 H( q d' \M3 S450 ;
/ t1 n1 G- Z- {& dG0 Z5 ;$ h( w/ z3 @1 w( ^/ m4 `
N1 #501= #501-1. ;X定位點
7 M( F: B6 D/ }, D# ^X#501 ;
. A7 T: _; f1 P! h) _#501= #501-1. ;X切削點
: j% g& L2 j6 h4 J7 GG90 X#501 Z-50. F0.2 ;' h, n6 v0 c: k; r3 E
IF [ #501 GE #502 ] GOTO 1當(dāng)#501大于或等于100時轉(zhuǎn)移到N1.這樣可以使她循環(huán)到我們需要的尺寸.這里我沒有經(jīng)過仔細的計算是不是剛好到100.這個可以自己計算給值.懶得算了.; B: E' I1 e2 i
G0X200. M9 ;6 q$ k# L- B1 \( E6 H; ~
Z300. M5 ;
% a b3 r: V2 \, x$ \! ^2 u% J) `5 rM30 ;
! p& ]2 ^/ l$ }7 e%這個程序走刀基本與G01編程類似了.退刀還可以給小點.自己改吧
& W6 X# D& I- u& G3 [. `" ~; C小弟不才.以前是種地的.這里搞什么開發(fā)區(qū).田被征用了.只有改行了.求指點.求指教.) X' i3 M( R s( R
我還編了個螺紋左右借刀加工的宏程序.看了下資料.了解了下思路.自己整了個.今天沒時間了.明天發(fā).個人覺得只要把這個程序看得懂.其他什么橢圓加工神馬的都大同小異了.
7 c# e+ x, Q; ~0 E# b- `3 a6 m/ ^2 n/ M5 r; d+ ]4 A& O' l
|
|