數控車床a類宏程序講解?
1.1概述
(1)宏程序的分類
首先,讓我們下面說說宏程序的分類,A類和b類,首先在數控車床系統比較老的時候,我們的系統中就有A類宏,A類宏的格式是G65,現在已經基本淘汰了。隨著科技的發展和系統的升級優化,目前的數控系統大多支持B類宏程序。一般來說,B類宏程序是現在的一個主流發展趨勢,所以我們接下來的例子都是基于B類宏程序。
(2)宏程序的概念
簡單理解一下什么是宏程序。可以理解為宏程序是在數控系統中利用數學公式、函數等計算方法結合g代碼編制的程序,主要加工橢圓、曲線、各種大螺距螺紋、刀具軌跡等部分零件。隨著科學技術的發展,線性零件如橢圓、拋物線等。可以通過使用軟件或系統生成g代碼進行加工,而對于大螺距異形螺紋等零件的軟件還沒有達到成熟,所以我們可以了解到宏程序在加工中可以起到非常大的作用。可以彌補多年來數控車床編程大螺距螺紋的困難。
(3)宏程序的特點
賦予價值
在宏程序中,我們通常使用變量最多,例如:
#11它是一個變量。我們稱這個過程為賦值。換句話說,我們將等號后面的值1賦給#1。現在#1的值等于1,也可以理解為#1是代替值1的代號。
2.變量和應用
例如:#12(將值2賦給#1)
#21(將值1分配給#2)
#2#1(程序從上到下執行。想想現在#2的價值是多少?)
解決方法:程序執行第一步時,#1的值等于2,執行第二步時,#2的值等于1。執行第三步時,這里要注意。剛才在賦值過程中,等號后面的值賦給了等號前面,所以第一步賦值#1的時候,#1已經等于2了,所以執行第三步的時候,#2的值應該等于2,不是第二步。從這里我們可以看到,當程序中有相同的變量#時,后面的#代替了前面的#。
比如:#12
#13
最終結果#1的值應該等于3。所以后面代替了前面。
(4)變量的范圍
1.局部變量(#1-#33)
什么是局部變量?局部變量是局部的,或者可以理解為在單個程序中有效。斷電后,系統會自動復位。
2.公共變量(#100-#199,#500-#999)
公共變量和局部變量的區別在于,局部變量在局部或單個程序中有效,而公共變量是指如果一個程序既有主程序又有子程序,如果已經在主程序中賦值了,就可以在子程序享,不需要新賦值。和#100-#199與#500-#999的區別在于,前者斷電清零,后者不會清零,會一直保留在系統中。例如:
#500坦[15]
一旦賦值,#500會保存在系統中,下次可以直接調用使用。
3.系統變量(#1000-#17200)
系統變量在我們的機床系統中是用來存儲一些刀具補償數據參數之類的,可以不去管它,慎用。
總結:一般情況下,我們用#1-#33寫程序,有子程序的時候用#100-#199。
(5)宏程序中常用的計算
1.加法運算
示例:#12
#1#1^3那么#1的值等于2^35。
2.減法運算
示例:#13
#1#1-1然后經過計算,我們的值#1等于3-12。
3.乘法運算
在程序中用*代替乘法。
示例:#15
#2#1*2那么#2的計算值等于5*210。
4.除法運算
在程序中用/號代替除法。
例如:#110
#1#1/2,則#1的計算值等于10/25。
(6)常見的三角函數運算
1.正切值
例如#12*TAN[20]中,角在括號內。
(鄭玄)
例如,#13*SIN[3]同上
(宇軒)
例如,#1COS[15]
、ACOS、ATAN(倒三角形)
5.SQRT(數學中平方根的意思和數學中的根號一樣)
例如,#1SQRT[9],則#1的計算值等于3。
(7)宏程序的常用符號和含義
GT(大于)
GE(大于或等于)
LT(小于)
LE(小于或等于)
EQ(等于)
NE(不等于)
絕對值
和(和)
或(或)
(8)常用語法及應用
1.無條件躍遷GOTOn(n代表數值)
比如GOTO01這個程序段是指當程序執行到這個程序段時,無條件跳轉到程序段中的N1,執行N1之后的程序段。
M3S500G99
T101M08
GOTO10(這里執行程序時,直接跳轉到N10執行M30,跳過G0,所以這叫無條件跳轉,就像我們一般程序中的跳轉函數一樣)。
G0X100.Z100。
N10M30
2.條件跳轉IF[條件表達式]GOTOn
比如從這個程序中[#1GT15]GOTO10,我們理解如果滿足括號中的條件,就會執行下面的GOTOjump語句;如果不滿足括號中的條件,將不執行下面的GOTO跳轉,而執行下面的程序段。
讓讓我們簡單地寫一個程序:
M3S500G99
T101M08N10#130(將值30分配給#1)
IF[#1LT50]GOTO10(先判斷括號是否滿足條件,如果滿足執行跳轉,則不滿足執行下一步)。
M30
從這個程序中我們可以發現,當#130時,我們執行的是條件判斷。讓s判斷#1現在等于30,那么在雙括號里可以理解為30小于50,現在條件滿足。所以他會執行GOTO跳轉語句,跳轉到N10繼續執行)
3.強制賦值語句IF[條件表達式]THEN(執行語句)
例如,如果[#1gt20]那么#120(讓讓我們這樣理解這句話。如果#1大于20,那么#1等于20,這意味著,如上所述,如果滿足括號中的條件,將執行下面的THEN語句;否則,將不會執行下面的then語句。)
寫一個簡單的程序:
#13(將值3分配給#1)
#1#1-5(將計算值從#1-5重新分配到#1,即3-5-2,現在為#1-2)。
IF[#1LT0]THEN#10(強制賦值,如果#1小于0,則#強制等于0)
M30
讓讓我們分析一下上面的程序段。當我們完成減法運算時,#1的值已經等于-2,所以當我們執行強制賦值語句時,讓讓我們判斷括號中的條件是否滿足。如果-2小于0,則滿足條件,因此執行THEN語句,如果不滿足,則不執行THEN語句。)
4.條件判斷語句WHILE[expression]DOn(n是范圍為1-99的數值)
ENDn(n對應于初始n的值)
例如:WHILE[#12GT50]DO1
END1
在下面寫一段程序:
#160
WHILE[#1GT50]DO1
G0X#1
G1Z-20。F0.2
G0U1.Z1。
END1
M30
當條件判斷語句中括號內的條件滿足時,該程序執行DO1和END1之間的程序段,如果條件不滿足,則執行END1之后的程序段M30。
以上介紹的語法格式的用法以FANUCoi系列、廣都和三菱系統為例。西門子、寶源、新一代等系統以說明書為準!!
新代系統h代表什么?
新一代系統H代表H0010:調用子程序0010(該子程序應放在主程序后面,序號前有N:N0010)。
l調用子程序的次數
把這個子程序和主程序打包在一個程序里的好處是:子程序是特定的,特殊的,只在這個主程序里有效,安全性高,修改子程序方便。