新代數(shù)控車床宏程序說明_第1頁
新代數(shù)控車床宏程序說明_第2頁
新代數(shù)控車床宏程序說明_第3頁
新代數(shù)控車床宏程序說明_第4頁
新代數(shù)控車床宏程序說明_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 一用戶宏程序的基本概用一 指令構(gòu)成某功能, 并且象子程序一 存 在存 器中, 再把 些存 的功能由一個指令來代表, 行 只需寫出 個代表指令, 就可以 行其相 的功能。 在 里,所存 的一 指令叫做宏程序體 (或用 宏程序 ), 稱 用 宏。 其代表指令稱 用 宏命令,也稱作宏程序 用指用 宏有以下四個主要特1)在用 用 宏程序中可以使用 量,即宏程序體中能含有復(fù) 的表達(dá)2)能 行 量之 的各種運(yùn)3)可以用用 宏指令 量 行 , 就象 多高 言中的 參函數(shù)或 程, 參能 形4)容易 程序流程的控制。 使用用 宏 的主要方便之 在于由于可以用 量代替具體數(shù) ,因而在加工同一 的工件 只得將 的

2、 予 量既可,而不需要 每個不同的零件都 一個程序。 二 基本書寫格式 數(shù)控程序文檔中,一般以“ %”字符作 第一行的起 , 行將被 行。當(dāng) 行含有關(guān) 字“ MACRO ” 整個文檔就會以系 所定 的 MACRO 法 理。如果 行無 “ MACRO ”關(guān) 此檔案就會被 一般 ISO 程序文檔格式 理,此 將不能 寫用 宏和使用其 MACRO 法。而當(dāng) 寫 ISO 程序文檔 行一般可以省略,直接 寫數(shù)控程序?!?MACRO ”關(guān) 必 是大寫字 于程序的注 可以采用“ /?”的形式, 和高 言 C+一 。 例一: MACRO 格式% MACRO /用 宏程序文檔,必 包含“ MACRO ”關(guān)IF

