馮大鵬
(佛山科學技術學院,廣東佛山528000)
宏程序在復雜軸類零件加工中的應用越來越廣泛。宏程序具有靈活、通用和智能的特點。宏程序編寫體現出設計人員工藝設計水平和編程能力,要求設計者不但要具備基本機械工藝數控編程知識,還要有深厚的數學建模和計算機語言知識,這無疑增加宏程序編寫難度。而在數控編程加工領域,具有上述綜合知識和能力的一線工程技術人員并不多。為此,可以借助一定的方法來提高技術人員的宏程序編程設計能力,程序流程圖就是其中的方法之一。無論采用哪一種數控系統軟件,不論是富有經驗的設計人員還是剛剛涉及宏程序的新手,都可以采用程序流程圖作為設計和檢查宏程序的依據。對于復雜零件的編程,流程圖的指導作用更是必不可少。如果能對流程圖的設計及其對宏指令編程的指導作用分析透切,將使設計者少走彎路,有助于編程人員順利編出準確合理的宏程序。
流程圖是程序設計者對解決零件加工工藝問題的方法、思路或算法的一種描述,和一般的程序流程圖相比,數控加工流程圖具有一般流程圖的基本結構:順序、選擇、循環。其中,循環結構是較為復雜的一種結構,數控加工所有的程序都離不開循環。由于數控加工的特點,加工循環又呈現出多樣性和復雜性。因此,在研究宏程序流程圖設計方法時,可從分析循環結構入手,探討數控加工流程圖的構成及變化規律。
數控加工流程圖設計的基本方法是根據加工工藝路線,提取出變量,根據變量變化規律,建立循環體并確定循環流出條件。
數控加工循環有單循環和多重嵌套循環模式。
不同的數控系統所定義的變量含義較廣,從程序設計角度來看,變量不過是程序中數據的臨時存放場所,是可以改變的數,需要通過賦值或代入方法來確定。在設計流程圖時,變量的選擇取決于加工工藝的需要,這就需要將零件加工路線列出來,分清楚哪些是程序編制過程中的變量,哪些是常量。一般來說,變量主要有以下幾類:切削余量變量,一般以單向遞減的形式出現,如果是復合循環指令內含宏程序,變量就會以指令所指定的切深遞減的形式表現出來;數學函數上的自變量,也是以遞減或遞增的形式出現的。有一些變量并不以增量形式變化,僅用于傳遞參數,如當宏表達式復雜時,出現用于過渡的中間變量。另外一些變量是用于控制加工精度、調整工藝參數,如步距變量、切削速度、切深變量,這些變量的形成與加工工藝有密切關聯。
單循環由以下要素構成:初始化;增量;條件表達式。初始化就是對循環控制變量賦初值;增量就是定義循環控制變量每循環一次后,按什么方式變化;條件表達式用于決定什么時候退出循環。在應用流程圖設計宏程序時,循環結構可以用if 語句與條件表達式聯合表示,也可以用while 語句與條件表達式聯合表示,其含義與一般程序設計中的循環語句類似,設計者可根據需要來決定使用哪一種方式。
從單循環的結構可以看出,循環實質上是指變量以增量方式變化,達到設定條件后就退出循環。單循環主要用于一些特殊加工,如切槽和切斷。
例如,切斷直徑為d的軸,采用間歇進刀方式,其切削速度與被加工直徑成正比。這種切斷模式有利于保持合理的切斷速度,防止切斷時出現的切削后角突然加大的現象。
采用單循環,其中變量d 反映了直徑遞減變化狀態,變量f反映了切削速度隨被加工直徑減少而變小的規律。單循環基本模式見圖1。

圖1 單循環基本模式
1.3.1 兩重嵌套循環的基本模式
一個循環語句的循環體內包含另一個完整的循環結構,稱為循環嵌套。一個程序中宏循環嵌套最多三重,不過數控加工多采用兩重嵌套循環,用于粗加工流程。
在兩重循環中,外循環的變量一般為切削余量變量,由于大多數零件的廓形都可以通過建立數學模型,用基本函數的形式表示出來,因此,內循環一般為函數自變量增量變化,通過方程變換得出因變量,計算出刀具插補運動坐標,其軌跡符合加工路線要求。自變量的取值范圍根據加工零件的尺寸來選定,在流程圖上,用賦初值作為變量取值的開始,用條件判斷語句結束循環。
在兩重循環的基本模式(圖2)中,外循環包含一個內循環。作為結束循環的測試,內循環和外循環各含有一個條件判斷結構,以此確定變量的變化范圍或取值條件。

