引言:
HPGL 是HP公司為描述2D圖形信息所設(shè)計(jì)的圖形語言,起初并非為提供交換式而定制設(shè)計(jì),而是為打印機(jī)、繪圖儀設(shè)計(jì),其對筆和筆的路徑描述效率高及其讀寫方便性,使其成為打印繪圖行業(yè)標(biāo)準(zhǔn)描述性語言。
點(diǎn)膠機(jī)多數(shù)為兩軸控制系統(tǒng),即X、Y軸運(yùn)動,配合不同膠槍上下、開關(guān)動著,完成點(diǎn)膠應(yīng)用需求;以往的點(diǎn)膠機(jī)系統(tǒng),多數(shù)使用教導(dǎo)方式記錄運(yùn)動軌跡(即點(diǎn)膠路徑),這種方式比較費(fèi)時(shí),且精度不高。在這里我們來探討使用plt文件導(dǎo)入方式來實(shí)現(xiàn)對點(diǎn)膠機(jī)3D控制。
我們現(xiàn)做一下對比:
1、 繪圖 VS 點(diǎn)膠
2、 彩筆 VS 膠槍
3、 筆的路徑 VS 膠槍路徑
兩者有非常相似之處,我們只需將彩筆換成膠槍,繪圖就成了點(diǎn)膠了。如果我們將膠槍上下動作歸為第三軸,那么就是對3D路徑的描述了。
一、HPGL語言對3D路徑描述
圖1為一個(gè)簡單的圖形,使用CorelDRAW9軟件生成HPGL格式的plt文件,可以清楚看到對這個(gè)正方形的描述。
二、移植到點(diǎn)膠系統(tǒng)
移植到點(diǎn)膠系統(tǒng),我們必須要做的工作有:
筆和槍的對應(yīng)
1、 將不同的膠槍對應(yīng)不同的筆號(膠顏色對應(yīng)筆顏色);
2、 預(yù)先設(shè)置不同膠槍的點(diǎn)膠速度(滿足點(diǎn)膠均勻要求);
3、 預(yù)選設(shè)置不同膠槍的上下高度(以滿足階梯性點(diǎn)膠系統(tǒng));
4、 根據(jù)PLT文件解釋膠槍的3D運(yùn)動。
路徑的優(yōu)化算法
對于復(fù)雜的路徑,例如小曲線、多拐角等,系統(tǒng)要求做到勻速運(yùn)行,即按線經(jīng)矢量速度運(yùn)行,同時(shí)配合好膠槍的開關(guān)、上下、換槍等動作,還要有實(shí)時(shí)顯示功能。在實(shí)際應(yīng)用中必須采用先優(yōu)化后加工的方式進(jìn)行,如加工文件復(fù)雜,還要邊加工邊優(yōu)化。下面我們來作曲線優(yōu)化算法分析,見下圖:
假定我們已經(jīng)把加工的文件都分成相等的線段,這時(shí)我們來討論如何從A到G點(diǎn)走得平穩(wěn)且好。
我們先設(shè)定每個(gè)角度的速度的最大值,當(dāng)加工時(shí),運(yùn)行到對應(yīng)角度的速度超過它的最大值時(shí)電機(jī)可能失步。
0---20 度時(shí)----------100mm/s
21---30 度時(shí)----------80mm/s
31---40 度時(shí)----------60mm/s
41---50 度時(shí)----------40mm/s
51---60 度時(shí)----------30mm/s
61---90 度時(shí)----------20mm/s
91--360 度時(shí)----------10mm/s
假定加工時(shí)的起始速度為10mm/s,最大速度為100mm/s。依據(jù)上面的的設(shè)定和每點(diǎn)的角度,我們得出:
A 點(diǎn)為起始點(diǎn), 所以最大速度為10mm/s;
B 點(diǎn)的角度為40,所以最大速度為60mm/s;
C 點(diǎn)的角度為60,所以最大速度為30mm/s;
D 點(diǎn)的角度為30,所以最大速度為80mm/s;
E 點(diǎn)的角度為50,所以最大速度為40mm/s;
F 點(diǎn)的角度為90,所以最大速度為20mm/s;
G 點(diǎn)為終止點(diǎn),所以最大速度為10mm/s;
從上面的數(shù)據(jù)可看出加工時(shí)不能以最大的速度(100mm/s)運(yùn)行,因?yàn)橛行c(diǎn)的最大速度小于100mm/s,這樣會導(dǎo)致電機(jī)失步.如果用最小速度10mm/s 加工,則效率會很低.所以我們要優(yōu)化每點(diǎn)的速度, 既要以最快的速度加工,又要使每點(diǎn)的速度不超過它的最大速度.(即推算出每點(diǎn)實(shí)際上加工的速度)。我們設(shè)定每個(gè)點(diǎn)的速度增量為+/-10mm/s:
A 點(diǎn)為起始點(diǎn),所以A 點(diǎn)為起始速度10mm/s,
B 點(diǎn)的最大速度為60mm/s,但A 點(diǎn)到B 點(diǎn)的增量只有+/-10mm/s,所以B 點(diǎn)的速度為
20mm/s<=B 點(diǎn)的最大速度.
C 點(diǎn)的最大速度為30mm/s,所以C 點(diǎn)的速度為30mm/s<=C 點(diǎn)的最大速度.
D 點(diǎn)的最大速度為80mm/s,所以D 點(diǎn)的速度為40mm/s<=D 點(diǎn)的最大速度.
E 點(diǎn)的最大速度為40mm/s,如果E 點(diǎn)的速度再增,就會大于E 點(diǎn)的最大速度,所以E 點(diǎn)的速度
不能再增,只能為40mm/s<=E 點(diǎn)的最大速度.
F 點(diǎn)的最大速度為20mm/s,但E 點(diǎn)的速度已經(jīng)為40mm/s,即使通過減10mm/s 的方式,F 點(diǎn)的
速度也有30mm/s>F 點(diǎn)的最大速度,所以F 點(diǎn)的速度為30mm/s 時(shí)不能滿足小于最大值的要
求,需重新反向計(jì)算上面點(diǎn)的速度。
設(shè)F 點(diǎn)的速度為20mm/s,那么能推出:
E 點(diǎn)的速度為30mm/s
后面的點(diǎn)C,B,A 的值跟先前推的一樣,所以不必再向前推了;
G 點(diǎn)為終止點(diǎn),由于F 點(diǎn)為20mm/s,到G 點(diǎn)時(shí)為10mm/s 滿足條件;
最后得出結(jié)論:
A=10mm/s
B=20mm/s
C=30mm/s
D=40mm/s
E=30mm/s
F=20mm/s
G=10mm/s
以上只是曲線小線段化的一個(gè)處理思路,實(shí)際應(yīng)用中,需要對整個(gè)路徑做到勻速運(yùn)行,其中還有很多細(xì)致的工作,我就不在此贅述了。
三、應(yīng)用實(shí)例
筆者采用主流的32位MCU ARM7和FPGA運(yùn)動芯片構(gòu)成的4軸控制器(MC4140AX),實(shí)現(xiàn)了上述想法。下面是筆者開發(fā)的一個(gè)點(diǎn)膠機(jī)實(shí)例,供大家參考!
系統(tǒng)功能及要求:
1、 膠槍兩只,分別點(diǎn)膠兩個(gè)不同高度的平面;
2、 要求速度快速均勻;
3、 加工圖形采用文件(PLT)導(dǎo)入式,不作教導(dǎo)。
4、 加工工件模具可以沿X、Y任意偏移(但不作旋轉(zhuǎn));
5、 要求只對槍一次,無論3中偏移量是多少,系統(tǒng)可自行完成圖形整合。即PLT文件圖形和要加工的圖形(模具)重合。
其加工圖形如下: