久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 5398|回復: 14

宏程序個人理解.

[復制鏈接]
#
發表于 2013-12-13 21:29:02 | 只看該作者 |正序瀏覽 |閱讀模式
本帖最后由 鄉村非主流 于 2013-12-13 21:34 編輯 , K+ V/ \9 f9 N" F" C+ N! i

% x# u* ^2 S' V2 ?   經常會看到有人發與宏程序有關的帖子.不是難度太高就是講得不怎么靠譜.今天講講我自己對宏程序的理解..
# ?* Q2 W! [5 Y   宏程序一般分為A類和B類.A類宏調用比較麻煩.B類宏用起來比較方便.類似于C語言.現在的機床基本上都支持B類宏.' }& i$ Y  ~2 ?. a* k
   本人只操作過廣數和Fanuc系統.她們宏程序應用基本都是一樣的.現在以Fanuc為例說說.本帖目的只在于溝通與探討..
" j+ P1 _) d% L7 ?; m* WFanuc系統的變量由符號#和變量序號組成.如:#I(I=1,2,3,...,例如#5, #500, #100等).將跟隨在地址符后的數值用變量來代替的過程稱為引用變量.例如:G01 X#100 Y-#101 F#102;.當 #100=100.  #101=50.  #102=80時.上式即代表為:G01 X100. Y-50.  F80;.0 `6 b! W) k9 O6 F  P! y
   變量的種類.變量分為局部變量.公共變量.系統變量.局部變量(#1-#33)是在宏程序中局部使用的變量.當1號宏程序調用2號宏程序且都有變量#1時,由于變量#1服務于不同的局部.所以1號程序中的#1與2號程序中的#1不是同一個變量.因此可以賦予不同的值.互不影響.公共變量(#100-#149,#500-#549)貫穿于整個程序過程.當宏程序1調用宏程序2時.且都有#100變量時.由于#100是公共變量.所以1中的#100與2中的#100都是同一個變量.系統變量是指有固定用途的變量.她的值決定系統的狀態.包括刀具偏置變量.接口輸入.輸出信號變量.及位置信號變量等等..(系統變量這塊還搞不懂.有的是生產廠家定的.希望有人能夠指點指點).宏程序通常使用局部變量和公共變量.#500以上的變量斷電后不丟失.
. K0 A7 I2 d5 x: J4 x" n  B類宏賦值:直接賦值例如:#100=100.0
2 }5 ?- Y! H. T1 u$ b                                                #100=30.+20.6 F7 c3 V: J+ z5 ?, W$ R6 B
                    常用混合計算例如:#1=#2+#3*SIN[#4]
