導航:首頁 > 編程知識 > 宏編程怎麼寫好看

宏編程怎麼寫好看

發布時間:2024-04-02 03:47:43

『壹』 數控宏程序怎麼編

找本書看看,另外你要懂得曲線方程,等一些數學問題。 給你舉個例子看看先。 宏程序編程
一 變數
普通加工程序直接用數值指定G代碼和移動距離;例如,GO1和X100.0。使用用戶宏程序時,數值可以直接指定或用變數指定。當用變數時,變數值可用程序或用MDI面板上的操作改變。
#1=#2+100 G01 X#1 F300 說明: 變數的表示
計算機允許使用變數名,用戶宏程序不行。變數用變數符號(#)和後面的變數號指定。
例如:#1 表達式可以用於指定變數號。此時,表達式必須封閉在括弧中。
例如:#[#1+#2-12] 變數的類型 變數根據變數號可以分成四種類型
變數號 變數類型 功能 #0 空變數 該變數總是空,沒有值能賦給該變數. #1-#33 局部變數 局部變數只能用在宏程序中存儲數據,例如,運算結果.當斷電時,局部變數被初始化為空.調用宏程序時,自變數對局部變數賦值, #100-#199 #500-#999
公共變數 公共變數在不同的宏程序中的意義相同.當斷電時,變數#100-#199初始化為空.變數#500-#999的數據保存,即使斷電也不丟失. #1000 系統變數 系統變數用於讀和寫CNC運行時各種數據的變化,例如,刀具的當前位置和補償值. 變數值的范圍 局部變數和公共變數可以有0值或下面范圍中的值: -1047到-10-29或-10-2到-1047 如果計算結果超出有效范圍,則發出P/S報警NO.111. 小數點的省略 當在程序中定義變數值時,小數點可以省略。
例:當定義#1=123;變數#1的實際值是123.000。 變數的引用 為在程序中使用變數值,指定後跟變數號的地址。當用表達式指定變數時,要把表達式放在括弧中。
例如:G01X[#1+#2]F#3; 被引用變數的值根據地址的最小設定單位自動地舍入。
例如:
當G00X#/;以1/1000mm的單位執行時,CNC把123456賦值給變數#1,實際指令值為G00X12346. 改變引用變數的值的符號,要把負號(-)放在#的前面。
例如:G00X-#1 當引用未定義的變數時,變數及地址都被忽略。
例如:當變數#1的值是0,並且變數#2的值是空時,G00X#1 Y#2的執行結果為G00X0。
雙軌跡(雙軌跡控制)的公共變數 對雙軌跡控制,系統為每一軌跡都提供了單獨的宏變數,但是,根據參數N0.6036和6037的設定,某些公共變數可同時用於兩個軌跡。
未定義的變數 當變數值未定義時,這樣的變數成為空變數。變數#0總是空變數。它不能寫,只能讀。
引用 當引用一個未定義的變數時,地址本身也被忽略。
當#1=
當#1=0 G90 X100 Y#1 G90 X100 G90 X100 Y#1 G90 X100 Y0 (b) 運算
除了用賦值以外,其餘情況下與0相同。
當#1=時
當#1=0時
#2=#1 #2= #2=#1 #2=0 #2=#*5 #2=0 #2=#*5 #2=0 #2=#1+#1 #2=0 #2=#1+#1 #2=0 (c)條件表達式
EQ和NE中的不同於0。
當#1=時
當#1=0時
#1EQ#0 成立
#1EQ#0 不成立
#1 NE #0 成立
#1 NE #0 不成立
#1 GE #0 成立
#1 GE #0 不成立
#1 GT #0 不成立
#1 GT #0 不成立
限制 程序號,順序號和任選程序段跳轉號不能使用變數。
例:下面情況不能使用變數:
0#1;
/#2G00X100.0; N#3Y200.0; 二 算術和邏輯運算
下面表中列出的運算可以在變數中執行。運算符右邊的表達式可包含常量和或由函數或運算符組成的變數。表達式中的變數#j和#k可以用常數賦值。左邊的變數也可以用表達式賦值。
說明:
角度單位 函數SIN ,COS,ASIN,ACOS,TAN和ATAN的角度單位是度。如90°30'表示為90.5度。 ARCSIN # i= ASIN[#j]
(1)取值范圍如下:
當參數(NO.6004#0)NAT位設為0時,270°~90°
當參數(NO.6004#0)NAT位設為1時,-90°~90°
(2)當#j超出-1到1的范圍時,發出P/S報警NO.111. (3)常數可替代變數#j ARCCOS #i=ACOS[#j] 取值范圍從180°~0° 當#j超出-1到1的范圍時,發出P/S報警NO.111. 常數可替代變數#j 三 程序舉例 銑橢圓:
軌跡:
橢圓程序代碼如下: N10 G54 G90 G0 S1500 M03 N12 X0 Y0 Z20. N14 G0 Z1 N16 G1 Z-5. F150. N18 G41 D1 N20 #1=0 N22 #2=34 N24 #3=24 N26 #4=#2*COS[#1] N28 #5=#3*SIN[#1] N30 #10=#4*COS[45]-#5*SIN[45] N32 #11=#4*SIN[45]+#5*COS[45] N34 G1 X#10 Y#11
N36 #1=#1+1 N38 IF [#1 LT 370] GOTO26 N40 G40 G1 X0 Y0
N42 G0 Z100 N44 M30
銑矩形槽:

銑矩形槽代碼如下: #102=0. N3#100=0. #101=0. #103=200. #104=400. G91G28Z0. G0G90G54X0.Y0. G43H1Z20. M3S2000. N4G0X#100Y#101 G01Z#102F200. #102=#102-2. IF[#102EQ-50.]GOTO1 GOTO2 N2 N4X#104F500. Y#103 X#100 Y#101 #100=#100+10. #101=#101+10. #103=#103-10. #104=#104-10. IF[#100EQ100.]GOTO3 GOTO4 N3 N1 M5 M9 G91G28Z0. G28Y0. M30 銑傾斜3度的面:
軌跡:
銑傾斜3度的面的代碼如下: O0001 #[#1+1*2]=1 G65P9012L1A0B0.1C4I100J3K0 M30 宏程序O9012代碼如下: G54 G90 G00 X[#3] Y0 Z100 S500 M3 G01 Z0 F300 WHILE[#1LE10]DO1 #7= #1/TAN[#5]+#3 G1Z-#1 X#7 #8=#6/2-ROUND[#6/2] IF[#8EQ0]GOTO10 G1Y0
GOTO20 N10 Y#4 N20#1=#1+#2 #6=#6+1 END1 G0
Z100 銑半球:
軌跡:
銑半球代碼如下: G90G0G54X-10.Y0M3S4500 G43Z50.H1M8 #1=0.5 WHILE[#1LE50.]DO1 #2=50.-#1 #3=SQRT[2500.-[#2*#2]] G1Z-#1F20 X-#3F500 G2I#3 #1=#1+0.5 END1 G0Z50.M5 M30 銑喇叭:

銑喇叭代碼如下: M03 S500 M06 T01 #1=0 #2=0 G0 Z15 X150 Y0 N11 #2=30*SIN[#1] #3=30+30*[1-COS[#1]] G01 Z-#2 F40 G41 X#3 D01 G03 I-#3 G40 G01 X150 Y0 #1=#1+1 IF [#1 LE 90] GOTO 11 G0 Z30 M30

『貳』 如何才能學好宏程序

學好宏程序其實不難,人家花巨資開發就是為了方便使用。下面我給你詳細說說它的各系統的不同之處和使用方法:
不同的系統有不同編程語法。西門子明顯與三菱、法那科、華中、哈斯等系統不同。但編程思想是相通的。你的這個問題太寬泛了,我先說說相同的地方吧(西門子除外):
1.變數:正如計算機程序設計中的變數一樣,數控程序中也需要使用變數。要進行程序流程式控制制,變數是必不可少的。數控編程中的變數用符號#跟一個整數表示。例如 #1就是一個變數。給變數賦值的方法和計算機編程一樣,如#1=5。(相當於basic或C語言的a=5,pascal的a:=5。)
數控編程中的變數按作用域可分為三類:局部變數、全局變數、系統變數。#1~#33是局部變數,局部變數只在本程序內起作用;#100~#199、#500~#599(現在很多系統都不止599了)是全局變數,在所有程序中起作用;#1000以上的是系統變數,控制著機床運行的各種狀態,不要輕易修改。局部變數不能在程序運行時再加以修改,只能由程序控制。在使用局部變數時,必須在程序中賦初值。全局變數可以程序運行時人為地加以修改。在使用全局變數時,可以不在程序中賦初值,而在加工時打入所需值。補償量的本質是變數。
#0是空變數(相當於pascal的nil,C的NULL),不能給#0賦值。注意:空變數和0是不同的。正像在pascal里定義一個指針型變數p,則如下兩句程序是不同的:p:=nil、p^:=0。(或者C語言里的p=NULL、*p=0)當#1為0時,G1X100Y#1相當於G1X100Y0,而當#1為空時,G1X100Y#1相當於G1X100。當#1為0時,G#1X100相當於G0X100,而當#1為空時,G#1X100相當於X100。
表示變數的#號後面的數也可以是表達式或變數。例如,已知#1=5,#2=30,#3=25,#4=0,#5=80則#6=#[#1]相當於#6=80;#[3+4]=128相當於#7=128;#8=#[#4]相當於#8為空;#9=#[#2-#3]相當於#9=80;G#4X#2*#1Y#[#4]相當於G0X150。
變數可以自增或自減,變數經過運算後的值可以賦給自身。例如,當前#1=3;則執行#1=#1+1後#1的值是4。(相當於匯編語言里的INC AL;basic里的i=i+1;pascal里的inc(i);C語言里的i++。)再如,當前#1=3,則執行#1=#1EQ3後,#1的值是1。
2.算術運算和邏輯運算:①算術運算就是加減乘除(+-*/)。計算四則混合運算式時,先算乘除後算加減,如果有括弧則先算括弧里的。例如1+2*(7-4)=7。通常計算機程序設計里的括弧用圓括弧表示,但數控編程里用方括弧表示。數控編程里的圓括弧表示注釋(相當於匯編語言的分號、basic里的rem、pascal里的{}或(*…*)、C語言里的/*…*/。)②邏輯運算常見的有以下4種:與(and)、或(or)、非(not)、異或(xor)。與、或、非是基本邏輯運算,異或不是基本邏輯運算。A和B相異或的結果是AB+AB。「與」的運算規則是全1出1,有0出0,如1 and 1=1; 0 and 1=0;「或」的運算規則是全0出0,有1出1,如1 or 1=1; 0 or 1=1;「非」是單目運算符,即0變1,1變0。程序設計中的邏輯值(也叫布爾值,即「真」和「假」)在計算機中用1和0表示,通常1表示「真」,0表示「假」。如果是兩個整數進行邏輯運算,則是這兩個數的二進制的各位進行運算,例如5 and 6=4; 5 or 6=7。具體用法你可以回憶一下計算機程序設計中的用法,數控編程中也同樣使用。and、or、not、xor四種運算符分別相當於匯編、basic或pascal里的and、or、not、xor;C語言里的&、|、!、^。③數控編程中也可以使用取余運算(mod),例如10 mod 3=1。mod相當於匯編、basic或pascal里的mod、C語言的%。④數控編程中的比較運算符和匯編語言(指Intel80x86匯編語言)里的相同,即EQ(等於)、NE(不等於)、LT(小於)、LE(小於等於)、GT(大於)、GE(大於等於)。相當於basic或pascal里的=、<>、<、<=、>、>=,C語言里的==、!=、<、<=、>、>=。
3.常用數學函數:數控編程中用到的函數主要是數學函數。一般數控系統均提供下列函數:絕對值函數abs(x);平方根函數sqrt(x);三角函數sin(x);cos(x);tan(x) (單位是度,但華中是弧度);反三角函數asin(x);acos(x);atan(x);對數函數ln(x);指數函數exp(x);四捨五入取整函數round(x);截斷取整函數fix(x);進位取整函數fup(x);以及把8421BCD碼轉二進制的函數bin(x) 和把二進制轉8421BCD碼的函數bcd(x)。大多數數控系統要求函數名必須用大寫,括弧則必須用方括弧。例如G[#1GT30]X[50+2*ABS[#1]],當#1=20時相當於G0X90。
4.程序流程式控制制:程序流程可以進行無條件轉移、條件轉移、循環,還可以調用子程序或宏程序。
無條件轉移的格式是GOTO_。GOTO後面的數是要轉移到的程序行的標號(即N_)。如果無條件往回跳轉,則有可能造成死循環(即程序無法自然執行結束)。條件轉移的格式是IF[……]GOTO_或IF[……]THEN……。方括弧內是一個邏輯值,通常使用一個判斷表達式表示。循環的格式是WHILE[條件表達式]DO m …… END m。DO m和END m之間的部分是循環體,m是一個整數,用於說明哪個END和哪個DO配對。m可重復使用,只有在循環嵌套時才需要改變m。在進行程序跳轉時,可由循環體內跳轉至循環體外,但不能循環體外跳轉至循環體內(各種編程語言均如此)。
宏程序(用G65調用或直接寫成G××)和子程序(用M98調用或直接寫成M××)主要有以下區別:
①宏程序可以傳遞參數,子程序不能傳遞參數。
②M98指令可以指定標號,故可以把子程序和主程序寫在一個程序中(因系統而異);G65指令不能指定標號,宏程序必須單獨寫成一個程序。
③子程序里的變數不區分層次,主程序里的#1和子程序里的#1是同一個變數;宏程序里的變數區分層次,主程序里的#1和宏程序里的#1不是同一個變數。這類似於pascal里的函數嵌套(C語言不允許函數嵌套)。

各系統還有自己的特點,如三菱可以寫G#1+#2,法那科必須寫成G[#1+#2];三菱可以寫IF[#1]GOTO1(想想C語言里的if(a)...)法那科不行;西門子的變數是R1、R2,無條件轉移是gotof、gotob等,細節的差別太多了,你參考一下系統說明書。

宏程序可以定義成G代碼(如G200,只要系統沒用到),用法和系統原帶的幾乎沒有區別。實際上系統原帶的G代碼除了一些基本的(如G0~G4等)大都是用宏程序實現的,如G73~G89(孔加工)、M6(換刀)等。(我交待一句:你可以打開它們的宏程序看看,但不要修改!)

我花很大工夫給你回帖,不知你覺得有用沒有。請問你是學生還是已經參加工作了?在什麼地方?你要是參加工作了,我可以再詳細說說怎麼編宏程序,其中涉及到程序設計思想、數學計算、系統變數、參數傳遞方法等等。我也願意多交流交流經驗。如果你是學生,我再多說恐怕你嫌太枯燥了。

『叄』 瀹忓瓧琛屼功鎬庝箞鍐欏ソ鐪

瀹忓瓧琛屼功榪欎箞鍐欏ソ鐪嬶細

褰浣擄紙鏁翠綋瑙嗛噹錛

涓婁笅瑙嗚掆斺旀拠浼稿睍錛氬畝涓鑸鏄澶╄嗚呯粨鏋勶紝瑕嗙洊涓嬫柟閮ㄩ栵紝鍏朵富瑕佽嗙洊涓嬫柟涓諱綋錛屼緥澶栧傛拠絎旓紙涔熷寘鎷鎹虹瑪錛夛紝瀹騫朵笉瑕嗙洊鎾囩殑鏈絝錛屾崲鍙ヨ瘽璇達紝鎾囩殑浣嶇疆鍏ㄥ瓧鏈瀹姐

宸﹀彸瑙嗚掆斺斾腑杞寸嚎錛氶栫偣灞呮c

銆婂紦閮ㄣ嬫洶錛氬紭錛屽紦澹頒篃銆傘婃按閮ㄣ嬫洶錛氭硴錛屼笅娣卞ぇ涔熴備笁浜旀眰涔嬶紝鐩栧畯璁灞嬫繁鍝嶏紝瀹栧叾閲嶆枃錛屾剼鎸夋よ磋繎鏄銆備絾奼熻祴浠ユ硴奼鎴愭枃錛屼笉濡ㄥ畯瀹栧悇瀛椾篃銆傚眿娣辮咃紝鍏跺唴娣卞箍涔熴傘婃硶璦銆嬫洶錛氬叾涓寮樻繁銆傚叾澶栬們鎷銆傛ゅ畯瀛椾箣涔夈傚亣寮樹負瀹忚熾

銆婅冨伐璁般嬶細鍏跺0澶ц屽畯銆傚ぇ鑰屽畯鑰咃紝鍏跺0澶栧ぇ鑰屼腑瀹忎篃銆傘婃湀浠ゃ嬶細鍏跺櫒鍦滀互闂熾傞儜浜戱細闂寵皳涓瀹斤紝璞″湡鍚鐗┿傚湝浠ラ棾錛屻婂悤姘忔槬縐嬨嬩綔鈥滃湝浠ユ彍鈥濓紝鐩栧畯鑰呮繁騫垮叾涓錛屾彍鍏跺栵紝鏁呫婄ぜ璁般嬨婂悤瑙堛嬪彲浜掔浉瓚熾傛彍鑰咃紝鏁涗篃銆傞棾浜﹀畯涔嬪亣鍊熷瓧銆備粠瀹銆傚幏澹般傛埛钀屽垏銆傚彜闊沖湪鍏閮ㄣ

『肆』 數控車床宏程序怎麼寫最好帶步驟解說

數控車床宏程序是非常靈活且因情況而異的,所以數控車床宏程序編程掌握以下參數即可:

普通加工程序直接用數值指定G代碼和移動距離;例如,GO1和X100.0。使用用戶宏程序時,數值可以直接指定或用變數指定。當用變數時,變數值可用程序或用MDI面板上的操作改變。

例如:#1=#2+100;G01X#1F300。

量的表示:計算機允許使用變數名,用戶宏程序不行。變數用變數符號(#)和後面的變數號指定。例如:#1,表達式可以用於指定變數號。

此時,表達式必須封閉在括弧中。例如:#[#1+#2-12]。

變數根據變數號可以分成四種類型:#0空變數,該變數總是空,沒有值能賦給該變數。#1-#33局部變數,局部變數只能用在宏程序中存儲數據,例如,運算結果。當斷電時,局部變數被初始化為空。調用宏程序時,自變數對局部變數賦值。

#100-#199、#500-#999公共變數,公共變數在不同的宏程序中的意義相同。當斷電時,變數#100-#199初始化為空。變數#500-#999的數據保存,即使斷電也不丟失。#1000---系統變數。系統變數用於讀和寫CNC運行時各種數據的變化,例如,刀具的當前位置,補償值。

局部變數和公共變數可以有0值或下面范圍中的值:-1047到-10-29或-10-2到-1047,如果計算結果超出有效范圍,則發出P/S報警NO.111。

當在程序中定轎鍵義變數值時,小數點可以省略。例:當定義#1=123;變數#1的實際值是123.000。

為在程序中使用變數值,指定後跟變數號的地址。當用表達式指定變數時,要把表達式放在括弧中。例如:G01X[#1+#2]F#3;

被引用變數的值根據地址的最小設定單位自動地舍入。例如:當G00X#/;以1/1000mm的單位執行時,CNC把123456賦值給變數#1,實際指令值為G00X12346.改變引用變數的值的符號,要把負號(-)放在#的前面。

例如:G00X-#1當引用未定義的變數時,變數及地址都被忽略。例如:當變數#1的值是0,並且變數#2的值是空時,G00X#1Y#2的執行結果為G00X0。

(4)宏編程怎麼寫好看擴展閱讀:

數控宏程序編程是用變數的方式進行數控編程的方法,數控宏程序分為A類和閉悄巧B類宏程序,其中A類宏程序比較老,編寫起來也比較費時費力,B類宏程序類似於C語言的編程,編寫起來也很方便運慶。

不論是A類還B類宏程序,它們運行的效果都是一樣的。

編寫一些大批相似零件的時候,可以用宏程序編寫,這樣只需要改動幾個數據就可以了,沒有必要進行大量重復編程。

閱讀全文

與宏編程怎麼寫好看相關的資料

熱點內容
鴻蒙系統桌面增加文件夾 瀏覽:351
windows2003密碼策略 瀏覽:862
如何對寶馬進行編程 瀏覽:802
找不到win10組策略 瀏覽:115
大數據對國家的影響 瀏覽:320
大數據藍皮書pdf 瀏覽:169
速騰怎麼插蘋果12數據線 瀏覽:506
網路克隆客戶端設置 瀏覽:858
爐石傳說2016大數據 瀏覽:729
bios文件格式 瀏覽:683
看蘇州APP怎麼沒有蘇州四套 瀏覽:307
除了數據線筆記本與手機如何連接 瀏覽:575
蘋果新機分幾個 瀏覽:841
struts2resultjsp 瀏覽:403
七個星期五app怎麼切換中文 瀏覽:342
華為路由器console登錄密碼設置 瀏覽:682
測試大數據包 瀏覽:801
新網站如何做好優化 瀏覽:703
晉江共享電動汽車app 瀏覽:997
90版本女機械師加點 瀏覽:527

友情鏈接