宏程序梯形槽怎麼編制? 什麼是宏程序,網上有人說:”凡是含有宏語句的程序可稱之為宏程序”,無覺得還不全面,應該是:程序中含有宏語句且帶有邏輯運算關系的程序才可以稱為宏程序它類似計算機高級語言,但是仍然屬于手工編程,是手工編程的擴展和延伸在這個計算機普及的年代很少編程人員使用宏程序了,不是因為計算機取代了宏程序,而是能夠熟練運用的人員越來越少了今天我們就來為大家講解在FANUC系統中如何使用宏程序,我來為大家科普一下關于宏程序梯形槽怎麼編制?下面希望有你要的答案,我們一起來看看吧!
什麼是宏程序,網上有人說:”凡是含有宏語句的程序可稱之為宏程序”,無覺得還不全面,應該是:程序中含有宏語句且帶有邏輯運算關系的程序才可以稱為宏程序。它類似計算機高級語言,但是仍然屬于手工編程,是手工編程的擴展和延伸。在這個計算機普及的年代很少編程人員使用宏程序了,不是因為計算機取代了宏程序,而是能夠熟練運用的人員越來越少了!今天我們就來為大家講解在FANUC系統中如何使用宏程序。
在數控編程中,宏程序編程靈活、高效、快捷。宏程序不僅可以實現像子程序那樣,對編制相同加工操作的程序非常有用,還可以完成子程序無法實現的特殊功能,例如,行腔加工宏程序、固定加工循環宏程序、錐面加工宏程序、螺旋銑削宏程序等。宏程序允許使用變量運算和邏輯運算及條件轉移等特殊用法。此外,利用宏程序還可以實現系統參數的控制,如,坐标系的讀寫、刀具偏置的讀寫等。
FNANUC宏程序的構成
(1) 變量
(2) 算數或邏輯運算的程序段
(3) 控制語句(例如:GOTO,WHILE,DO,END)的程序段
(4) 宏程序調用指令
FANUC數控系統變量表示形式為# 後跟1—4位數字,如:#1、#33等,變量種類有三種:
# 0 空變量:該變量總是空,沒有任何值能賦予該變量(這種不算)
#1—#33 局部變量:局部變量隻能用在宏程序中存儲數據,例如運算結果。當斷電時局部變量被初始化為空,調用宏程序時自變量對局部變量賦值。
#100—#999 公共變量:公共變量在不同的宏程序中的意義相同,當斷電時#100-#199初始化為空變量;#500—#999的數據保存,即使斷電也不會丢失。
#10000— 系統變量:系統變量用于讀和寫CNC運行時各種數據的變化,例如刀具的當前位置和補償值等
我們在宏程序編制中,最常用的是局部變量,極少數情況才會用到系統變量和公共變量。
算數和邏輯運算
功能 |
格式 |
定義 |
# i = # j |
加法 減法 成法 除法 |
# i =# j # K # i =# j - # K # i =# j * # K # i =# j / # K |
正弦 反正弦 餘弦 反餘弦 正切 反正切 |
# i =SIN[ # j ] # i =ASIN[ # j ] # i =COS[ # j ] # i =ACOS[ # j ] # i =TAN # j ] # i =ATAN[ # j ] |
平方根 絕對值 舍入 |
# i =SQRT[ # j ] # i =ABS[ # j ] # i =ROUND[ # j ] |
上取整 下取整 自然對數 指數函數 |
# i =FIX[ # j ] # i =FYP[ # j ] # i =LN[ # j ] # i =EXP[ # j ] |
或 異或 與 |
# i =[ # j ] OR # K # i =[ # j ] XOR # K # i =[ # j ] AND # K |
從BCD轉為BIN 從BIA轉為BCD |
# i =BIN[ # j ] # i =BCD[ # j ] |
※紅色部分為常用運算關系,其餘太深奧我也沒用過!
說明
函數SIN、COS、ASIN、ACOS、TAN、和ATAN的角度單位是度。如90º30ˊ表示為90.5度。
運算符
運算符 |
含義 |
EQ |
等于(=) |
NE |
不等于(≠) |
GT |
大于(>) |
GE |
大于或等于(≥) |
LT |
小于(<) |
LE |
小于或等于(≤) |
※這哥幾個很重要,宏程序中經常用到!
我在宏程序編程時習慣用WHILE DO循環:
下面我們就用個簡單程序為大家講解宏程序的運用方法,之前我們用子程序的格式加工過圖示(1)中的Ø30沉孔,還是采用D10銑刀分層加工,每層加工2毫米,看看使用宏程序如何實現,見圖示(2)
圖示(1)
圖示(2)
以上程序要有兩點疑問說明:
1、#1為何是(LT)小于10而不是LE(等于)10呢,因為程序中先執行的是Z軸指令,如果用LE,當#1=10時還是滿足條件,#1=10 2,最終Z值就加工到了Z-12,所以我們選用LT運算符。
2、程序中Z[-#1],為何不用負數#1=#1-2進行邏輯運算,因為在WHILE語句中,負值需要用中括号括起來,如WHILE[#1GT[-10]]DO1;我覺得麻煩就選用了正值編程,純屬個人習慣。
在使用WHILE DO語句編制宏程序時,條件語句可以并列使用也可以嵌套使用,但嵌套使用最多允許三級嵌套,且不允許交叉嵌套,DO1對應的是END1;DO2對應為END2;DO3對應END3,如圖示(3),上圖編制的程序屬于一級嵌套。
圖示(3)
宏程序其實就是使用宏指令代碼的運算方式,通過條件語句進行控制的程序編制。在FANUC系統中除了WHILE DO條件語句還有其他轉移和循環語句。
在FANUC系統在程序中,除了WHILE DO語句,另外一個比較常用的就是,IF…GOTO語句,他的用法與WHILE DO編程思路相同,隻是編程格式有所不同。
IF語句(條件轉移,如果、、、)
GOTO語句(無條件轉移,跳轉到、、、常見搭配IF使用,也可單獨使用)
WHILE DO語句(當、、、時循環)
圖示(2)的程序也可以改用IF…GOTO來編程,見圖示(4)
圖示(4)
使用IF GOTO編程時需在跳轉的程序段前加程序段落号,GOTO 10就是跳轉到N10程序段,GOTO 100就是跳轉到N100程序段。
這兩種條件跳轉格式在宏程序編制中最常用,FANUC中還有其他宏程序,如:
非模态調用(G65)
模态調用 (G66,G67)
這種宏程序調用使用複雜且不常用,我們不做過多講解,感興趣的老鐵可以留言,詳細介紹。
在編程中使用宏程序的目的不是增加程序的編制難度,而是是簡化程序。能不能用好宏程序取決于編程員的思路及邏輯關系是否清晰,下節我們為大家分享幾種使用宏程序的加工案例,敬請關注!以上就是我們今天所講内容,由于系統版本不同,程序格式可能不太一樣,有任何疑問或錯誤歡迎老鐵們留言指正!
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!