基于Windows CE的數控軟件開發與實現
CList listinfo;
如此循環操作,直至所有的NC代碼都被提取出來并添加到鏈表listinfo中。
3.2 刀具補償模塊
單純經過譯碼處理之后的加工代碼,并不能直接用作插補加工,還需要經過刀具補償計算。刀具補償包括刀具長度補償和刀具半徑補償。刀具長度補償是為了使刀具頂端到達編程位置而進行的刀具位置補償。刀具半徑補償是因為數控加工代碼通常是按照刀具中心軌跡編輯的,但在實際加工中參與切削的是刀具的外緣,為此需要補償一個半徑值。
3.3 插補模塊
無論選用哪種控制芯片做插補器,插補的原理都是相同的。為滿足實時、動態輸出控制脈沖的需要,一般都是利用硬件定時器做定時中斷,中斷后即輸出控制脈沖。通過修改定時寄存器數值,即可改變輸出脈沖頻率,實現轉速控制。再通過對輸出脈沖個數的計數,實現位移控制[3]。以橢圓插補為例,采用逐點比較插補法。該方法的核心是通過逐點地比較刀具與所需插補曲線的相對位置,確定刀具的坐標進給方向,從而加工出零件的輪廓[4]。插補循環包括如下四步:偏差判別、進給、新偏差計算和終點判別。

其中,r、t 為開關變量。r 為正負進給量判斷,只取1 或-1 值;t 為進給與否判斷,只取0或1。對于不同象限,進給方向及進給軸的選取都不一樣。通過設定進給開關量,即可控制插補點位置。單一象限內插補運算較容易實現。對于多象限插補,需要在過象限時做特殊處理。相應的算法處理如下:
(1)判斷起始點、終止點所在象限。
(2)結合轉向(順/逆時針),規劃進給路徑,即穿越象限編號。
(3)結合路徑中的象限編號,逐象限插補運算。
程序實現部分源代碼如下:
//路徑規劃函數
bool CrossQuadrant(int quad_bgn, int quad_end, int direction, int x_s, int y_s, int x_e, int y_e,
int* pCrossQuad){
int CrossPart[5]; //穿越象限編號數組
…………
for(i=0;i5;i++){ //初始化為-1
CrossPart[i]= -1; }
nCurPart= quad_bgn; //起始象限編號
if(nCurPart== quad_end){ //起始點、終止點在同一象限
if((nCurPart==0) || (nCurPart==2)){ //若在第1,3象限
if(fSlope_bgn>fSlope_end){ //斜率判斷
if(direction== ClkWs){ //這種情況下,只走過本象限
blnCross= FALSE; //置標志位
}}}
……..
else{ //起始點在不同象限
do{
j++;
if(direction== ClkWs){ //順時針
nCurPart--;}
else{ //逆時針
nCurPart++; }
if(nCurPart 0){ //若前一象限為第一象限,且順時針轉
nCurPart=3; } //則后一象限換為第四象限
if(nCurPart >3){ //若前一象限為第四象限,且逆時針轉
nCurPart=0; } //則后一象限換為第一象限
CrossPart[j]= nCurPart;
}while(nCurPart!= quad_end); }}
4 小結
本文介紹的嵌入式數控軟件已成功應用于數控玻璃雕刻機系統中,現場生產試驗表明,系統運行效果良好。Windows CE嵌入式操作系統的出現為數控系統的應用開辟了新的領域,但由此也帶來了軟件開發上的復雜性。在嵌入式數控系統軟件的開發過程中,必須針對數控加工的特點,對Windows CE 系統內核進行裁減定制,同時結合嵌入式硬件的具體情況,對代碼進行合理優化,減少內存開支和不合理的CPU 占用,完成在嵌入式硬件上的編程。本論文在數控軟件結構的合理構建以及開發的關鍵實現技術上做了有益的探討。
本文作者創新點:在對數控平臺應用進行Windows CE 系統定制的基礎上,提出了嵌入式數控開發的軟件架構。并對傳統插補算法加以改進,解決插補數據過象限突變問題。本系統已成功應用于作者所在數控實驗室的玻璃雕刻機中。與傳統雕刻系統相比,本系統能節省設備成本30%-40%,加工時間縮短20%左右,已累計產生經濟效益數十萬元。
伺服電機相關文章:伺服電機工作原理
評論