王婷,李歡
(1.武昌工學院智能制造學院,湖北武漢430070;2.湖南中大創遠數控裝備有限公司研發部,湖南長沙 410199)
數控裁床作為服裝加工的重要生產設備,其性能決定了服裝制品的生產質量和生產效率[1]。而自動化裁剪系統是數控裁床實現自動加工的核心,直接影響設備的使用性能。目前國外著名的服裝自動化裁剪系統有美國格柏(Gerber)AccuMark 系統,加拿大派特(PAD)PAD System系統和法國力克(Lectra)Modaris系統等,國外廠商的產品性能普遍較為優良,并且功能比較完善[2]。但此類系統核心技術均掌握在西方發達國家手中,顯然不利于國內服裝企業長遠發展,所以國內學者和相關企業也進行了相關研究。肖宇明皓[3]提出了一種二維高性能圓弧插補算法。史偉民等[4]提出了基于模擬退火蟻群混合算法的裁床樣片切割路徑優化方法。馬虎亮等[5]提出了圓弧-線段一階混合曲線及其插補算法。戈立遠控股有限公司設計開發了服裝CAD軟件系統,經緯公司開發了一套針對箱包的CAD軟件系統[6]。就目前國內研究現狀而言,對數控裁床系統的理論插補算法以及對CAD系統的研究較多,但針對集設計與制造一體化的數控裁床生產問題解決方案的研究較少。
因此,本文作者設計一套集設計與制造為一體的數控裁床加工系統??紤]數控裁床的運動速度控制和加工軌跡插補算法將直接影響加工效率和加工精度[7],在系統開發時,將上述兩點作為研究要點。關于運動控制問題,根據設計的CNC加工數據生成特點,通過大量試驗掌握數控裁床運動規律,制定各段軌跡的運行規則,有效提高加工效率和運動精度。關于插補問題,提出將插補算法和數據棧相結合的方法,經實踐進行檢驗,實際輸出的輪廓軌跡能夠按照理論軌跡準確進行。

