宏程式操作程式手册_第1页
宏程式操作程式手册_第2页
宏程式操作程式手册_第3页
宏程式操作程式手册_第4页
宏程式操作程式手册_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、)和後面的變量號指定 例如 ;#1 表達式可以用於指定變量號 . 此時 , 表達式必須封閉在括號中 .例如 ; #1 +#2-1 2變量的類型變量根據變量號可以分成四種類型變量號變量類型功能#0空變量該變量總是空 , 沒有值能賦給該變量 .#1 #33局部變量局部變量只能用在宏程序中存儲數據, 例如 , 運算結果 . 當斷電時局部變量被初始化為空 . 調用宏程序時, 自變量對局部變量賦值 .#100#199公共變量公共變量在不同的宏程序中的意義相同. 當斷電時 , 變量 #100#199#50 0 #999#1000 初始化為空 . 變量 #500#999的數據保存 , 即使斷電也不丟失系統變

3、量系統變量用於讀和寫 CN(運行時各種數據的變化,例如,刀具的當前位置和補償值變量值的範圍局部變量和公共變量可以有0值或下面範圍中的值-1047到-10-29或-10-29到 1047如果計算結果超出有效範圍,則發出P/S報警No.111.小數點的省略當在程序中定義變量值時 ,小數點可以省略例:當定義 #1=123; 變量 #1的實際值是 123.000.變量的引用 為在程序中使用變量值 ,指定後跟變量號的地址 .當用表達式指定變量時 ,要把表達釋放在擴 號中.例如 : G01X #1+#2F#3; 被引用變量的值根據地址的最小設定單位自動地舍入 . 例如 :當GOOX# /;以1/1000m

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

5、 引用當引用一個未定義的變量時,地址本身也被忽略 .當#1=空當#1=0G90 X100 Y#1G90 X100 Y#1G90 X100G90 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不

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

7、變量變量號功能#1000#1015把16位信號從 PMC 送到用戶宏程序 .變量#1000到#1015用於按位讀取信號 . 變量#1 032用於一次讀取一個 16位信號#1100#1115把16位信號從用戶宏程序送到 PMC . 變量# 1 1 00到# 1 1 1 5用於按位寫信號 .變#1132量 #1132 用於一次寫一個 16位信號 .#1133變量 #1 1 33用於從用戶宏程序一次寫一個32位的信號到 PMC.注意, # 1 1 33的值為從 99999999到+99999999 .詳細情況 , 請見連接說明書 (B-63503C-1 ).刀具補償值 用系統變量可以讀和寫刀具補償值

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

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

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

11、制狀態 .表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無效無效無效當電源接通時 , 該變量的

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

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

14、號功能#3001已加工的零件數 (完成數 )#3902要求的零件數 (目標數 )注: 不能用負值模态信息正在處理的程序段以前的模态信息可以讀出 表15.2(h)模态信息的系統變量例:當執行 #1=#4002;時,在#1中得到的值是 17,18或19.G代碼,則發出P/S報警.如果閱讀模态信息指定的系統變量為不能用的當前位置位置信息不能寫 , 只能讀 .表15.2(i)位置信息的系統變量變量號位置信號坐標系#5001 #5004工件坐標系工件坐標系#5021 #5024當前位置機床坐標系#5041 #5044當前位置工件坐標系#5061 #5064跳轉信號位置#5081 #5084刀具長度補償值

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

16、第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

17、.1 P2)#7024第4軸工件零點偏移值 (G54.1 P2)#7941第1軸工件零點偏移值 (G54.1 P48)#7944第4軸工件零點偏移值 (G54.1 P48)15.3 算术和邏輯運算表15.3(a)中列出的運算可以在變量中執行運算符右邊的表達時可包含常量和/或由函數或運算符組成的變量表達式中的變量#j和姝可以用常數賦值左邊的變量也可以用表達式賦 值.表15.3(a)算術和邏輯運算說明角度單位函數SIN, COS, ASIN , ACOS , TAN和ATAN的角度單位是度.如90。30表示爲90.5度. ARCSIN # i = ASIN #J取值範圍如下 :當參數(No. 60

