宏程式操縱程式說明材料_第1頁
宏程式操縱程式說明材料_第2頁
宏程式操縱程式說明材料_第3頁
宏程式操縱程式說明材料_第4頁
宏程式操縱程式說明材料_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、15 用戶宏程序雖然子程序對編製相同加工操作的程序非常有用,但用戶宏程序由於允許使用變量、算數(shù)和邏輯運算及條件轉移 ,使得編製相同加工操作的程序更方便,更容易 .可將相同加工操作編為通用程序 ,如型腔加工宏程序和固定加工循環(huán)宏程序,和調用子程序完全一樣 .15.1 變量普通加工程序直接用數(shù)值指定G代碼和移動距離;例如,G01和X100.0 .使用用戶宏程序時 ,數(shù)值可以直接指定或用變量指定.當用變量時 ,變量值可用程序或用 MDI面板上的操作改變 .#1=# 2+100;G01 X #1 F300;說明變量的表示數(shù)算機允勍使用變量名 ,用戶宏程序不行 .變量用變量符號( #)和後面的變量號指定

2、例如 ;#1表達式可以用於指定變量號 .此時 ,表達式必須封閉在括號中 .例如 ;#1+#2-12變量的類型 變量根據(jù)變量號可以分成四種類型變量號變量類型功能#0 空變量#1#33局部變量#100 #199 公共變量#199#500 #999#1000 -系統(tǒng)變量變量值的範圍 局部變量和公共變量可以有-10 47到-0-29或-10-29 到 10 47如果計算結果超出有效範圍小數(shù)點的省略當在程序中定義變量值時該變量總是空 ,沒有值能賦給該變量 .局部變量只能用在宏程序中存儲數(shù)據(jù),例如 ,運算結果 .當斷電時局部變量被初始化為空 .調用宏程序時 ,自變量對局部變量賦值 .公共變量在不同的宏程序

3、中的意義相同.當斷電時 ,變量#100 初始化為空 .變量 #500 #999 的數(shù)據(jù)保存 ,即使斷電也不丟失 . 系統(tǒng)變量用於讀和寫 CNC 運行時各種數(shù)據(jù)的變化 ,例如,刀具的 當前位置和補償值 .0 值或下面範圍中的值 ;,則發(fā)出P/S報警No.111.,小數(shù)點可以省略 .例:當定義#1=123 ; 變量#1 的實際值是 123.000.變量的引用 為在程序中使用變量值 ,指定後跟變量號的地址 .當用表達式指定變量時 ,要把表達釋放在擴 號中.例如 : G01X #1+# 2F#3; 被引用變量的值根據(jù)地址的最小設定單位自動地舍入 .例如 :當GOOX # /;以1/1000mm 的單位

4、執(zhí)行時,CNC把12.3456賦值給變量#1 ,實際指令值爲 G00X12.3456;.改變引用變量的值的符號 ,要把負號 ()放在#的前面 .例如: G00X #1;當引用未定義的變量時 ,變量及地址字都被忽略 .例如 :當變量 #1 的值是 0 ,並且變量 #2的值是空時 ,G00X #1 Y#2 的執(zhí)行結果爲 G00X0;.雙軌跡 (雙軌跡控制 )的公共變量對雙軌跡控制 ,系統(tǒng)爲每一軌跡都提供了單獨的宏變量.但是 ,根據(jù)參數(shù) No.6036 和6037 的設定,某些公共變量可同時用於兩個軌跡 .未定義的變量當變量值未定義時 ,這樣的變量成爲”空”變量.變量#0總是空變量 ,它不能寫 ,只

5、能讀.(a) 引用當引用一個未定義的變量時 ,地址本身也被忽略當#1=G90 X100 Y#1當 #1=0G90 X100 Y#1G90 X100G90 X100 Y0(b) 運算除了用空賦值以外 , 其籲請況下 空與0相同.當#1= 時#2=# 1#2=#2=# 1*5#2=0#2=# 1+# 1#2=0(c) 條件表達式當 #1=0 時#2=# 1#2=0#2=# 1*5#2=0#2=# 1+# 1#2=0EQ和NE中的 空 不同於0.當#1= 時#1 EQ #0成立#1 NE #0當 #1=0 時#1 EQ #0不成立#1 NE #0#1 GE #0#1 GE #0成立不成立#1 GT

6、#0不成立#1 GT #0不成立變量值的顯示當變量值是空白時 ,變量是空 .符號 * 表示溢出 (當變量的絕對值大於 999999999 時)或下溢出 (當變量的絕對值小於 0.0000001 時 ).限制程式號 , 順序號和任選程序段跳轉號不能使用變量 .例如 :下面情況不能使用變量O#1/# 2G00X100.0N # 3Y200.015.2 系統(tǒng)變量系統(tǒng)變量用於讀和寫 NC 內部數(shù)據(jù) , 例如 , 刀具偏置值和當前位置數(shù)據(jù) . 但是 ,某些系統(tǒng)變量只能讀 . 系統(tǒng)變量是自動控制和通用加工程序開發(fā)的基礎說明接口信號是可編程機床控制器 ( PMC )和用戶宏程序之間交換的信號表15.2(a)

