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