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

機械社區

標題: 請教:什么樣的程序是宏程序?宏程序和普通程序的區別是什么? [打印本頁]

作者: 耶穌愛子    時間: 2013-10-24 18:12
標題: 請教:什么樣的程序是宏程序?宏程序和普通程序的區別是什么?
對FANUC 系統的宏程序不怎么了解,希望社區大神指點以下幾個問題:9 V- a. N; x3 t

% u, M. J3 W/ y: @6 T/ v+ t什么樣的程序是宏程序?宏程序和普通程序的區別是什么?
8 ], i: ]9 M) Q& v7 g- ?5 S
% A/ Q5 ?9 k  }- J怎樣理解“局部變量只能用在宏程序中”?- C' w; E. L0 d: _# a. M4 B& r/ f

4 z8 i) ]$ a" F( h4 m宏程序的程序號都是9000-9999嗎?

9 r5 r" k* o- k( g$ M" B( Y8 H
作者: 冷月梧桐    時間: 2013-10-24 18:45
NO1.宏程序之于普通程序主要是引用變量,設置循環條件,可以完成相同類似工件的加工,其實G83就可以理解成是一個宏程序,等你熟練運用宏之后,可以自己編一個G83功能的宏程序,百度文庫是你的老師。  s0 [4 i( @. l2 f& L
NO2。這一話本身就是錯誤的,談何理解。宏程序變量分多種,(變量類似于初中數學的X未知數,也可以是已知數,下面主要講他們特殊的功能)。#1-#33被稱為局部變量,主要的特殊功能是在宏程序調用是傳遞變量值,等你學會G65的時候就知道了,屬于一個程序的值,程序結束時,所有這類值都會被清空。#100-#199通用變量,這類變量可以存在于程序間互用,程序結束不會被清空。#500-#999通用變量,這類變量是保持式的,不僅是程序間的通用,還可以是關機之后還保持著原來的值(注意這是默認情況,還可以通過修改系統參數來改變通用變量的功能)。#1000—#……這類屬于系統變量,主要涉及坐標系和刀具補償之類的信息,詳情查看你的系統說明書
  y- l" h5 i' }- D' kNO3。不是的,宏程序號和普通程序,子程序沒有任何區別,同樣是可以任意的。這個問題涉及的是宏程序調用相關的東西,普通調用宏程序和調用子程序是一樣的。如果你要通過修改參數6050的值使用G,M,T代碼來調用宏程序的話,必須把宏程序放在相應的程序號里,如6050參數的值調用O9010的宏程序,詳情查看系統參數6050之后的幾組參數
作者: hb406863722    時間: 2013-10-24 19:29
樓上專業# X, h  c: A6 v
宏程序就像武林中的葵花寶典,欲練此功,必先自宮。(笑)1 E) |& q; {" Z4 L" _
舉個例子:有一百件邊長不一樣的正方形要銑外輪廓,常規方法要編一百個程序來做,太麻煩。1 N0 L$ h& d, p, m" d' s
現假設邊長為X,編一個程序(即宏程序),做100的料時令X=100(實際為#1=100)即可,如此類推,又快又不容易出錯。
  F1 K3 ?. R% E) H5 U$ o. s在塑膠模架中有常用
作者: onelee    時間: 2013-10-24 20:09
宏 的正確意思其實叫命令集
作者: 猛禽2012    時間: 2013-10-24 21:30
那怎樣才能學會宏程序呢?
作者: 刀鋒365    時間: 2013-10-24 22:09
看說明書唄
作者: 耶穌愛子    時間: 2013-10-25 20:32
冷月梧桐 發表于 2013-10-24 18:45 / q2 K% Q3 r* m$ w$ Q3 z
NO1.宏程序之于普通程序主要是引用變量,設置循環條件,可以完成相同類似工件的加工,其實G83就可以理解成是 ...

6 |( ]$ @- s4 _  X8 v“局部變量只能用在宏程序中”這句話是在FANUC程序說明書中看到的,讀的時候覺得不理解才提問的。4 y+ Z4 H+ o, c/ x8 d

作者: 耶穌愛子    時間: 2013-10-26 10:10
冷月梧桐 發表于 2013-10-24 18:45
5 o  I7 `$ D6 a5 UNO1.宏程序之于普通程序主要是引用變量,設置循環條件,可以完成相同類似工件的加工,其實G83就可以理解成是 ...

( G7 K3 Z+ o' M/ M- [, \) |* u  J; P大俠,你看我這樣理解對嗎?如果不對,請指正,謝謝!(也希望其他大俠批評指正)/ Q* g* C" y9 P: m9 ?$ I2 _' K
       1.雖然很多程序也使用了變量或條件跳轉,但這些程序不能稱之為宏程序。如我喜歡把加工參數設成宏變量(#501=0.25;……F#501),或一些報警跳轉(……IF#502GT0.5;GOTO2500)。( w0 ?1 @/ V1 r( G/ i  t9 l
      2.只有能被G65調用的那種使用了局部變量的程序才能稱為宏程序。
' N& f; y% K- t: z6 h+ y+ Q

作者: 冷月梧桐    時間: 2013-10-26 11:04
耶穌愛子 發表于 2013-10-26 10:10 0 _! v& D, b% |' \% h; o" S" U3 t3 c- ^
大俠,你看我這樣理解對嗎?如果不對,請指正,謝謝!(也希望其他大俠批評指正)' \3 r7 J4 p7 }" U' e- B
       1.雖然很多程序也 ...

! i# z! c7 C: k! n* I我認為涉及變量,循環都算是宏程序。聲明我是業余的,不是專業的。問你一個問題,什么是普通程序,什么是子程序?你若想通了也就知道了,機械的嚴謹不等于咬文嚼字
作者: whbyyx    時間: 2013-10-26 16:04
簡單的說就是有變量,有常量,有條件,滿足條件就執行下一段。
作者: duanyz    時間: 2013-10-26 21:53
冷月梧桐 發表于 2013-10-26 11:04
' p5 C5 I. I. J我認為涉及變量,循環都算是宏程序。聲明我是業余的,不是專業的。問你一個問題,什么是普通程序,什么是 ...
+ D: P$ K) @, L, k
啊?是這樣理解的嗎?我一直以為vb編程的另一種叫法是宏程序,
# m$ E3 G) B. [/ a& r5 x" h9 S. }5 Q) a! J( R, \
如果按你所說的,c語言等都有變量、循環,那也叫宏程序嗎?
) b( Y' S& R5 N6 U- C4 D  a4 \) Y
9 n, u# \! f! S. S6 \/ \. [! q. {1 @6 h9 o2 Y
( @3 t& N3 B$ L+ D7 _& @

作者: duanyz    時間: 2013-10-26 22:43
macro的中文名稱:宏0 l) _1 Y8 e# f8 r
什么是宏
* p! D* R/ r6 h- o4 ^  計算機科學里的宏是一種抽象,它根據一系列預定義的規則替換一定的文本模式。Excel 辦公軟件自動集成了“VBA”高級程序語言,用此語言編制出的程序就叫“宏”。使用“VBA”需要有一定的編程基礎和耗費大量的時間,因此,絕大多數的使用者僅使用了Excel的一般制表功能,很少使用到“VBA”。 8 E6 i3 g# V. F! l9 b5 Y! h4 Q' \# R8 e
! k* ~3 A; j$ M3 N# \- K* J
  解釋器或編譯器在遇到宏時會自動進行這一模式替換。對于編譯語言,宏展開在編譯時發生,進行宏展開的工具常被稱為宏展開器。宏這一術語也常常被用于許多類似的環境中,它們是源自宏展開的概念,這包括鍵盤宏和宏語言。絕大多數情況下,使用“宏”這個詞的使用暗示著將小命令或動作轉化為一系列指令。
: h+ ^4 e8 O; A/ e& t; \/ O: R! T$ B2 t: X/ g& N' N! x* n
  宏的用途在于自動化頻繁使用的序列或者是獲得一種更強大的抽象能力--但這常常是一回事。 - {9 @' o5 p, i9 D' x! U

% K% W, w: h+ L8 h+ Q$ u  計算機語言如C或匯編語言有簡單的宏系統,由編譯器或匯編器的預處理器實現。C的宏預處理器的工作只是簡單的文本搜索和替換,使用附加的文本處理語言如M4,C程序員可以獲得更精巧的宏。 $ e1 J# {1 ?- b  N; R2 |
+ X" y8 |" z5 H' F5 e; ~1 }
  Lisp類語言如Common Lisp和Scheme有更精巧的宏系統: 宏的行為如同是函數對自身程序文本的變形,并且可以應用全部語言來表達這種變形。一個C宏可以定義一段語法的替換,然而一個Lisp的宏卻可以控制一節代碼的計算。
' F+ u7 C  C$ j  d( `- P5 `) r% r- P0 y
  獲得了控制代碼的執行順序(見惰性計算和非限制函數)的能力,使得新創建的語法結構與語言內建的語法結構不可區分。例如,一種Lisp 方言有 cond 而沒有if ,就可以使用宏由前者定義后者。Lisp 語法的去部主要擴展,比如面向對象的CLOS 系統,可以由宏來定義。
. ~+ P$ q4 Y  ~" X$ z5 y宏的典型應用' U) @& g) D& ~
  加速日常編輯和格式設置 % e. L& H" S& ?& |' T- B* y

6 S- q! V' P, ~& e6 R  L' E+ D  組合多個命令
' t# n8 B; q% B) c+ s2 V" w/ V
2 Y+ [* T2 C+ y  使對話框中的選項更易于訪問 7 {' a6 I, W% f; D9 X

1 a/ ~$ X3 z2 `+ M8 N) T3 X  使一系列復雜的任務自動執行: t* u5 T( d! Q: D8 D$ h1 y: Y
宏編程介紹. |+ X8 q$ I6 M6 B5 w2 u# r
  在用一種不熟悉的宏語言進行宏編程時,可以這樣做,首先記錄下用戶想要宏完成什么,然后打開宏文件并嘗試理解命令結構如何工作。也可以修改命令以調整宏。一些宏語言,比如Great Plains賬務(?accounting)軟件的 Dexterity 運行時引擎,不能從其它數據源(如由逗號分隔的文本文件)導入數據。這一限制可以通過用更強大的編程語言,如 VBA 來創建一個計算機程序在此弱編程語言里生成一個特別的宏來解決。例如,可以對 Microsoft Excel 宏編程從擴展樣式表或文本文件中讀取數據并創建 Great Plains .mac 文件,這一文件被用于將特定的數據導入 Great Plains. 需要針對每一個新的數據集合聲稱新的 .mac 文件。
7 X5 M9 P0 U/ }6 U8 ?鍵盤宏3 F1 }5 h+ Y! @. f3 I
  鍵盤宏和編輯器宏分別在圖形用戶界面和編輯器中被交互式地使用。使用它們可以用簡短的擊鍵代替冗長的命令序列,并為重復性任務提供了一個簡單的自動化形式。 8 d' H; e' f) X
