1 引言
數控機床可以實(shí)現加工的自動(dòng)化,比傳統機床提高了生產(chǎn)效率,而且加工零件的精度高,尺寸分散度小。我國有廣闊的機床數控化改造的市場(chǎng)。本文將通用嵌入式運動(dòng)控制器用于一臺立式銑床X8126 的數控改造試驗。改造中保留了原有的主軸系統和冷卻系統,用步進(jìn)電機驅動(dòng)系統對銑床進(jìn)行X、Y、Z 三軸數控改造。此次改造后步進(jìn)距離是0.001mm/脈沖。
2 數控基本原理
2.1 數控系統的工作過(guò)程
?。?/SPAN>1)把零件加工程序、控制參數和補償數據等輸入給數控系統。
?。?/SPAN>2)加工程序譯碼與數據處理。
?。?/SPAN>3)插補。運動(dòng)軌跡是多軸協(xié)調運動(dòng)的結果,為了實(shí)現期望的軌跡,必須控制相關(guān)軸的運動(dòng)。直接的方法是把各軸的每一步運動(dòng)情況事先確定好,存入計算機的存儲器,再現軌跡時(shí),根據存儲的數據來(lái)控制各軸。但是這意味著(zhù)要存儲大量數據,在實(shí)際應用中不現實(shí)。實(shí)際上,輪廓或運動(dòng)軌跡一般由直線(xiàn)、圓弧組成,對于一些非圓曲線(xiàn)輪廓則用直線(xiàn)或圓弧去逼近??梢愿鶕恍┥倭康幕緮祿ㄆ瘘c(diǎn)和終點(diǎn)即可唯一確定一條直線(xiàn),圓弧只需要給定起點(diǎn)、終點(diǎn)、半徑及方向即可確定),通過(guò)計算,將工件的輪廓或運動(dòng)軌跡描述出來(lái),邊計算邊根據計算結果向各坐標發(fā)出進(jìn)給指令。這就是插補(Interpolating)的基本思想,即插補計算就是數控系統根據給定的曲線(xiàn)類(lèi)型(如直線(xiàn)、圓弧或高次曲線(xiàn))、起點(diǎn)、終點(diǎn)以及速度,在起點(diǎn)和終點(diǎn)之間進(jìn)行數據點(diǎn)的密化。當然,單軸運動(dòng)就不存在插補問(wèn)題。
數控系統的插補功能主要由軟件來(lái)實(shí)現,主要有兩類(lèi)插補算法。一種是脈沖增量插補,它的特點(diǎn)是每次插補運算結束產(chǎn)生一個(gè)進(jìn)給脈沖;另一種是數字增量插補,它的特點(diǎn)是插補運算在每個(gè)插補周期進(jìn)行一次,根據指令進(jìn)給速度計算出一個(gè)微小的直線(xiàn)數據段。MCX314A 芯片內部含有高速高精度的直線(xiàn)和圓弧插補功能。
?。?/SPAN>4)伺服控制。將計算機送出的位置進(jìn)給脈沖或進(jìn)給速度指令,經(jīng)變換和放大后轉化為伺服電機(步進(jìn)電機或交、直流伺服電機)的轉動(dòng),從而帶動(dòng)工作臺移動(dòng)。
?。?/SPAN>5)刀具補償。在輪廓加工中,當采用不同尺寸的刀具加工同一輪廓工件,或同一名義的刀具因磨損而因此尺寸變化時(shí),為了保證控制精度和編程方便,數控系統通常應有刀具補償功能。
2.2 數控加工程序
符合 ISO-840 國際標準的NC 指令代碼編程是一種較通用的數控編程方法。常用的指令有準備功能G 代碼、輔助功能M 代碼、主軸速度S 代碼、刀具T 代碼等。數控程序就是由這些功能代碼和數據構成。如N0666 G01X20 Y20 F 300 表示直線(xiàn)插補,XY 同時(shí)進(jìn)給到目標點(diǎn)(20,20),速度300mm/min。
Pro/Engineer、北航海爾CAXA 等CAD/CAM 軟件能夠依據零件CAD 輪廓生成相應的加工軌跡,生成數控代碼程序。
3 硬件組成
如圖1所示,基于ARM 和MCX314A 的運動(dòng)控制器是系統的控制核心。圖2是接口板和驅動(dòng)器的接口圖。MCX314A 輸出的脈沖/方向信號經(jīng)接口板(26AMLS31 變成差動(dòng)信號)與驅動(dòng)器對應的脈沖/方向端子相連。各軸限位開(kāi)關(guān)信號和原點(diǎn)信號、急停信號經(jīng)接口板光電隔離后連接MCX314A 的nLMTP、nLMTM、Xin0 和EMGN 引腳。
圖1 改造后的銑床數控結構圖
圖2 轉接板和步進(jìn)驅動(dòng)器的連接圖
PC 機通過(guò)串口與LPC2214 相連,作為數控加工程序的編程人機界面;在數控加工時(shí),LPC2214 將MCX314A 各軸的邏輯位置和狀態(tài)反饋給PC。不過(guò),PC 將數控加工程序下載給運動(dòng)控制器后,可以脫開(kāi),運動(dòng)控制器具備獨立運行能力。
4 軟件設計
利用PC 的良好人機界面和數據處理能力,PC 用作數控編程的人機界面,對數控程序進(jìn)行語(yǔ)法檢查,對數控程序進(jìn)行預處理。PC 預處理后,將數控程序下載給運動(dòng)控制器,LPC2214 將數控加工程序存入Flash 中。數控加工時(shí),LPC2214 從Flash 中讀出加工代碼,進(jìn)行數控加工程序的譯碼,譯碼完成后調用API 函數,實(shí)現數控功能。
上位 PC 作為數控系統的人機交互界面,完成數控代碼編輯(或接收CAD/CAM 軟件生成的加工程序)、語(yǔ)法檢查、代碼預處理功能,并能和運動(dòng)控制器進(jìn)行通信,將處理后的數控代碼參數上載到控制器,并能接收到控制器的(邏輯)位置反饋和驅動(dòng)狀態(tài)信息,實(shí)現對整個(gè)系統的監控。上位PC 的程序用Visual Basic 開(kāi)發(fā)完成。
在已經(jīng)奠定了運動(dòng)控制器的軟、硬件基礎平臺后,實(shí)現數控應用的關(guān)鍵點(diǎn)在于把數控代碼轉換成對API 函數的調用,核心內容是進(jìn)行數控加工程序的譯碼無(wú)油軸承。
圖3 數控加工程序譯碼流程
?。?/SPAN>1)數控加工程序的譯碼。
定義一個(gè)數據結構體 CNCcode Buf,將一個(gè)數控代碼行的譯碼結果存入其中。將G 代碼和M 代碼分為GA~GF、MX~MY 組別,以節省存儲空間,提高譯碼效率。譯碼流程見(jiàn)圖3。
struct CNCcodeBuf
{
short N;//存儲數控代碼N 后的編號
int X,Y,Z;//存儲X、Y、Z 代碼后的數值
int I,J,K;//存儲I、J、K 代碼后的數值
int F;//存儲F 代碼后的數值
int S;//存儲S 代碼后的數值
short T;//存儲T 代碼后的數值
unsigned char GA.GB,GC,GD,GE,GF;//存儲分組后G 代碼的序號
unsigned char MX,MY,MZ;//存儲分組后M 代碼的序號
}CNCBuf;
一行代碼譯碼完成后,代碼數據存儲于變量CNCBuf 中,然后需要作的事是將其變換為對API 函數的調用。方法是從變量CNCBuf 的成員中讀取G、M 代碼功能號,根據功能號對應的API 函數要求逐一完成API 調用的入口參數設置。
?。?/SPAN>2)通信。上位PC 將預處理后的數控代碼程序加幀頭“0xAA55
AA”和幀尾“0x55AA55”后以RS232 方式下載到運動(dòng)控制器中。通信格式設為:“38400,E,8,1”。
5 試驗實(shí)例
為了試驗數控代碼的運行效果,用北航海爾的CAXA 軟件設計一個(gè)“TEST”字符串的加工輪廓(CAXA 軟件自動(dòng)刀具補償),生成數控G 代碼PC 對G 代碼預處理后下載到運動(dòng)控制器中運行。記錄筆記錄的加工軌跡符合設計的預期輪廓。
N10G90G54G00Z60.000
N12S1000M03
N14X-24.992Y-8.481Z60.000
N16Z50.000
N18Z10.000
N20G01Z0.000F100
N22X-24.588Y-8.455F800
N24X-24.342Y-8.402
N26X-24.188Y-8.335
N28X-24.092Y-8.264
?。?/SPAN>
N890G02X21.410Y-8.481I0.927J-0.376
N892G01Z50.000F800
N894G00Z60.000
N896M05
N898M30
本文引用鏈接:http://www.100gczg.com/Detail.aspx?id=970026