陳 曦
(重慶機械電子技師學院,重慶 400037)
在數控編程教學中的宏程序教學
陳 曦
(重慶機械電子技師學院,重慶 400037)
宏程序可以編制出一些由數學表達式給出的曲線輪廓,它將是數控加工技術的主要發展趨勢。其最大的特點就是能比較輕松地編制非圓非直線曲線。宏程序的關鍵之處在于節點的選擇和控制,宏程序的優點是遇到類似無法用普通插補描述的曲線時,把非常煩瑣的普通編程演變成一種比較固定的簡單的循環編程。宏程序的學習本身與實際使用結合得比較緊密,讓學生明白所學即所用,能以用代學的道理。
宏程序;插補技術;直線(圓弧)逼近曲線法;節點的計算;變量自加
所謂宏程序在很多專業數控產品介紹中即為用戶宏程序的簡稱,其功能是把一組采用變量和演算式的命令所構成的某一功能或者是動作集中存放在數控裝置中,而記錄這組命令的用戶宏程序體就是宏程序。一般說來,類似于一般的直線插補命令如G01XZ,宏程序也可以用一個特定的指令代碼來調用。在數控編程的時候由于普通數控指令只能進行直線和圓弧的插補功能(即G01、G02、G03),所以無法編制出像拋物線、橢圓等這樣的一些由數學表達式給出的曲線輪廓,只能用直線和圓弧去逼近這些曲線。
隨著數控技術與計算機輔助制造軟件的迅速發展,在數控編程方面,單一的直線與圓弧插補命令已不再能滿足各種型面的編程需要,越來越多的宏程序在數控編程加工中被應用。宏程序將是數控加工技術的主要發展趨勢。
興趣是學習的最好老師。首先應該考慮如何激發學生學習這門課程的興趣。這些學生對手動編程加工已經比較熟練,一般的直線圓弧類工件的編程對于他們來講已經不在話下,各種編程指令的組成及應用中的種種注意事項也早已爛熟于心,但學生對數控編程也進入了一個相對“疲軟”的時期。這時候進行宏程序的學習就容易在心理上有一種“懶散”的態度,似乎覺得宏程序就如同現階段的編程一樣是一件非常容易的事情,從而不能提起十分的精神去面對這門新的知識。而事實上很多學生在學習宏程序的過程中會慢慢的發現,宏程序的學習是一個系統的、循序漸進的過程,決不能掉以輕心。
要提高學生對宏程序的學習興趣不妨從介紹宏程序的優勢特點入手。宏程序最大的特點就是能比較輕松地編制非圓非直線曲線,而學生現階段最引以自豪的卻是那些標準的曲線[1]。于是在學習之前我要求學生編制一個非圓曲線。如圖1。

圖1 非圓曲線
學生在習慣了用G02、G03、G01編程的情況下,一般都會選擇在該拋物線上找幾個點,然后用畫逼近圓的方法去找這樣的圓弧編程,然而他們在編程的過程中會發現這樣的圓弧既不好找,在編程的時候也很難計算節點,況且如果找的點越少在實際加工中誤差也就越大。當學生在編制完該程序以后就會發現以前面所學的知識應用于該題就會非常的頭痛,學生會迫不及待地想找到一種快捷而準確的方法來進行該曲線的編程,于是宏程序的概念就很自然地被引入。這樣不但激發了學生的學習興趣,而且在最初的理解學習過程中不會造成知識層面上的落差,能更快更好地去接受這個新的知識點。
宏程序雖然并不是一門新的課程,但是其知識原理和學習方法與一般的數控編程加工不同,具有比較強的獨立性。學生往往習慣性地將其與手工編程混在一起,一邊比較一邊學習。以華中系統為例,#0~#49當前局部變量、#50~#199全局變量。學生一開始接觸到宏程序就會遇到宏變量和常量這些陌生的東西,由于以前并沒有學習過與其相關的知識,對于這些變量就會覺得很茫然,不知道從什么地方入手。事實上從#0到#599這600個變量中,真正能用得上的非常有限,所以讓學生全部理解和掌握這些變量的意義和用法完全沒有必要。可以只要求他們理解和使用#0至#100這些變量,一方面降低了對學生和學習知識點掌握的要求,另一方面,宏程序的學習本身與實際使用結合得比較緊密,可以讓學生明白所學即所用,以用代學的道理。
在學習宏程序之初,由于對這門新的課程不熟悉,再加上沒有相關知識作為鋪墊,學生往往會陷入迷茫的狀態,很多學生由于找不著門路而大大降低了學習興趣,并慢慢產生厭學情緒。所以宏程序的課程不能一味由程序到程序地講述,而應該在授課的最初階段就給學生展示出宏程序最核心的問題所在。首先讓學生通過自己對數控車床與普通車床操作的對比找出兩者的本質區別——坐標和刻度,然后引入宏程序編程與一般手工編程各自的關鍵所在(見圖 2)[2]。