% x1 n- Y. U, f  ?! u8 @8 h. b
  程序員的文本編輯器 Emacs (“編輯宏”[Editing MACroS]的簡稱)是沿用這一思想的產物。事實上,大多數編輯器是由宏組成的,Emacs 最初被設計為編輯語言 TECO 的宏集,后被移植為 Lisp 的一中方言 Emacs Lisp。) k3 J9 o7 A2 L$ o
宏語言
: j: g7 v& @' y+ E" L  宏語言是一類編程語言,其全部或多數計算是由擴展宏完成的。宏語言并未在通用編程中廣泛使用,但在文本處理程序中應用普遍。例如,
; [# `1 l+ s2 P2 y* J% D2 _# X7 B" i9 d3 V
  C preprocessor C 預處理器
4 M) b% x, [3 \2 y7 @. g/ c7 y3 t' u+ ?2 G9 W; ?
  Internet Macros(iOpus) 3 Z- v1 ]$ O. `/ o7 Z9 j
9 Z7 v) }3 n8 X! m/ c1 z( }% Q7 |
  M4(如前所述,源于AT&T,捆綁于Unix)
% V' N5 G6 ]' Q7 L1 u8 Y! z$ w1 ~4 w6 S9 F& J
  宏定義
+ l$ ?2 z9 |$ }4 W4 ]" m: w, s. t: U
  c程序提供的預處理功能之一。包括帶參數的宏定義和不帶參數的宏定義。具體是指用一個指定的標志符來進行簡單的字符串替換或者進行闡述替換。形式為:
  g6 e5 r4 l" N: |/ F/ l1 W7 r0 D4 s' j
  #define標志符(參數表) 字符串 : k& q' k9 R: \: e$ p/ f5 h7 J

/ S  l' {& o( @/ l4 M% r9 p  宏名 % a2 q% `1 r0 i
4 `8 s8 i. h! ?: q4 e* P
  在上定義中的標志符被稱為“宏名”。
1 s+ p/ G$ P1 u
' V) x8 w* F& A  D+ E: e) c0 U' {  宏展開
, {5 B/ i) u5 E& B, d+ F& I% _& Q; \: c5 H3 r
  在c程序編譯時將宏名替換成字符串的過程稱為“宏展開”。
& G, i. g2 l  X1 c) t  c微軟Word和宏病毒
( n. e& C, {0 u  Visual Basic for Applications (VBA),是 Microsoft Office 里的一種編程語言. 但由上面的定義,它完全不是一種宏語言。然而,它的功能已經從中發展并最終替代了用戶應用程序的宏思想,所以他被廣泛地錯誤地稱為是一種宏語言。 $ n. z* u# [! Z7 ~

- J& `4 l" j: t4 a4 \  VBA 可以訪問許多操作系統函數并支持文檔打開時自動執行宏。這使得用這種語言寫計算機病毒成為可能。1990年代中后期,宏病毒成為了最流行的計算機病毒類型之一。其它的包括宏語言的項目,如openoffice org,故意從其宏語言中排除了一些功能(如:自動執行)以避免破壞程序。然而,這一特性在很多事務中受到歡迎。 & {* ]5 j$ s4 F  ]$ Y3 Z% K% {6 l

