趙福英 倪俊芳
摘 要:目前國內(nèi)紡織行業(yè)對絎縫機(jī)控制系統(tǒng)的操作多數(shù)在DOS平臺下進(jìn)行,針對其操作界面不直觀、軟件升級困難、頻繁死機(jī)等缺點(diǎn),提出一種以WinCE系統(tǒng)為核心,采用C#開發(fā)應(yīng)用軟件,實(shí)現(xiàn)加工模擬的設(shè)計方法。該軟件采用模塊化設(shè)計,通過對花樣文件進(jìn)行解析獲取花樣相關(guān)信息,并基于平面力系求矩原理的新算法繪制花樣矢量圖,調(diào)用MACRO宏程序,將DAT文件編譯成G代碼,利用網(wǎng)絡(luò)傳輸線將G代碼傳輸給控制器,從而實(shí)現(xiàn)了軟件系統(tǒng)的花樣預(yù)覽、仿真加工、文件編譯等功能。結(jié)果表明,該軟件界面友好、運(yùn)行穩(wěn)定、實(shí)時性強(qiáng)、操作簡便、便于升級與維護(hù)。
關(guān)鍵詞:C#;絎縫機(jī);花樣文件;G代碼;仿真加工
中圖分類號:TS17;TH39
文獻(xiàn)標(biāo)志碼:A
文章編號:1009-265X(2018)02-0085-05
Research on Intelligent Software System of QuiltingMachine Based on Visual C#.NET
ZHAO Fuying, NI Junfang
(School of Mechanical and Electrical Engineering, Soochow University, Suzhou 215021, China)
Abstract:At present, the domestic textile industries operate the quilting machine control system most in the DOS platform. Aiming at the shortcomings of the system, such as boring interfaces, upgrading difficultly and frequent shutdown, a design method is proposed, which takes the WinCE system as the core, uses Visual C#.NET to develop the application software and thus realizes the processing simulation. The software adopts modular design and gains pattern-related information through analyzing the pattern file. Besides, pattern vector diagram is drawn by the new algorithm based on the principles of plane moment, which can call the MACRO program to compile DAT files into G codes transmitted to the controller by using the network line, so as to realize the pattern preview, simulation processing, files compilation and other functions of software system. The application results show that it has friendly interface, stable operation, strong real-time performance, convenient operation, easy upgrade and maintenance.
Key words:C#; quilting machine; pattern file; G code; simulation processing
絎縫機(jī)是用于縫制被褥、窗簾、毛毯等線形圖案的紡織設(shè)備,其核心是X、Y、Z、C四軸運(yùn)動控制系統(tǒng)[1],X、Y軸控制機(jī)頭前后、左右的相對運(yùn)動,Z、C軸控制機(jī)針與旋梭的耦合運(yùn)動[2]。目前國外的絎縫智能控制系統(tǒng)多采取PC與DSP組合的方式,其對花樣文件處理、識別能力強(qiáng)、精度高,但設(shè)備價格昂貴[3]。國內(nèi)郭鑫[4]在縫紉機(jī)的花型CAD系統(tǒng)方面作了相關(guān)研究,蔡立挺等[5]對電腦橫機(jī)的花樣數(shù)據(jù)編譯作了細(xì)致地分析,都取得了一定進(jìn)展。而基于WIN系統(tǒng)研發(fā)的絎縫機(jī)控制系統(tǒng)尚不成熟、應(yīng)用少,而現(xiàn)時DOS開發(fā)的人機(jī)交互界面可讀性差、軟件升級困難,不能實(shí)現(xiàn)多機(jī)聯(lián)網(wǎng)監(jiān)控、累積總產(chǎn)量等,已無法滿足企業(yè)更高的要求。因此,本絎縫機(jī)智能控制軟件系統(tǒng)將劃分功能模塊,采用C#開發(fā),基于平面力系求矩原理的新算法處理DAT文件,準(zhǔn)確編譯DAT文件,實(shí)現(xiàn)絎縫機(jī)的仿真加工。
1 軟件總體設(shè)計
1.1 控制系統(tǒng)與軟件結(jié)構(gòu)
電腦絎縫機(jī)運(yùn)動控制結(jié)構(gòu),如圖1所示。首先計算機(jī)讀入由打版系統(tǒng)生成的花樣數(shù)據(jù)文件,然后將DAT文件編譯成G代碼,再經(jīng)網(wǎng)絡(luò)線傳輸給控制器,最后控制器與伺服驅(qū)動進(jìn)行信息傳輸,控制各軸向電機(jī)運(yùn)轉(zhuǎn),實(shí)現(xiàn)絎縫機(jī)自動加工,同時前臺計算機(jī)監(jiān)控后臺加工過程,絎縫異常時,系統(tǒng)發(fā)出報警。
1.2 軟件功能模塊劃分
根據(jù)絎縫機(jī)的絎縫工藝要求,將軟件系統(tǒng)主要劃分為以下8個模塊[6],如圖2所示。
1.3 人機(jī)界面的功能
人機(jī)界面主要分為花樣查看、DAT編譯成G代碼、設(shè)定參數(shù)、移繃設(shè)置、系統(tǒng)檢測、花樣管理、絎縫監(jiān)控、歷史警報、幫助、退出系統(tǒng)等多個操作界面。主要功能可分為以下部分:
a)絎縫機(jī)啟動后,計算機(jī)直接進(jìn)入加工主界面,客戶在花樣列表ListBox中預(yù)覽花樣文件,系統(tǒng)對花樣數(shù)據(jù)進(jìn)行讀取并獲取絎縫尺寸、針?biāo)?、針距、圖案等信息;
b)當(dāng)客戶在確定要加工的花樣時,系統(tǒng)將DAT文件編譯成后臺控制器可識別的G代碼格式,并在前臺計算機(jī)上實(shí)現(xiàn)仿真加工與監(jiān)控;
c)通過參數(shù)設(shè)定可以改變正反絎縫、斷線檢測、絎縫針距、花樣補(bǔ)償、固縫針距、出繃位置、是否自動裁線、夾線器夾線位置等;
d)移繃功能主要是針對出現(xiàn)警報機(jī)器無法運(yùn)行時,手動進(jìn)行各個軸向的移動,將其移動到行程范圍內(nèi);
e)可以通過聯(lián)網(wǎng)通訊(或USB)方式,對文件進(jìn)行備份、刪除、讀取、新建操作。
2 軟件核心模塊的設(shè)計
2.1 花樣數(shù)據(jù)讀取模塊的設(shè)計
DAT文件里的數(shù)據(jù)主要包含兩方面信息,分別為花樣矢量圖信息與絎縫動作信息,這些信息都將在走針過程中實(shí)現(xiàn)映射[7]?;邮噶繄D信息包含了X、Y方向的坐標(biāo)數(shù)據(jù),其儲存了直線、圓弧插補(bǔ)操作指令。絎縫動作信息主要包含固縫、剪線、改變速度等動作。
由于花樣文件不能被控制器直接讀取,所以無法將絎縫機(jī)加工過程直接通過走針方式表現(xiàn)出來。要實(shí)現(xiàn)縫制,首先要讀取花樣圖案信息[8],將花樣文件可視化,即呈現(xiàn)精確的矢量圖。因此采用C#生成矢量圖算法,包括以下5個部分。
a)C#中StreamReader對象不僅可以從文件中讀取文本,而且可以從底層Stream對象中創(chuàng)建StreamReader實(shí)例。首先用StreamReader類讀取DAT文件數(shù)據(jù),將每行的首字符(線型字符:0代表繪制圓弧、1代表繪制直線、2代表繪制虛線、-1絎縫結(jié)束),存放在一維數(shù)組里;
b)從第2個字符開始,將其坐標(biāo)信息存放到PointF結(jié)構(gòu)中;
c)根據(jù)數(shù)組里的線型字符種類,擬合相應(yīng)線型,如實(shí)線DrawLine,圓弧DrawArc,虛線DrawLine(DashPattern);
d)擬合過程:從針跡起點(diǎn)(x0,y0)開始,按照曲線走向特征選擇下一點(diǎn)(x1,y1),其中走向包括正方向、負(fù)方向、順時針、逆時針4個部分。
e)以(x1,y1)為曲線新的起始點(diǎn),重復(fù)擬合過程d),直至當(dāng)前線段擬合結(jié)束,回溯到a),不斷重復(fù)此過程,直到文件流讀取結(jié)束。
C#繪制矢量圖的算法流程,如圖3所示。
繪制圓弧信息包括圓弧的起點(diǎn)、終點(diǎn)、中間點(diǎn)、圓弧走向(0為順時針、1為逆時針)。對于平面任意分布的3個點(diǎn),繪制出的圓弧可能是小于半圓的劣弧,也可能是大于半圓的優(yōu)弧,如圖4(a)、圖5(b)所示;同時涉及到順時針、逆時針問題,如圖4(b)、圖5(a)所示,并且DrawArc參數(shù)的起始角StartAngle、展角SweepAngle、矩形RectAngle都是不斷變化。針對以上問題,提出一個新的算法:通過求矩的正負(fù)來判斷圓弧走向。
根據(jù)理論力學(xué)中力系等效原理,如圖4、圖5所示。將求矩公式(1):
MC(FR)=∑ni=0MC(Fi)(1)
轉(zhuǎn)換成分力對原心C求矩,即:
MC(F)=MC(Fx)+MC(Fy)=xFsinθ-yFcosθ(2)
式中:x,y為力F作用點(diǎn)的坐標(biāo);FR為各作用力在平面力系中的等效力,F(xiàn)i為各作用力,F(xiàn)x,F(xiàn)y分別為力F在x,y軸的投影,θ為FR與水平方向夾角。
圓弧走向用變量type表示,假設(shè)平面任意分布的三點(diǎn)為:起始點(diǎn)A(x1,y1),終點(diǎn)B(x2,y2),圓弧上任意點(diǎn)D(x4,y4),可以確定函數(shù)DrawArc的參數(shù)StartAngle、RectAngle以及圓心C(x3,y3)和OA與OB之間的夾角(angle)。設(shè)作用在A點(diǎn)的力為F,方向由A指向B,大小為|AB|,力F對圓心C的力矩為MC(F),根據(jù)圖4、圖5可求得矩大小為(y2-y1)(x1-x3)-(x2-x1)(y1-y3),根據(jù)矩的正負(fù)號,利用右手螺旋定則判斷圓弧方向,從而求得AB圓弧對應(yīng)的展角參數(shù)SweepAngle,其流程如圖6所示。
判斷圓弧展角SweepAngle主要C#程序如下:
//求圓弧展角的自定義函數(shù)
public static double sweepangle(double x1,double y1,double x2,double y2,double x3, double y3,double angle,double type)
{
bool b0=(type==0);
//展角初始化,賦0;
double sweepangle1=0;
//定義矩大于0的變量;
bool b=(y2-y1)*(x1-x3)-(x2-x1)*(y1-y3)>=0;
//圓弧走向方式為順時針;
if(b0)
{
//矩大于0的情況;
if(b)
{return sweepangle1=jiaodu;
//矩小于0的情況;
else
{return sweepangle1=360-jiaodu;}
}
//圓弧走向?yàn)槟驷槙r針;
else
{
if(b)
{return sweepangle1=-(360-jiaodu);}
else
{return sweepangle1=-jiaodu;}
}
}
經(jīng)過算法處理,繪制出的花樣矢量圖,如圖7所示。
2.2 仿真加工模塊的設(shè)計
為了方便前臺監(jiān)控,在仿真過程中,加工針軌跡需要進(jìn)行變色跟蹤,自動累計產(chǎn)量。因此采用C#調(diào)用Remote CNC API動態(tài)庫函數(shù)、設(shè)計通信接口以及不斷刷新畫布、更新畫筆等技術(shù)來實(shí)現(xiàn)變色效果。由于花樣文件包括繪制圓弧、直線等大量信息,要執(zhí)行大量的繪圖操作,加上用戶給軟件進(jìn)行頻繁的信息傳輸,需要不間斷地刷新繪圖畫面,這樣會導(dǎo)致在整個繪圖以及動態(tài)仿真過程中出現(xiàn)常見的屏幕閃爍現(xiàn)象。在上位機(jī)軟件開發(fā)過程中,為了避免閃屏或者界面死循環(huán)現(xiàn)象,使用GDI+雙緩沖區(qū)畫圖方法,即分配相應(yīng)的繪圖寄存器。首先StreamReader讀取DAT文件流,并在該寄存器的畫布上根據(jù)數(shù)據(jù)信息繪制出花樣矢量圖,當(dāng)執(zhí)行到文件流結(jié)束符時,再將畫布上的圖案顯示到用戶界面上,如圖8所示。
2.3 DAT編譯成G代碼模塊的設(shè)計
在DAT文件轉(zhuǎn)換成G代碼模塊中,為提高絎縫數(shù)控程序的編程效率,簡化G代碼,通過C# StreamReader類處理文件,根據(jù)絎縫需求,編寫MACRO宏程序[10-12]。
絎縫的走針方式分為3種:空走直線、進(jìn)給直線和進(jìn)給圓弧。直線方式可以直接調(diào)用基本移動指令G00、G01。圓弧插補(bǔ)指令標(biāo)準(zhǔn)格式為G02/G03 X_Y_I_J_F_,其中G02為順時針圓弧,G03為逆時針圓弧,X、Y為圓弧終點(diǎn)坐標(biāo)值,I為圓心橫坐標(biāo)相對圓弧起點(diǎn)橫坐標(biāo)的增量坐標(biāo)值,J為圓心縱坐標(biāo)相對圓弧起點(diǎn)縱坐標(biāo)的增量坐標(biāo)值,F(xiàn)為進(jìn)給速率值。
由于DAT文件只存儲絎縫圓弧的起點(diǎn)坐標(biāo)信息、終點(diǎn)坐標(biāo)信息以及圓心坐標(biāo)信息,從而無法直接調(diào)用G02、G03。針對以上問題,根據(jù)圓弧特性編寫對應(yīng)的用戶宏程序,這樣不但提高了G代碼的轉(zhuǎn)換效率和絎縫效率,而且在很大程度上改善了產(chǎn)品的加工精度。用戶只需要輸入起點(diǎn)、中點(diǎn)、終點(diǎn)三點(diǎn)坐標(biāo)就可以將圓弧精確繪制出來。MACRO用戶宏程序G400.2如下:
%@MACRO
#1:=GETARG(X1);//圓弧起點(diǎn)A坐標(biāo);
#2:=GETARG(Y1);
#3:=GETARG(X2);//圓弧終點(diǎn)B坐標(biāo);
#4:=GETARG(Y2);
#5:=GETARG(X3);//圓弧圓心C坐標(biāo);
#6:=GETARG(Y3);
#7:=GETARG(H);//定義順時針、逆時針變量;
#8:=#5-#1;//圓弧起點(diǎn)到圓心的向量值;
#9:=#6-#2;
G00X#1Y#2;//針快速定位到起始點(diǎn);
CASE#7OF
0://逆時針繪制圓弧AB;
G03X#3Y#4I#8J#9F200;
1://順時針繪制圓弧AB;
G02X#3Y#4I#8J#9F200;
END_CASE;//結(jié)束CASE語句循環(huán);
M99;
3 結(jié) 語
本文基于繪制花樣矢量圖的新算法,采用C#開發(fā)了數(shù)據(jù)讀取、仿真加工、文件編譯等重要模塊功能,實(shí)現(xiàn)了預(yù)覽彩色花樣、仿真路徑變色追蹤,提高了絎縫機(jī)控制系統(tǒng)的可讀性、準(zhǔn)確性、實(shí)用性等。該系統(tǒng)已在某企業(yè)樣機(jī)上進(jìn)行初步試用,人機(jī)界面友好,精度高、工作效率高,功能已達(dá)到預(yù)期指標(biāo)。今后將在多機(jī)聯(lián)網(wǎng)監(jiān)控、累積總產(chǎn)量等方面進(jìn)行研究。
參考文獻(xiàn):
[1] 孫艷芳.關(guān)于絎縫勾線裝置的設(shè)計[J].紡織科學(xué)研究,2015(2):102-103.
[2] 高鵬翔.獨(dú)立絎縫機(jī)計算機(jī)控制系統(tǒng)的設(shè)計[J].紡織學(xué)報,2001,22(1):48-50.
[3] 陳志錦.智能化縫制設(shè)備電控平臺的設(shè)計與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2015.
[4] 郭鑫.基于嵌入式的電腦縫紉機(jī)花樣CAD/CAM系統(tǒng)研究[D].武漢:華中科技大學(xué),2012.
[5] 蔡立挺,傅建中,姚鑫驊.嵌入式電腦橫機(jī)花型數(shù)據(jù)的編譯處理[J].紡織學(xué)報,2008,29(6):113-116.
[6] 陳景波,盧達(dá),王玲玲.全自動電腦橫機(jī)上位機(jī)軟件的設(shè)計[J].紡織學(xué)報,2011,32(2):131-135.
[7] 梁克,張凱龍,周興社.智能花樣縫制設(shè)備的主流花樣格式分析與仿真[J].計算機(jī)工程,2006,32(3):259-260.
[8] 劉秋香,王云,姜桂洪.Visual C#.NET程序設(shè)計教程[M]. 北京:清華大學(xué)出版社,2011.
[9] 楊建昌.GDI+高級編程[M].北京:清華大學(xué)出版社,2010.
[10] 劉勝勇.數(shù)控機(jī)床宏程序編程的應(yīng)用[J].設(shè)備管理與維修,2016(3):50-52.
[11] 倪俊芳,宋昌才,何高清.機(jī)床數(shù)控技術(shù)[M].北京:科學(xué)出版社,2016.
[12] 顧濤.宏程序在圓周孔加工中的應(yīng)用[J].機(jī)械工程與自動化,2010(6):187-188.