7、接口信號的系統(tǒng)變量變量號功能#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).刀具補償值用系統(tǒng)變量可以讀和寫

8、刀具補償值表15.2(b)刀具補償存儲器C的系統(tǒng)變量補償號刀具長度補償 (H)刀具半徑補償 (D)幾何補償磨損補償幾何補償磨損補償#11001 (# 2201 ) # 10001# 13001# 12001(# 2001 )200#11201(#2400 )#10201400#11400(#2200 )#13400#12400#10400當偏置組數(shù)小於等於 200 時 ,也可使用 #2001 # 2400.宏程序報警表 15.2(c) 宏程序報警的系統(tǒng)變量變量號 功能# 3000當變量# 3000的值爲0 200時,CNC停止運行且報警#3000 的值加上在表達式後為不超過 26 個字符的報警

9、信息 .CRT 屏幕上顯示報警號和報警信息 ,其中報警號爲變量3000例:#3000 = 1(TOOL NOT FOUND).報警屏幕上顯示 “3001 TOOL NOT FOUND.” (刀具未找到 ).程序執(zhí)行停止並顯示信息停止和信息顯示 報警號 功能#3006 在宏程序中指令 “ # 3006=1(MESSAGE); ” 時,程序執(zhí)行前面程序段 並停止 .當最多到 26個字符的信息 , 由控制輸入” ( “ 和控制輸出” ) “ 括住 , 在同一程序段中編程時 ,信息被顯示在外部操作信息屏幕 .時間信息可以讀和寫 .時間信息表15.2(d) 時間信息的系統(tǒng)變量變量號功能#3001該變量為

10、一個計時器 ,以1 毫秒為計時單位 .當電源接通時 , 該變量值復位為0.當達到 2147483648 毫秒時 , 該計時器的值返回到 0.#3002該變量為一個計時器 ,當循環(huán)啟動燈亮時以一小時為單位計時. 該計時器即使在電源斷電時也保存該值 .當達到9544.371767 小時,該計時器的值返 回到 0.#3011該變量用於讀取當前的日期(年/月/日). 年/月/日信息轉換成十進制數(shù) .例如,1994 年9月8日表示為 19940928.#3012該變量用於讀取當前的時間(時/分/秒). 時/分/秒信息轉換成十進制數(shù) .例如, 下午 3點34 分56 秒表示為 153456.自動運行控制可

11、以改變自動運行的控制狀態(tài)表 15.2(e)自動運行控制的系統(tǒng)變量 (#3003)#3003單程序段輔助功能的完成0有效等待1無效等待2有效不等待3無效不等待當電源接通時, 該變量的值為0.當單程序段停止無效時 , 即使單程序段開關設為 ON , 也不執(zhí)行單程序段停止 .當不指定等待輔助功能(M ,S和T功能)完成時,在輔助功能完成之前,程序執(zhí)行到下列程序段. 而且分配完成信號 DEN 不輸出 .表15.2(f)自動運行控制的系統(tǒng)變量 (#3004)#3004進給暫停進給速度倍率準確停止0有效有效有效1無效有效有效2有效無效有效3無效無效有效4有效有效無效5無效有效無效6有效無效無效7無效無效無

12、效當電源接通時 , 該變量的值為 0當進給暫停無效時 :(1) 當進給暫停按鈕被按下時 ,機床在單段停止方式停止 .但是 , 當用變量 #3003 使單程序段 方式無效時 ,單程序段停止不執(zhí)行 .(2) 當進給暫停按鈕壓下又松開時 , 進給暫停燈亮 ,但是 ,機床不停止 ;程序繼續(xù)執(zhí)行 ,並且機床 停在進給暫停有效的第一個程序段 .當進給速度倍率無效時 ,總是100 %的倍率,而不管機床操作面板上的進給速度倍率開關的設 置.當準確停止檢測無效時 ,即使那些不執(zhí)行切削的程序段也不進行準確停止檢測(位置檢測 ).圖15.2(a) 攻絲循環(huán)中使用變量3004的例子SETTING 值SETTING 值

13、可用變量讀和寫 . .二進制數(shù)變?yōu)槭M制數(shù) .鏡像使用外部開關或 SETTING 操作設置的各軸鏡像狀態(tài)可以通過輸出信號(鏡像檢測信號 )讀出 .鏡像執(zhí)行時的鏡像狀態(tài)可以檢測(見川4.8節(jié))得到的二進制值轉換成十進制 .當用鏡像信號和 SETTING 兩者對某軸設置鏡像功能時 ,信號值和設定值相或 ,然後輸出 當控制軸以外的軸的鏡像功能接通時,它們也被讀進系統(tǒng)變量 #3007 .系統(tǒng)變量#3007是寫保護的系統(tǒng)變量如果試圖在變量中寫數(shù)據(jù).則發(fā)出P/S116報警“WRITE PROTECTED VARIAABLE”.已加工的零件數(shù)要求的零件數(shù) (目標數(shù) )和已加工的零件數(shù) (完成數(shù) )可以讀和寫

