陳 曦
(重慶機械電子技師學(xué)院,重慶 400037)
在數(shù)控編程教學(xué)中的宏程序教學(xué)
陳 曦
(重慶機械電子技師學(xué)院,重慶 400037)
宏程序可以編制出一些由數(shù)學(xué)表達式給出的曲線輪廓,它將是數(shù)控加工技術(shù)的主要發(fā)展趨勢。其最大的特點就是能比較輕松地編制非圓非直線曲線。宏程序的關(guān)鍵之處在于節(jié)點的選擇和控制,宏程序的優(yōu)點是遇到類似無法用普通插補描述的曲線時,把非常煩瑣的普通編程演變成一種比較固定的簡單的循環(huán)編程。宏程序的學(xué)習(xí)本身與實際使用結(jié)合得比較緊密,讓學(xué)生明白所學(xué)即所用,能以用代學(xué)的道理。
宏程序;插補技術(shù);直線(圓弧)逼近曲線法;節(jié)點的計算;變量自加
所謂宏程序在很多專業(yè)數(shù)控產(chǎn)品介紹中即為用戶宏程序的簡稱,其功能是把一組采用變量和演算式的命令所構(gòu)成的某一功能或者是動作集中存放在數(shù)控裝置中,而記錄這組命令的用戶宏程序體就是宏程序。一般說來,類似于一般的直線插補命令如G01XZ,宏程序也可以用一個特定的指令代碼來調(diào)用。在數(shù)控編程的時候由于普通數(shù)控指令只能進行直線和圓弧的插補功能(即G01、G02、G03),所以無法編制出像拋物線、橢圓等這樣的一些由數(shù)學(xué)表達式給出的曲線輪廓,只能用直線和圓弧去逼近這些曲線。
隨著數(shù)控技術(shù)與計算機輔助制造軟件的迅速發(fā)展,在數(shù)控編程方面,單一的直線與圓弧插補命令已不再能滿足各種型面的編程需要,越來越多的宏程序在數(shù)控編程加工中被應(yīng)用。宏程序?qū)⑹菙?shù)控加工技術(shù)的主要發(fā)展趨勢。
興趣是學(xué)習(xí)的最好老師。首先應(yīng)該考慮如何激發(fā)學(xué)生學(xué)習(xí)這門課程的興趣。這些學(xué)生對手動編程加工已經(jīng)比較熟練,一般的直線圓弧類工件的編程對于他們來講已經(jīng)不在話下,各種編程指令的組成及應(yīng)用中的種種注意事項也早已爛熟于心,但學(xué)生對數(shù)控編程也進入了一個相對“疲軟”的時期。這時候進行宏程序的學(xué)習(xí)就容易在心理上有一種“懶散”的態(tài)度,似乎覺得宏程序就如同現(xiàn)階段的編程一樣是一件非常容易的事情,從而不能提起十分的精神去面對這門新的知識。而事實上很多學(xué)生在學(xué)習(xí)宏程序的過程中會慢慢的發(fā)現(xiàn),宏程序的學(xué)習(xí)是一個系統(tǒng)的、循序漸進的過程,決不能掉以輕心。
要提高學(xué)生對宏程序的學(xué)習(xí)興趣不妨從介紹宏程序的優(yōu)勢特點入手。宏程序最大的特點就是能比較輕松地編制非圓非直線曲線,而學(xué)生現(xiàn)階段最引以自豪的卻是那些標準的曲線[1]。于是在學(xué)習(xí)之前我要求學(xué)生編制一個非圓曲線。如圖1。
圖1 非圓曲線
學(xué)生在習(xí)慣了用G02、G03、G01編程的情況下,一般都會選擇在該拋物線上找?guī)讉€點,然后用畫逼近圓的方法去找這樣的圓弧編程,然而他們在編程的過程中會發(fā)現(xiàn)這樣的圓弧既不好找,在編程的時候也很難計算節(jié)點,況且如果找的點越少在實際加工中誤差也就越大。當(dāng)學(xué)生在編制完該程序以后就會發(fā)現(xiàn)以前面所學(xué)的知識應(yīng)用于該題就會非常的頭痛,學(xué)生會迫不及待地想找到一種快捷而準確的方法來進行該曲線的編程,于是宏程序的概念就很自然地被引入。這樣不但激發(fā)了學(xué)生的學(xué)習(xí)興趣,而且在最初的理解學(xué)習(xí)過程中不會造成知識層面上的落差,能更快更好地去接受這個新的知識點。
宏程序雖然并不是一門新的課程,但是其知識原理和學(xué)習(xí)方法與一般的數(shù)控編程加工不同,具有比較強的獨立性。學(xué)生往往習(xí)慣性地將其與手工編程混在一起,一邊比較一邊學(xué)習(xí)。以華中系統(tǒng)為例,#0~#49當(dāng)前局部變量、#50~#199全局變量。學(xué)生一開始接觸到宏程序就會遇到宏變量和常量這些陌生的東西,由于以前并沒有學(xué)習(xí)過與其相關(guān)的知識,對于這些變量就會覺得很茫然,不知道從什么地方入手。事實上從#0到#599這600個變量中,真正能用得上的非常有限,所以讓學(xué)生全部理解和掌握這些變量的意義和用法完全沒有必要??梢灾灰笏麄兝斫夂褪褂?0至#100這些變量,一方面降低了對學(xué)生和學(xué)習(xí)知識點掌握的要求,另一方面,宏程序的學(xué)習(xí)本身與實際使用結(jié)合得比較緊密,可以讓學(xué)生明白所學(xué)即所用,以用代學(xué)的道理。
在學(xué)習(xí)宏程序之初,由于對這門新的課程不熟悉,再加上沒有相關(guān)知識作為鋪墊,學(xué)生往往會陷入迷茫的狀態(tài),很多學(xué)生由于找不著門路而大大降低了學(xué)習(xí)興趣,并慢慢產(chǎn)生厭學(xué)情緒。所以宏程序的課程不能一味由程序到程序地講述,而應(yīng)該在授課的最初階段就給學(xué)生展示出宏程序最核心的問題所在。首先讓學(xué)生通過自己對數(shù)控車床與普通車床操作的對比找出兩者的本質(zhì)區(qū)別——坐標和刻度,然后引入宏程序編程與一般手工編程各自的關(guān)鍵所在(見圖 2)[2]。
圖2 數(shù)控車床與普通車床操作比較
從圖2的比較中學(xué)生可以明白宏程序的關(guān)鍵之處在于節(jié)點的選擇和控制,雖然普通數(shù)控編程也是用點的坐標去表達走刀路線,然而其在路線的表達方面,宏程序的編制比起普通編程所采用兩種固定的表達方式來更為直觀、準確,并且靈活多樣。直觀——圓弧歸圓弧,曲線規(guī)曲線;準確——曲線的表達以該曲線的方程式為準;靈活多樣——宏程序可以編制任意的曲線,而普通編程只有圓弧和直線兩種表達樣式。
就宏程序本身的編制過程而言,并不是一個簡單的過程。與其他各種編程一樣,不可能一步或者在很短的時間內(nèi)就能掌握清楚。學(xué)習(xí)宏程序也不例外,必須從簡單的編程開始。以編程中最簡單的直線為例(如圖3)。
圖3 最簡單的直線編程
1號工件輪廓在其所在的坐標中的方程式為X=10并且要求在-10≤Z≤0的范圍內(nèi)。于是該輪廓加工程序如圖4。
圖4 1號工件輪廓加工程序
2號工件輪廓在其所在的坐標中的方程式為Z=-X并且要求在10≤X≤15的范圍內(nèi)。于是該輪廓加工程序如圖5。
圖5 2號工件輪廓加工程序
從圖5兩個工件輪廓的編程中可以發(fā)現(xiàn)對于最簡單的直線編程,無論是臺階、斷面還是斜面,所采用的一般普通編程方法都要比宏程序編程復(fù)雜很多。學(xué)生會想到,既然宏程序把這樣一個很簡單的問題復(fù)雜化,是不是完全沒有學(xué)習(xí)和使用的必要了呢?在教學(xué)中應(yīng)該對于學(xué)生這樣的想法有充分的思想準備。首先要讓學(xué)生明白學(xué)習(xí)宏程序不能否定也不能越過這復(fù)雜化的階段,任何編程知識都是一步一步從基本的直線編制學(xué)起,宏程序也不會例外。時時刻刻提醒學(xué)生學(xué)習(xí)宏程序的最終目是什么,也可以圖6這個例子給學(xué)生解釋。
圖6 用來編宏程序的曲線
圖6的曲線要求不得少于20個節(jié)點去逼近。這時用宏程序編制出來(見圖7)。
圖7 曲線的宏程序
同樣的圖形,同樣50個曲線上的節(jié)點,采用一般的編程方法則如圖8。
圖8 用一般方法編制的曲線程序
從上面兩種不同的編程方式的對比中學(xué)生很容易發(fā)現(xiàn),宏程序?qū)τ诜菆A曲線上節(jié)點的選取采用的是自加(即#1=#1+0.5)的形式,通過控制自加量(這里是0.5)來控制自加的次數(shù)從而達到控制節(jié)點數(shù)的目的,選取節(jié)點數(shù)的多少對編程沒有任何影響,非常方便。而在一般的編程方式中由于沒有類似于圓弧插補(G02/G03)這樣的非圓曲線指令,不得不采用近似直線或者圓弧去逼近該非圓曲線的方法來編制程序。從上面的第二種編程中可以看出,盡管只完成了要求的一半即只選取了10個節(jié)點來逼近曲線,但是其節(jié)點的計算已經(jīng)相當(dāng)煩瑣,如果隨著節(jié)點數(shù)量的不斷提升,這樣的計算量和編程難度就會越來越大,非常不利于程序的編制[3]。并且要提醒學(xué)生對于這種逼近相似法,選取的節(jié)點越多,加工的準確度就越高,所以并不能以減少節(jié)點數(shù)量的方法來提高第二種普通編程的速度降低編程難度。
講到這里,學(xué)生就會豁然開朗:宏程序的優(yōu)點就是遇到無法用普通插補描述的曲線時,把顯得非常煩瑣的普通編程演變成一種比較固定簡單的循環(huán)編程。這也就是將一個復(fù)雜的問題簡單化的過程,也是宏程序的關(guān)鍵點所在。
講到這里,學(xué)生基本上已經(jīng)將宏程序的關(guān)鍵重點及其特點掌握得差不多了,接下來學(xué)生不禁會出現(xiàn)這樣的問題:宏程序的編制如何開始?
不錯,與學(xué)習(xí)其他各種新知識中所遇到的問題一樣,對于理論方面的講授學(xué)生都能理解,但是一旦輪到他們自己實際去動手操作的時候,面對這樣散亂的知識點,他們很難將其有條理地結(jié)合起來。所以不妨給學(xué)生一個標準的模塊,他們按照這個模式走下去自然將各種方法和過程都理解清楚了。以圖9這個圓弧的宏程序編制過程為例。
圖9 用來編宏程序的圓弧
首先,寫出該曲線(圓弧)的表達式。雖然在圖8中已經(jīng)告訴了學(xué)生,但是要求學(xué)生盡量自己去寫出此表達式,并且必須將該表達式轉(zhuǎn)化為或者的形式,其中要強調(diào)取值范圍的重要性。以第二種表達式為例,從圖8不難發(fā)現(xiàn)Z必須在[-30,0]的范圍內(nèi)。曲線的表達式在宏程序的編制過程中相當(dāng)關(guān)鍵,一個好的表達式可以讓宏程序簡潔不少,也可以避免不少的錯誤[4]。所以,在教學(xué)的過程中一定要將表達式放在一個重要位置上去講解,并且可以多安排一些關(guān)于方程表達式的練習(xí),讓學(xué)生熟能生巧。
其次,賦值。這里所要講的賦值有兩層含義:第一,將表達式中的變量與系統(tǒng)中的變量相結(jié)合。以華中系統(tǒng)為例:從#0開始直到#599這個600個變量中,首先得給X和Z進行定義,如把#1作為X變量,把#2作為Z變量。第二,將系統(tǒng)中的變量賦值。作為真正意義上的賦值,該步驟中將實際的值賦給#1或者#2也就是X或Z參數(shù)。由于選擇了此種表達式,因此我們必須先給自變量Z進行賦值,從刀具的加工軌跡路線中不難看出,Z值的變化范圍是從0起始直到-30結(jié)束的這一過程。因此首先將#2也就是Z變量賦值:#2=0。
再次,描述條件與表達式。既然選擇了以Z為變量,就必須在描述條件的時候嚴格對其進行限制。即WHILE#2GE[-30]AND#2LE0。然后表達式跟上:當(dāng)然,數(shù)控系統(tǒng)是不會識別這樣的表達式的,所以先要將該表達式轉(zhuǎn)化為系統(tǒng)能夠識別的代碼。由于每一種數(shù)控系統(tǒng)的宏程序代碼編制不同就造成了各種運算式在優(yōu)先等級和算法上有著很大的區(qū)別。如圖10。
圖10 用宏程序編制拋物線
因此,宏程序的編制,代碼的轉(zhuǎn)換過程一定要扎扎實實地完成,千萬不可在中途尤其是在有分歧的算法上失誤,進而影響到節(jié)點的誤差乃至加工過程中的錯誤。
最后,使用逼近法編程和變量的自加過程。在上面的步驟中實現(xiàn)了節(jié)點的計算與表達,現(xiàn)在就是將這些節(jié)點連接起來從而實現(xiàn)對曲線的逼近。當(dāng)然我們可以讓學(xué)生自由去選擇采用圓弧或者直線去逼近,也只有通過實際加工以后,他們才能明白這兩種方法各自的優(yōu)劣之處。變量的自加過程是宏程序編制的最后一步,也是宏程序?qū)?jié)點數(shù)量控制的關(guān)鍵所在。
圖11 控制宏程序節(jié)點數(shù)量
當(dāng)然并不是節(jié)點越多越好,因為節(jié)點的計算是由系統(tǒng)自己完成的,如果節(jié)點過多必然會對系統(tǒng)造成拖累,從而減慢其速度,降低加工效率。
宏程序的教學(xué)其實并不是一件簡單的事情,因此在指導(dǎo)學(xué)生學(xué)習(xí)宏程序的時候萬萬不可急于一時,無論是在教學(xué)過程和學(xué)生自己理解的過程中都不可以操之過急,學(xué)生只有在正確地將過程和方法理解和掌握之后才不會茫然和困惑。
[1]楊曉蘭.華中系統(tǒng)宏程序編程[M].北京:機械工業(yè)出版社,2007.
[2]連賽英.?dāng)?shù)控編程技術(shù)[M].北京:機械工業(yè)出版社,2008.
[3]李善術(shù).高級數(shù)控機床技術(shù)[M].北京:機械工業(yè)出版社,2007.
[4]李芝.宏程序的編程與應(yīng)用[M].北京:機械工業(yè)出版社,2007.
(責(zé)任編輯 張佑法)
G712
B
1007-7111(2012)06-0062-04
2012-04-19
陳曦(1981—),男,講師,研究方向:機械制造加工。