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