曾 策 謝國平 戴廣乾 林玉敏 邊方勝
(中國電子科技集團公司第二十九研究所,四川 成都 610036)
微波印制電路板作為一種高價值產(chǎn)品,廣泛應(yīng)用于軍民電子設(shè)備[1]。由于微波電路布局的特殊需求,微波印制電路板通常含有異形孔、異形槽等復(fù)雜結(jié)構(gòu),需要通過高精度的數(shù)控鉆銑床設(shè)備進行復(fù)雜的異形加工[2]-[4]。新產(chǎn)品的數(shù)控加工程序需要通過仔細的人工審查和干預(yù),確保文件的正確性,避免加工缺陷產(chǎn)生[5]。該步驟通常需要將制作的數(shù)控程序加載到設(shè)備上模擬運行,占用大量的設(shè)備,影響生產(chǎn)效率。在產(chǎn)品打樣或小批量多品種生產(chǎn)情形下,微波印制電路板拼板尺寸小,僅占設(shè)備工作臺面1/4甚至更小的面積,單次加工時間短,操作人員頻繁執(zhí)行上下料操作,生產(chǎn)效率低下[6]。
為提高小板面微波印制電路板的數(shù)控加工生產(chǎn)效率,提出了數(shù)控加工工序“拼板”的作業(yè)模式,即將多張相同或不同的微波印制電路板臨時組合,盡量鋪滿整個鉆銑床的工作臺,一次性上料裝夾,并用一個組合的數(shù)控程序連續(xù)完成加工。新的作業(yè)模式上下料次數(shù)成倍減少,設(shè)備利用率和操作人員效率都可明顯提升。然而實施這種新的作業(yè)模式需要將多個已有的數(shù)控程序快速、準(zhǔn)確組合拼板,形成一個新的數(shù)控程序。經(jīng)過試驗已有的CAM軟件操作步驟煩瑣,不能很好地滿足提升效率的要求,因此決定開發(fā)一款面向數(shù)控拼板加工需求的專用軟件,實現(xiàn)小批量多品種微波印制板高效率的數(shù)控加工。
本文首先分析數(shù)控加工拼板軟件的功能需求,然后設(shè)計了關(guān)鍵軟件算法,最后介紹了軟件的開發(fā)方案及應(yīng)用成效。
為提升小批量多品種微波印制板數(shù)控加工效率,提升產(chǎn)品質(zhì)量,基于拼板加工的思路對作業(yè)模式進行了重新設(shè)計。新的作業(yè)模式下數(shù)控加工程序的準(zhǔn)備工作流程如圖1所示。
圖1 拼板數(shù)控加作業(yè)流程
基于以上工作流程,數(shù)控程序拼板軟件的核心功能項設(shè)計如下。
(1)加工仿真功能。通過實時的可視化仿真快速確認(rèn)單獨或拼板的數(shù)控加工程序的正誤;新制作的數(shù)控加工程序代碼極易存在低級錯誤(如刀具半徑補償錯誤、過切等)導(dǎo)致加工報廢,需要通過高效率的仿真工具快速發(fā)現(xiàn)、定位及修改包含錯誤的加工程序代碼。
(2)快速拼板功能。對數(shù)控加工程序做平移、旋轉(zhuǎn)、鏡像等變換,使待加工的產(chǎn)品定位到設(shè)備工作臺不同的位置,并盡量布滿整個加工臺面,然后合并數(shù)控程序。此外需要調(diào)整程序段執(zhí)行順序,減少頻繁換刀等多余設(shè)備動作,優(yōu)化執(zhí)行效率。
此外,本文基于Seib&Meyer 5000(SM5000)程序格式進行算法及軟件開發(fā),僅需作適應(yīng)性修改即可兼容其他格式。
實現(xiàn)數(shù)控加工仿真及圖形化編輯等核心功能,首先需要對數(shù)控程序代碼行進行參數(shù)解析。典型的數(shù)控加工程序如圖2所示,代碼行可分為注釋行、開始行、加工行(鉆孔或銑切)、偏移行(OFFSET)、結(jié)束行等5類。
圖2 典型SM5000格式數(shù)控程序結(jié)構(gòu)
加工行和偏移行為數(shù)控程序的主體,本軟件采用如圖3的流程進行解析:首先將代碼行的坐標(biāo)文本和指令文本進行分離,再進一步解析坐標(biāo)(X-Y)及加工指令和偏移指令。此外,需要進一步提取換刀指令Tn(n為刀具號)、刀補指令G40/G41/G42、進給速度F、圓弧半徑R、字符鉆孔指令M97/M98的字符串等。
圖3 加工行和偏移行解析流程
代碼行的文本解析過程為復(fù)雜的字符串操作,軟件設(shè)計中采用正則表達式技術(shù)實現(xiàn)格式校驗和信息提取。正則表達式是特定的字符組合形成“規(guī)則字符串”,用來表達對字符串的驗證、查找、替換、提取等邏輯操作。在分離坐標(biāo)與指令文本的解析操作中,采用正則表達式如下:
該正則表達式驗證程序行是否為“X*Y*”形式的坐標(biāo)格式,并同時將坐標(biāo)文本和指令文本分別提取為兩組字符串。對提取的坐標(biāo)字符串應(yīng)用“X(-?[0-9]*.?[0-9]*)”等正則表達式,進一步提取X/Y坐標(biāo)值。同樣通過構(gòu)建適當(dāng)?shù)恼齽t表達式,在指令文本部分逐一將其余加工指令和偏移指令提取出來,形成結(jié)構(gòu)化數(shù)據(jù)。在代碼行解析過程中正則表達式的匹配錯誤信息代表代碼行存在問題,可根據(jù)錯誤提示內(nèi)容快速進行代碼的修改。
銑切加工仿真功能需要計算并顯示刀具的實際移動路徑,提高加工仿真的真實度,便于快速發(fā)現(xiàn)數(shù)控程序各種隱蔽錯誤。數(shù)控程序一般依據(jù)產(chǎn)品的機械層坐標(biāo)轉(zhuǎn)換得到,需要利用刀具半徑補償指令(G41/G42)使機床在在印制板輪廓加工過程時自動將刀具路徑向產(chǎn)品外部分向偏離一個刀具半徑的距離。刀具半徑補償技術(shù)是CNC系統(tǒng)的關(guān)鍵技術(shù)之一,為了獲得精確的銑切邊緣,外形輪廓逆時針銑切,內(nèi)部輪廓順時針銑切,如圖4所示。
圖4 銑切路徑與刀具半徑補償示意
刀具半徑補償算法的目標(biāo)是獲得刀具實際的軌跡。一般銑切路徑由順序相連的直線或圓弧構(gòu)成,因此根據(jù)前后兩段軌跡的連接方式不同,將軌跡計算分為“直線-直線”“直線-圓弧”“圓弧-直線”“圓弧-圓弧”4種情形分別設(shè)計算法,如圖5所示。
圖5 銑切軌跡四種轉(zhuǎn)接模式
每一種軌跡轉(zhuǎn)接模式下,分兩種情況計算刀具軌跡,如圖6所示:當(dāng)兩段軌跡在交點A處夾角γ≤180°時為“相交型”,兩段軌跡平移刀具半徑Rt之后形成的新軌跡存在交點B,兩段新軌跡在點B完成轉(zhuǎn)接;當(dāng)γ>180°為“補充型”,需補充一段圓弧C1-C2連接兩段新軌跡。
下面以圖6的兩種典型情況舉例給出計算步驟及公式。
首先計算兩段軌跡的夾角γ,先分別計算第一段和第二段軌跡與X軸的夾角α、β,然后得到:
(1)當(dāng)時,計算兩段新軌跡的交點。以圖6(A)“圓弧-圓弧”轉(zhuǎn)接為例,中利用三角形余弦定理解得:
(2)當(dāng)時,以圖6(B)“直線-直線”轉(zhuǎn)接為例,計算點、的坐標(biāo),并在軌跡中插入一段以A為圓心、半徑為Rt的圓?。?/p>
圖6 軌跡轉(zhuǎn)接的相交型(A)與補充型(B)
以上兩個例子為基礎(chǔ),進一步考慮補償方向(左補償G41、右補償G42)和圓弧方向(順時針G2、逆時針G3)的不同,即可將完成所有組合情況下刀具半徑補償路徑計算。
坐標(biāo)線性變換算法實現(xiàn)數(shù)控程序的平移、旋轉(zhuǎn)、縮放及X/Y軸鏡像四項功能。
(1)平移變換算法:如需平移坐標(biāo)增量為(10.000,20.000),通過增加一層嵌套偏移指令“X10.000Y20.000M50M30”實現(xiàn)程序位置的整體平移;
(2)旋轉(zhuǎn)變換算法:如需以坐標(biāo)零點為中心旋轉(zhuǎn)角度,分別將加工代碼行和偏移代碼行的X/Y坐標(biāo)做如下線性變換:
(3)縮放變換算法:如需對加工X和Y尺寸分別作比例為縮放變換,將加工代碼行和偏移代碼行的X/Y坐標(biāo)做如下線性變換:
(4)X/Y軸鏡像變換像算法:分別將加工代碼行和偏移代碼行的X/Y坐標(biāo)做如下變換。需注意對包含路徑銑切的數(shù)控程序做鏡像變換時,為滿足外輪廓逆時針銑和內(nèi)輪廓順時針銑的要求,還需將銑切路徑反向,也就是交換每段路徑的起點和終點,其中包含的圓弧代碼(G2/G3)和半徑補償代碼(G41/G42)不變。
為便于與MES系統(tǒng)及CAM軟件的集成,本項目選擇Windows下的Microsoft Visual Studio作為開發(fā)環(huán)境。圖形編程采用功能豐富且面向快速編程的.NET Framework GDI+,它是基于類的一種托管代碼應(yīng)用程序編程接口(API),支持2D矢量圖形和位圖的處理和顯示,代碼運行安全高效,可滿足本項目的需求。程序使用面向?qū)ο蠹夹g(shù)開發(fā),軟件開發(fā)中涉及的核心類及相關(guān)枚舉/結(jié)構(gòu)數(shù)據(jù)對象如圖7,其中NCP為數(shù)控加工程序?qū)ο?,通過遞歸包含關(guān)系構(gòu)建層次化的數(shù)控加工程序;NCBlock為程序行代碼對象,包含了坐標(biāo)、加工指令、補償指令等信息;Router為銑切加工的運行模擬器,通過輸入程序代碼行(NCBlock)序列,輸出刀具加工路徑圖形對象;NCMath為靜態(tài)類,實現(xiàn)平面坐標(biāo)系轉(zhuǎn)換等幾何運算共性函數(shù)。
圖7 軟件開發(fā)核心對象及關(guān)系設(shè)計
數(shù)控加工拼板軟件界面如圖8所示,分為“文件列表”“程序樹”“代碼窗”及“加工仿真圖形”幾個部分,配合上下文菜單和快捷按鈕實現(xiàn)第1節(jié)中提出的功能需求。
圖8 數(shù)控拼板軟件界面
加工仿真圖形給出了刀具精確的實際路徑,如圖9所示。由于軟件對數(shù)控程序進行了詳細的結(jié)構(gòu)解析并以程序樹的方式展示,可快速實現(xiàn)錯誤定位和修正。需要對數(shù)控加工作漲縮控制,輸入X/Y縮放比例值即可完成。加工仿真、檢查確認(rèn)及修改工作完全在計算機端以離線方式操作,無須在設(shè)備上進行的模擬運行檢查,節(jié)約大量設(shè)備時間。
圖9 加工仿真呈現(xiàn)的典型路徑銑切錯誤
將多個小尺寸板面的數(shù)控加工程序拼板組合為單個加工程序的軟件操作步驟為:
(1)通過鼠標(biāo)拖動仿真圖形,平移或旋轉(zhuǎn)各子程序到臺面適當(dāng)位置,盡量鋪滿整個設(shè)備臺面;
(2)合并子程序為單個數(shù)控文件;
(3)復(fù)制偏移指令代碼段到所有刀具代碼段,減少設(shè)備執(zhí)行中的換刀次數(shù);
(4)按刀具號自動重排代碼段,進一步減少換刀次數(shù)。
針對以上4個步驟軟件均設(shè)計了“一鍵式”功能,一般能在2分鐘左右完成全部操作,并通過圖形仿真實時查看拼板效果,確保數(shù)控程序正確無誤。
新開發(fā)的數(shù)控加工拼板軟件從三個方面提升數(shù)控鉆銑床設(shè)備效率:
(1)數(shù)控加工程序的檢查確認(rèn)全部離線操作,不占用設(shè)備時間;
(2)拼板加工將產(chǎn)品上下料裝夾次數(shù)減少為原來的1/n(n為拼板數(shù)量);
(3)連續(xù)加工多個產(chǎn)品,數(shù)倍減少了設(shè)備執(zhí)行刀具拾取/放還的無效動作時間。如圖9所示,拼板之后連續(xù)加工量成倍增加,設(shè)備和人員的時間離散度下降,連續(xù)性增加。實際應(yīng)用表明,在典型情況下拼板加工相比逐一加工的整體時間縮短43%,設(shè)備效率提升達75%。此外,作業(yè)人員在設(shè)備運行期間有充足的時間完成下一輪加工的拼板操作,甚至可以同時照料2臺設(shè)備運行。
針對“小批量多品種”類型的微波印制電路板數(shù)控加工生產(chǎn)效率低、數(shù)控程序易出錯等問題,通過開發(fā)數(shù)控加工拼板軟件,并應(yīng)用拼板加工的作業(yè)模式得到了很好的解決。在此基礎(chǔ)上將進一步實現(xiàn)與MES(制造執(zhí)行系統(tǒng))的集成,實現(xiàn)拼板的產(chǎn)品組合的自動規(guī)劃,進一步提升數(shù)控加工的智能化水平。
圖10 拼板加工提升設(shè)備效率示意