圖1 系統運行流程
圖1所示為所設計的數控裁床加工系統運行流程。目前主流繪圖軟件均支持惠普HPGL協議格式文件的數據輸出,HPGL圖形文件是為繪制繪圖儀產品而建立的一套指令系統,其中PLT拓展名最為常用,此類型格式輸出的數據主要以坐標點的方式出現[8-9],本文作者設計的系統就選擇此類型數據進行處理。在圖1流程圖中共有兩條主線:一條主線為利用C++語言的類特性,通過設計CCurve類,實現解析PLT文件里的字符數據,并基于微軟基礎類庫(Microsoft Foundation Classes,MFC)平臺,實現CCurve模型的坐標點軌跡繪制;另一條主線為根據CCurve中模型數據,生成CNC加工數據以及插補數據,通過仿真以及實際加工迭代優化,最終得到理想加工效果。
根據PLT數據特性抽象出數控裁床系統走刀使用的數據模型,利用C++類特性,將數據轉化為坐標點數據及曲線屬性集合,形成設計的CCurve類,最終實現PLT文件解析并生成曲線數據模型。
基于Visual Studio 2013的MFC開發Windows桌面應用程序SpCutter。該系統實現圖像顯示、圖層轉換、文本添加、旋轉、移動和刪除等功能。文中重點闡述圖像顯示的實現原理。
基于MFC平臺的CView基類實現圖形繪制。CView基類為用戶定義的視圖類提供基本功能[10],設計派生類GmCutterView。在GmCutterView類中重寫父類(CView)的純虛函數OnDraw,在OnDraw中使用CDC的成員方法MoveTo及LineTo實現對CCurve模型的坐標點軌跡(m_pointList)繪制。其中關鍵代碼如下:
INT_PTR nSize = m_pointList.GetSize();
if(nSize <= 0) return;
pDC->MoveTo(m_pointList.GetAt(0));
if (nSize == 1){
pDC->LineTo(m_pointList.GetAt(0));
}else{
int i;
for (i = 1;i pDC->LineTo(m_pointList.GetAt(i)); } } 為驗證系統實際使用效果,特別是為驗證系統處理復雜圖形能力,將如圖2(a)所示的PLT圖形文件載入系統平臺。圖2(a)為系統加載PLT模型效果圖,可以看出圖形文件可完整、清晰地顯示。為進一步驗證圖形輪廓構成,將該馬頭外輪廓進行局部放大,如圖2(b)所示,可清晰地看出外輪廓是大量黑色小點依次連線而形成,這些黑色小點就是通過解析PLT圖形文件轉換而成的坐標點數據,組成圖形輪廓的直線和曲線就是由相連坐標點構成的。 圖2 圖形顯示系統測試圖 CNC加工數據的生成是完成數控裁床加工的關鍵核心[11-12]。在數控裁床實際加工過程中,理想狀態為實際加工軌跡沿著圖像顯示輪廓進行加工。而數控裁床加工軌跡形成是靠筆繪和切割等工序實現的,因此在加工過程中還需進行刀具轉換。 為滿足數控裁床加工需求,通過設計的CCurve類,生成CNC加工數據。CCurve類的主要成員變量信息如表1所示。 表1 CCurve類成員變量 在表1中,CCurve類成員變量m_pointList表示解析PLT數據轉化成的曲線坐標點集,成員變量m_nPenNumInPlt表示原始PLT圖形數據包含的筆號,成員變量m_nCurveType表示實際加工筆號。其中,原始PLT筆號與加工筆號存在對應關系,即原始PLT筆號等于0或者1時,加工刀號為筆繪;原始PLT筆號大于1時,加工刀號為切割。 圖3 軌跡生成的圖形解釋 所設計的數控裁床加工軌跡生成原理為根據CCurve類坐標點集m_pointList中當前點距下一點在x軸和y軸方向上需要的相對步進量,以及當前段矢量相對上一段矢量的角度變化量,計算出每段線段對應的CNC加工數據相關參數。圖3所示為CNC加工數據生成原理的幾何圖形解釋。 圖3中線段分別由3個相鄰坐標點P0(x0,y0)、P1(x1,y1)和P2(x2,y2)連線組成。根據加工軌跡生成原理,假設點P0為當前點,點P1為下一點,則在x軸方向相對步進量為兩點x軸坐標之差,同理,在y軸方向相對步進量為兩點y軸坐標之差。而點P2為P1下一點,則其兩軸方向相對步進量計算方法也和點P0到點P1計算方法保持一致。 圖3中各矢量線段與x軸夾角也是關鍵參數,在第3.2節的運動速度控制中會重點使用該參數。以圖3中矢量線段為例,P0P1與x軸夾角θ0計算方法如式(1)所示,P1P2與x軸夾角θ1計算方法如式(2)所示,則P1P2相對于P0P1的轉角變化量如式(3)所示。需要特別指出的是,式(1)和式(2)適用于兩點之間x坐標不相等時。當兩點的x坐標相等時,判定為該矢量線段與x軸垂直。 (1) (2) Δθ=θ1-θ0 (3) 根據上述CNC加工數據生成原理,并結合運動速度控制關鍵因素,設計CNC系統數據結構成員變量如表2所示。 表2 CNC數據結構成員變量 由圖3可知,數控裁床加工的實際矢量軌跡為連續多個矢量線段組成的曲線。為保證加工精度,在加工過程中需要在各矢量線段之間進行加減速處理,從而保持合理加工速度以滿足數控裁床的加工精度與效率需求。 傳統的矢量線段加減速處理方法是以每一段矢量線段為研究對象,并使得每段的起始和末尾的速度都為0,這勢必造成在加工過程中電動機的啟停頻繁、進給速度緩慢以及效率低下。如何根據各矢量線段之間的變化情況對速度進行加減速控制,是提高數控裁床加工性能的重要研究方向。 本文作者根據各矢量線段均為直線這一特性,提出一種直線加減速控制方法。經過在數控裁床平臺的反復測試驗證,發現只有控制好前一段矢量線段完成加工時的結束速度才不會影響下一段矢量的控制精度,否則就會出現加工軌跡抖動的情況。而軌跡抖動情況會隨著矢量線段轉角變化量的增大而增多。因此,研究轉角變化量的變化和各矢量線段結束速度之間的關系有積極意義。 通過大量試驗,發現矢量線段的轉角變化量Δθ對應的最大結束速度差別很大,并且在一定范圍內的轉角變化量Δθ對應最大結束速度趨同。表3所示為試驗所得的速度控制列表,表中速度級別對應的具體速度適用于STM32F103單片機通過定時器輸出脈沖給雷賽專用驅動器M542,并控制57HS04型步進電動機。此表可為各矢量線段之間運動速度控制提供重要參考。 表3 速度控制 本文作者提出的直線加減速數控裁床運動控制方法,由于在不同矢量線段銜接過程中,并沒有將所有線段的結束速度降為0,而是根據速度控制列表進行分類處理,在保證加工精度的基礎上提高了加工效率。 插補算法是數控裁床系統的關鍵核心[13]。插補運算具有實時性,每個插補中間點的計算精度影響系統的控制精度,中間點的計算速度又影響著系統的控制速度[14-15]。本文作者設計一種將數控裁床插補算法與數據棧相結合的方式,進一步提高數控裁床的加工效率。 圖4所示為單段矢量線段的插補算法示意。該示意圖表示微觀上的兩點之間的微粒線段,依據矢量線段在兩軸方向的長短分別命名為長軸和短軸。 圖4 插補算法示意 在STM32F103單片機控制步進電動機工作時,每一步均需要判定應該走長軸還是兩軸同時走斜對角。具體的判定方法:設sAxisL和sAxisS分別為長軸和短軸的步進量行程,整段矢量線段的傾角為A,則tanA=sAxisS/sAxisL。i、j分別為長軸和短軸已走的步數,當前實際已走矢量的角度θ滿足tanθ=j/i。當tanθ F=i×sAxisS-j×sAxisL (4) 當F>0時,沿兩軸斜對角運動;當F≤0時,沿長軸運動。實現該插補算法的核心代碼如下所示: j = 0; for(i = 0;i if(i*AxisS - j*AxisL >0){ StepXY;} else{StepL;j++;} } 通過插補運算得到的加工數據最終需要電動機具體執行,而如何高效地將插補數據轉變為插補運動是影響加工效率的關鍵。在上述插補運算過程中,插補運算與插補運動是相互獨立進行的,且運算時會產生極大的數據量。因此,設計一種數據棧用來處理插補數據。該數據棧的主要數據讀寫邏輯:當??臻g有剩余時往棧內存寫數據,棧剩余空間減小,直至空間為0;當插補定時器中斷從棧內取插補數據,棧剩余空間增大,棧內又可以補充插補數據。按照這種運行機制,依靠在棧內對插補數據進行不斷的存和取,保證電動機工作過程不間斷接收插補數據,進一步提高加工效率。 數控裁床加工仿真是加工前的必要環節,能有效檢驗加工程序的合理性。所設計的仿真系統依然利用MFC平臺 CView的Ondraw來繪制,使用CCurve類坐標點數據,將生成的CNC的加工數據用于幾何仿真。與第2節所述PLT圖形文件顯示的內容相比較,其區別在于矢量線段的長短軸是利用計算機圖形學原理,將兩坐標點之間的線段離散化,變為沿著長短軸的各個小點,而仿真過程就是將各點依次描繪出來。圖5所示為仿真系統的測試圖,該圖形的內外輪廓均需要進行繪圖工序,而外輪廓還需在繪圖工序完成后進行切割工序。 圖5 仿真系統功能驗證 圖5(a)表示加載的PLT圖形文件,可見圖形仿真前原始狀態;圖5(b)表示在仿真模塊下,對圖形文件的連續曲線的外輪廓進行繪圖工序仿真。圖形文件外輪廓變為綠色(代表繪圖工序),且可見仿真軌跡與顯示外輪廓重合;圖5(c)表示對圖形文件分散曲線的內輪廓進行繪圖工序仿真,依然可見仿真軌跡與顯示內輪廓重合;圖5(d)表示對外輪廓進行切割加工工序的仿真,可見仿真軌跡與顯示外輪廓重合,且外輪廓顏色由綠色變為紅色(代表切割工序)。 通過試驗,驗證了所設計的仿真模塊對加載圖形的連續、分散輪廓以及工序變換等均能順利仿真完成。 為驗證整套數控裁床系統實際生產的可行性,進行完整的實例驗證。選用真實生產中上衣面領作為測試對象。圖6(a)所示為數控裁床試驗平臺上的硬件執行部分,圖6(b)所示為導入上衣面領PLT圖形文件顯示效果,圖6(c)所示為驗證CNC加工數據的仿真結果,圖6(d)所示為在試驗平臺實際加工完成的樣品。本文作者完整地驗證了樣品在系統平臺上的圖形顯示、仿真加工和實際加工等環節,各環節均與理論設計保持一致,達到了預期效果。 圖6 實例驗證 本文作者以數控裁床的控制系統為研究對象,設計了一整套數控裁床加工系統方案。文中的創新之處有兩點:(1)在提出的數控裁床CNC加工數據生成方法基礎上,通過試驗制定加工軌跡的運行規則;(2)設計了將加工插補算法與數據棧相結合的應用方法,并基于MFC和STM32等平臺開發了軟硬件系統,最終使理論方法得以實施。通過樣片應用實例,驗證了該數控裁床系統設計的可行性與準確性,滿足了生產的實際需要。
3 數控裁床運動控制
3.1 CNC加工數據生成方法



3.2 速度控制列表

3.3 插補算法的應用

4 加工驗證
4.1 仿真加工驗證

4.2 實例加工驗證

5 結語