18、04#0) NAT 位設爲 0時,270。90。當參數 (No. 6004#0)NAT 位設爲 1時,90。 90。當的超出-1到1的範圍時 潑出P/S報警No.111.常數可替代變量 #j.ARCCOS #i=ACOS #j取值範圍從 180。 0。.當的超出-1到1的範圍時,發出P/S報警No.111.常數可以替代變量 #j.ARCTAN指定兩個邊的長度 ,並用斜杠 (/) 分開 .#i=ATAN#j/#k; 取值範圍如下 :當NAT位(參數No.6004,#0)設為0時;0。到360。. 例如 當指定 #1=ATAN -1/-1時, #1=225。 .當NAT 位(參數 No.6004,

19、#0)設為 1 時;-180。到 180。例如 當指定 #1=ATAN -1/-1時, #1=-135.0。 . 常數可以代替變量 #j.自然對數 #i=LN#j注意, 相對誤差可能大於 10-8.當反對數(#j)爲0或小於0時,發出P/S報警No.111. 常數可以代替變量 #j.指數函數 #i=EXP#j注意, 相對誤差可能大於 10-8.當運算結果超過3.65X1047(j大約是110)時,出現溢出並發出P/S報警No.111 . 常數可以代替變量 #j.ROUND (舍入 ) 函數當算術運算或邏輯運算指令IF或WHILE中包含ROUND函數時,則ROUND函數在第1個小數位置四舍五入

20、.例:當執行 #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,刀具不返回到初始位置 .該誤差來自

21、於舍入之前還是舍入之後相加.必須指定 G00 X-ROUND #1+ROUND # 2以使刀具返到初始位置 .上取整和下取整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.算術與邏輯運算指令的縮寫程序中指令函數時,函數名的前個字符可以用於指定該函數(見川一9.7節).例如:ROUND ROFIXFI運算次序函數乘和除運算(*

22、、/、AND加和減運算(+、-、OR、XOR)擴號嵌套括號用於改變運算次序.括號可以使用5級,包括函數內部使用的括號.當超過5級時,出現P/S 報警 No.118.限制擴號(,)用於封閉表達式.注意,圓括號用於注釋 運算誤差運算時,可能出現誤差.表15.3(b) 運算中的誤差運算平均誤差曰-P壬口辛人誤差類型a = b*c1.55 X 10-10-104.66 X 10相對誤差(*1)-10a = b/c4.66 X 101.88 X 10| - | aa 、. b-91.24 X 10-93.73 X 10a = b+c-102.33 X 10-105.32 X 10(*2)a = b -

23、c最小丨丨,丨1bca = SINb-95.0 X 10-81.0 X 10絕對昫差(*3)a = COSba= ATANb/c 1.-68 X 10-63.6 X 101 el度(*4)注1.相對誤差取決於運算結果2. 使用兩類誤差的較小者3. 絕對誤差是常數,而不管運算結果4. 函數 TAN執行 SIN/COS.5. 如果SIN、CO或TAN函數的運算結果小於10X 10-8或由於運算精度的限制不爲 0的話,設定 參數N0.6004#1爲1,運算結果可以規算爲 0.變量值的精度約爲8位十進制數.當在加/減速中處理非常大的數時,將得不到期望的結果.例:當試圖把下面的值賦給變量#1和#2時:#

24、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 )時,

25、則認爲兩個變量的值是相等的.使用下取整指令時應小心.例如:當計算#2=#2*1000式中#1=0.002時,變量#2的結果值不是準確的 2,可能是1.99999997.這裡,當指定#3=FIX#2時,變量3的結果值不是2,而是1.0.此時,可先糾正誤差,再執行下取整,或是用如下的四捨五入操作,即可得到正確結果.#3=FIX #2+0.001#3=ROUND 2除數當在除法或TAN90中指定爲0的除數時,出現P/S報警No.112.15.4宏程序語句和NC語句F面的程序段爲宏程序語句 包含算術或邏輯運算 ( =) 的程序段 .包含控制語句 (例如,GOTO DO END的程式段包含宏程序調用指令

