




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
15用戶宏程序雖然子程序對編製相同加工操作的程序非常有用,但用戶宏程序由於允許使用變量、算數和邏輯運算及條件轉移,使得編製相同加工操作的程序更方便,更容易.可將相同加工操作編為通用程序,如型腔加工宏程序和固定加工循環宏程序,和調用子程序完全一樣.15.1 變量普通加工程序直接用數值指定G代碼和移動距離;例如, G01和X100.0 . 使用用戶宏程序時,數值可以直接指定或用變量指定.當用變量時,變量值可用程序或用MDI面板上的操作改變.#1=#2+100;G01 X#1 F300;說明l 變量的表示數算機允勍使用變量名,用戶宏程序不行.變量用變量符號(#)和後面的變量號指定例如;#1表達式可以用於指定變量號.此時,表達式必須封閉在括號中.例如;#1+#2-12l 變量的類型變量根據變量號可以分成四種類型.變量號 變量類型 功能#0 空變量 該變量總是空,沒有值能賦給該變量.#1#33 局部變量 局部變量只能用在宏程序中存儲數據,例如,運算結果.當斷電時,局部變量被初始化為空.調用宏程序時,自變量對局部變量賦值.#100#199 公共變量 公共變量在不同的宏程序中的意義相同.當斷電時,變量#100#199#500#999 初始化為空.變量#500#999的數據保存,即使斷電也不丟失.#1000 系統變量 系統變量用於讀和寫CNC運行時各種數據的變化,例如,刀具的 當前位置和補償值.l 變量值的範圍 局部變量和公共變量可以有0值或下面範圍中的值;-1047到 10-29或10-29到 1047如果計算結果超出有效範圍,則發出P/S報警No.111.l 小數點的省略當在程序中定義變量值時,小數點可以省略.例:當定義#1=123; 變量#1的實際值是123.000.l 變量的引用為在程序中使用變量值,指定後跟變量號的地址.當用表達式指定變量時,要把表達釋放在擴號中.例如: G01X#1+#2F#3;被引用變量的值根據地址的最小設定單位自動地舍入.例如: 當G00X# /;以1/1000mm的單位執行時,CNC把12.3456賦值給變量#1 ,實際指令值為G00X12.3456;.改變引用變量的值的符號,要把負號()放在#的前面.例如: G00X#1;當引用未定義的變量時,變量及地址字都被忽略.例如: 當變量#1的值是0 ,並且變量#2的值是空時,G00X#1 Y#2的執行結果為G00X0;.l 雙軌跡(雙軌跡控制)的公共變量對雙軌跡控制,系統為每一軌跡都提供了單獨的宏變量.但是,根據參數No.6036和6037的設定,某些公共變量可同時用於兩個軌跡.l 未定義的變量當變量值未定義時,這樣的變量成為”空”變量.變量#0總是空變量,它不能寫,只能讀.(a) 引用 當引用一個未定義的變量時,地址本身也被忽略.當#1= 當#1=0G90 X100 Y#1 G90 X100 Y#1 G90 X100 G90 X100 Y0(b) 運算除了用賦值以外, 其籲請況下與0相同.當#1=時 當#1=0時#2=#1 #2=#1#2= #2=0#2=#1*5 #2=#1*5#2=0 #2=0#2=#1+#1 #2=#1+#1#2=0 #2=0(c) 條件表達式 EQ和NE中的不同於0.當#1=時 當#1=0時#1 EQ #0 #1 EQ #0成立 不成立#1 NE #0 #1 NE #0成立 不成立#1 GE #0 #1 GE #0成立 不成立#1 GT #0 #1 GT #0不成立 不成立l 變量值的顯示當變量值是空白時,變量是空.符號*表示溢出(當變量的絕對值大於999999999時)或下溢出(當變量的絕對值小於0.0000001時).l 限制程式號, 順序號和任選程序段跳轉號不能使用變量.例如:下面情況不能使用變量l O#1/#2G00X100.0N#3Y200.0 15.2 系統變量 系統變量用於讀和寫 NC 內部數據, 例如, 刀具偏置值和當前位置數據. 但是,某些系統變量只能讀. 系統變量是自動控制和通用加工程序開發的基礎.說明l 接口信號是可編程機床控制器( PMC )和用戶宏程序之間交換的信號.表15.2(a)接口信號的系統變量變量號 功能#1000#1015 把16位信號從PMC送到用戶宏程序.變量#1000到#1015用於按位讀取信號.變量#1032用於一次讀取一個16位信號#1100#1115 把16位信號從用戶宏程序送到PMC. 變量#1100到#1115用於按位寫信號.變#1132 量#1132用於一次寫一個16位信號.#1133 變量#1133用於從用戶宏程序一次寫一個32位的信號到PMC. 注意, #1133的值為從99999999到+99999999. 詳細情況, 請見連接說明書(B-63503C-1).l 刀具補償值用系統變量可以讀和寫刀具補償值.表15.2(b) 刀具補償存儲器C的系統變量補償號 刀具長度補償(H) 刀具半徑補償(D) 幾何補償 磨損補償 幾何補償 磨損補償1 #11001 (#2201) #10001 #13001 #12001 (#2001) 200 #11201(#2400) #10201 400 #11400 (#2200) #13400 #12400 #10400當偏置組數小於等於200時,也可使用#2001#2400.l 宏程序報警表15.2(c) 宏程序報警的系統變量變量號 功能 #3000 當變量#3000的值為0200時,CNC停止運行且報警. 在表達式後為不超過26個字符的報警信息. CRT屏幕上顯示報警號和報警信息,其中報警號為變量#3000的值加上3000例:#3000=1(TOOL NOT FOUND).報警屏幕上顯示 “3001 TOOL NOT FOUND.” (刀具未找到).程序執行停止並顯示信息.l 停止和信息顯示報警號 功能 #3006 在宏程序中指令 “ #3006=1(MESSAGE);” 時,程序執行前面程序段並停止. 當最多到26個字符的信息, 由控制輸入” ( “ 和控制輸出” ) “ 括住,在同一程序段中編程時,信息被顯示在外部操作信息屏幕.時間信息可以讀和寫.l 時間信息表15.2(d) 時間信息的系統變量變量號 功能#3001 該變量為一個計時器,以1毫秒為計時單位.當電源接通時, 該變量值復位為0. 當達到2147483648毫秒時, 該計時器的值返回到0.#3002 該變量為一個計時器,當循環啟動燈亮時以一小時為單位計時. 該計時器即使在電源斷電時也保存該值.當達到9544.371767小時,該計時器的值返回到0.#3011 該變量用於讀取當前的日期 (年/月/日). 年/月/日信息轉換成十進制數.例如,1994年9月8日表示為19940928.#3012 該變量用於讀取當前的時間 (時/分/秒). 時/分/秒信息轉換成十進制數.例如, 下午3點34分56秒表示為153456.l 自動運行控制可以改變自動運行的控制狀態.表15.2(e) 自動運行控制的系統變量(#3003)#3003 單程序段 輔助功能的完成0 有效 等待1 無效 等待2 有效 不等待3 無效 不等待當電源接通時, 該變量的值為0.當單程序段停止無效時, 即使單程序段開關設為ON, 也不執行單程序段停止.當不指定等待輔助功能 (M,S和T功能) 完成時, 在輔助功能完成之前, 程序執行到下列程序段. 而且分配完成信號DEN不輸出.表15.2(f) 自動運行控制的系統變量(#3004)#3004 進給暫停 進給速度倍率 準確停止 0 有效 有效 有效1 無效 有效 有效2 有效 無效 有效 3 無效 無效 有效4 有效 有效 無效 5 無效 有效 無效6 有效 無效 無效7 無效 無效 無效當電源接通時, 該變量的值為0當進給暫停無效時:(1) 當進給暫停按鈕被按下時,機床在單段停止方式停止.但是, 當用變量#3003使單程序段方式無效時,單程序段停止不執行.(2) 當進給暫停按鈕壓下又松開時, 進給暫停燈亮,但是,機床不停止;程序繼續執行,並且機床停在進給暫停有效的第一個程序段.當進給速度倍率無效時,總是100%的倍率,而不管機床操作面板上的進給速度倍率開關的設置.當準確停止檢測無效時,即使那些不執行切削的程序段也不進行準確停止檢測(位置檢測).圖15.2(a) 攻絲循環中使用變量3004的例子l SETTING值SETTING值可用變量讀和寫. .二進制數變為十進制數.l 鏡像使用外部開關或SETTING操作設置的各軸鏡像狀態可以通過輸出信號(鏡像檢測信號)讀出.鏡像執行時的鏡像狀態可以檢測(見4.8節)得到的二進制值轉換成十進制.當用鏡像信號和SETTING兩者對某軸設置鏡像功能時,信號值和設定值相或,然後輸出.當控制軸以外的軸的鏡像功能接通時,它們也被讀進系統變量#3007.系統變量#3007是寫保護的系統變量. 如果試圖在變量中寫數據. 則發出P/S116報警 “WRITE PROTECTED VARIAABLE ”.l 已加工的零件數要求的零件數(目標數)和已加工的零件數(完成數)可以讀和寫.表15.2(g) 要求的零件數和已加工的零件數的系統變量變量號 功能#3001 已加工的零件數(完成數)#3902 要求的零件數(目標數)注:不能用負值l 模态信息正在處理的程序段以前的模态信息可以讀出表15.2(h) 模态信息的系統變量例: 當執行#1=#4002;時,在#1中得到的值是17,18或19. 如果閱讀模态信息指定的系統變量為不能用的G代碼,則發出P/S報警.l 當前位置位置信息不能寫, 只能讀.表15.2(i) 位置信息的系統變量變量號 位置信號 坐標系 刀具補償值 運動時的讀操作#5001#5004 工件坐標系 工件坐標系 不包含 可能#5021#5024 當前位置 機床坐標系 包含 不可能#5041#5044 當前位置 工件坐標系#5061#5064 跳轉信號位置 可能#5081#5084 刀具長度補償值 不可能#5101#5104 伺服位置誤差第1位代表軸號(從1到4).變量#5081#5088存儲的刀具長度偏置值是當前的執行值,不是後面的程序段的處理值.在G31(跳轉功能)程序段中跳轉信號接通時的刀具位置貯存在變量#5061到#5068中.當G31程序段中的跳轉信號不接通時, 這些變量中貯存指定程序段的終點值.移動期間不能讀是指由於緩衝(預讀)功能的原因,不能讀期望值.l 工件坐標系補償(工件零點偏移值)工件零點偏移值可以讀和寫.表15.2(j) 工件零點偏移值的系統變量變量號 功能#5201 第1軸外部工件零點偏移值 #5204 第4軸外部工件零點偏移值#5221 第1軸G54工件零點偏移值#5224 第4軸G54工件零點偏移值 #5241 第1軸G55工件零點偏移值#5244 第4軸G55工件零點偏移值#5261 第1軸G56工件零點偏移值#5264 第4軸G56工件零點偏移值#5281 第1軸G57工件零點偏移值#5284 第4軸G57工件零點偏移值#5301 第1軸G58工件零點偏移值#5304 第4軸G58工件零點偏移值#5321 第1軸G59工件零點偏移值#5324 第4軸G59工件零點偏移值#7001 第1軸工件零點偏移值(G54.1 P1)#7004 第4軸工件零點偏移值(G54.1 P1)#7021 第1軸工件零點偏移值(G54.1 P2)#7024 第4軸工件零點偏移值(G54.1 P2)#7941 第1軸工件零點偏移值(G54.1 P48)#7944 第4軸工件零點偏移值(G54.1 P48)15.3 算术和邏輯運算表15.3(a) 中列出的運算可以在變量中執行.運算符右邊的表達時可包含常量和/或由函數或運算符組成的變量.表達式中的變量#j和#k可以用常數賦值. 左邊的變量也可以用表達式賦值.表15.3(a) 算術和邏輯運算說明l 角度單位函數SIN, COS, ASIN, ACOS, TAN和ATAN的角度單位是度. 如90。30表示為90.5度.l ARCSIN # i = ASIN #J取值範圍如下:當參數(No. 6004#0) NAT位設為0時, 270。90。當參數(No. 6004#0) NAT位設為1時,90。90。當#j超出-1到1的範圍時,發出P/S報警No.111.常數可替代變量#j.l ARCCOS #i=ACOS #j取值範圍從180。 0。.當#j超出-1到1的範圍時, 發出P/S報警No.111.常數可以替代變量#j.l ARCTAN 指定兩個邊的長度,並用斜杠(/)分開.#i=ATAN#j/#k;取值範圍如下:當NAT位(參數No.6004,#0)設為0時;0。到360。.例如當指定#1=ATAN-1/-1時,#1=225。.當NAT位(參數No.6004,#0)設為1時;-180。到180。.例如當指定#1=ATAN-1/-1時,#1=-135.0。.常數可以代替變量#j.l 自然對數#i=LN#j注意,相對誤差可能大於10-8.當反對數(#j)為0或小於0時,發出P/S報警No.111.常數可以代替變量#j.l 指數函數#i=EXP#j注意,相對誤差可能大於10-8.當運算結果超過3.651047(j大約是110)時,出現溢出並發出P/S報警No.111.常數可以代替變量#j.l ROUND (舍入) 函數當算術運算或邏輯運算指令IF或WHILE中包含ROUND函數時,則ROUND函數在第1個小數位置四舍五入.例:當執行#1=ROUND#2; 時, 此處#2=1.2345, 變量1的值是1.0.當在NC語句地址地址中使用ROUND函數時, ROUND函數根據地址的最小設定單位將指定值四舍五入.例:編製钻削加工程序,按變量#1和#2的值切削,然後返回到初始位置.假定最小設定單位是1/1000mm, 變量#1是1.2345, 變量#2是2.3456, 則,G00 G91 X-#1; 移動1.235mmG01 X-#2 F300; 移動2.3456mmG00 X#1+#2; 由於1.2345+2.3456=3.5801,移動距離為3.580,刀具不返回到初始位置.該誤差來自於舍入之前還是舍入之後相加.必須指定G00 X-ROUND#1+ROUND#2以使刀具返到初始位置.l 上取整和下取整CNC處理數值運算時,若操作後產生的整數絕對直大於原數的絕對值時為上取整.對於負數的處理應小心.例如:假設#1=1.2,#2=1.2.當執行#3=FUP#1時, 2.0賦給#3.當執行#3=FIX#1時, 1.0賦給#3.當執行#3=FUP#2時, 2.0賦給#3.當執行#3=FIX#2時, 1.0賦給#3.l 算術與邏輯運算指令的縮寫程序中指令函數時,函數名的前二個字符可以用於指定該函數(見9.7節).例如: ROUND RO FIX FIl 運算次序 函數 乘和除運算 (* 、/ 、AND) 加和減運算 (+、 、OR 、XOR)l 擴號嵌套括號用於改變運算次序.括號可以使用5級,包括函數內部使用的括號.當超過5級時,出現P/S報警No.118.限制l 擴號( , ) 用於封閉表達式. 注意,圓括號用於注釋.l 運算誤差運算時,可能出現誤差.表15.3(b) 運算中的誤差運算 平均誤差 最大誤差 誤差類型a = b*c 1.55 10-10 4.6610-10 相對誤差(*1)a = b/c 4.66 10-10 1.8810- 9 | |a = 1.24 10- 9 3.7310- 9 a = b+c 2.33 10-10 5.32 10-10 (*2)a = bc 最小,a = SINb 5.0 10- 9 1.010- 8 絕對昫差(*3)a = COSb a= ATANb/c 1.8 10- 6 3.6 10- 6 度(*4)注1. 相對誤差取決於運算結果.2. 使用兩類誤差的較小者.3. 絕對誤差是常數, 而不管運算結果.4. 函數TAN執行SIN/COS.5. 如果SIN、COS或TAN函數的運算結果小於1010- 8或由於運算精度的限制不為0的話,設定參數N0.6004#1為1, 運算結果可以規算為0.變量值的精度約為8位十進制數.當在加/減速中處理非常大的數時,將得不到期望的結果.例:當試圖把下面的值賦給變量#1和#2時:#1=9876543210123.456#2=9876543277777.777變量值變成:#1=9876543200000.000#2=9876543300000.000此時,當計算#3=#2-#1;時, 結果為#3=100000.000.(該計算的實際結果稍有誤差,因為是以二進制執行的.)還應該意識到,使用條件表達式EQ, NE, GE, GT, LE和LT時可能造成誤差.例如:IF #1EQ#2的運算會受#1和#2的誤差的影響,由此會造成錯誤的判斷.因此,應該用IF ABS #1-#2 LT0.001代替上述語句,以避免兩個變量的誤差.當兩個變量的差值未超過允許極限(此處為0.001)時,則認為兩個變量的值是相等的.使用下取整指令時應小心.例如:當計算#2=#2*1000,式中#1=0.002時,變量#2的結果值不是準確的2,可能是1.99999997.這裡,當指定#3=FIX#2時,變量3的結果值不是2,而是1.0. 此時,可先糾正誤差,再執行下取整,或是用如下的四捨五入操作,即可得到正確結果.#3=FIX #2+0.001#3=ROUND 2l 除數當在除法或TAN90中指定為0的除數時,出現P/S報警No.112.15.4 宏程序語句和NC語句下面的程序段為宏程序語句: 包含算術或邏輯運算 (=) 的程序段. 包含控制語句 (例如,GOTO, DO, END)的程式段. 包含宏程序調用指令 (例如,用G65, G66, G67或其它G代碼, M代碼調用宏程序)的程序段.除了宏程序語句以外的任何程序段都為NC語句.說明l 與NC語句的不同即使置於單程序段運行方式,機床也不停止.但是,當參數N0.6000#5 SBM設定為1時,在單程序段方式中,機床停止.在刀具半徑補償方式中宏程序語句段不做為不移動程序段處理 (15.7節).l 與宏程序語句有相同性質的NC語句含有子程序調用指令(例如,用M98或其它M代碼或用T代碼調用子程序)但沒有除O, N或L地址之外的其它地址指令的NC語句其性質與宏程序相同.不包含除O.N.P或L以外的指令地址的程序段其性質與宏程序語句相同.15.5 轉移和循環在程序中,使用GOTO語句和IF語句可以改變控制的流向.有三種轉移和循環操作可供使用:轉移和循環 GOTO語句 (無條件轉移)IF語句 (條件轉移:IFTHEN)WHILE語句 (當時循環)15.5.1 無條件轉移 (GOTO語句)轉移到標有順序號n的程序段.當指定1到99999以外的順序號時,出現P/S報警No.128.可用表達式指定順序號.GOTOn ; n:順序號(1到99999)例:GOTO 1;GOTO#10;15.5.2 條件轉移 (IF語句) IF之後指定條件表達式.IFGOTOn如果指定的條件表達式滿足時,轉移到標有順序號n的程序段.如果指定的條件表達式不滿足,執行下個程序段.如果變量#1的值大於10,轉移到順序號N2的程序段.如果條件不滿足 IF#1GT 10 GOTO2 程序 如果條件滿足 N2 G00 G91 10.0 ;IFTHEN如果條件表達式滿足,執行預先決定的宏程序語句.只執行一個宏程序語句.如果#1和#2的值相同,0賦給#3.IF#1 EQ #2 THEN #3 = 0;說明l 條件表達式條件表達式必須包括算符.算符插在兩個變量中間或變量和常數中間,並且用擴號(, )封閉.表達式可以替代變量.l 運算符運算符由2個字母組成,用於兩個值的比較,以決定它們是相等還是一個值小於或大於另一個值.注意,不能使用不等號.表15.5.2 運算符運算符 含義EQ 等於 (=)NE 不等於 ()GT 大於 ()GE 大於或等於 ()LT 小於 ()LE 小於或等於 ()典型程序下面的程序計算數值110的總和9500#1=0; 存儲和數變量的初值#2=1; 被加數變量的初值N1 IF#2 GT 10GOTO 2; 當被加數大於10時轉移到N2#1=#1+#2; 計算和數#2=#2+#1; 下一個被加數GOTO 1; 轉到N1N2 M30; 程序結束15.5.3 循環 (WHILE 語句)在WHILE後指定一個條件表達式.當指定條件滿足時,執行從DO到END之間的程序.否則,轉到END後的程序段.WHILE 條件表達式 DO m; (m=1,2,3)如果條件不滿足 如果條件滿足 程序 END m;當指定的條件滿足時,執行WHILE從DO到END之間的程許.否則,轉而執行END之後的程序段,這種指令格式適用於IF語句. DO後的號和END後的號是指定程序執行範圍的標號,標號值為1, 2, 3.若用1, 2, 3以外的值會發生P/S報警No.126.l 嵌套在DOEND循環中的標號 (1到3)可根據需要多次使用.但是,當程序有交叉重復循環 (DO範圍的重疊) 時,出現P/S報警No.124.說明l 無限循環當指定DO而沒有指定WHILE語句時,產生從DO到END的無限循環.l 處理時間當在GOTO語句中有標號轉移的語句時,進行順序號檢索.反向檢索的時間要比正向檢索長.用WHILE語句實現循環可減少處理時間.l 未定義的變量在使用EQ或NE的條件表達式中,和零有不同的效果.在其它形式的條件表達式中,被當作零.典型程序下面的程序計算數值1到10的總和.0001#1=0;#2=1;WHILE #2 LE 10 DO 1;#1=#1+#2;#2=#2+1;END 1;M30;15.6 宏程序調用用下面的方法調用宏程序:宏程序調用 非模態調用 (G65)模態調用 (G66 G67)用G代碼調用宏程序用M代碼調用宏程序用M代碼調用子程序用T代碼調用子程序限制l 宏程序調用和子程序調用之間的差別宏程序調用 (G65)不同于子程序調用 (G98), 如下所述.用G65,可以指定自變量(數據傳送到宏程序).M98沒有該功能.當M98程序段包含另一個NC指令 (例如,G01 X100.0 M98 Pp)時,在指令執行之後調用子程序.相反,G65無條件地調用宏程序. M98程序段包含另一個NC指令 (例如,G01 X100.0 M98 Pp)時,在單程序段方式中,機床停止. 相反,G65機床不停止.用G65, 改變局部變量的級別. 用M98,不改變局部變量的級別.15.6.1 非模態調用 (G65)當指定G65時,以地址P指定的用戶宏程序被調用.數據(自變量)能傳遞到用戶宏程序體中.說明l 呼調在G65之後,用地址P指定用戶宏程序的程序號.當要求重復時,在地址L後指定從1到9999的重復次數.省略L值時,認為L等於1.使用自變量指定,其值被賦值到相應的局部變量.l 自變量指定可用兩種形式的自變量指定.自變量指定I使用除了G,L,O,N和P以外的字母, 每個字母指定一次.自變量指定使用A,B,C和Ii, Ji,和Ki (i為110). 根據使用的字母,自動地決定自變量指定的類型.自變量指定I地址 變量號 地址 變量號 地址 變量號A #1 I #4 T #20B #2 J #5 U #21C #3 K #6 V #22D #7 M #13 W #23E #8 Q #17 X #24F #9 R #18 Y #25H #11 S #19 Z #26 地址G,L,N, Q和P不能在自變量中使用. 不需要指定的地址可以省略,對應於省略地址的局部變量設為空.地址不需要按字母順序指定.但應符合字地址的格式.但是,I, J和K需要按字母順序指定.例:B_A_D_ J_K_ 正確B_A_D_ J_I_ 不正確自變量指定自變量指定使用A,B,和C各1次, I,J,K10次. 自變量指定用於傳遞諸如三維坐標值的變量.地址 變量號 地址 變量號 地址 變量號A #1 K3 #12 J7 #23B #2 I4 #13 K7 #24C #3 J4 #14 I8 #25I1 #4 K4 #15 J8 #26J1 #5 I5 #16 K8 #27K1 #6 J5 #17 I9 #28I2 #7 K5 #18 J9 #29J2 #8 I6 #19 K9 #30K2 #9 J6 #20 I10 #31I3 #10 K6 #21 J10 #32J3 #11 I7 #22 K10 #33I,J,K的下標用於確定自變量指定的順序,在實際編程中不寫.限制l 格式任何自變量前必須指定G65.l 自變量指定、的混合CNC內部自動識別自變量指定和自變量指定.如果自變量指定和自變量指定混合指定的話,後指定的自變量類型有效.l 小數點的位置沒有小數點的自變量數據的單位為各地址的最小設定單位.傳遞的沒有小數點的自變量的值根據機床實際的系統配置變化.在宏程序調用中使用小數點可使程序兼容性好.調用嵌套調用可以嵌套4級,包括非模態調用(G65)和模態調用(G66). 但不包括子程序調用(M98).l 局部變量的級別局部變量嵌套從0到4級.主程序是0級.宏程序每調用1次(用G65或G66),局部變量級別加1.前1級的局部變量值保存在CNC中.當宏程序中執行M99時,控制返回到調用的程序.此時,局部變量級別減1;並恢復宏程序調用時保存的局部變量.典型程序 (園周螺栓孔)編製一個宏程序加工輪園上的孔. 園周的半徑為I, 起始角為A, 間隔為B, 钻孔數為H, 園的中心是(X,Y). 指令可以用絕對值或增量值指定. 順時針方向钻孔時B應指定负值.l 調用格式G65 P9100 Xx Yy Zz Rr Ii Aa Bb Hh;X:園心的X坐標 (絕對值或增量值指定)(#24)Y:園心的Y坐標 (絕對值或增量值指定)(#25)Z:孔深(#26)R:快速趨進點坐標(#18)F:切削進給速度(#9)I:園半徑(#4)A:第一孔的角度(#1)B:增量角(指定负值時為順時針)(#2)H:孔數(#11)l 宏程序調用程序0002G90 G92 X0 Y0 Z100.0;G65 P9100 X100.0 Y50.0 R30.0 Z-50.0 500 I100.0 A0 B45.0 H5;M30;l 宏程序 (被調用的程序)9100 #3=#4003; 存儲03組G代碼 G81 Z#26 R#18 F#9 K0; (注) 钻孔循環 注: 也可以使用L0 IF#3 EQ 90GOTO 1;在G90方式轉移到N1 #24=#5001+#24;計算園心的X坐標 #25=#5002+#25;計算園心的Y坐標 N1 WHILE#11 GT 0DO 1;直到剩餘孔數為0 #5=#24+#4*COS#1;計算X軸上的孔位 #6=#25+#4*SIN+1;計算X軸上的孔位 G90 X#5 Y#6;移動到目標位置之後執行钻孔 #1=#1+#2;更新角度 #11=#11-1;孔數-1 END 1; G#3 G80;返回原始狀態的G代碼 M99; 變量的含義 #3:貯存03組的G代碼 #5:下個孔的X坐標 #6:下個孔的Y坐標15.6.2 模態調用 (G66)一旦發出G66則指定模態調用, 即指定沿移動軸移動的程序段後調用宏程序. G67取消模態調用.說明l 調用在G66之後, 用地址P指定模態調用的程序號.當要求重複時, 地址L後指定從1到9999的重複次數.與非模態調用(G65)相同, 自變量指定的數據傳遞到宏程序體中.l 取消指定G67代碼時,其後面的程序段不再執行模態宏程序調用.l 調用嵌套調用可以嵌套4級.包括非模態調用(G65)和模態調用(G66).但不包括子程序調用(M98).l 模態調用嵌套在模態調用期間,指定另一個G66代碼,可以嵌套模態調用.限制在G66程序段中,不能調用多個宏程序.G66必須在自變量之前指定.在只有諸如輔助功能但無移動指令的程序段中不能調用宏程序.局部變量(自變量)只能在G66程序段中指定.注意,每次執行模態調用時,不再設定局部變量.典型程序用宏程序編製G81固定循環的操作.加工程序使用模態調用.為了簡化程序,使用絕對值指定全部的钻孔數據.l 調用格式G65 P9110 Xx Yy Zz Rr Ff Ll;X:孔的X坐標 (由絕對值指定) (#24)Y:孔的Y坐標 (由絕對值指定) (#25)Z:Z點的坐標 (由絕對值指定) (#26)R:R點坐標 (由絕對值指定) (#18)F:切削進給速度 (#9)L:重複次數l 調用宏程序的程序0001; G28 G91 X0 Y0 Z0; G92 X0 Y0 Z50.0; G00 G90 X100.0 Y50.0; G66 P9110 Z-20.0 R.0 F500; G90 X20.0 Y20.0; X50.0; Y50.0; X0.0 Y80.0; G67; M30;l 宏程序 (被調用的程序)9110: #1=#4001; 貯存G00/G01 #2=#4003; 貯存G90/G91 #3=#4109; 貯存切削進給速度 #5=#5003; 貯存钻孔開始的Z坐標 G00 G90 Z#18; 定位在R點 G01 Z#26 F#9; 切削進給到Z點 IF#4010 EQ 98GOTO 1; 返回到1點 G00 Z#18; 定位在R點 GOTO 2;N1 G00 Z#5; 定位在1點N2 G#1 G#3 F#4; 恢復模態信息. M99;15.6.3 用G代碼調用宏程序在參數中設置調用宏程序的G代碼,與非模態調用(G65)同樣的方法用該代碼調用宏程序.說明在參數(No.6050到No.6059)中設置調用用戶宏程序(9010到9019)的G代碼號(從1到9999),調用戶宏程序的方法與G65相同.例如,設置參數,使宏程序9010由G81調用,不用修改加工程序,就可以調用由用戶宏程序編製的加工循環.l 參數號和程序號之間的對應關係程序號 參數號9010 60509011 60519012 60529013 60539014 60549015 60559016 60569017 60579018 60589019 6059l 重複與非模態調用一樣,地址L可以指定從1到9999的重複次數.l 自變量指定與非調用模態一樣,兩種自變量指定是有效的:自變量指定和自變量指定.根據使用的地址自動地決定自變量的指定類型.限制l 使用G代碼的宏調用的嵌套在G代碼調用的程序中,不能用一個G代碼調用多個宏程序.這種程序中的G代碼被處理為普通G代碼.在用M或T代碼作為子程序調用的程序中,不能用一個G代碼調用多個程序.這種程序中的G代碼也被處理為普通G代碼.15.6.4 用M代碼調用宏程序在參數中設置調用宏程序的M代碼,與非模態調用(G650)的方法一樣用該代碼調用宏程序.說明在參數(No.6080到No.6089)中設置調用用戶宏程序(9021到9029)的M代碼(從1到99999999),用戶宏程序能與G65同樣的方法調用.l 參數號和程序號之間的對應關係程序號 參數號9020 60809021 60819022 60829023 60839024 60849025 60859026 60869027 60879028 60889029 6089l 重複與非模態調用一樣,地址L可以指定從1到9999的重複次數.l 自變量指定與非模態調用一樣,兩種自變量的指定是有效的:自變量指定和自變量指定.根據使用的地址自動地決定自變量指定的類型.限制調用宏程序的M代碼必須在程序段的開頭指定.用G代碼調用的宏程序或用M代碼或T代碼作為子程序調用的程序中,不能用於M代碼調用多個宏程序.這種宏程序或程序中的M代碼被處理為普通M代碼.15.6.5 用M代碼調用子程序在參數中設置調用子程序(宏程序)的M代碼號,可與子程序調用(M98)相同的方法用該代碼調用宏程序.說明在參數(No.6071到No.6079)中設置調用子程序的M代碼(從1到99999999),相應的用戶宏程序(9001到9009)可與M98同樣的方法用該代碼調用.l 參數號和程序號之間的對應關係程序號 參數號9001 60719002 60729003 60739004 60749005 60759006 60769007 60779008 60789009 6079l 重復與非模態調用一樣,地址L可以指定從1到9999的重複次數.l 自變量指定不允許自變量指定.l M代碼在宏程序中調用的M代碼被處理為普通的M代碼.l 限制用G代碼調用的宏程序,或用M或T代碼調用的程序中,使用一個M代碼不能調用幾個子程序.這種宏程序或程序中的M代碼被處理為普通的M代碼.15.6.6 用T代碼調用子程序在參數中設置調用的子程序(宏程序)的T代碼,每當在加工程序中指定T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塔吊拆除承重墙合同范本
- 土地出租青苗费合同范本
- 六年级上册心理健康教育创新计划
- 外墙岩棉板保温合同范本
- 土地流转损失款合同范本
- 小区杂物房转让合同范本
- 外墙修复维修合同协议书
- 婚前财产婚后产权协议书
- 团购达人合同协议书范本
- 安装电线电灯合同协议书
- DB65╱T 3953-2016 反恐怖防范设置规范 商业场所
- 《医学文献检索技巧》课件
- 2024年贵州省瓮安县事业单位公开招聘教师岗笔试题带答案
- 2025-2030再生胶产业规划专项研究报告
- 完整的离婚协议书打印电子版(2025年版)
- 碧桂园物业管理
- 新时代中小学教师职业行为十项准则
- 去极端化教育宣讲
- 《走进物联网》课件
- 2023-2024学年浙江省杭州市钱塘区六年级上期末数学试卷(附答案解析)
- 2025年农村土地承包权补充协议
评论
0/150
提交评论