/ K) S1 }6 z- g$ v) y  A, d  另:在數碼相機鏡頭中Marco的意思是微距。
, q, S( V. P& e' C) s: A' Y3 d+ c; B/ i5 T
詞典所得,原來都能跟宏有關!
作者: oleg0007    時間: 2013-10-29 13:05
冷月梧桐 發表于 2013-10-24 18:45 - M) q9 B+ D# [2 A8 j  K: U
NO1.宏程序之于普通程序主要是引用變量,設置循環條件,可以完成相同類似工件的加工,其實G83就可以理解成是 ...
9 Q9 L+ d! v! V/ l! V% Y+ i7 j, c: V
我認為第三點的說法有問題。宏程序號和普通程序、子程序在CNC內部處理時是不一樣的,而且宏程序必須是O9000~9999中的一個,其他的程序號只能成為子程序或普通程序。
! _" B& [, U) e$ q5 d
作者: 冷月梧桐    時間: 2013-10-29 17:50
oleg0007 發表于 2013-10-29 13:05
  z4 G% x$ ?5 S* e. P8 \我認為第三點的說法有問題。宏程序號和普通程序、子程序在CNC內部處理時是不一樣的,而且宏程序必須是O90 ...
) b) g) j' a2 \6 {; o
實際是宏程序的程序名是任意的,放在9000以后主要是可以對這部分程序加鎖而已
作者: 被遺忘的一族    時間: 2013-10-29 20:58
宏程序用的不多
作者: br-denghg    時間: 2013-11-24 18:54
謝謝2樓的普及啊!




歡迎光臨 機械社區 (http://www.ytsybjq.com/) Powered by Discuz! X3.5