14、 .表 15.2(g)要求的零件數(shù)和已加工的零件數(shù)的系統(tǒng)變量變量號功能#3001已加工的零件數(shù) (完成數(shù))#3902要求的零件數(shù) (目標數(shù))注:不能用負值模態(tài)信息正在處理的程序段以前的模態(tài)信息可以讀出表 15.2(h)模態(tài)信息的系統(tǒng)變量例:當執(zhí)行 #1=# 4002 ;時,在#1 中得到的值是 17,18或19.如果閱讀模態(tài)信息指定的系統(tǒng)變量爲不能用的G代碼,則發(fā)出P/ S報警.當前位置 位置信息不能寫 , 只能讀 .表15.2(i)位置信息的系統(tǒng)變量變量號位置信號坐標系刀具補償值運動時的讀操作#5001 #5004工件坐標系工件坐標系不包含可能#5021 #5024當前位置機床坐標系包含不可

15、能#5041 #5044當前位置工件坐標系#5061 #5064跳轉信號位置可能#5081 #5084刀具長度補償值不可能#5101 #5104伺服位置誤差第1 位代表軸號 (從1 到4).變量 #5081 # 5088 存儲的刀具長度偏置值是當前的執(zhí)行值,不是後面的程序段的處理值在G31 (跳轉功能)程序段中跳轉信號接通時的刀具位置貯存在變量#5061到#5068中當G31 程序段中的跳轉信號不接通時 , 這些變量中貯存指定程序段的終點值 . 移動期間不能讀是指由於緩衝(預讀)功能的原因 ,不能讀期望值 .工件坐標系補償 (工件零點偏移值 ) 工件零點偏移值可以讀和寫 .表15.2(j)工件

16、零點偏移值的系統(tǒng)變量&CXI LO1*8 寸d L.寸90) - w L 寸6 卜4t (CXId L.寸 90)赳程離weHs寸w寸CXIO 卜4t (CXId L.寸 90)赳程離weHsLwLCXIO 卜4t (Ld L.寸 90)赳程離weHs寸w寸。卜4t (Ld L.寸 90)赳程離weHsLw3# 赳程離weH 690S寸W寸CXIeg # 赳程離weH 690SLWLCXI署 赳程離weH 890S寸W寸 oeg # 赳程離weHagoSLW5# 赳程離weH卜90S寸W寸更#15.3 算術和邏輯運算表15.3(a)中列出的運算可以在變量中執(zhí)行運算符右邊的表達時可包含常量和/或

17、由函數(shù)或運算符組成的變量表達式中的變量#j和#k可以用常數(shù)賦值.左邊的變量也可以用表達式賦 值.表15.3(a)算術和邏輯運算說明角度單位函數(shù)SIN , COS , ASIN , ACOS , TAN和ATAN的角度單位是度.如90。30 表示爲90.5度.ARCSIN # i = ASIN #J取值範圍如下 :當參數(shù)(No. 6004 #0) NAT 位設爲 0時,270。90。當參數(shù)(No. 6004 #0) NAT 位設爲 1 時,-90。90。當#j超出-1到1的範圍時,發(fā)出P/S報警No.111.常數(shù)可替代變量 #j.ARCCOS #i=ACOS #j取值範圍從 180 。 0。 .

18、當#j超出-1到1的範圍時,發(fā)出P/S報警No.111.常數(shù)可以替代變量 #j.ARCTAN指定兩個邊的長度 ,並用斜杠 (/) 分開 .#i=ATAN#j/#k;取值範圍如下 :當NAT位(參數(shù)No.6004例如當指定 #1=ATAN當NAT位(參數(shù)No.6004,#0)設為 0時;0。到360 。. -1 / -1 時,# 1 = 225 。.,#0)設為 1時;-180 。到180例如當指定 #1=ATAN -1 / -1 時,# 1 = -135. 0常數(shù)可以代替變量 #j.自然對數(shù) #i=LN#j注意,相對誤差可能大於 10-8.當反對數(shù)(#j)爲0或小於0時潑出P/S報警No.11

