版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、15用戶宏程序雖然子程序對編製相同加工操作的程序非常有用,但用戶宏程序由於允許使用變量、算數和邏輯運算及條件轉移 ,使得編製相同加工操作的程序更方便,更容易 .可將相同加工操作編為通用程序 ,如型腔加工宏程序和固定加工循環宏程序,和調用子程序完全一樣 .變量普通加工程序直接用數值指定G代碼和移動距離;例如,G01和.使用用戶宏程序時 ,數值可以直接指定或用變量指定.當用變量時 ,變量值可用程序或用 MDI面板上的操作改變 .#1 =#2+ 1 00 ;G01 X#1 F300;說明 變量的表示數算機允勍使用變量名 ,用戶宏程序不行 .變量用變量符號( #)和後面的變量號指定 例如 ;#1表達式
2、可以用於指定變量號 .此時 ,表達式必須封閉在括號中 .例如 ;#1+#2-12變量的類型變量根據變量號可以分成四種類型變量號變量類型功能#0空變量#1 #33 局部變量被初始化為空局部變量該變量總是空 ,沒有值能賦給該變量 .局部變量只能用在宏程序中存儲數據,例如,運算結果.當斷電時,.調用宏程序時 ,自變量對局部變量賦值 .#100#199 公共變量公共變量在不同的宏程序中的意義相同.當斷電時 ,變量 #100#199#50 0 #999#1000 -系統變量初始化為空 .變量 #500#999 的數據保存 ,即使斷電也不丟失 . 系統變量用於讀和寫 CNC運行時各種數據的變化,例如,刀具
3、的 當前位置和補償值 .變量值的範圍局部變量和公共變量可以有0 值或下面範圍中的值 ;-1047 至U -0-29或,則發出 P/S 報警.-0-29 到 1047如果計算結果超出有效範圍 小數點的省略當在程序中定義變量值時 ,小數點可以省略例:當定義 #1=123; 變量#1 的實際值是 .變量的引用為在程序中使用變量值 ,指定後跟變量號的地址 .當用表達式指定變量時 ,要把表達釋放在擴 號中.例如 : G01X#1+#2F#3; 被引用變量的值根據地址的最小設定單位自動地舍入 .例如 :當GOOX# /;以1/1000mm的單位執行時,CNC把賦值給變量#1 ,實際指令值爲;. 改變引用變
4、量的值的符號 ,要把負號 ()放在 #的前面 .例如 : G00X#1;當引用未定義的變量時 ,變量及地址字都被忽略 .例如 :當變量#1的值是0 ,並且變量#2的值是空時,G00X#1 Y#2的執行結果爲 G00X0;.雙軌跡 (雙軌跡控制 )的公共變量對雙軌跡控制 ,系統爲每一軌跡都提供了單獨的宏變量.但是,根據參數和 6037的設定 ,某些公共變量可同時用於兩個軌跡 .未定義的變量當變量值未定義時 ,這樣的變量成爲 ”空”變量.變量#0總是空變量 ,它不能寫 ,只能讀.(a) 引用當引用一個未定義的變量時 ,地址本身也被忽略 .當#1=空當#1=0G90 X100 Y#1G90 X100
5、 Y#1G90 X100(b) 運算除了用 空賦值以外 , 其籲請況下當#1=空時G90 X100 Y0空 與 0 相同 .當 #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 GE#0 成立#1 GE#0不成立#1 GT #0 不成立#1 GT #0 不成立變量值的顯示當變量值是空白時 ,變量是空 .符號 * 表示溢出 (當變量的絕對值大於 9 時)或下溢出 (當變量的絕對
6、值小於時 ). 限制程式號 , 順序號和任選程序段跳轉號不能使用變量 .例如 :下面情況不能使用變量O#1/#N#15.2 系統變量系統變量用於讀和寫 NC 內部數據 , 例如 , 刀具偏置值和當前位置數據 . 但是 ,某些系統變 量只能讀 . 系統變量是自動控制和通用加工程序開發的基礎 .說明接口信號 是可編程機床控制器 ( PMC )和用戶宏程序之間交換的信號.表(a)接口信號的系統變量變量號功能#1000 #1015 把16位信號從PMC送到用戶宏程序變量#1000到#1015用於按位讀取信 號.變量# 1 032用於一次讀取一個 16位信號#1100 #1115 把16位信號從用戶宏程
7、序送到PMC.變量#1100到#1115用於按位寫信號.變#1132量#1132用於一次寫一個 16位信號 #1133變量#1133用於從用戶宏程序一次寫一個32位的信號到PMC.注意,#1133的值爲從一到+.(B-63503C-1).詳細情況 , 請見連接說明書 (刀具補償值用系統變量可以讀和寫刀具補償值表 (b) 刀具補償存儲器 C 的系統變量 補償號刀具長度補償 (H)幾何補償 磨損補償幾何補償刀具半徑補償 (D)償 磨損補償#11001 (#2201)#10001#13001#12001200(#2001)#11201(#2400)#10201400#11400(#2200)#134
8、00#12400#10400 當偏置組數小於等於 200 時,也可使用 #2001#2400. 宏程序報警 表 (c) 宏程序報警的系統變量 變量號功能#3000當變量#3000的值爲0200時,CNC停止運行且報警. 在表達式後為不超過 26 個字符的報警信息 .CRT屏幕上顯示報警號和報警信息,其中報警號爲變量#3000的值加上3000例:#3000=1(TOOL NOT FOUND).報警屏幕上顯示3001 TOOL NOT FOUND”刀具未找至U ).程序執行停止並顯示信息 .停止和信息顯示報警號功能#3006程序段中編程時 時間信息可以讀和寫 .在宏程序中指令 “ #3006=1(
9、MESSAGE)”; 時,程序執行前面程序段並停止 . 當最多至 26 個字符的信息 , 由控制輸入 ”( “和控制輸出 ”) “括住 ,在同一 , 信息被顯示在外部操作信息屏幕 .時間信息表(d)時間信息的系統變量 變量號功能#3002使在電源斷電時也保存該值 .當達至小時 ,該計時器的值返回至0.#3011該變量用於讀取當前的日期如,1994年 9月 8日表示爲 .(年/月/日). 年 /月/日信息轉換成十進制數 .例#3012如,該變量用於讀取當前的時間(時/分/秒). 時 /分/秒信息轉換成十進制數 .例#3001該變量為一個計時器 ,以 1 毫秒為計時單位 .當電源接通時 , 該變量
10、值復位為0.當達至 48 毫秒時 , 該計時器的值返回至 0.該變量爲一個計時器 ,當循環啟動燈亮時以一小時爲單位計時 . 該計時器即153456.下午 3 點 34 分 56 秒表示爲 自動運行控制 可以改變自動運行的控制狀態表(e)自動運行控制的系統變量(#3003)#3003單程序段輔助功能的完成0有效等待1無效等待2有效不等待3無效不等待當電源接通時, 該變量的值爲0.當單程序段停止無效時 , 即使單程序段開關設為 ON, 也不執行單程序段停止 .當不指定等待輔助功能(M,S和T功能)完成時,在輔助功能完成之前,程序執行到下列程序段.而且分配完成信號 DEN不輸出.表(f)自動運行控制
11、的系統變量(#3004)#3004進給暫停進給速度倍率準確停止0有效有效有效1無效有效有效2有效無效有效3無效無效有效4有效有效無效5無效有效無效6有效無效無效7無效無效無效當電源接通時, 該變量的值爲0當進給暫停無效時 :(1) 當進給暫停按鈕被按下時 ,機床在單段停止方式停止.但是, 當用變量#3003 使單程序段方式無效時 ,單程序段停止不執行 .(2) 當進給暫停按鈕壓下又松開時 , 進給暫停燈亮 ,但是,機床不停止 ;程序繼續執行 ,並且機床 停在進給暫停有效的第一個程序段 .當進給速度倍率無效時 ,總是 100%的倍率 ,而不管機床操作面板上的進給速度倍率開關的設 置.當準確停止檢
12、測無效時 ,即使那些不執行切削的程序段也不進行準確停止檢測(位置檢測 ).圖 (a) 攻絲循環中使用變量 3004 的例子SETTING 值SETTING值可用變量讀和寫二進制數變爲十進制數鏡像使用外部開關或 SETTING 操作設置的各軸鏡像狀態可以通過輸出信號(鏡像檢測信號 )讀出 鏡像執行時的鏡像狀態可以檢測(見川-節)得到的二進制值轉換成十進制 當用鏡像信號和SETTING兩者對某軸設置鏡像功能時,信號值和設定值相或撚後輸出 當控制軸以外的軸的鏡像功能接通時,它們也被讀進系統變量#3007.系統變量 #3007 是寫保護的系統變量 . 如果試圖在變量中寫數據 . 則發出 P/S116
13、報警 “WRITE PROTECTED VARIAABL”E. 已加工的零件數要求的零件數 (目標數 )和已加工的零件數 ( 完成數 )可以讀和寫表(g)要求的零件數和已加工的零件數的系統變量 變量號功能#3001已加工的零件數 (完成數 )#3902要求的零件數 (目標數 )注:不能用負值 模态信息 正在處理的程序段以前的模态信息可以讀出 表 (h) 模态信息的系統變量 例:當執行 #1=#4002;時,在#1 中得到的值是17,18 或 19.G代碼,則發出P/S報警.當前位置位置信息不能寫, 只能讀 .表(i)位置信息的系統變量變量號位置信號坐標系#5001 #5004工件坐標系工件坐標
14、系#5021 #5024當前位置機床坐標系#5041 #5044當前位置工件坐標系#5061 #5064跳轉信號位置#5081 #5084刀具長度補償值#5101#5104伺服位置誤差第 1 位代表軸號(從 1 到 4).如果閱讀模态信息指定的系統變量為不能用的變量 #5081#5088 存儲的刀具長度偏置值是當前的執行值在G31(跳轉功能)程序段中跳轉信號接通時的刀具位置貯存在變量 程序段中的跳轉信號不接通時 , 這些變量中貯存指定程序段的終點值 移動期間不能讀是指由於緩衝 (預讀 )功能的原因 ,不能讀期望值 . 工件坐標系補償 (工件零點偏移值 ) 工件零點偏移值可以讀和寫 .刀具補償值
15、運動時的讀操作不包含可能包含不可能可能不可能,不是後面的程序段的處理值.#5061 到 #5068 中.當 G31表(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工件零點偏移值#532
16、1第1軸G59工件零點偏移值#5324第4軸G59工件零點偏移值#7001第1軸工件零點偏移值 P1)#7004第4軸工件零點偏移值 P1)#7021第1軸工件零點偏移值 P2)#7024第 4 軸工件零點偏移值 P2)#7941第1軸工件零點偏移值 P48)#7944第 4 軸工件零點偏移值 P48)算术和邏輯運算表(a)中列出的運算可以在變量中執行 .運算符右邊的表達時可包含常量和 /或由函數或運算 符組成的變量表達式中的變量#j和#k可以用常數賦值.左邊的變量也可以用表達式賦值 . 表 (a) 算術和邏輯運算說明角度單位函數SIN, COS ASIN, ACOS TAN和ATAN的角度單
17、位是度.女口 90。30表示爲度.ARCSIN# i = ASIN #J取值範圍如下 :當參數(No. 6004#0) NAT位設爲0時,270。90。當參數(No. 6004#0) NAT位設爲1時,-90。90。當#j超出-1到1的範圍時 潑出P/S報警. 常數可替代變量 #j.ARCCOS#i=ACOS#j取值範圍從 180。 0。 .當#j超出-1到1的範圍時,發出P/S報警. 常數可以替代變量 #j.ARCTAN指定兩個邊的長度 ,並用斜杠 (/)分開 .#i=ATAN#j/#k;取值範圍如下 :當NAT位(參數,#0)設爲0時;0。到360。.例如當指定 #1=ATAN-1/-1時
18、,#1 =225。.當NAT位(參數,#0)設爲1時;-180。到180。.例如當指定 #1=ATAN-1/ -1時,#1=.常數可以代替變量 #j.自然對數 #i=LN#j注意 ,相對誤差可能大於 10-8.當反對數(#j)爲0或小於0時潑出P/S報警.常數可以代替變量 #j.指數函數 #i=EXP#j注意 ,相對誤差可能大於 10-8.當運算結果超過x 1047(j大約是110)時,出現溢出並發出 P/S 報警. 常數可以代替變量 #j.ROUND (舍入) 函數當算術運算或邏輯運算指令IF或WHILE中包含ROUND函數時,則ROUND函數在第1個小數位置四舍五入 .例:當執行 #1=R
19、OUND#2; 時, 此處 #2=, 變量 1 的值是 .當在NC語句地址地址中使用 ROUND函數時,ROUND函數根據地址的最小設定單位將指定 值四舍五入 .例:編製钻削加工程序 ,按變量 #1 和#2 的值切削 ,然後返回到初始位置.假定最小設定單位是1/1000mm, 變量#1 是, 變量#2是, 則,G00 G91 X-#1; 移動G01 X-#2 F300; 移動G00 X#1 +#2; 由於 +=,移動距離爲 ,刀具不返回到初始位置 .該誤差來自於舍入之前還是舍入之後相加必須指定G00 X-ROUND#1+ROUND#2以使刀具返到初始位置 .上取整和下取整CNC處理數值運算時,
20、若操作後產生的整數絕對直大於原數的絕對值時爲上取整對於負數的處理應小心 例如 :假設 #1=,#2=-.當執行#3=FUP#1時,賦給#3.當執行#3=FIX#1時,賦給#3.當執行#3=FUP#2時,賦給#3.當執行#3=FIX#2時,賦給#3.算術與邏輯運算指令的縮寫程序中指令函數時,函數名的前二個字符可以用於指定該函數(見川一節).例如:ROUND ROFIXFI運算次序函數乘和除運算(*、/、AND)加和減運算(+、-、OR、XOR)擴號嵌套括號用於改變運算次序括號可以使用5級,包括函數內部使用的括號當超過5級時,出現P/S 報警.限制擴號(,)用於封閉表達式注意,圓括號用於注釋運算誤
21、差運算時,可能出現誤差表(b)運算中的誤差運算平均誤差曰壬口壬人誤差類型a = b*cX 100X 100相對誤差(*1)a = b/cX 100X 109| - | aa- bX 10X 忖a = b+cX 100X 100(*2)a = b -c最小丨丨,丨_ 1bca = SINbx 10相對誤差取決於運算結果 使用兩類誤差的較小者. 3絕對誤差是常數,而不管運算結果 函數TAN執行SIN/COSX 10如果SIN、COS或TAN函數的運算結果小於 10 X 108或由於運算精度的限制不爲0的話,設定參數#1爲1,運算結果可以規算爲0.絕對昫差(*3)a = COSba= ATANb/c
22、X 10變量值的精度約爲 8位十進制數.當在加/減速中處理非常大的數時,將得不到期望的結果. 例:X 1051 el度(*4)注#1= #2=變量值變成:#1 =#2=此時,當計算#3=#2-#1;時,結果爲#3=.(該計算的實際結果稍有誤差,因爲是以二進制執行的.) 還應該意識到,使用條件表達式 EQ, NE, GE, GT, L和 LT時可能造成誤差. 例如:IF #1EQ#2的運算會受#1和#2的誤差的影響,由此會造成錯誤的判斷 因此應該用IF ABS #1-#2代替上述語句,以避免兩個變量的誤差 當兩個變量的差值未超過允許極限(此處爲時,則認爲兩個變量的值是相等的使用下取整指令時應小心
23、例如:當計算#2=#2*1000 ,式中#仁時,變量#2的結果值不是準確的 2,可能是1.這裡,當指定#3=FIX#2時,變量3的結果值不是2,而是此時,可先糾正誤差,再執行下取整,或 是用如下的四捨五入操作,即可得到正確結果#3=FIX #2+ #3=R0UND 2除數當在除法或TAN90中指定爲0的除數時,出現P/S報警宏程序語句和NC語句下面的程序段爲宏程序語句:包含算術或邏輯運算(=)的程序段包含控制語句 (例如,GOTO, DO, END)的程式段包含宏程序調用指令(例如用 G65, G66, G67或其它G代碼,M代碼調用宏程序)的程序段除了宏程序語句以外的任何程序段都爲NC語句說
24、明 與NC語句的不同即使置於單程序段運行方式,機床也不停止但是,當參數#5 SBM設定爲1時,在單程序段方式中,機床停止在刀具半徑補償方式中宏程序語句段不做爲不移動程序段處理(n-節)與宏程序語句有相同性質的C語句含有子程序調用指令(例如,用M98或其它M代碼或用T代碼調用子程序)但沒有除0, N或L 地址之外的其它地址指令的NC語句其性質與宏程序相同不包含除或L以外的指令地址的程序段其性質與宏程序語句相同轉移和循環在程序中,使用GOTO語句和IF語句可以改變控制的流向有三種轉移和循環操作可供使用:轉移和循環GOTO 語句 (無條件轉移 )IF語句(條件轉移:IFTHEN)WHILE語句(當時
25、循環)無條件轉移 (GOTO 語句 )轉移到標有順序號 n的程序段當指定1到99999以外的順序號時,出現P/S報警可用表達式 指定順序號 .GOT On ; n:順序號(1 到 99999)例:GOTO 1;GOTO#10;條件轉移(IF語句)條件表達式IF之後指定條件表達式.IF條件表達式GOTOn如果指定的條件表達式滿足時,轉移到標有順序號n的程序段如果指定的條件表達式不滿足,執行下個程序段 .如果變量#1的值大於10,轉移到順序號 N2的程序段.如果條件不滿足 IF#1GT 10 GOTO2程序如果條件滿足N2 G00 G91 X ;IF條件表達式THEN如果條件表達式滿足 ,執行預先
26、決定的宏程序語句 .只執行一個宏程序語句 . 如果#1 和#2 的值相同 ,0賦給 #3.IF#1EQ #2 THEN #3 = 0;說明條件表達式條件表達式必須包括算符 .算符插在兩個變量中間或變量和常數中間,並且用擴號 (, )封閉.表達式可以替代變量 .運算符運算符由 2 個字母組成 ,用於兩個值的比較 ,以決定它們是相等還是一個值小於或大於另一個 值.注意 ,不能使用不等號 .表 運算符運算符 含義EQ等於 (=)NE不等於(工)GT大於()GE大於或等於(仝)LT小於(V)LE小於或等於(W )典型程序下面的程序計算數值 110 的總和O 9500#1=0;存儲和數變量的初值#2=1
27、;被加數變量的初值N1 IF# 2 GT 10GOTO 2;#1=#1+#2;#2=#2+#1;當被加數大於 10 時轉移到 N2 計算和數下一個被加數轉到 N1 程序結束.當指定條件滿足時 ,執行從 DO 到 END 之間的程序 .否則,轉GOTO 1;N2 M30;循環 (WHILE 語句 )在 WHILE 後指定一個條件表達式 到 END 後的程序段 .WHILE 條件表達式 DO m; (m=1,2,3) 如果條件不滿足 如果條件滿足 程序END m;當指定的條件滿足時,執行WHILE從DO到END之間的程許否則,轉而執行END之後的程序 段,這種指令格式適用於IF語句 DO後的號和E
28、ND後的號是指定程序執行範圍的標號 ,標號 值爲1,2,3.若用1,2, 3以外的值會發生P/S報警嵌套 在 DOEND 循環中的標號 (1 到 3)可根據需要多次使用 但是,當程序有交叉重復循環 (DO 範圍的重疊)時,出現P/S 報警.說明 無限循環當指定DO而沒有指定 WHILE語句時 產生從DO到END的無限循環處理時間當在GOTO語句中有標號轉移的語句時,進行順序號檢索反向檢索的時間要比正向檢索長 用WHILE語句實現循環可減少處理時間未定義的變量在使用 EQ 或 NE 的條件表達式中 ,空和零有不同的效果 在其它形式的條件表達式中,空被當作零 典型程序下面的程序計算數值 1到10的
29、總和O0001#1=0;#2=1;WHILE #2 LE 10 DO 1;#1=#1+#2;#2=#2+1;END 1;M30;宏程序調用用下面的方法調用宏程序:宏程序調用非模態調用(G65)模態調用(G66 G67)用G代碼調用宏程序用M代碼調用宏程序用M代碼調用子程序用T代碼調用子程序限制宏程序調用和子程序調用之間的差別宏程序調用(G65)不同于子程序調用(G98),如下所述.用G65,可以指定自變量(數據傳送到宏程序).M98沒有該功能.當M98程序段包含另一個 NC指令(例如,G01 M98 Pp)時,在指令執行之後調用子程序相反,G65無條件地調用宏程序M98程序段包含另一個 NC指
30、令(例如,G01 M98 Pp)時,在單程序段方式中,機床停止相 反,G65機床不停止.用G65,改變局部變量的級別.用M98,不改變局部變量的級別.非模態調用(G65)當指定G65時,以地址P指定的用戶宏程序被調用.數據(自變量)能傳遞到用戶宏程序體中 說明呼調在G65之後,用地址P指定用戶宏程序的程序號.當要求重復時,在地址L後指定從1到9999的重復次數.省略L值時,認爲L等於1.使用自變量指定,其值被賦值到相應的局部變量自變量指定可用兩種形式的自變量指定 .自變量指定I使用除了 G,L,O,N和P以外的字母,每個字母指定 一次.自變量指定II使用A,B,C和Ii, J,和Ki(i爲11
31、0).根據使用的字母,自動地決定自變量指 定的類型自變量指定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次,IJK10次自變量指定n用於傳遞諸如三維坐標值的變 量.地址變量號地址變
32、量號地址變量號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混合指定的話,後指定的自變量類型有效小數點的位置沒有小數點的自變量數據的單位爲各
33、地址的最小設定單位傳遞的沒有小數點的自變量的值根據機床實際的系統配置變化在宏程序調用中使用小數點可使程序兼容性好調用嵌套調用可以嵌套4級,包括非模態調用(G65)和模態調用(G66)但不包括子程序調用(M98).局部變量的級別局部變量嵌套從0到4級主程序是 0 級 .宏程序每調用1次(用G65或G66),局部變量級別加1.前1級的局部變量值保存在 CNC中. 當宏程序中執行 M99 時,控制返回到調用的程序 .此時 ,局部變量級別減 1;並恢復宏程序調用 時保存的局部變量 .典型程序 (園周螺栓孔 )編製一個宏程序加工輪園上的孔 . 園周的半徑為 I, 起始角為 A, 間隔為 B, 钻孔數為
34、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:切削進給速度(#9)|:園半徑(#4)A:第一孔的角度(#1)B:增量角(指定负值時爲順時針)(#2)H:孔數(#11)宏程序調用程序O 0002G90 G92 X0 Y0 ;G65 P9100500 A0 H5;M30;宏程序 (被調用的程序 )O9100#3=#4003
35、; 存儲 03 組 G 代碼G81 Z#26 R#18 F#9 K0; (注) 钻孔循環注 : 也可以使用 L0IF#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;孔數-1END 1;G#3 G80 ;返回原始狀態的G代碼M99;變量的含義#
36、3:貯存03組的G代碼#5:下個孔的X坐標#6:下個孔的Y坐標模態調用(G66)一旦發出G66則指定模態調用,即指定沿移動軸移動的程序段後調用宏程序 G67取消模態調用.說明調用在G66之後,用地址P指定模態調用的程序號.當要求重複時,地址L後指定從1到9999的重複次數.與非模態調用(G65)相同,自變量指定的數據傳遞到宏程序體中.取消指定G67代碼時,其後面的程序段不再執行模態宏程序調用.調用嵌套調用可以嵌套4級.包括非模態調用(G65)和模態調用(G66).但不包括子程序調用(M98). 模態調用嵌套在模態調用期間,指定另一個G66代碼,可以嵌套模態調用.限制在G66程序段中,不能調用多
37、個宏程序.G66必須在自變量之前指定.在只有諸如輔助功能但無移動指令的程序段中不能調用宏程序局部變量(自變量)只能在G66程序段中指定.注意,每次執行模態調用時,不再設定局部變量. 典型程序用宏程序編製 G81固定循環的操作.加工程序使用模態調用.爲了簡化程序,使用絕對值指定 全部的钻孔數據.調用格式G65 P9110 Xx Yy Zz Rr Ff LI;X:孔的X坐標(由絕對值指定)(#24)Y:孔的Y坐標(由絕對值指定)(#25)Z:Z點的坐標(由絕對值指定)(#26)R:R點坐標(由絕對值指定)(#18)F:切削進給速度(#9)L:重複次數調用宏程序的程序O0001;G28 G91 X0
38、 Y0 Z0;G92 X0 Y0 ;G00 G90 ;G66 P9110 F500;G90 ;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;用
39、G 代碼調用宏程序在參數中設置調用宏程序的G代碼,與非模態調用(G65)同樣的方法用該代碼調用宏程序說明在參數到中設置調用用戶宏程序 (O9010到O9019)的G代碼號(從1到9999),調用戶宏程序 的方法與G65相同例如,設置參數,使宏程序O 9010由G81調用,不用修改加工程序,就可以調 用由用戶宏程序編製的加工循環 .參數號和程序號之間的對應關係程序號參數號O90106050O90116051O90126052O90136053O90146054O90156055O90166056O90176057O90186058O90196059與非模態調用一樣 地址L可以指定從1到9999的
40、重複次數.自變量指定與非調用模態一樣,兩種自變量指定是有效的:自變量指定I和自變量指定H .根據使用的地 址自動地決定自變量的指定類型 .限制使用 G 代碼的宏調用的嵌套在G代碼調用的程序中,不能用一個G代碼調用多個宏程序這種程序中的G代碼被處理爲普 通G代碼在用M或T代碼作爲子程序調用的程序中,不能用一個G代碼調用多個程序這種程序中的 G 代碼也被處理爲普通 G 代碼 .用M代碼調用宏程序在參數中設置調用宏程序的M代碼,與非模態調用(G650)的方法一樣用該代碼調用宏程序說明在參數到中設置調用用戶宏程序(O9021到O9029)的M代碼(從1到)用戶宏程序能與 G65同樣的方法調用 .參數號
41、和程序號之間的對應關係程序號參數號9020 60809021 60819022 60829023 60839024 60849025 60859026 60869027 60879028 60886089與非模態調用一樣 地址L可以指定從1到9999的重複次數.自變量指定與非模態調用一樣,兩種自變量的指定是有效的:自變量指定I和自變量指定H根據使用的地址自動地決定自變量指定的類型 .限制調用宏程序的 M 代碼必須在程序段的開頭指定 .用G代碼調用的宏程序或用M代碼或T代碼作爲子程序調用的程序中,不能用於M代碼調用多個宏程序這種宏程序或程序中的M代碼被處理爲普通 M代碼.用M代碼調用子程序在參數
42、中設置調用子程序(宏程序)的M代碼號,可與子程序調用(M98)相同的方法用該代碼調用宏程序說明在參數到中設置調用子程序的M代碼(從1到),相應的用戶宏程序(O9001到O9009)可與M98同樣的方法用該代碼調用參數號和程序號之間的對應關係程序號參數號O90016071O 90026072O 90036073O 90046074O 90056075O 90066076O 90076077O 90086078O 90096079重復與非模態調用一樣 地址L可以指定從1到9999的重複次數.自變量指定不允許自變量指定M代碼在宏程序中調用的 M代碼被處理爲普通的M代碼.限制用G代碼調用的宏程序,或用
43、M或T代碼調用的程序中,使用一個M代碼不能調用幾個子程 序這種宏程序或程序中的M代碼被處理爲普通的 M代碼.用T代碼調用子程序在參數中設置調用的子程序 (宏程序)的T代碼,每當在加工程序中指定T代碼時,即調用宏程序說明調用設置參數的5位TCS=1當在加工程序中指定 T代碼時,可以調用宏程序 O9000.在加工程序中 指定的T代碼賦值到公共變量 #149.限制用G代碼調用的宏程序中或用M或T代碼調用的程序中,一個M代碼不能調用多個子程序這種宏程序或程序中的T代碼被處理爲普通 T代碼.典型程序用M代碼調用子程序的功能,調用測量每把刀具的累積使用時間的宏程序條件測量T01到T05各把刀具的累積使用時
44、間刀號大於T05的刀具不進行測量. 下面的變量用於貯存刀號和測量的時間 .#501刀號 1的累積使用時間#502刀號 2的累積使用時間#503刀號 3的累積使用時間#504刀號 4的累積使用時間#505刀號 5的累積使用時間當指定 M03 時,開始計算使用時間 ,當指定 M05 時,停止計算 , 時間不計算在循環啟動燈亮期間 ,用系統變量 #3002 測量該時間 進給暫停和單段停止期間 但要計算換刀和交換工作台的時間 運行檢查參數設置參數中設置3,參數中設置05.變量值設置變量 #501 到#505 中設置 0.調用宏程序的程序Ooooi;T01 M06;M03;M05; 改變 #501T02
45、 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;O9002 (M05); 結束計算的宏程序M01;IF#4120 EQ 0GOTO 9; 沒有指定刀具IF#4120 GT 5GOTO 9; 超出刀具範圍#5
46、00+#120=#3002+#500+4120; 計算累積時間N9 M05; 停止主軸M99;宏程序語句的處理為了平滑加工 ,CNC 預讀下一個要執行的 NC 語句 .這種運行稱為緩衝 .在刀具半徑補償方式 (G41,G42)中,NC爲了找到交點提前預讀 2或3個程序段的NC後語句算術表達式和條件轉移 的宏程序語句在它們被讀進緩衝寄存器後立即被處理包含M00,M01 ,M02或M30的程序段,包含由參數到設置的禁止緩衝的 M 代碼的程序段 ,以及包含 G31 的程序段不預讀 說明當下個程序段不緩衝時 (不緩衝的 M 代碼 ,G31 等)在除了刀具半徑補償方式 (G41,G42)以外的方式中,緩
47、衝下個程序段(正常預讀一個程序段) 當執行N1時,下個NC語句(N4)被讀入緩衝器.N1和N4之間的宏語句(N2,N3)在N1執行期間 被處理 在刀具半徑補償方式(G41,G42)中緩衝下個程序段當N1正在執行時,在下2個程序段(直到N5)中的NC語句被讀進緩衝寄存器在N1和N5之 間的宏語句(N2,N4)在N1的執行期間被處理在刀具補償半徑方式 C (G41,G42)中,當下個程序段包含沒有移動的程序段時當NC1程序段正在執行時,下兩個程序段(直到N5)中的NC語句被讀進緩衝寄存器由於N5 是不移動的程序段,不能計算交點此時,下面三個程序段(直到N7)中的NC語句被讀入在N1 和N7之間的宏
48、語句(N2,N4和N6)在執行N1時被處理用戶宏程序的存儲用戶宏程序與子程序相似 .可用與子程序同樣的方法進行存儲和編程,存儲容量由子程序和宏程序的總容量決定 .限制MDI 運行在 MDI 方式中可以指定宏程序調用指令. 但是 ,在自動運行期間 , 宏程序調用不能切換到MDI方式 .順序號檢索 用戶宏程序不能檢索順序號 .單程序段 即使宏程序正在執行 ,在單程序段方式 ,程序段也能停止 .包含宏程序調用指令(G65,G66或G67)的程序段中,即使在單程序段方式也不能停止當設定SBM(參數的5位)為 1時,包含算術運算指令和控制指令的程序段可以停止 單程序段運行用於調試用戶宏程序注意,在刀具半
49、徑補償 C方式中,當宏程序語句中出現單程序段停止時 ,該語句被認為不包含移動的程序段,並且,在某些情況下 ,不能執行正確的補償 (嚴格地講,該程序段被當作指定移動距離為 0的移動 .)任選程序段跳過在V表達式中間出現的/符號(在算術表達式的右邊,封閉在擴號中)被認爲是除法運算符; 不作為任選程序段跳過代碼 .在EDIT方式中的運行設定參數NE8(參數的0位)和NER參數的4位)爲1,可對程序號8000到8999和9000到9999 的用戶宏程序和子程序進行保護 當存儲器全清時(電源接通時,同時按下RESET和DELET鍵), 存儲器的全部內容包括宏程序都被清除 .復位當復位時,局部變量和#10
50、0到#149的公共變量被清除爲空值設定CLV和CCM參數6001的第 7位和第 6位),它們可以不被清除 系統變量 #1000到#1133不被清除 復位操作清除任何用戶宏程序和子程序的調用狀態及 DO 狀態並返回到主程序 程序再啟動的顯示和M98 樣,子程序調用使用的 M,T代碼不顯示 進給暫停在宏程序語句的執行期間,進給暫停有效時 ,當宏語句執行之後機床停止當復位或出現報警時,機床也停止 V表達式中可以使用的常數值+到 +-到有效數值是8位(十進製),如果超過這個範圍,出現P/S報警. 外部輸出指令除了標準的用戶宏指令外 ,還可用下面的宏程序指令 它們被稱作外部輸出指令BPRNTDPRNT
51、POPENPCLOS 通過閱讀機 / 穿孔機接口 ,用這些指令輸出變量值和字符.說明按下列順序指定這些指令 : 打開指令 :POPEN 在指定數據輸出命令的順序之前 ,指定該指令 ,以建立與外部輸入 / 輸出設備的鏈接 . 數據輸出指令 :BPRNT 或 DPRNT指定需要的輸出數據 . 關閉指令 : PCLOS當全部數據輸出指令已經完成時,指定PCLOS以解除與外部輸入/輸出設備的鏈接.打開指令 POPENPOPENPOPEN 建立與外部輸入 /輸出設備的鏈接 .必須在數據輸出指令的順序之前指定.根據該指令CNC輸出DC2控制代碼.數據輸出指令 BPRNTBPRNTa #b c小數的有效位數變量字符BPRNT指令以二進製輸出字符和變量值.(1) 指定的字符根據輸出時的設定數據(ISO)轉換成代碼.可指定的字符如下 :字母 (A 到 Z)數字特殊字符 (*, /, +, -, 等)星號 (* )用空格輸出 .(2) 所有變量都以小數點存儲 .指定一個變量時 ,變量後要用擴號指定小數的有效位數.變量值處理成為 2 個字(32 位)數據.包括小數位 .輸出為二進製數據 ,從最高字節開始輸出 .(3) 當指定的數據輸出時,根據設定代碼(ISO)輸出EOB代碼.(4)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程合同管理规范解读
- 国际货物销售标准合同范本
- 2025年袜业仓储物流服务合同协议
- 公共烟道防串味改造协议
- 2025年房屋维修服务协议
- 阜阳学校考试题库及答案
- 法学大一考试题目及答案
- 高效变频电机项目可行性研究报告-商业计划书
- 2025年职业技能大赛(人工智能训练师)省赛决赛考试题库(含答案)
- web协议书是什么
- (2025年)食品安全知识竞赛题库及答案
- 江苏省南通市如皋市2026届高三上学期10月考试 语文试卷
- 2025版痛风性关节炎症状分析及护理方案
- 魅力赣州课件
- GB/T 18590-2025金属和合金的腐蚀点蚀评价指南
- 消防博物馆防火知识培训课件
- 叉车理论知识培训课件
- 制作黄鹤楼课件
- 数控加工中心操作员培训教材
- 2025-2030中国光纤电流互感器在智能变电站中的规模化应用报告
- 吐鲁番市中石油2025秋招面试半结构化模拟题及答案市场营销与国际贸易岗
评论
0/150
提交评论