楊超群,賀辛亥,王俊勃,鄭占陽,李宗迎
(西安工程大學(xué) 機(jī)電工程學(xué)院,西安 710048)
三維編織技術(shù)是20世紀(jì)80年代發(fā)展起來的一種高新紡織技術(shù),具有異形預(yù)制件一次編織成型的特點(diǎn)。在編織過程中,攜紗器按照一定的運(yùn)動(dòng)規(guī)律使紗線在空間相互交叉,從而形成具有一定形狀的預(yù)制件[1]。三維編織機(jī)是三維編織技術(shù)成型的關(guān)鍵設(shè)備,但該設(shè)備核心部件之一的底盤裝置,大多結(jié)構(gòu)復(fù)雜、控制系統(tǒng)繁瑣,生產(chǎn)和維護(hù)成本較高[2]。
筆者采用DMC1380運(yùn)動(dòng)控制卡設(shè)計(jì)出的控制系統(tǒng),旨在簡化編織底盤的結(jié)構(gòu)、降低生產(chǎn)成本。
圖1 四步法編織工藝原理
四步法三維編織的工作原理,就是使攜紗器完成如圖1所示的運(yùn)動(dòng)。一個(gè)編織循環(huán)分為4步:第1步,攜紗器攜帶紗線按行向交錯(cuò)運(yùn)動(dòng)(圖1b));第2步,攜紗器攜帶紗線按列向交錯(cuò)運(yùn)動(dòng)(圖1c));第3步,攜紗器攜帶紗線運(yùn)動(dòng)的方向與第1步相反(圖1d));第4步,攜紗器攜帶紗線運(yùn)動(dòng)的方向與第2步相反(圖1e))。經(jīng)過數(shù)個(gè)編織循環(huán)之后,就可完成預(yù)制件的編織。
現(xiàn)有三維編織機(jī)的底盤設(shè)計(jì)都較為復(fù)雜,例如:John T.klein[3]等人在其專利上使用曲柄結(jié)構(gòu)完成攜紗器的運(yùn)動(dòng),這樣做會(huì)使編織底盤結(jié)構(gòu)復(fù)雜、成本加大,更重要的是此種設(shè)計(jì)在編織過程中靈活性差;再如天津工業(yè)大學(xué)韓清[4-5]所設(shè)計(jì)的編織機(jī)控制系統(tǒng),是利用氣缸完成攜紗器的推動(dòng),這樣的設(shè)計(jì)也會(huì)加大制造成本。為了克服上述編織底盤裝置的缺點(diǎn),筆者設(shè)計(jì)了四步法編織底盤裝置(如圖2所示),利用絲杠作為傳動(dòng)件完成攜紗器的四步法運(yùn)動(dòng):絲杠1完成攜紗器行方向的交錯(cuò)運(yùn)動(dòng),絲杠2絲杠3協(xié)同完成攜紗器列方向的交錯(cuò)運(yùn)動(dòng),具體的傳動(dòng)方案控制系統(tǒng)如圖3所示。
圖2 底盤裝置
圖3 三維編織機(jī)控制系統(tǒng)框圖
該傳動(dòng)系統(tǒng)采用左右旋為一體的絲杠螺母,當(dāng)步進(jìn)電機(jī)旋轉(zhuǎn)時(shí),右旋與左旋上面的絲杠螺母就會(huì)相向運(yùn)動(dòng),實(shí)現(xiàn)行或列的交錯(cuò)運(yùn)動(dòng),進(jìn)而實(shí)現(xiàn)攜紗器的四步法編織。具體編織步驟如下。
第1步:絲杠1左旋與右旋上的絲杠螺母分別驅(qū)動(dòng)偶數(shù)行與奇數(shù)行上的攜紗器,并使其達(dá)到預(yù)定位置,之后步進(jìn)電機(jī)1停止轉(zhuǎn)動(dòng),這樣步進(jìn)電機(jī)1驅(qū)動(dòng)絲杠1完成行的交錯(cuò)運(yùn)動(dòng)。
第2步:在列的方向上,絲杠2和絲杠3只能同時(shí)單獨(dú)完成奇數(shù)列(或偶數(shù)列)單排攜紗器的推動(dòng),因此絲杠2驅(qū)動(dòng)的推桿1、推桿2與絲杠3驅(qū)動(dòng)的推桿4、推桿3需協(xié)同完成列的交錯(cuò)運(yùn)動(dòng)。具體實(shí)施如下:絲杠2左旋與右旋上的絲杠螺母分別驅(qū)動(dòng)推桿1與推桿2,絲杠3左旋與右旋上的絲杠螺母分別驅(qū)動(dòng)推桿4與推桿3,推桿1與推桿3協(xié)同完成奇數(shù)列上攜紗器的運(yùn)動(dòng),同時(shí)推桿2與推桿4協(xié)同完成偶數(shù)列上攜紗器的運(yùn)動(dòng),攜紗器達(dá)到預(yù)定位置后,步進(jìn)電機(jī)2和3停止轉(zhuǎn)動(dòng),這樣步進(jìn)電機(jī)2驅(qū)動(dòng)絲杠2與步進(jìn)電機(jī)3驅(qū)動(dòng)絲杠3協(xié)同完成列的交錯(cuò)運(yùn)動(dòng)。
第3步:步進(jìn)電機(jī)1的轉(zhuǎn)向與第1步相反,使攜紗器達(dá)到預(yù)定位置后,步進(jìn)電機(jī)1停止。
第4步:步進(jìn)電機(jī)2與3的轉(zhuǎn)向與第2步相反,使攜紗器到達(dá)預(yù)定位置后,步進(jìn)電機(jī)2與3停止;至此,完成了1個(gè)編織周期。
由設(shè)計(jì)的機(jī)械裝置可知,驅(qū)動(dòng)攜紗器完成四步法三維編織,主要是利用步進(jìn)電機(jī)帶動(dòng)絲杠,然后由絲杠螺母帶動(dòng)推桿(列方向)、床身導(dǎo)軌(行方向)完成攜紗器的交錯(cuò)、間歇、往復(fù)直線運(yùn)動(dòng)。所以,上位機(jī)采用“PC機(jī)+運(yùn)動(dòng)控制卡”的運(yùn)動(dòng)控制方案(圖3),進(jìn)而實(shí)現(xiàn)三維編織機(jī)底盤的自動(dòng)化。
運(yùn)動(dòng)控制卡DMC1380[6]與PC機(jī)構(gòu)成主從式控制結(jié)構(gòu),PC機(jī)負(fù)責(zé)人機(jī)交互接口的管理和控制系統(tǒng)的實(shí)時(shí)監(jiān)控,包括鍵盤和鼠標(biāo)的管理、系統(tǒng)狀態(tài)的顯示、控制指令的發(fā)送、外部信號的監(jiān)控等;DMC1380運(yùn)動(dòng)控制卡完成運(yùn)動(dòng)控制的細(xì)節(jié)問題,包括脈沖和方向信號的輸出、原點(diǎn)和限位等信號的檢測等。采用VC++6.0開發(fā)語言,利用DMC1380運(yùn)動(dòng)控制卡所提供的運(yùn)動(dòng)函數(shù),通過編譯完成3個(gè)步進(jìn)電機(jī)的正、反向運(yùn)轉(zhuǎn)和轉(zhuǎn)數(shù)的設(shè)置,進(jìn)而完成預(yù)制件的編織??刂葡到y(tǒng)流程及硬件連接如圖4、圖5所示。
圖4 控制系統(tǒng)流程
DMC1380運(yùn)動(dòng)控制卡與驅(qū)動(dòng)器、步進(jìn)電機(jī)所組成的控制系統(tǒng)主要是產(chǎn)生脈沖和方向信號,來控制步進(jìn)電機(jī)按照要求進(jìn)行運(yùn)動(dòng)。圖5中:外接線板上的PUL(+/-)、DIR(+/-)與驅(qū)動(dòng)器上的PUL(+/-)、DIR(+/-)對應(yīng)連接;外接線板需要一個(gè)24V的直流電源,而驅(qū)動(dòng)器根據(jù)所選的步進(jìn)電機(jī)也要選擇合適的直流電源,以驅(qū)動(dòng)步進(jìn)電機(jī)正常運(yùn)轉(zhuǎn)。PUL(+/-)是脈沖信號,控制電機(jī)的轉(zhuǎn)數(shù)與角位移;DIR(+/-)是方向信號,控制電機(jī)的轉(zhuǎn)向。步進(jìn)電機(jī)驅(qū)動(dòng)絲杠,絲杠帶動(dòng)床身導(dǎo)軌與推桿完成攜紗器的運(yùn)動(dòng)。
圖5 運(yùn)動(dòng)控制卡與驅(qū)動(dòng)器、步進(jìn)電機(jī)的連接結(jié)構(gòu)
軟件的設(shè)計(jì)主要是完成步進(jìn)電機(jī)轉(zhuǎn)速與方向的編程,并進(jìn)一步完成人機(jī)界面的設(shè)計(jì)。
本次設(shè)計(jì)采用VC++6.0軟件編輯器[7]完成上位機(jī)的編程工作,利用運(yùn)動(dòng)控制卡所提供的函數(shù)來完成電機(jī)的運(yùn)動(dòng),包括對運(yùn)動(dòng)控制卡與步進(jìn)電機(jī)的初始化操作,電機(jī)脈沖、轉(zhuǎn)向、循環(huán)周期的設(shè)置,以及停車設(shè)計(jì)。
使用函數(shù)d1000_board_init()與d1000_get_axis_status()可對運(yùn)動(dòng)控制卡與步進(jìn)電機(jī)進(jìn)行初始化操作,方法如下:
int nCard(0);
CString str_card,str_axis;//定義變量//
nCard=d1000_board_init();//初始化控制卡為控制卡分配系統(tǒng)資源//
int axisnum=0;//檢查軸數(shù)//
if(d1000_get_axis_status(0)>0)
{axisnum++;}//軸數(shù)加一//
if(d1000_get_axis_status(1)>0)
{axisnum++;}//軸數(shù)加一//
if(d1000_get_axis_status(2)>0)
{axisnum++;}//軸數(shù)加一//if(nCard<=0)//控制卡初始化//
{MessageBox("未檢測到控制卡!","警告");axisnum=0;}//不存在控制//
str_card.Format("卡數(shù)=%d",nCard);MessageBox(str_card);str_axis.Format("軸 數(shù)=%d",axisnum);
使用函數(shù) d1000_start_t_move(short axis,long Dist,long StrVel,long MaxVel,double Tacc)可對電機(jī)脈沖、轉(zhuǎn)向、循環(huán)周期進(jìn)行操作,方法如下:
d1000_start_t_move(0,10000,theApp.get_speed-500,theApp.get_speed,1);//定義步進(jìn)電機(jī)1運(yùn)行的各個(gè)參數(shù),順時(shí)針轉(zhuǎn)250圈即是推動(dòng)攜紗器移動(dòng)的距離,加速度時(shí)間為1s//
while(d1000_check_done(0)==0);//檢查步進(jìn)電機(jī)1是否完成轉(zhuǎn)動(dòng)//
d1000_immediate_stop(0);//步進(jìn)電機(jī)1停止工作//
d1000_start_t_move(1,10000,theApp.get_speed-500,theApp.get_speed,1);//定義步進(jìn)電機(jī)2運(yùn)行的各個(gè)參數(shù),順時(shí)針轉(zhuǎn)250圈即是推動(dòng)攜紗器移動(dòng)的距離,加速度時(shí)間為1s//
d1000_start_t_move(2,10000,theApp.get_speed-500,theApp.get_speed,1);//定義步進(jìn)電機(jī)3運(yùn)行的各個(gè)參數(shù),順時(shí)針轉(zhuǎn)250圈即是推動(dòng)攜紗器移動(dòng)的距離,加速度時(shí)間為1s//
while(d1000_check_done(1)==0&&d1000_check_done(2)==0);//檢查步進(jìn)電機(jī)2、3是否完成轉(zhuǎn)動(dòng)//
d1000_immediate_stop(1);//步進(jìn)電機(jī)2停止工作//
d1000_immediate_stop(2);//步進(jìn)電機(jī)3停止工作//
d1000_start_t_move(0,-10000,theApp.get_speed-500,theApp.get_speed,1);//定義步進(jìn)電機(jī)1運(yùn)行的各個(gè)參數(shù),逆時(shí)針針轉(zhuǎn)250圈即就是推動(dòng)攜紗器移動(dòng)的距離,加速度時(shí)間為1s//
while(d1000_check_done(0)==0);//步進(jìn)電機(jī)1完成轉(zhuǎn)動(dòng)//
d1000_immediate_stop(0);//步進(jìn)電機(jī)1停止工作//
d1000_start_t_move(1,-10000,theApp.get_speed-500,theApp.get_speed,1);//定義步進(jìn)電機(jī)2運(yùn)行的各個(gè)參數(shù),逆時(shí)針轉(zhuǎn)250圈即是推動(dòng)攜紗器移動(dòng)的距離,加速度時(shí)間為1s//
d1000_start_t_move(2,-10000,theApp.get_speed-500,theApp.get_speed,1);//定義步進(jìn)電機(jī)3運(yùn)行的各個(gè)參數(shù),逆時(shí)針轉(zhuǎn)250圈即是推動(dòng)攜紗器移動(dòng)的距離,加速度時(shí)間為1s//
while(d1000_check_done(1)==0&&d1000_check_done(2)==0);//檢查步進(jìn)電機(jī)2、3是否完成轉(zhuǎn)動(dòng)//
d1000_immediate_stop(1);//步進(jìn)電機(jī)2停止工作//
d1000_immediate_stop(2);//步進(jìn)電機(jī)3停止工作//
theApp.get_init++;
使用函數(shù)d1000_board_close()可對運(yùn)動(dòng)控制卡進(jìn)行關(guān)閉操作,方法如下:
d1000_board_close();//關(guān)閉控制卡,釋放系統(tǒng)資源//
CDialog::OnCancel();
通過上述編程操作,設(shè)計(jì)出人機(jī)界面如圖6所示。該界面可完成控制卡、步進(jìn)電機(jī)的初始化,設(shè)置轉(zhuǎn)數(shù)與編織的周期數(shù)目,與圖2實(shí)現(xiàn)的四步法三維編織工藝底盤裝置,共同完成四步法編織。
圖6 初始化及電機(jī)運(yùn)轉(zhuǎn)的設(shè)置
本文中介紹的三維四步法編織底盤控制系統(tǒng),不僅可實(shí)現(xiàn)攜紗器的四步法運(yùn)動(dòng),而且簡化了三維編織底盤的結(jié)構(gòu)。
通過3臺步進(jìn)電機(jī)為系統(tǒng)提供動(dòng)力,設(shè)計(jì)了基于“PC機(jī)+運(yùn)動(dòng)控制卡”為核心的控制系統(tǒng)。由于DMC1380運(yùn)動(dòng)控制卡采用專用運(yùn)動(dòng)控制芯片設(shè)計(jì)的PCI總線脈沖式運(yùn)動(dòng)控制卡,可以對多個(gè)步進(jìn)電機(jī)進(jìn)行點(diǎn)位控制,進(jìn)而保證運(yùn)動(dòng)精度、降低編織機(jī)運(yùn)行過程中的出錯(cuò)率。通過試驗(yàn)臺的搭建、使用左右旋為一體的絲杠螺母,有效地減少了機(jī)械零件的使用量,且該系統(tǒng)具有良好的系統(tǒng)擴(kuò)展能力。
[1]陳利,孫穎,馬明.高性能纖維預(yù)成形體的研究進(jìn)展[J].中國材料進(jìn)展,2012,31(10):21-29.
[2]Dmitri Mungalov,Raleigh.AUTOMATED 3-D BRAIDING MACHINE:US 6,439,096B1[P].2002-08-27.
[3]John T klein,Broughton Jr,David G Beale.BRAIDED FABRIC AND METHOD OF FORMING:US 5,899,134[P].1999-05-04.
[4]韓清,萬振凱.AS-49PC-4在異型三維編織機(jī)控制系統(tǒng)中的應(yīng)用[J].天津工業(yè)大學(xué)學(xué)報(bào),2007,26(2):58-61.
[5]韓清.異型三維編織機(jī)的計(jì)算機(jī)控制系統(tǒng)[D].天津工業(yè)大學(xué),2006.
[6]深圳市雷塞智能控制股份有限公司.DMC1380運(yùn)動(dòng)控制卡使用手冊[Z].
[7]宋坤.Visual C++開發(fā)實(shí)戰(zhàn)寶典[M].北京:清華大學(xué)出版社,2010.