19、1 .常數(shù)可以代替變量 #j.指數(shù)函數(shù) #i=EXP#j注意,相對誤差可能大於 10-8.當運算結果超過3.65 X10 47(j大約是110 )時,出現(xiàn)溢出並發(fā)出P/S 報警No.111常數(shù)可以代替變量 #j.ROUND ( 舍入 ) 函數(shù)當算術運算或邏輯運算指令 IF或WHILE中包含ROUND函數(shù)時,則ROUND函數(shù)在第1個小數(shù)位置四舍五入 .例:當執(zhí)行#1 = ROUND #2;時,此處#2= 1.2345,變量1的值是1.0 .當在NC語句地址地址中使用 ROUND函數(shù)時,ROUND函數(shù)根據(jù)地址的最小設定單位將指定值四舍五入 .例:編製鉆削加工程序 ,按變量 #1和#2的值切削 ,然

20、後返回到初始位置 .假定最小設定單位是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以使刀具返到初始位置 .上取整和下取整CNC 處理數(shù)值運算時 ,若操作後產生的整數(shù)絕對直大於原數(shù)的絕對值時為上取整.對於負數(shù)的處理應小心 .例如

21、 :假設#1=1.2,#2=1.2.當執(zhí)行#3= FUP #1時,2.0賦給#3 .當執(zhí)行#3=FIX#1時,1.0賦給#3.當執(zhí)行#3=FUP#2時,2.0賦給#3.當執(zhí)行#3=FIX#2時,1.0賦給#3.算術與邏輯運算指令的縮寫程序中指令函數(shù)時,函數(shù)名的前個字符可以用於指定該函數(shù)(見川一9.7節(jié)).例如 :ROUND ROFIXFI運算次序O函數(shù)O乘和除運算(*、/、AND )e加和減運算 什、-、OR、XOR )擴號嵌套括號用於改變運算次序.括號可以使用5級,包括函數(shù)內部使用的括號.當超過5級時,出現(xiàn)P/S報警 No.118 .限制擴號( , ) 用於封閉表達式 . 注意 ,圓括號用於

22、注釋運算誤差表 15.3(b)運算時,可能出現(xiàn)誤差運:算平均誤差曰-P壬口辛人誤差類型a =b*c1.55X10-104.66X10-10相對誤差(*1)a =b/c4.66X10 -101.88X10 - 9| - |aab1.24X10 - 9a =b+c2.33X10 -105.32X10-10a =b 最小丨一丨,丨1bca =SINb5.0X10- 91.0 X10 - 8絕對昫差(*3)a =COSba=ATANb/c1.8X10 - 63.6X10 - 61 el度運算中的誤差3.73 X10- 9(*2)(*4)注1. 相對誤差取決於運算結果.2. 使用兩類誤差的較小者.3絕對

23、誤差是常數(shù),而不管運算結果4. 函數(shù)TAN 執(zhí)行 SIN/COS .5. 如果SIN、COS或TAN函數(shù)的運算結果小於10 X10- 8或由於運算精度的限制不爲0的話, 設定參數(shù)N0.6004 #1爲1,運算結果可以規(guī)算爲0.變量值的精度約爲8位十進制數(shù)當在加/減速中處理非常大的數(shù)時,將得不到期望的結果例:當試圖把下面的值賦給變量 #1和#2時:#1=9876543210123.456#2=9876543277777.777變量值變成:#1=9876543200000.000#2=9876543300000.000此時,當計算#3=#2-#1; 時,結果爲#3=100000.000.(該計算的

24、實際結果稍有誤差,因爲是以二進制執(zhí)行的.)還應該意識到,使用條件表達式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 此時,可先糾正誤差,

25、再執(zhí)行下取 整,或是用如下的四捨五入操作,即可得到正確結果.#3=FIX #2+0.001#3=ROUND 2除數(shù)當在除法或TAN90中指定爲0的除數(shù)時,出現(xiàn)P/S報警No.112 .15.4宏程序語句和NC語句下面的程序段爲宏程序語句:包含算術或邏輯運算(=)的程序段.包含控制語句 (例如,GOTO , DO , END )的程式段.包含宏程序調用指令(例如,用 G65 , G66 , G67或其它G代碼,M代碼調用宏程序)的程序段.除了宏程序語句以外的任何程序段都爲NC語句.說明與NC語句的不同即使置於單程序段運行方式,機床也不停止.但是,當參數(shù)N0.6000 #5 SBM設定爲1時,在單

26、(H 15.7 節(jié)).程序段方式中,機床停止.在刀具半徑補償方式中宏程序語句段不做爲不移動程序段處理含有子程序調用指令(例如,用M98或其它M代碼或用T代碼調用子程序)但沒有除O, N或L地 址之外的其它地址指令的NC語句其性質與宏程序相同.不包含除0.N.P或L以外的指令地址的程序段其性質與宏程序語句相同15.5轉移和循環(huán)在程序中,使用GOTO語句和IF語句可以改變控制的流向有三種轉移和循環(huán)操作可供使用:轉移和循環(huán)GOTO語句(無條件轉移)IF語句(條件轉移:IFTHEN)WHILE語句(當時循環(huán))15.5.1 無條件轉移 (GOTO語句)轉移到標有順序號n的程序段當指定1到99999以外的