3、1 = 1 THEG00 X100ELSG00 Z100END_IM99; 例二: ISO 格式文% 是 行,可當(dāng)作檔案用途 明,此行可有G00 X100G00 Z100G00 XG00 ZM99; 第 頁 三 用戶宏程序的編寫 如前所述, 量是指可以在用 宏程序中的地址 后代替具體數(shù) ,在 用宏程序 行 的符號 i (i 1,2,3,? )。使用 量可以使用 宏程序具有通用性。用 宏程序中可以使用多個 量,以 量 號 行 1、 量的形 量是用符號或 后面加上 量 號所構(gòu)成的,即 i(i 1, 2, 3,? 例如: 5101005也可用 表達(dá)式 的形式來表示例如: #100 #10011 #6

4、/2其 ,通 用符號 后面加上 量 號也可構(gòu)成的 量, i(i 1,2,3,? 例如: 5 5 但一般地,由符號 后面加上 量 號構(gòu)成的 量稱 全局 量,不提倡在用 宏程序中使用,具體 后面的介 2、 量的在地址符后的數(shù) 可以用 量置 例如若寫成 F#33, 當(dāng) 331.5 ,與 F1.5 相同若寫成 Z#18, 當(dāng) 1820.0 ,與 Z20.0 相同但需要注意,作 地址符的 O、N、等,不能引用 量例如, O#27、N#1 等,都是 3、未定 尚未被定 的 量,被稱 空( VACANT ) 量 0,0 始 空, 常被用作空 量使用。 3變量賦值和引數(shù) 量 :用 宏程序中 量 使用 運(yùn)算符

5、“:=”,不可 用 “ =”符號因 在本系 中符號“ =” 是被 定 關(guān)系運(yùn)算符,用來比 是否相等的。 例如 #30:=100,會將 量 #30 整數(shù) 100;而 #30=100,將不能 量 #30 , 上是量 #30 是否與整數(shù) 100 相等。 第 頁 四變量運(yùn)算及變量表達(dá)式 用戶宏運(yùn)算符 要對變量進(jìn)行各種運(yùn)算操作就要用到運(yùn)算符 ,它是“能對變量所存數(shù)據(jù)進(jìn)行運(yùn)算的符號”。 本系統(tǒng)的 運(yùn)算符及其優(yōu)先級如表 3-2 所示。 表 3-2 運(yùn)算符及其優(yōu)先級 運(yùn)算名 符號 優(yōu)先級 括號 (), 1 函數(shù)調(diào)用運(yùn)算 ( ) 2 取負(fù) - 3 求補(bǔ)運(yùn)算 NOT 3 乘法運(yùn)算 * 4 除法運(yùn)算 / 4 模運(yùn)算

6、 /求余運(yùn)算 MOD 4 加法運(yùn)算 + 5 減法運(yùn)算 - 5 關(guān)系運(yùn)算 ,= 6 相等運(yùn)算 = 7 不等運(yùn)算 8 布爾邏輯 /按位與 & ,AND 9 布爾邏輯 /按位 異或 XOR 10 布爾邏輯 /按位 或 OR 11 、基本算數(shù)運(yùn)算符 (1) +(加法運(yùn)算符,如 3+5,#12+(2) -(減法運(yùn)算符,或取負(fù)運(yùn)算符,如 #33-16,-#1(3) *(乘法運(yùn)算符,如 9*2 ,#13*8 ) (4) /(除法運(yùn)算符,如 10/3, #43/15(5)MOD (模運(yùn)算符,或稱求余運(yùn)算符,其兩側(cè)均應(yīng)為整型數(shù)據(jù),如 7 MOD4 的值為 3,當(dāng) #18=20 時 #18 MOD4 的值為 2)

7、 、算術(shù)表達(dá)式和運(yùn)算符優(yōu)先級 用算術(shù)運(yùn)算符和括號將運(yùn)算對象連接起來的、符合語法規(guī)則的式子稱為算術(shù) 表達(dá)式,運(yùn)算對象 可以是常數(shù)、變量、函數(shù) 等例如: #6*8/#32-1.5+#18+ ROUND ( 1) 這就是一個算術(shù)運(yùn)算式,它可以作為一個整體賦值給某個變量,或用作其他表達(dá)式中的一個運(yùn)算對象本系統(tǒng)按表表 3-2 規(guī)定了運(yùn)算符的優(yōu)先級和結(jié)合性。在表達(dá)式求值時,先按運(yùn) 算符的優(yōu)先級別高低次序執(zhí)行, 例如先乘除后加減。如表達(dá)式 #12-#41*5 的左側(cè)為減, 右側(cè)為乘號,而乘號優(yōu)先于減號,因此,相當(dāng)于 #12-( #41*5)。 如果在一個運(yùn)算對象兩側(cè)的運(yùn)算符的優(yōu)先級別相同,如 #2-5+#2

8、3,則按規(guī)定的結(jié)合性(結(jié)合方向)處理,算術(shù)運(yùn)算符的結(jié)合方向為“自左至右”,即先左后右。 因此 5 先與減號結(jié)合,執(zhí)行 #2-5 的運(yùn)算,再執(zhí)行加 #23 的運(yùn)算。這樣“自左至右的結(jié)合方向”又稱為“左結(jié)合性”,即運(yùn)算對象先與左面的運(yùn)算符結(jié)合;對應(yīng)地,也有“右結(jié)合性”的運(yùn)算符,例如賦值運(yùn)算符“: =”就是。 、關(guān)系運(yùn)算符和關(guān)系表達(dá)式 關(guān)系運(yùn)算符是邏輯運(yùn)算中比較簡單的一種。所謂“關(guān)系運(yùn)算”實際上就是“比較運(yùn)算”。將兩個值進(jìn)行比較,判斷比較的結(jié)果是否符合給定的條件。 例如,#310 是一個關(guān)系表達(dá)式, 大于號()是一個關(guān)系運(yùn)算符, 如果 #3=12,則滿足給定的“ #310”條件,因此關(guān)系表達(dá)式的值為

9、“真”(即“條件滿足”);如果 #3=6,不滿足“ #310”條件,則稱關(guān)系表達(dá)式的值為“假”本系統(tǒng)提供 6 種關(guān)系運(yùn)算符: (1) (小(2) (大(4) = (大于或等(5) = (等于) (6) (不等于) 優(yōu)先級相同(高) 優(yōu)先級(較高) 優(yōu)先級(低) 關(guān)于優(yōu)先次序: 1、前 4 種關(guān)系運(yùn)算符(, )的優(yōu)先級別相同,它們卻高于關(guān)系運(yùn)算符“ =”,而“ =”又高于“ 2、關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符3、關(guān)系運(yùn)算符的優(yōu)先級高于賦值運(yùn)算用兩個關(guān)系運(yùn)算符將兩個表達(dá)式連接起來的式子,稱為關(guān)系表達(dá)式例如: #6 36,#13+4#23 關(guān)系表達(dá)式的值是一個邏輯值,即“真”或“假”。例如,若 #

10、12 為 8,則關(guān)系表達(dá)式“ #12=10”的值為“假”,“ #12=6”的值為“真”。 、邏輯運(yùn)算和邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來就是邏輯表達(dá)式本系統(tǒng)提供 6 種邏輯運(yùn)算符和邏輯運(yùn)算 (1) & ,AND 邏輯與 (2) XOR邏(3) OR 邏輯異或 它們都是“雙目(元)運(yùn)算符”,它要求有兩個運(yùn)算量(操作數(shù)),邏輯運(yùn)算舉例如#1 AND #2 若#1 、 #2 為真,則 #1 AND #2 為真。 #1 OR #2 若#1 、 #2 之一為真,則 #1 XOR #2 為真。 邏輯運(yùn)算符低于關(guān)系運(yùn)算符,見圖 3-1。 算術(shù)運(yùn)算符 (高) 關(guān)系運(yùn)算符 邏輯運(yùn)算符 (低) 賦

11、值運(yùn)算符 圖 3-1 五 用戶宏程序的流程控制 所謂程序的流程( Flow Control )是通過控制程序的執(zhí)行方向,進(jìn)而掌握程序動態(tài)。這用戶宏程序區(qū)別于一般數(shù)控程序的特征之一,也是用戶選擇用戶宏程序編寫數(shù)控代碼的一大理由。用戶宏程序的流程控制包括無條件判斷、循環(huán)控制、無條件轉(zhuǎn)移三大類,這與其他的高級語言程序類似,下面將分別介紹其功能和使用語法。 、條件判斷 判斷條件的真假,然后根據(jù)真假或者對應(yīng)情況到指定的地方去執(zhí)行程序,這方面的語句有 IF 和 CASE 語句。 1、IF 條件語句 1)基本語法: IF THEN ELSEIF THEN ELSE END_IF ;說明: IF 條件判斷,根

12、據(jù)真假情況到指定的地方去執(zhí)行程序。 例% MACRO / 啟動 MACRO #1 := 3.0;G01 X20. 15. F200;IF #1 = 1 THEN;X(1.0*1); (1.0*1)ELSEIF #1 = 2 THEN;X(1.0*2); (1.0*2)ELSEIF #1 = 3 THEN;X(1.0*3); (1.0*3)ELSE;X(1.0*4); (1.0*4END_IF;X(1.0) (1.0)M30;然而在實際使用中,可以有以下一些變形: 2)變形 1語法: IF THE N ELSE END_IF ; 3)變形 2語法IF THEN END_IF 編程時可根據(jù)需要選擇

13、合適的語法格式。 、循環(huán)控制 1、REPEAT 直到型循語REPEAT循環(huán)體 UNTIL END_REPEAT 說明: REPEAT 直到型循環(huán)控制,先執(zhí)行循環(huán)體,后判斷條件表達(dá)式,當(dāng)條件 滿足時退出循環(huán)。 例如% MACRO / 啟動 MACRO #10 := 30#11 := 22.5.#12 := #10/#13 := #11/2#14 := 2.#15 := 1.5;G01 X#12 #13 F200.REPEATG00 X(#12+#14) (#13+#15)G01 X(#12+#14) (#13-#15)X(#12-#14) (#13-#15)X(#12-#14) (#13+#15

14、X(#12+#14) (#13+#15#14 := #14 + 2.#15 := #15 + 1.5;UNTIL (#14 #12) OR (#15 #13) END_REPEATX(1.0) (1.0M30; . WHILE 當(dāng)型循環(huán)語法WHILE DO END_WHILE ; 說明: WHILE 當(dāng)型循環(huán)控制,先判斷條件表達(dá)式,當(dāng)條件滿足時執(zhí)行循環(huán)體, 否則退出循環(huán)。 例如: % MACRO; #10 := 20.; #11 := 15.; #12 := #10/2; #13 := #11/2; #14 := 2.0#15 := 1.5;G01 X#12 #13 F200.0WHILE (

15、#14 = #12) AND (#15 6.0 THEN EXIEND_IF;X(#12-#14) (#13+#15X(#12+#14) (#13+#15)#14 := #14 + 2.#15 := #15 + 1.END_WHILX(-5.0) Z(5.0M02; . FOR 循環(huán) 語法FOR : = TO BY D O循環(huán)體 END_FOR ;說明: FOR 循環(huán)控制,式中各參數(shù)意義如下循環(huán)變量控制循環(huán)次數(shù)的變量; 表達(dá)式 1循環(huán)計數(shù)的起始值,可為整數(shù)或表達(dá)式;表達(dá)式 2循環(huán)計數(shù)的終止值,可為整數(shù)或表達(dá)式; 表達(dá)式 3循環(huán)計數(shù)每次的累加值,可為整數(shù)或表達(dá)式;循環(huán)體 循環(huán)每次執(zhí)行內(nèi)容FOR

16、循環(huán)執(zhí)行過程為:先給循環(huán)變量賦起始值,然后判斷循環(huán)變量是否為終止 值,當(dāng)循環(huán)變量已為終止值時退出循環(huán),否則執(zhí)行循環(huán)體,再對循環(huán)變量加上每次累加值, 、無條件GOTO 移 法:GOTO n; 明:無條件地跳到指定的 n 行號 行,其中 n 可 整數(shù)或表達(dá)式。 GOTO 常和 IF 句搭配使用,那就是 當(dāng)程序 到某個條件 足 用 GOTO 句去 一步 理,但 盡量少用 句以提高程序可 性。范例: % MACRO / 啟 MACRO IF( #1 = 2 ) THEN GOTO 10G01 X10. 1N100 G01 X30. 30M02;EXIT 循 中斷 法: EXIT 明:循 中斷,跳離循

17、控制;用在循 控制中,通常 配使用,當(dāng)某個條件 足后就跳離循 參考 WHILE 范例 。 EXIT 都和 IF 句搭 六 庫函數(shù) 1、ABS 用方法: ABS() 函數(shù)描述:求一個數(shù)的 范例#1 := ABS(-2.3); / #1 的 果是 2.3 注 :此 函數(shù)內(nèi)“參數(shù)”既可 數(shù) ,也可 量或表達(dá)式,以下若無特殊 明均按此 理。 2、SIN 用方法: SIN () 函數(shù)描述:求一個數(shù)的正弦 范例 #1 := SIN(#10); 3、ASIN 用方法: ASIN () 函數(shù)描述:求一個數(shù)的反正弦 范例 : #1 := ASIN(#10); 4、MAX 用方法: MAX() 函數(shù)描述:求兩個數(shù)

18、的最大 范例 1#1 := MAX(10 ,20); / #1 等于 20 范例 2#1 := MAX(#2 ,#3); 5、SQRT 用方法: SQRT () 函數(shù)描述:求一個數(shù)的平方根 范例 1#2 := SQRT(3); / #2 等于 1.732 范例 2:#16 := SQRT(#10); 6、SIGN 用方法: SIGN () 函數(shù)描述:返回一個數(shù)的符號, -1 表示 數(shù)是 數(shù), 1 表示 數(shù)是正數(shù), 0 表示 數(shù)是零。 范例 :IF( SIGN(#10) 0 ) THEEND_IF; 5、 CEIL 用方法: CEIL() 函數(shù)描述:返回比一個數(shù)大或與其相等的最小整數(shù) 范例 1#

19、2 := CEIL(2.3); / #2 等于 3 范例 2:#2 := CEIL(#10); 7、ROUND 用方法: ROUND () 函數(shù)描述:四舍五入化整, 范例 1#2 := ROUND(2.3); / #2 等于 2 范例 2: #2 := ROUND(#10); 七用戶宏程序編寫注意事項 1. 用 宏文檔第一行必 %MACRO ;程序段的每一行 束需加“ ;” 束符; 于用 宏子程序最后需加“ M99;”,以便能返回到主程2. 量 使用“ :=”符號,不可 用“ =”符3. 文檔名 存需依照下列 例如: 寫 G100 之 MACRO ,需將 MACRO 程序存在 C:CNCMAC

20、R目 底下,且文件名需 G0100,不需 展而 寫 G100.1 之 MACRO ,需將 MACRO 程序存在 C:CNCMACRO 底下,且文件名需 G100001,不需 展名。 4. 多使用局部 量 (#1#50), 模 量 (#2001#2100,#3001#3100) 所有 充 G 的共享 源, 用于多個 充 G 的數(shù)據(jù)交 ,以 省共享 源;如果需要系 定 的初始使用用 參數(shù) ( #4001#4100,#5001 #5100 )。5. 不要使用全局 量 (Global Variables,1999),因 G 行 ,使用者的數(shù)據(jù)是由自 量 (A_,B_?,Z_) 入,由公共 量 不符合使

21、用 。 6. 系 在 行加工 于 MACRO 程序會事先 ,因此 MACRO 行速度會超前于 G、M 代 指令,因此當(dāng)要求 量 或數(shù)據(jù) 取 與 G代 指令 出的 程相同 , 于 量 或數(shù)據(jù) 取前加 WAIT (指令,否 量 或 數(shù)據(jù) 取將無法與 G、 M 代 同步。 7. 不可改 模式 G (G00/G01/G02/G03/G33/G34/G35,G91/G90,G40/G41/G42,?,)的狀 ,如果用 宏程序中需要改 其狀 ,就需要模 信息的回復(fù)8. 于 度或角度的自 量在運(yùn)算前 使用 STD()函數(shù)將 位 準(zhǔn)化,以符合工具機(jī)使用 9. 不可以改 坐 系 定, G92/G54/G52 等

22、與坐 系 相關(guān)指令不能使用,否 形仿真功能將失去參考意 。 10. 在程序中加上必要的注 ,養(yǎng)成良好的 程 ,以增加程序可 性和可 性,以幫助后 開 人 和排除 。 運(yùn)算名 括號 函數(shù)調(diào)用運(yùn)算 取負(fù) 求補(bǔ)運(yùn)算 乘法運(yùn)算 除法運(yùn)算 模運(yùn)算 /求余運(yùn)算加法運(yùn)算減法運(yùn)算 關(guān)系運(yùn)算 相等運(yùn)算 不等運(yùn)算 布爾邏輯 /按位與 布爾邏輯 /按位 異或布爾邏輯 /按位 或 函數(shù)名 ABS ACOS ASIN ATAN COS MAX 附錄 運(yùn)算符及其優(yōu)先級 符號 優(yōu)先級 (), 1 ( ) 2 - 3 NOT 3 * 4 / 4 MOD 4 + 5 - 5 ,= 6 = 7 8 & ,AND 9 XOR 10

23、 OR 11 描述 求一個數(shù)的絕對值 范例 : #1 := ABS(-2.3); /#1 的結(jié)果是 2.3 求一個數(shù)的反余弦值 范例 : #1 := ACOS(#10); 求一個數(shù)的反正弦值 范例 : #1 := ASIN(#10); 求一個數(shù)的反正切值 范例 : #1 := ATAN(#10); 求一個數(shù)的余弦值 范例 : #1 := COS(#10); 求兩個數(shù)的最大值 范例 1: 第 頁 函數(shù)名 MIN SIN SQRT TAN SIGN CEIL FLOOR ROUND 描述 #1 := MAX(10 ,20); / #1 等于 20 范例 2: #1 := MAX(#2 ,#3); 求兩個數(shù)的最小 范例 1: #1 := MIN(10.0 ,20.0); / #1 等于 10.0 范例 2: #1 := MIN(#10 ,#11); 求一個數(shù)的正弦 范例 : #1 := SIN(#10); 求一個數(shù)的平方根 范例 1: #2 := SQRT(3); / #2 等于 1.732. 范例 2: #2 := SQRT(#10); 求一個數(shù)的正切 范例 : #1 := TAN(#10); 返回一個數(shù)的符號, -1 表示 數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論