26、 (例如,用G65, G66, G67或其它G弋碼,M代碼調用宏程序)的程序段 除了宏程序語句以外的任何程序段都爲NC語句說明與NC語句的不同即使置於單程序段運行方式 ,機床也不停止但是,當參數N0.6000#5 SBN設定爲1時,在單程序段方式中 , 機床停止 在刀具半徑補償方式中宏程序語句段不做爲不移動程序段處理(II - 15.7節).與宏程序語句有相同性質的C語句含有子程序調用指令(例如,用M98或其它M代碼或用T代碼調用子程序)但沒有除Q N或 L地址 之外的其它地址指令的 NC 吾句其性質與宏程序相同不包含除O.N.P或L以外的指令地址的程序段其性質與宏程序語句相同15.5轉移和循

27、環在程序中,使用GOT語句和IF語句可以改變控制的流向有三種轉移和循環操作可供使用:轉移和循環GOT語句(無條件轉移)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 之後指定條件表達式 IF條件表達式GOTOn如果指定的條件表達式滿足時,轉移到標有順序號n的程序段.如果指定的條件表達式不滿足 執行

28、下個程序段 如果變量#1的值大於10,轉移到順序號N2的程序段.如果條件不滿足 IF#1GT 10 GOTO2程序如果條件滿足N2 G00 G91 X10.0 ;IF 條件表達式 THEN如果條件表達式滿足 ,執行預先決定的宏程序語句 .只執行一個宏程序語句如果 #1和#2的值相同 ,0賦給 #3.IF#1 EQ#2 THEN# 3 = 0;說明條件表達式條件表達式必須包括算符 . 算符插在兩個變量中間或變量和常數中間 , 並且用擴號 ( , )封 閉. 表達式可以替代變量 .運算符運算符由 2個字母組成 ,用於兩個值的比較 ,以決定它們是相等還是一個值小於或大於另一個 值.注意 ,不能使用不

29、等號 .表15.5.2 運算符運算符 含義EQ等於 (=)NE不等於仟)GT大於()GE大於或等於(仝)LT小於(V)LE小於或等於(W )典型程序下面的程序計算數值 110的總和O 9500#1 = 0; 存儲和數變量的初值#2=1; 被加數變量的初值N1 IF#2GT 10GOTO 2; 當被加數大於10時轉移到N2#1=#1+#2; 計算和數#2=#2+#1; 下一個被加數GOTO 1; 轉到 N1N2 M30; 程序結束15.5.3 循環 (WHILE 語句 )在WHILE後指定一個條件表達式當指定條件滿足時,執行從DOiUEN之間的程序.否則,轉到EN酸的程序段.WHILE 條件表達

30、式 DO m; (m=1,2,3)如果條件不滿足如果條件滿足程序END m;當指定的條件滿足時,執行WHILES DOiU END之間的程許.否則,轉而執行END之後的程序段,這種指令格式適用於IF語句.DO後的號和END後的號是指定程序執行範圍的標號,標號值爲1,2,3.若用1,2, 3 以外的值會發生P/S報警No.126 .嵌套在DO-ENDf環中的標號(1到3)可根據需要多次使用但是,當程序有交叉重復循環 (DO範圍的重疊)時,出現P/S報警No.124.說明無限循環當指定DO而沒有指定 WHILE語句時,產生從DO END勺無限循環.處理時間當在GOT語句中有標號轉移的語句時,進行順

31、序號檢索反向檢索的時間要比正向檢索長用WHILE語句實現循環可減少處理時間.未定義的變量在使用EC或NE的條件表達式中, 空和零有不同的效果.在其它形式的條件表達式中,被 當作零 .典型程序下面的程序計算數值 1到10的總和 .O 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代碼調用子程序限制宏程序調用和子程序調用之間的差別宏程序調用 ( G65) 不同于