27、順序號時,出現(xiàn)P/S報警No.128 可用 表達式指定順序號GOT On ; n :順序號(1 到 99999 )例:GOTO 1;GOTO#10;15.5.2 條件轉移(IF語句) 條件表達式IF之後指定條件表達式.IF條件表達式GOTOn如果指定的條件表達式滿足時 ,轉移到標有順序號 n 的程序段 .如果指定的條件表達式不滿足 執(zhí)行下個程序段 .如果變量#1的值大於10,轉移到順序號N2的程序段.如果條件不滿足 IF#1GT 10 GOTO2程序如果條件滿足N2 GOO G91 X10.0 ;IFTHEN如果條件表達式滿足 ,執(zhí)行預先決定的宏程序語句 .只執(zhí)行一個宏程序語句 .如果#1和#

28、2的值相同,0賦給#3.IF#1 EQ #2 THEN #3 = O;說明條件表達式條件表達式必須包括算符 .算符插在兩個變量中間或變量和常數(shù)中間,並且用擴號 (, )封閉 .表達式可以替代變量 .運算符運算符由 2個字母組成 ,用於兩個值的比較 ,以決定它們是相等還是一個值小於或大於另一個 值.注意 ,不能使用不等號 .表15.5.2 運算符含義運算符EQ等於 (=)NE不等於(工)GT大於()GE大於或等於(馬LT小於(v)LE小於或等於(馬典型程序下面的程序計算數(shù)值 1 10 的總和G9500#1 = 0; 存儲和數(shù)變量的初值#2=1; 被加數(shù)變量的初值N1 IF #2 GT 10 GO

29、TO 2; 當被加數(shù)大於10時轉移到N2#1=# 1+# 2;計算和數(shù)#2=# 2+# 1; 下一個被加數(shù)GOTO 1;轉到N1N2 M30;程序結束15.5.3 循環(huán) (WHILE 語句 )在WHILE後指定一個條件表達式當指定條件滿足時,執(zhí)行從DO到END之間的程序否則,轉 到END後的程序段WHILE 條件表達式 DO m; (m=1,2,3)如果條件不滿足 如果條件滿足 程序END m;當指定的條件滿足時,執(zhí)行WHILE從DO到END之間的程許.否則,轉而執(zhí)行END之後的程序 段,這種指令格式適用於IF語句.DO後的號和END後的號是指定程序執(zhí)行範圍的標號 ,標號 值為 1, 2, 3

30、.若用1,2, 3以外的值會發(fā)生P/S報警No.126 .嵌套在DO END循環(huán)中的標號(1到3)可根據(jù)需要多次使用但是,當程序有交叉重復循環(huán)(DO範圍的重疊)時,出現(xiàn)P/S報警No.124 .說明無限循環(huán)當指定DO而沒有指定 WHILE語句時,產生從DO到END的無限循環(huán).處理時間當在 GOTO 語句中有標號轉移的語句時 ,進行順序號檢索 .反向檢索的時間要比正向檢索長.用 WHILE 語句實現(xiàn)循環(huán)可減少處理時間 .未定義的變量在使用EQ或NE的條件表達式中, 空 和零有不同的效果在其它形式的條件表達式中, 空 被當作零 .典型程序 下面的程序計算數(shù)值 1到10的總和 .00001#1=0;

31、#2=1;WHILE #2 LE 10 DO 1;#1=#1+#2;#2=#2+1;END 1;M30;15.6 宏程序調用用下面的方法調用宏程序 :宏程序調用 非模態(tài)調用 (G65 )模態(tài)調用 (G66 G67 )用G代碼調用宏程序用 M 代碼調用宏程序用 M 代碼調用子程序 用T代碼調用子程序限制宏程序調用和子程序調用之間的差別宏程序調用(G65 )不同于子程序調用(G98 ),如下所述.用G65,可以指定自變量(數(shù)據(jù)傳送到宏程序).M98沒有該功能.當M98程序段包含另一個NC指令(例如,G01 X100.0 M98 Pp)時,在指令執(zhí)行之後調用子程序相反,G65無條件地調用宏程序M98

32、程序段包含另一個 NC指令(例如,G01 X100.0 M98 Pp)時在單程序段方式中 機床停止相反,G65機床不停止.用G65 ,改變局部變量的級別用M98,不改變局部變量的級別15.6.1 非模態(tài)調用(G65)當指定G65時,以地址P指定的用戶宏程序被調用數(shù)據(jù)(自變量)能傳遞到用戶宏程序體中 說明呼調在G65之後,用地址P指定用戶宏程序的程序號當要求重復時,在地址L後指定從1到9999的重復次數(shù)省略L值時,認爲L等於1.使用自變量指定,其值被賦值到相應的局部變量自變量指定可用兩種形式的自變量指定 自變量指定I使用除了 G,L,O,N和P以外的字母,每個字母指定 一次自變量指定H使用A,B