圖2 兩重循環的基本模式
在工程實踐上,由于加工工藝需要,兩重循環還有多種變化形式。
1.3.2 嵌套循環中內循環的串聯設計
一個外層循環體中可以包含多個內層循環結構,即為內循環串聯。
圖3所示零件分別由非圓曲線A和B組成,如果以單一方向作為自變量進行增量循環,無論對于曲線A或曲線B而言,自變量的變化幅度太大,導致零件表面粗糙度相差較大,加工質量不佳。為解決這一問題,在設計流程圖時,曲線A以x為自變量,曲線B以z為自變量,在同一外循環中,自變量與因變量進行互換。因此,在這種自變量互換的內循環中,結束循環的判斷條件分別是x 和z坐標,此時,流程圖見圖4。

圖3 實例零件一

圖4 內循環串聯的基本模式一
加工圖5所示指數型超聲變幅桿時,AB段曲率變化較快,對放大性能影響較敏感,無論是粗加工還是精加工都需要較小步距和進給速度;而加工BC段時,為避免數控系統計算量加大,影響速度的提升和加工效率,需要采用較大的步距和進給速度。因此,在進行同一路線切削時,分段采用兩種步距和進給速度,BC段采用較大的步距,而AB段采用較小的步距。點B坐標要預先根據曲線斜率變化及實驗數據設置,其流程圖見圖6。

圖5 實例零件二

圖6 內循環串聯的基本模式二
當內循環串聯時,第一個內循環的流出應指向另一個內循環的起點,此時應注意防止刀位的突變,并與加工工藝相符。
1.3.3 復合循環指令中的內循環設計
這是嵌套循環的另一種表達方式。其中,宏程序作為一種內循環,而外循環由復合循環指令控制,如G71。通過對流程圖的分析,這是一種特殊的兩重嵌套循環,適合用于部分數控系統上,如華中數控系統,其中復合循環指令G71 承擔了類似于外循環的功能,此時,內循環的運動不限于作平行于z軸的進給運動。循環開始賦值是開始段號,轉跳條件是結束段號,見圖7。
1.3.4 內循環的流出設計
一般來說,內循環到達曲線終點,插補完成,需要回到下一層繼續加工。
在流程圖設計中,必然會遇到控制循環次數的問題,否則循環程序將無法結束,即陷入“死循環”。通常采用條件控制辦法,這種條件控制語句可能有一個,也可能有多個,并按一定順序出現。其出現原因有以下幾種:
(1)工藝參數的變換,包括步距、進給速度等。
(2)減少空刀,提高加工效率。
同時出現的多個條件控制語句在邏輯上存在著“或”的關系,即只要達到條件之一即可跳出內循環。因此,其出現順序應符合編程人員的設計需要。

圖7 復合循環指令中的內循環設計
例如,加工雙曲線輪廓零件,其直徑單調增加,材料毛坯為等徑軸。
由于宏程序形成的刀路實際上是等距線,與毛坯形狀相差大,為了避免空程走刀,循環中設置了提前轉跳條件——循環控制直徑,如果刀位超出該直徑,則提前結束循環,轉入下一層加工,其粗加工流程圖見圖8。

圖8 內循環的流出設計示例
當需要運用到三重循環或以上時,可考慮運用子程序調用的方式來實現,這樣可使流程圖簡化。即將最內層的循環做成一個子程序,通過上一層循環調用,這樣可解決所在程序嵌套數量的限制問題,同時也可以提高所在層程序的簡潔性。
在當前數控加工技術逐漸成熟的背景下,零件的數控加工工藝也趨于成熟和穩定,其程序流程圖的設計也將遵循一定的模式,只要把握好流程圖的設計規律,設計人員就不難設計出簡潔合理的流程圖,這將對編程人員應用宏指令編制復雜零件程序有較大的幫助,通過流程圖,可以認識數據或變量的流動狀態,確定循環的嵌套形式和轉跳路線,在應對不同的數控系統和語言規范時,思路更清楚,程序表達更合理。
【1】鄭英,劉讓賢,王艷.基于流程圖的加工中心模塊化數控編程[J].組合機床與自動化加工技術,2007(1):97-99.
【2】朱顯明,馬洪波.華中數控車削系統拋物線宏程序編制解析[J].CAD/CAM與制造業信息化,2010(1):104-105.
【3】陳銀清.宏程序編程在數控加工中的應用研究[J].機床與液壓,2009,37(5):42-45.
【4】王宏.數控宏程序編程的三個關鍵步驟[J].機械制造與自動化,2007(5):48-50.
【5】王衍,王桂平,馮睿.程序設計方法及在線實踐指導[M].杭州:浙江大學出版社,2010.