32、子程序調用 ( 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指定的用戶宏程序被調用數據(自變量)能傳遞到用戶宏程序體中 說明呼調在G65之後 ,用地址P指定用戶宏程序

33、的程序號當要求重復時,在地址L後指定從1到9999的重復次數省略L值時,認爲L等於1.使用自變量指定 , 其值被賦值到相應的局部變量 自變量指定可用兩種形式的自變量指定自變量指定I使用除了 G,L,O,N和P以外的字母,每個字母指定一次自變量指定H使用A,B,C和li, Ji,和K(i爲110).根據使用的字母,自動地決定自變量指定的類型 自變量指定 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不能在自變量中使用不需要指定的地址可以省

34、略 , 對應於省略地址的局部變量設為空 .地址不需要按字母順序指定但應符合字地址的格式但是,I, J和K需要按字母順序指定例:B_A_D_ J_K_ 正確B_A_D_J_I_不正確自變量指定n自變量指定n使用A,B,和C各1次,I,J,K1O次自變量指定n用於傳遞諸如三維坐標值的變 量.地址變量號地址變量號地址變量號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#32J

35、3#11I7#22K10#33I,J,K 的下標用於確定自變量指定的順序 ,在實際編程中不寫 限制格式任何自變量前必須指定 G65.自變量指定i、n的混合CNC內部自動識別自變量指定 I和自變量指定n 如果自變量指定I和自變量指定n混合指 定的話 ,後指定的自變量類型有效 小數點的位置沒有小數點的自變量數據的單位為各地址的最小設定單位 傳遞的沒有小數點的自變量的值 根據機床實際的系統配置變化在宏程序調用中使用小數點可使程序兼容性好調用嵌套調用可以嵌套4級,包括非模態調用(G65)和模態調用(G66)但不包括子程序調用(M98). 局部變量的級別局部變量嵌套從0到4級.主程序是0級 .宏程序每調

36、用1次(用G65或G66),局部變量級別加1前1級的局部變量值保存在 CNC中當宏程序中執行M99時,控制返回到調用的程序此時,局部變量級別減1;並恢復宏程序調用時 保存的局部變量 典型程序 (園周螺栓孔 )編製一個宏程序加工輪園上的孔園周的半徑爲I,起始角爲A,間隔爲B,钻孔數爲H,園的中心是(X,Y ).指令可以用絕對值或增量值指定.順時針方向钻孔時B應指定负值.調用格式G65 P9100 Xx Yy Zz Rr Ii Aa Bb Hh;X:園心的X坐標(絕對值或增量值指定)(#24)Y:園心的Y坐標(絕對值或增量值指定)(#25)Z: 孔深(#26)R: 快速趨進點坐標 (#18)F:

37、切削進給速度 ( #9)I:園半徑(#4)A: 第一孔的角度 (#1)B: 增量角 (指定负值時爲順時針 )( #2)H: 孔數(#11)宏程序調用程序O 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;宏程序 (被調用的程序 )O9100#3=#4003;存儲03組G代碼G81 Z#26 R#18 F#9 K0; (注) 钻孔循環注: 也可以使用 L0IF#3 EQ 90GOTO 1;在G90方式轉移到 N1#24=#5001+#24;計算園心的X坐標#25=#50

38、02+#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; 孔數-1END 1;G#3 G80;返回原始狀態的G代碼M99;變量的含義#3:貯存03組的G代碼#5:下個孔的 X 坐標#6:下個孔的 Y 坐標15.6.2 模態調用 (G66)一旦發出G66則指定模態調用,即指定沿移動軸移動的程序段後調用宏程序 G67取消模態調用 .說明調用在G66之後,用地址P指定

39、模態調用的程序號當要求重複時 , 地址 L 後指定從 1到9999的重複次數 .與非模態調用(G65)相同,自變量指定的數據傳遞到宏程序體中取消指定G67代碼時,其後面的程序段不再執行模態宏程序調用調用嵌套調用可以嵌套4級.包括非模態調用(G65)和模態調用(G66).但不包括子程序調用(M98). 模態調用嵌套在模態調用期間,指定另一個G66代碼,可以嵌套模態調用限制在G66程序段中,不能調用多個宏程序G66必須在自變量之前指定. 在只有諸如輔助功能但無移動指令的程序段中不能調用宏程序 .局部變量(自變量)只能在G66程序段中指定.注意,每次執行模態調用時,不再設定局部變 量.典型程序用宏程

40、序編製G81固定循環的操作加工程序使用模態調用爲了簡化程序,使用絕對值指定 全部的钻孔數據 .調用格式G65 P9110 Xx Yy Zz Rr Ff Ll;X:孔的X坐標(由絕對值指定)(#24)Y:孔的Y坐標(由絕對值指定)(#25)Z:Z點的坐標(由絕對值指定)(#26)R:R點坐標(由絕對值指定)(#18)F: 切削進給速度 (#9)L: 重複次數調用宏程序的程序Ooooi;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

41、;X0.0 Y80.0;G67;M30;宏程序 (被調用的程序 )O 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)同樣的方

42、法用該代碼調用宏程序說明在參數(No.6050到No.6059)中設置調用用戶宏程序(O9010到O9019)的G代碼號(從1到9999),調用戶宏程序的方法與 G65相同.例如,設置參數,使宏程序O9010由G81調用,不用修 改加工程序 , 就可以調用由用戶宏程序編製的加工循環 .參數號和程序號之間的對應關係程序號參數號O90106050O90116051O90126052O90136053O90146054O90156055O90166056O90176057O901860586059O 9019.、A-重複與非模態調用一樣,地址L可以指定從1到9999的重複次數 自變量指定與非調用模態

43、一樣,兩種自變量指定是有效的:自變量指定I和自變量指定H .根據使用的地 址自動地決定自變量的指定類型 .限制使用G代碼的宏調用的嵌套在G代碼調用的程序中,不能用一個G代碼調用多個宏程序這種程序中的G代碼被處理爲普 通G代碼.在用M或T代碼作爲子程序調用的程序中,不能用一個G代碼調用多個程序這種 程序中的G代碼也被處理爲普通 G代碼.15.6.4用M代碼調用宏程序在參數中設置調用宏程序的M代碼,與非模態調用(G650)的方法一樣用該代碼調用宏程序.說明在參數(No.6080到No.6089)中設置調用用戶宏程序(O9021到O9029)的M代碼(從1到 99999999),用戶宏程序能與G65

44、同樣的方法調用參數號和程序號之間的對應關係程序號參數號90206080902160819022608290236083902460849025608590266086902760879028608890296089與非模態調用一樣,地址L可以指定從1到9999的重複次數自變量指定與非模態調用一樣,兩種自變量的指定是有效的:自變量指定I和自變量指定H.根據使用的地址自動地決定自變量指定的類型 .限制調用宏程序的 M 代碼必須在程序段的開頭指定 .用G代碼調用的宏程序或用M代碼或T代碼作爲子程序調用的程序中,不能用於M代碼調用多個宏程序這種宏程序或程序中的M代碼被處理爲普通 M代碼.15.6.5用

45、M代碼調用子程序在參數中設置調用子程序(宏程序)的M代碼號,可與子程序調用(M98 )相同的方法用該代碼 調用宏程序 .說明在參數(No.6071到No.6079)中設置調用子程序的 M代碼(從1到99999999),相應的用戶宏程 序(O 9001到O 9009)可與M98同樣的方法用該代碼調用.參數號和程序號之間的對應關係程序號參數號O90016071O90026072O90036073O90046074O90056075O90066076O90076077O90086078O90096079重復與非模態調用一樣,地址L可以指定從1到9999的重複次數.自變量指定 不允許自變量指定 .M

46、代碼在宏程序中調用的 M代碼被處理爲普通的 M代碼.限制用G代碼調用的宏程序,或用M或T代碼調用的程序中,使用一個M代碼不能調用幾個子程序 這種宏程序或程序中的 M代碼被處理爲普通的 M代碼.15.6.6用T代碼調用子程序在參數中設置調用的子程序(宏程序)的T代碼,每當在加工程序中指定 T代碼時,即調用宏程序.說明調用設置參數No.6001的5位TCS=1,當在加工程序中指定 T代碼時,可以調用宏程序 O 9000.在加 工程序中指定的T代碼賦值到公共變量 #149.限制用G代碼調用的宏程序中或用M或T代碼調用的程序中,一個M代碼不能調用多個子程序.這種宏程序或程序中的T代碼被處理爲普通T代碼

47、.15.6.7 典型程序用M代碼調用子程序的功能,調用測量每把刀具的累積使用時間的宏程序.條件測量T01到T05各把刀具的累積使用時間.刀號大於T05的刀具不進行測量. 下面的變量用於貯存刀號和測量的時間 .#501刀號 1的累積使用時間#502刀號 2的累積使用時間#503刀號 3的累積使用時間#504刀號 4的累積使用時間#505刀號 5的累積使用時間當指定M03時,開始計算使用時間,當指定M05時,停止計算.在循環啟動燈亮期間 ,用系統變量 #3002測量該時間 .進給暫停和單段停止期間 ,時間不計算 ,但 要計算換刀和交換工作台的時間 .運行檢查參數設置參數No.6071中設置3,參數

48、No.6072中設置05.變量值設置變量 #501到#505中設置 0.調用宏程序的程序Ooooi;T01 M06;M03;M05; 改變 #501T02 M06;M03;M05; 改變 #502T03 M06;M03;M05; 改變 #503T04 M06;M03;M05; 改變 #504T05 M06;M03;M05; 改變 #505M30;宏程序 (被調用的程序 )O 9001 (M03);啟動計算的宏程序M01;IF#4120 EQ 0GOTO 9; 沒有指定刀具IF#4120 GT 5GOTO 9; 超出刀號範圍#3002=0; 計時器清 0N9 M03; 以正向旋轉主軸M99;O9

49、002 (M05); 結束計算的宏程序M01;IF#4120 EQ 0GOTO 9; 沒有指定刀具IF#4120 GT 5GOTO 9; 超出刀具範圍#500+#120=#3002+#500+4120; 計算累積時間N9 M05; 停止主軸M99;15.7 宏程序語句的處理爲了平滑加工,CNC預讀下一個要執行的 NC語句.這種運行稱爲緩衝在刀具半徑補償方式 (G41,G42 )中,NC爲了找到交點提前預讀 2或3個程序段的NC後語句.算術表達式和條件轉 移的宏程序語句在它們被讀進緩衝寄存器後立即被處理包含M00 , M01 , M02或M30的程序段,包含由參數No.3411到No.3420設

50、置的禁止緩衝的 M代碼的程序段,以及包含G31的程序 段不預讀 說明當下個程序段不緩衝時 ( 不緩衝的 M 代碼 , G31 等)在除了刀具半徑補償方式(G41,G42)以外的方式中,緩衝下個程序段(正常預讀一個程 序段 )當執行N1時,下個NC語句(N4)被讀入緩衝器.N1和N4之間的宏語句(N2,N3)在N1執行期間 被處理 在刀具半徑補償方式(G41, G42)中緩衝下個程序段當N1正在執行時,在下2個程序段(直到N5)中的NC語句被讀進緩衝寄存器在N1和N5之間 的宏語句(N2, N4)在N1的執行期間被處理在刀具補償半徑方式 C ( G41, G42)中,當下個程序段包含沒有移動的程

51、序段時當NC1程序段正在執行時,下兩個程序段(直到N5)中的NC語句被讀進緩衝寄存器由於N5 是不移動的程序段,不能計算交點此時,下面三個程序段(直到N7)中的NC語句被讀入在 N1和N7之間的宏語句(N2, N4和N6)在執行N1時被處理15.8用戶宏程序的存儲用戶宏程序與子程序相似 可用與子程序同樣的方法進行存儲和編程,存儲容量由子程序和宏 程序的總容量決定 .15.9 限制MDI 運行在MDI方式中可以指定宏程序調用指令但是,在自動運行期間,宏程序調用不能切換到 MDI方式 .順序號檢索用戶宏程序不能檢索順序號 .單程序段即使宏程序正在執行 , 在單程序段方式 , 程序段也能停止 .包含宏程序調用指令(G65,G66或G67)的程序段中,即使在單程序段方式也不能停止當設定SBM (參數No.6000的5位)爲1時,包含算術運算指令和控制指令的程序段可以停止單程序段運行用於調試用戶宏程序 注意,在刀具半徑補償C方式中,當宏程序語句中出現單 程序段停止時 , 該語句被認爲不包含移動的程序段 , 並且,在某些情況下 , 不能執行正確的補 償(嚴格地講 ,該程序段被當作指定移動距離爲 0的移動 .)任選程序段跳過在V表達式中間出現的/符號(在算術表達式的右邊,封閉在擴號中)被認爲是除法運算 符; 不作爲任選程序段跳過代碼

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论