33、,C和Ii, Ji,和Ki(i爲110).根據(jù)使用的字母,自動地決定自變量指定的類型.自變量指定I地址變量號地址變量號地址變量號A#1I#4T#20B#2J#5U#21C#3K#6V#22D#7M#13W#23E#8Q#17X#24F#9R#18Y#25H#11S#19Z#26地址G,L,N, Q和P不能在自變量中使用.不需要指定的地址可以省略,對應於省略地址的局部變量設爲空地址不需要按字母順序指定但應符合字地址的格式但是,I, J和K需要按字母順序指定例:B_A_D_ J_K_ 正確B_A_D_J_I_不正確自變量指定n自變量指定n使用A,B,和C各1次,I,J,K1O次自變量指定n用於傳遞

34、諸如三維坐標值的變量.地址變量號地址變量號地址變量號A#1K3#12J7#23B#2I4#13K7#24c#3J4#14I8#25I1#4K4#15J8#26J1#5I5#16K8#27K1#6J5#17I9#28I2#7K5#18J9#29J2#8I6#19K9#30K2#9J6#20I10#31I3#10K6#21J10#32J3#11I7#22K10#33I,J,K 的下標用於確定自變量指定的順序 ,在實際編程中不寫 .限制格式任何自變量前必須指定 G65 .自變量指定i、n的混合cnc內部自動識別自變量指定 I和自變量指定n 如果自變量指定I和自變量指定n混合指 定的話 ,後指定的自變

35、量類型有效 .小數(shù)點的位置.傳遞的沒有小數(shù)點的自變量的值沒有小數(shù)點的自變量數(shù)據(jù)的單位為各地址的最小設定單位根據(jù)機床實際的系統(tǒng)配置變化 .在宏程序調用中使用小數(shù)點可使程序兼容性好.調用嵌套調用可以嵌套 4級,包括非模態(tài)調用 (G65 )和模態(tài)調用 (G66 ). 但不包括子程序調用 (M98 ). 局部變量的級別局部變量嵌套從 0 到4級.主程序是 0級 .宏程序每調用1次(用G65或G66 ),局部變量級別加1前1級的局部變量值保存在 CNC中. 當宏程序中執(zhí)行 M99 時,控制返回到調用的程序 .此時,局部變量級別減 1;並恢復宏程序調用 時保存的局部變量 典型程序 (園周螺栓孔 )編製一個