圖2 數控車床與普通車床操作比較
從圖2的比較中學生可以明白宏程序的關鍵之處在于節點的選擇和控制,雖然普通數控編程也是用點的坐標去表達走刀路線,然而其在路線的表達方面,宏程序的編制比起普通編程所采用兩種固定的表達方式來更為直觀、準確,并且靈活多樣。直觀——圓弧歸圓弧,曲線規曲線;準確——曲線的表達以該曲線的方程式為準;靈活多樣——宏程序可以編制任意的曲線,而普通編程只有圓弧和直線兩種表達樣式。
就宏程序本身的編制過程而言,并不是一個簡單的過程。與其他各種編程一樣,不可能一步或者在很短的時間內就能掌握清楚。學習宏程序也不例外,必須從簡單的編程開始。以編程中最簡單的直線為例(如圖3)。

圖3 最簡單的直線編程
1號工件輪廓在其所在的坐標中的方程式為X=10并且要求在-10≤Z≤0的范圍內。于是該輪廓加工程序如圖4。

圖4 1號工件輪廓加工程序
2號工件輪廓在其所在的坐標中的方程式為Z=-X并且要求在10≤X≤15的范圍內。于是該輪廓加工程序如圖5。

圖5 2號工件輪廓加工程序
從圖5兩個工件輪廓的編程中可以發現對于最簡單的直線編程,無論是臺階、斷面還是斜面,所采用的一般普通編程方法都要比宏程序編程復雜很多。學生會想到,既然宏程序把這樣一個很簡單的問題復雜化,是不是完全沒有學習和使用的必要了呢?在教學中應該對于學生這樣的想法有充分的思想準備。首先要讓學生明白學習宏程序不能否定也不能越過這復雜化的階段,任何編程知識都是一步一步從基本的直線編制學起,宏程序也不會例外。時時刻刻提醒學生學習宏程序的最終目是什么,也可以圖6這個例子給學生解釋。

圖6 用來編宏程序的曲線
圖6的曲線要求不得少于20個節點去逼近。這時用宏程序編制出來(見圖7)。

圖7 曲線的宏程序
同樣的圖形,同樣50個曲線上的節點,采用一般的編程方法則如圖8。