8 T+ \2 Y; C( {  ]2 p                                           運算次序為:1;函數SIN[#4]* H. @5 Y/ R9 K7 F/ C
                                                               2;乘和除運算#3*SIN[#4]
* _. u/ N7 M  p                                                                3:加減運算#2+#3*SIN[#4]   0 q# K) N" p+ ~0 C
                                        也可以通過括號改變運算順序例如:#1=SIN[ [ [ #2 = #3 ] * 4 + #5 ]  / #6 ]6 \4 p/ Z) L# Y
轉移指令GOTO的應用;/ K% O' Q8 l9 r4 C1 N% i. L
例如:GOTO1007 A* U! B& L; ]+ K' {1 M/ P
無條件轉移到N100程序段.用的較多.可以省去了跳段符號.不過很多人習慣用跳段開關.我比較喜歡這個方便. / |4 p1 q, d: A, k# Q
條件轉移例如:IF [ #1 GT #100 ] GOTO 100  5 L, N% ^0 A) t& M0 [8 ]
當#1大于#100時轉移到N100程序段.至于什么大于小于這些自己看書去.打字累的慌.       6 T' R2 ?) O/ Z. Z
還有個循環指令WHILE[條件式]DOm(m=1.2.3.....)
% d, [9 }& X/ Z( l; p5 Y4 Y                                            ......7 L$ A5 v* e; r3 B& a4 x+ r
                                            ENDm;這個比較少用.大概格式就這樣了
3 Q( Q/ m+ k1 W5 E其實在實際加工中宏程序用的比較少.也許是現在很多人不會用的原因.4 u* ]% C, @, Q
我現在舉個簡單的例子:比如我們加工棒料是有時從直徑150車到100時.如果用G90比較費時間.當然電腦編程全部用的是G01.走刀.速度比循環車要快.但是程序繁瑣.那我們就用宏程序來編個吧.比如我們每刀切削2MM.退刀1MM.+ M0 [; u( y" P
O520 ;
7 M1 H  y7 t8 C4 l3 e/ Q8 K#501=151 ; 賦值
$ R8 C3 t* I, J#502=100 ;賦值( G5 z* [% j! K6 m( c
M44 ;
7 f9 ], W% |& H% [* hT0303 M8 ;
8 r9 g" C8 a% T0 l. |M3 S450 ;
' s; `* w' [2 m9 t0 U/ ?G0 Z5 ;
& C0 |( h7 j2 aN1 #501= #501-1. ;X定位點1 P4 p- O' Z- O1 c2 U
X#501 ; % a4 x& T& d- c' m
#501= #501-1. ;X切削點- \; d8 T+ L* @- D: p5 d
G90 X#501 Z-50. F0.2 ;( Q: j4 L- h4 E& @
IF [ #501 GE #502 ] GOTO 1當#501大于或等于100時轉移到N1.這樣可以使她循環到我們需要的尺寸.這里我沒有經過仔細的計算是不是剛好到100.這個可以自己計算給值.懶得算了.
, b4 k/ g7 W/ j, ?) h1 G7 bG0X200. M9 ;
8 X6 |. p$ K( i3 tZ300. M5  ;/ N' r1 l, x8 G+ O* L) n
M30 ;. r; `6 n  Q8 b, [: m: L
%這個程序走刀基本與G01編程類似了.退刀還可以給小點.自己改吧
$ m  D+ F0 |, x# C, L9 G! p小弟不才.以前是種地的.這里搞什么開發區.田被征用了.只有改行了.求指點.求指教.- p4 y) f. b3 c  k
我還編了個螺紋左右借刀加工的宏程序.看了下資料.了解了下思路.自己整了個.今天沒時間了.明天發.個人覺得只要把這個程序看得懂.其他什么橢圓加工神馬的都大同小異了.
% ~% O. x& s" e; ]3 B& Z+ F' u% i" p7 B. I
回復

使用道具 舉報

15#
發表于 2014-1-29 19:08:34 | 只看該作者
宏程序可以用來采集機床的數據嗎,別的方式可不可以
14#
發表于 2014-1-27 09:55:58 | 只看該作者
無聊的宏
13#
發表于 2014-1-15 21:52:27 來自手機 | 只看該作者
樓主的是用G90啊!自己會返回循環起點的沒看明?
12#
發表于 2014-1-15 20:19:16 | 只看該作者
樓主復制的帖子就別拿出來了
11#
發表于 2014-1-8 16:16:04 | 只看該作者
對日本人的系統我很陌生,但也看過點,個人覺得編程沒有西門子的自由。這大概受東西方文化不同的影響吧,當然這是我的個人感覺,事實不見得如此,望達人評解
10#
發表于 2013-12-26 10:50:18 | 只看該作者
即使搞懂了這些,還不夠啊,宏程序水很深,解決問題時就知道了

點評

多實踐.沒事時自己試著做嘛.  發表于 2013-12-27 19:57
9#
發表于 2013-12-15 17:50:03 | 只看該作者
好像都是很牛的樣子啊
8#
發表于 2013-12-15 17:27:15 | 只看該作者
你看人家城主的程序,每車完一刀循環時都有一行“G00 X#500 Z5.;”回刀的動作,你的程序根本就沒有,還叫我去看g90是什么意思,真無語了!

點評

這.......還是一句話多看書..  發表于 2013-12-16 20:40
樓主你不是吧?G90只是絕對值編程,怎么可能會退刀到起刀點呢?  發表于 2013-12-15 21:26
呃....G90會自動退到起刀點.比如Z5.X90.起點.加工完一刀后她會自動回到Z5.X90...  發表于 2013-12-15 17:31
7#
發表于 2013-12-15 12:42:42 | 只看該作者
6#
發表于 2013-12-14 23:29:56 | 只看該作者
真心沒看懂啊,請教樓主* I; N. Y* X: [' J+ d* M

1 M6 Q" s4 F$ O- I/ @' _O520 ;5 G$ W4 R; I( [& X7 h& f. T7 \
#501=151 ; 賦值/ j5 n+ ^) s' `2 S- z
#502=100 ;賦值
- `: q7 O1 k4 t# v, M# ]0 KM44 ;
% W, r5 T2 G) t) a3 gT0303 M8 ;& Q4 m, L* Z4 u5 b" U4 f! R* {, S3 Z
M3 S450 ;
: J& ~4 N$ N" D8 Y- NG0 Z5 ;
8 C" Q/ ^) ~1 w9 f  {- ]N1 #501= #501-1. ;X定位點
! T0 M3 M! u7 A  t6 ~( GX#501 ;  X% o* X' u7 Q  ^. M9 [# ^0 m
#501= #501-1. ;X切削點
( s* y. d. \4 O+ D7 n1 ~! O' o# sG90 X#501 Z-50. F0.2 ;
" Q6 O* w9 Z8 A( `$ RIF [ #501 GE #502 ] GOTO 1當#501大于或等于100時轉移到N1.這樣可以使她循環到我們需要的尺寸.這里我沒有經過仔細的計算是不是剛好到100.這個可以自己計算給值.懶得算了.
, j) `- \- z8 p: e4 j5 vG0X200. M9 ;5 `$ |1 v2 V' ?" s6 ^
Z300. M5  ;8 d  u  ~6 _+ t# U8 w* ~6 \. m
M30 ;9 x/ N% c4 J! Q3 v' L; C

" ^7 p/ q0 H- Q' v& _8 @你的這段程序里z運動只有一個z5一個z-50和最后一個z300,而且在循環段里只有一個z-50,這個z沒回0啊。
: I! }# V) g* P# N, S另外循環段里:
$ R3 G/ _/ K! n  y  QN1 #501= #501-1. ;X定位點    第一次循環#501的值是150
0 B% U: c9 ~4 v% O* p) jX#501 ;                                 第一次循環x走到150& ?* [; X( l' @
#501= #501-1. ;X切削點$ N$ h: {, p' F% W) h3 K8 w1 {
G90 X#501 Z-50. F0.2 ;          第一次循環 這個x的值是149,那不是走成錐度了嗎

點評

這個G90是單一形固定循環.Z5就是起刀點.你把G90這個指令搞懂了就好理解了.看看書吧.  發表于 2013-12-15 14:43
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-8-21 11:26 , Processed in 0.077387 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表