36、宏程序加工輪園上的孔園周的半徑爲I,起始角爲A,間隔爲B(tài),鉆孔數(shù)爲H,園的中心是(X,Y).指令可以用絕對值或增量值指定.順時針方向鉆孔時B應指定負值.調用格式G65 P9100 Xx Yy Zz Rr Ii Aa Bb Hh;X:園心的X坐標(絕對值或增量值指定)(#24 )Y:園心的丫坐標(絕對值或增量值指定)(#25 )Z:孔深(#26 )R :快速趨進點坐標 (#18 )F:切削進給速度(#9)I:園半徑(#4)A :第一孔的角度 (#1 )B:增量角(指定負值時爲順時針)(#2 )H :孔數(shù)(#11 )宏程序調用程序00002G90 G92 X0 Y0 Z100.0;G65 P910

37、0 X100.0 Y50.0 R30.0 Z-50.0 500 I100.0 A0 B45.0 H5; M30;宏程序 (被調用的程序 )09100#3=# 4003; 存儲03組G代碼G81 Z #26 R#18 F#9 K0; (注) 鉆孔循環(huán)注: 也可以使用 L0IF#3 EQ 90GOTO 1; 在G90 方式轉移到 N1#24 =# 5001 +# 24;計算園心的X坐標#25 =# 5002 +# 25;計算園心的Y坐標N1 WHILE #11 GT 0DO 1; 直到剩餘孔數(shù)爲 0#5=# 24 +# 4*C0S #1;計算X軸上的孔位#6=# 25+#4*SIN +1 ;計算X

38、軸上的孔位G90 X #5 Y # 6 ;移動到目標位置之後執(zhí)行鉆孔#1=# 1+# 2 ;更新角度#11 =#11-1; 孔數(shù)-1END 1;G#3 G80;返回原始狀態(tài)的G代碼M99;變量的含義#3:貯存03組的G代碼#5:下個孔的X坐標#6:下個孔的Y坐標15.6.2 模態(tài)調用 (G66). G67 取消模態(tài)一旦發(fā)出 G66 則指定模態(tài)調用 , 即指定沿移動軸移動的程序段後調用宏程序 調用 .說明調用在G66之後,用地址P指定模態(tài)調用的程序號 當要求重複時,地址L後指定從1到9999的重複次數(shù)與非模態(tài)調用(G65)相同,自變量指定的數(shù)據(jù)傳遞到宏程序體中取消指定G67代碼時,其後面的程序段

39、不再執(zhí)行模態(tài)宏程序調用調用嵌套調用可以嵌套4級包括非模態(tài)調用(G65)和模態(tài)調用(G66).但不包括子程序調用(M98 ). 模態(tài)調用嵌套在模態(tài)調用期間,指定另一個G66代碼,可以嵌套模態(tài)調用限制在G66程序段中,不能調用多個宏程序G66必須在自變量之前指定.在只有諸如輔助功能但無移動指令的程序段中不能調用宏程序局部變量(自變量)只能在G66程序段中指定注意,每次執(zhí)行模態(tài)調用時,不再設定局部變量 典型程序用宏程序編製G81固定循環(huán)的操作加工程序使用模態(tài)調用爲了簡化程序,使用絕對值指定 全部的鉆孔數(shù)據(jù).調用格式G65 P9110 Xx Yy Zz Rr Ff LI;X:孔的X坐標(由絕對值指定)

40、(#24)Y:孔的丫坐標(由絕對值指定)(#25 )Z:Z點的坐標(由絕對值指定)(#26)R:R點坐標(由絕對值指定)(#18 )F:切削進給速度(#9)L: 重複次數(shù)調用宏程序的程序00001;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;宏程序 (被調用的程序 )09110:#1=#4001; 貯存 G00/G01#2=#4003; 貯存 G90/G91#3=#4109; 貯存切削進

41、給速度#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; 恢復模態(tài)信息 .M99;15.6.3用G代碼調用宏程序在參數(shù)中設置調用宏程序的G代碼,與非模態(tài)調用(G65)同樣的方法用該代碼調用宏程序說明在參數(shù)(No.6050到No.6059 )中設置調用用戶宏程序 (G9010到09019 )的G代碼號(從1到9999 ),調用戶宏程序的方法與 G65相

42、同例如,設置參數(shù),使宏程序09010由G81調用,不用修 改加工程序 ,就可以調用由用戶宏程序編製的加工循環(huán).參數(shù)號和程序號之間的對應關係程序號參數(shù)號G90106050G90116051G90126052G90136053G90146054G90156055G90166056G90176057G90186058G90196059.、A-重複與非模態(tài)調用一樣 地址L可以指定從1到9999的重複次數(shù).自變量指定與非調用模態(tài)一樣,兩種自變量指定是有效的:自變量指定I和自變量指定H 根據(jù)使用的地 址自動地決定自變量的指定類型 .限制使用G代碼的宏調用的嵌套在G代碼調用的程序中,不能用一個G代碼調用多個

43、宏程序這種程序中的G代碼被處理爲普通G代碼在用M或T代碼作爲子程序調用的程序中,不能用一個G代碼調用多個程序這種程序中的G代碼也被處理爲普通 G代碼.15.6.4 用 M 代碼調用宏程序在參數(shù)中設置調用宏程序的M代碼,與非模態(tài)調用(G650 )的方法一樣用該代碼調用宏程序說明在參數(shù)(No.6080到No.6089 )中設置調用用戶宏程序 (G9021到09029 )的M代碼(從1到99999999 ),用戶宏程序能與G65同樣的方法調用參數(shù)號和程序號之間的對應關係程序號參數(shù)號902060809021608190226082902360839024608490256085902660869027

44、60879028608890296089與非模態(tài)調用一樣 地址L可以指定從1到9999的重複次數(shù)自變量指定與非模態(tài)調用一樣,兩種自變量的指定是有效的:自變量指定I和自變量指定H根據(jù)使用的地址自動地決定自變量指定的類型 .限制調用宏程序的 M 代碼必須在程序段的開頭指定 .用G代碼調用的宏程序或用 M代碼或T代碼作爲子程序調用的程序中,不能用於M代碼調用多個宏程序這種宏程序或程序中的M代碼被處理爲普通 M代碼.1565用M代碼調用子程序在參數(shù)中設置調用子程序(宏程序)的M代碼號,可與子程序調用(M98 )相同的方法用該代碼 調用宏程序 .說明在參數(shù)(No.6071到No.6079 )中設置調用子

45、程序的 M代碼(從1到99999999 ),相應的用戶 宏程序(09001到09009 )可與M98同樣的方法用該代碼調用.參數(shù)號和程序號之間的對應關係程序號參數(shù)號090016071090026072090036073G90046074G90056075G90066076G90076077G90086078G90096079重復與非模態(tài)調用一樣 地址L可以指定從1到9999的重複次數(shù).自變量指定不允許自變量指定M代碼在宏程序中調用的 M代碼被處理爲普通的 M代碼.限制用G代碼調用的宏程序,或用M或T代碼調用的程序中,使用一個M代碼不能調用幾個子程序 這種宏程序或程序中的M代碼被處理爲普通的 M

46、代碼.15.6.6 用T代碼調用子程序在參數(shù)中設置調用的子程序(宏程序)的T代碼,每當在加工程序中指定 T代碼時,即調用宏程序說明調用 設置參數(shù)No.6001的5位TCS=1當在加工程序中指定T代碼時,可以調用宏程序G9000 在 加工程序中指定的T代碼賦值到公共變量#149 .限制用G代碼調用的宏程序中或用 M或T代碼調用的程序中,一個M代碼不能調用多個子程序這 種宏程序或程序中的T代碼被處理爲普通T代碼15.6.7典型程序用M代碼調用子程序的功能,調用測量每把刀具的累積使用時間的宏程序條件測量T01到T05各把刀具的累積使用時間刀號大於T05的刀具不進行測量下面的變量用於貯存刀號和測量的時

47、間 #501刀號1的累積使用時間#502刀號2的累積使用時間#503刀號3的累積使用時間#504刀號4的累積使用時間#505刀號5的累積使用時間當指定 M03 時,開始計算使用時間 ,當指定 M05 時,停止計算 在循環(huán)啟動燈亮期間 ,用系統(tǒng)變量 #3002 測量該時間 進給暫停和單段停止期間 ,時間不計算但要計算換刀和交換工作臺的時間運行檢查參數(shù)設置參數(shù)No.6071 中設置3,參數(shù)No.6072 中設置05 .變量值設置變量 #501 到#505 中設置 0.調用宏程序的程序)001;T01 M06;M03;M05; 改變 #501T02 M06;M03;M05; 改變 #502T03 M

48、06;M03;M05; 改變 #503T04 M06;M03;M05; 改變 #504T05 M06;M03;M05; 改變 #505M30;宏程序 ( 被調用的程序 )G9001 (M03);啟動計算的宏程序M01;IF#4120 EQ 0GOTO 9;沒有指定刀具IF#4120 GT 5GOTO 9;超出刀號範圍#3002=0; 計時器清 0N9 M03; 以正向旋轉主軸M99;M01;IF#4120 EQ 0GOTO 9;沒有指定刀具IF#4120 GT 5GOTO 9;超出刀具範圍#500+#120=#3002+#500+4120; 計算累積時間N9 M05; 停止主軸M99;15.7

49、 宏程序語句的處理為了平滑加工 ,CNC 預讀下一個要執(zhí)行的 NC 語句.這種運行稱為緩衝 .在刀具半徑補償方式(G41,G42 )中,NC爲了找到交點提前預讀 2或3個程序段的NC後語句算術表達式和條件轉 移的宏程序語句在它們被讀進緩衝寄存器後立即被處理包含MOO ,M01 ,M02或M30的程序段,包含由參數(shù)No.3411到No.3420設置的禁止緩衝的 M代碼的程序段,以及包含G31的 程序段不預讀 說明當下個程序段不緩衝時(不緩衝的M代碼,G31等)在除了刀具半徑補償方式 (G41,G42) 以外的方式中 ,緩衝下個程序段 (正常預讀一個程 序段 )當執(zhí)行N1時,下個NC語句(N4 )

50、被讀入緩衝器.N1和N4之間的宏語句(N2 ,N3 )在N1執(zhí)行期間被處理 在刀具半徑補償方式 (G41,G42) 中緩衝下個程序段 當N1正在執(zhí)行時,在下2個程序段(直到N5 )中的NC語句被讀進緩衝寄存器在N1和N5之間 的宏語句(N2 ,N4 )在N1的執(zhí)行期間被處理在刀具補償半徑方式 C (G41,G42) 中,當下個程序段包含沒有移動的程序段時當NC1程序段正在執(zhí)行時,下兩個程序段(直到N5 )中的NC語句被讀進緩衝寄存器由於N5 是不移動的程序段,不能計算交點此時,下面三個程序段(直到N7 )中的NC語句被讀入在N1 和N7之間的宏語句(N2 ,N4和N6 )在執(zhí)行N1時被處理15.8用戶宏程序的存儲用戶宏程序與子程序相似 可用與子程序同樣的方法進行存儲和編程,存儲容量由子程序和宏程序的總容量決定 15.9限制MDI 運行在MDI方式中可以指定宏程序調用指令但是,在自動運行期間,宏程序調用不能切換到 MDI方式 順序號檢索用戶宏程序不能檢索順序號 單程序段即使宏程序正在執(zhí)行 ,在單程序段方式 ,程序段也能停止 包含宏程序調用指令(G65,G66或G67)的程序段中,即使

溫馨提示

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

評論

0/150

提交評論