圖8 用一般方法編制的曲線程序
從上面兩種不同的編程方式的對比中學生很容易發現,宏程序對于非圓曲線上節點的選取采用的是自加(即#1=#1+0.5)的形式,通過控制自加量(這里是0.5)來控制自加的次數從而達到控制節點數的目的,選取節點數的多少對編程沒有任何影響,非常方便。而在一般的編程方式中由于沒有類似于圓弧插補(G02/G03)這樣的非圓曲線指令,不得不采用近似直線或者圓弧去逼近該非圓曲線的方法來編制程序。從上面的第二種編程中可以看出,盡管只完成了要求的一半即只選取了10個節點來逼近曲線,但是其節點的計算已經相當煩瑣,如果隨著節點數量的不斷提升,這樣的計算量和編程難度就會越來越大,非常不利于程序的編制[3]。并且要提醒學生對于這種逼近相似法,選取的節點越多,加工的準確度就越高,所以并不能以減少節點數量的方法來提高第二種普通編程的速度降低編程難度。
講到這里,學生就會豁然開朗:宏程序的優點就是遇到無法用普通插補描述的曲線時,把顯得非常煩瑣的普通編程演變成一種比較固定簡單的循環編程。這也就是將一個復雜的問題簡單化的過程,也是宏程序的關鍵點所在。
講到這里,學生基本上已經將宏程序的關鍵重點及其特點掌握得差不多了,接下來學生不禁會出現這樣的問題:宏程序的編制如何開始?
不錯,與學習其他各種新知識中所遇到的問題一樣,對于理論方面的講授學生都能理解,但是一旦輪到他們自己實際去動手操作的時候,面對這樣散亂的知識點,他們很難將其有條理地結合起來。所以不妨給學生一個標準的模塊,他們按照這個模式走下去自然將各種方法和過程都理解清楚了。以圖9這個圓弧的宏程序編制過程為例。

圖9 用來編宏程序的圓弧
首先,寫出該曲線(圓弧)的表達式。雖然在圖8中已經告訴了學生,但是要求學生盡量自己去寫出此表達式,并且必須將該表達式轉化為或者的形式,其中要強調取值范圍的重要性。以第二種表達式為例,從圖8不難發現Z必須在[-30,0]的范圍內。曲線的表達式在宏程序的編制過程中相當關鍵,一個好的表達式可以讓宏程序簡潔不少,也可以避免不少的錯誤[4]。所以,在教學的過程中一定要將表達式放在一個重要位置上去講解,并且可以多安排一些關于方程表達式的練習,讓學生熟能生巧。
其次,賦值。這里所要講的賦值有兩層含義:第一,將表達式中的變量與系統中的變量相結合。以華中系統為例:從#0開始直到#599這個600個變量中,首先得給X和Z進行定義,如把#1作為X變量,把#2作為Z變量。第二,將系統中的變量賦值。作為真正意義上的賦值,該步驟中將實際的值賦給#1或者#2也就是X或Z參數。由于選擇了此種表達式,因此我們必須先給自變量Z進行賦值,從刀具的加工軌跡路線中不難看出,Z值的變化范圍是從0起始直到-30結束的這一過程。因此首先將#2也就是Z變量賦值:#2=0。
再次,描述條件與表達式。既然選擇了以Z為變量,就必須在描述條件的時候嚴格對其進行限制。即WHILE#2GE[-30]AND#2LE0。然后表達式跟上:當然,數控系統是不會識別這樣的表達式的,所以先要將該表達式轉化為系統能夠識別的代碼。由于每一種數控系統的宏程序代碼編制不同就造成了各種運算式在優先等級和算法上有著很大的區別。如圖10。

圖10 用宏程序編制拋物線
因此,宏程序的編制,代碼的轉換過程一定要扎扎實實地完成,千萬不可在中途尤其是在有分歧的算法上失誤,進而影響到節點的誤差乃至加工過程中的錯誤。
最后,使用逼近法編程和變量的自加過程。在上面的步驟中實現了節點的計算與表達,現在就是將這些節點連接起來從而實現對曲線的逼近。當然我們可以讓學生自由去選擇采用圓弧或者直線去逼近,也只有通過實際加工以后,他們才能明白這兩種方法各自的優劣之處。變量的自加過程是宏程序編制的最后一步,也是宏程序對節點數量控制的關鍵所在。

圖11 控制宏程序節點數量
當然并不是節點越多越好,因為節點的計算是由系統自己完成的,如果節點過多必然會對系統造成拖累,從而減慢其速度,降低加工效率。
宏程序的教學其實并不是一件簡單的事情,因此在指導學生學習宏程序的時候萬萬不可急于一時,無論是在教學過程和學生自己理解的過程中都不可以操之過急,學生只有在正確地將過程和方法理解和掌握之后才不會茫然和困惑。
[1]楊曉蘭.華中系統宏程序編程[M].北京:機械工業出版社,2007.
[2]連賽英.數控編程技術[M].北京:機械工業出版社,2008.
[3]李善術.高級數控機床技術[M].北京:機械工業出版社,2007.
[4]李芝.宏程序的編程與應用[M].北京:機械工業出版社,2007.
(責任編輯 張佑法)
G712
B
1007-7111(2012)06-0062-04
2012-04-19
陳曦(1981—),男,講師,研究方向:機械制造加工。