李兆祥
(河南工業技師學院,河南 鄭州 450007)
自從基于NC和CNC編程語言出現以來,參數化編程方法一直在發展之中。以前參數化編程需要的設備相當昂貴,因為用戶必須擁有配置強大的計算機和功能強大的軟件。科技發展到今天,需要的唯一設備(計算機)是機床的CNC系統,并配備相對低廉的FANUC用戶B類宏程序。個人計算機或便攜式計算機確實方便,但不是絕對必要的。參數化編程也稱為類零件編程,顧名思義,是屬于同一類的一組相似零件,可通過使用變量數據而不是特定的尺寸數據或加工數據來進行編程。什么樣的數據可以是變量類型的數據呢?
程序中的任何數據都可以是變量數據。加工條件隨不同毛坯材料、不同的切削刀具材料、使用的機床(輕型或重型)、尺寸數據、表面粗糙度要求、公差等發生改變。當基本特征不變時,切削的深度、寬度、數量、主軸轉速、進給速度等也會發生改變。比如拿一個必須加工成一定長度和寬度的矩形為例。如果要加工許多矩形,那么這兩個尺寸特征就是變量特征。傳統的方法是對每個矩形都要編一個單獨的程序。最有效的方法,則是編一個適用于任何矩形的宏程序。通過替代長度變量和寬度變量,就可以重新使用這個程序。其優點也就顯而易見了。
生產中的快速轉換是宏程序中類零件的最大優點。開發宏程序比開發標準程序常常需要更多的時間,但花費這些時間往往是明智的選擇,尤其是如果經常使用宏程序的話。了解參數化編程具備的優點,有助于更好地判斷何時開發參數化程序合適還是何時開發標準程序合適。
(1)總體優點:同類零件間的快速轉換加工;縮短了程序檢查輔助時間;改進了產品質量;降低了整體生產成本。個別來講,在生產和編程領域更能體現出其優點。
(2)在生產領域的優點:減少了零件廢品;提高了零件的加工質量;由于加工標準化,降低了加工成本;提高了CNC機床的生產率;間接減少了維修費用。
(3)在編程領域的優點:編程時間急劇減少;編程錯誤減少或消除;所有相似零件的一致性;同類多組時更容易減少工作量。
何時進行參數化編程?為從參數化編程方法中獲益,采取的第一步是識別合適的零件,并不是每個編程作業都適合參數化編程。在決定參數化編程時應該權衡利弊,有如下的幾種情況適宜參數化編程:很多形狀相同而尺寸不同的零件;很多形狀相似的零件;包含刀具路徑重復的零件。
當涉及實際編寫參數化程序或任何其它宏程序時,編程員可根據個人偏好從中選擇。宏程序通常都是由經驗豐富的程序員編寫,他們已經形成了自己的某種編程風格。而且,大多數程序員的某些方法都在實際工作中經過檢驗。首要考慮的而且最重要的是要有一個目標。那么宏程序應該達到什么樣的目標呢?
接下來我們通過一個簡單但很全面的計劃開發宏程序的例子步驟來指導我們如何成功的開發一個宏程序。
(1)首先確定主要目標。很多編程員可能把目標定得太高,并且想要在一個宏程序中來實現。這樣可能好高騖遠,適得其反。在決定宏程序所要完成的目標后,估計其它的可能性,再放棄不切實際的部分目標。通常用兩個短的宏程序要比用一個長的宏程序好得多。
(2)提前制定好的計劃。好的計劃是成功的關鍵。首先由圖紙開始,為參數化程序研究類似的圖紙。確定哪些特征不變,哪些特征可能發生改變。不要忘記零件的材料、裝夾方法、使用的機床和刀具。試圖預測哪些特征可能會在后面的相似圖紙中存在。盡量想在前面,估計盡可能多的選擇。跟其他程序員請教他們的看法。盡管設定的目標正確,但較差的計劃也會產生較差的宏程序,要建立嚴格的標準。
(3)做一個大體的規劃。看到的才是可信的,畫出示意性的草圖來展示宏程序的全部特征。如果有必要使用細節,確定關鍵的位置,例如程序零點、間隙、刀具的起始點、偏置量、換刀點(如果需要)等。如果宏程序要求使用數學公式,那就應該包括所有的公式,如草圖里的幾何公式和用作測試特征點的測試公式。這樣的工作草圖,無論有沒有計算,都應該記錄到最近的日期,然后存檔作為以后的參考。
(4)確定刀具路徑方法。確定刀具如何靠近工件,切削工件,切削完成后離開的方法。考慮現在的零件還有以后的零件。是使用一把刀具還是有必要使用多把刀具?刀具路徑是否唯一?起始點是否安全?計算深度、寬度、步距寬度、走刀次數、鉆孔間隙、粗加工和精加工,以及其它的考慮因素都是怎樣的?收集能收集到的一切信息,包括加工條件,例如主軸轉速和進給速度。記住,包括的變量數據越多,參數化程序或宏程序的功能就越強大。但這樣將會使開發和校驗的過程更長。
(5)識別和組織變量數據。一旦收集了信息,識別和組織數據就是密不可分的。確定哪些局部變量將會在G65命令程序段中定義為自變量。不包括可以計算的數據,但包括可以從圖紙中讀出的數據,即使不直接用到它們。例如:宏程序可能需要在計算中用到圓弧半徑,可圖紙中給出的是直徑值。提供直徑,再在宏程序體中除以2作為自變量要比輸入半徑作為白變量好。注意要求輸入的是小數還是負數。如果可能就用相關的助記符變量賦值,例如:A(#1)用于輸入角度,R(#18)用于輸入半徑等。這并不總能實現,但是有總比沒有好。總是要在文件中注明所有變量的含義,以免以后容易忘記。
(6)設計程序流程。清晰的流程圖在宏程序開發階段是很有幫助的。很多程序員把流程圖看作程序開發的必經階段,甚至堅持使用。在宏程序中所有的編程目的都是可行的,例如循環,條件測試,分支,做決策等,在流程圖中可以用圖表表達。一旦流程圖設計好,就要使用不同的輸入條件和結果反復進行測試。宏程序應該可以在任何場合下工作。不要擔心測試中出現的不可能或不可測的狀況。如果流程圖邏輯失敗而且流程圖是正確的,那么宏程序需要重新設計和測試,這種錯誤在草案設計中經常出現。隨著經驗的增長,就會建立另一種設計程序流程的方法,稱為偽代碼設計,這是軟件工程師常用的方法。偽代碼設計是非常嚴格和細致的過程,通常用正規語言書寫,并需依次列出所有步驟要完成的工作。它不如流程圖方便,但是很實用。
(7)不對缺省值計數。在標準的CNC編程中,許多程序員記錄控制系統缺省值的個數,但不包括一些程序代碼,尤其是一些準備G代碼,例如他們記錄缺省的系統單元,但不包括程序中的G20和G21命令。同樣的也不包括G90和G91命令,和其它的一些代碼。總要記住所有的決策必須反映到宏程序中,不要想當然,也不要記錄系統缺省值的數目。
(8)編寫宏程序。這個階段要求將宏程序代碼書寫在紙張上、控制器中或計算機文件中,其目的是為了開發實際的加工程序。以相同的順序和邏輯使用在流程圖中或在偽代碼中的數據,并將它們轉換成FANUC宏程序代碼。把宏程序編寫成文件非常重要,但僅僅是好還是不夠的,只有編寫得最好的宏程序文件才能使用。將宏程序編寫成文件不僅僅是為了CNC操作員,對于任何使用宏程序的程序員來講是永久可用的文件。非常明顯的程序在今天將在很短的時間內消失,文件可以以注釋的形式做成內部文件,或以無格式的語言描述成外部文件。同樣重要和迫切的是,必須在宏程序執行前保存所有當前的程序設置,按需要在宏程序內改變設置,并在宏程序退出前恢復原始設置。這種方法是一種專業水平的標志,能使程序更加完美,實踐性更強。
參數化編程絕不是要代替其它的方法——只是其它方法的提高。在參數化的宏程序開發上花費時間是明智的投資。為使經濟高效,參數化編程帶來的益處必須是可預測和可測量的。
[1](美)Smid,P.(斯密德).FANUC CNC custom Macros:Programming Resources for FANUC Custom Macro B Users[M].U.S.A:McGraw-Hill,2004.
[2]北京發那科公司.FANUC機床操作手冊[M].北京:2005.
[3](印)S.K.Sinha.FANUC數控宏程序編程技術[M].北京:科學出版社,2011.