鄧永紅, 曹樹坤
(濟(jì)南大學(xué) 機(jī)械工程學(xué)院, 山東 濟(jì)南 250022)
目前,開放式數(shù)控系統(tǒng)因不依賴某個特定的硬件、軟件,可以優(yōu)化選配來自不同供應(yīng)商的零部件,提供最大柔性,根據(jù)用戶需要集成特殊功能等優(yōu)點(diǎn),已成為國際研究數(shù)控系統(tǒng)主潮流.美國的NGC和OMAC計(jì)劃、歐盟的OSACA計(jì)劃以及日本的OSEC計(jì)劃最有代表性,其體現(xiàn)了國外開放性數(shù)控的發(fā)展現(xiàn)狀[1].國內(nèi)對開放式數(shù)控系統(tǒng)的研究還在起步階段,與國際先進(jìn)水平存在很大差距.國內(nèi)在數(shù)控系統(tǒng)中實(shí)現(xiàn)直接數(shù)字控制的方法主要是現(xiàn)場總線控制,基于現(xiàn)場總線的數(shù)控系統(tǒng)同樣需要在CNC上開發(fā)通信板卡,這些板卡須插入CNC的標(biāo)準(zhǔn)ISA/PCI插槽內(nèi),但I(xiàn)SA/PCI總線接口復(fù)雜,驅(qū)動程序、硬件接口開發(fā)難度大,開發(fā)成本較高,開發(fā)周期也較長,同時(shí)還需要伺服系統(tǒng)提供相應(yīng)的現(xiàn)場總線接口[2].而且目前市場上多種現(xiàn)場總線并存,不同類型現(xiàn)場總線之間不能相互通信,很難滿足開放性數(shù)控系統(tǒng)的要求.本文以開放式數(shù)控系統(tǒng)為研究對象,設(shè)計(jì)一套基于DSP核心控制器的開放式五軸數(shù)控系統(tǒng),以期提供一種響應(yīng)速度快、可靠性高、靈活性好,能夠更好地滿足機(jī)械加工中的更高要求,提高數(shù)控機(jī)床使用安全和效率的開放式數(shù)控系統(tǒng).
如圖1所示,基于DSP核心控制器的開放式五軸數(shù)控系統(tǒng)由上位機(jī)、下位機(jī)和五軸數(shù)控機(jī)床等組成.它采用上位機(jī)與下位機(jī)組成的開放式控制系統(tǒng),上位機(jī)由PC機(jī)、ARM模塊、DSP模塊、儲存單元四部分組成,各自硬件相互獨(dú)立,操作界面完善,給操作人員多種操作機(jī)器的手段,通過功能切換并與下位機(jī)連接成功后可對五軸數(shù)控機(jī)床操作[3].下位機(jī)由電機(jī)控制板、電液伺服閥和數(shù)據(jù)采集及輸出模塊組成.上位機(jī)完成配置硬件、設(shè)置試樣參數(shù)、實(shí)時(shí)顯示圖形、保存數(shù)據(jù)、打印報(bào)告等功能,且通過USB高速接口與下位機(jī)進(jìn)行通訊,下位機(jī)負(fù)責(zé)實(shí)時(shí)接收其命令,實(shí)時(shí)采集傳感器數(shù)據(jù)并返回給上位機(jī)顯示,并做有關(guān)數(shù)據(jù)運(yùn)算、伺服電機(jī)閉環(huán)控制等工作[4].

圖1 系統(tǒng)總體結(jié)構(gòu)框圖
為了滿足數(shù)控系統(tǒng)低成本、高性能、低功耗的要求,本文設(shè)計(jì)的解決方案采用Samsung 公司的16/32位RISC處理器S3C2410A.S3C2410A提供了以下豐富的內(nèi)部設(shè)備:分開的16KB的指令Cache和16KB數(shù)據(jù)Cache, MMU虛擬存儲器管理,LCD控制器(支持STN&TFT),支持NAND Flash系統(tǒng)引導(dǎo),系統(tǒng)管理器(片選邏輯和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定時(shí)器,I/O端口,RTC,8通道10位ADC和觸摸屏接口,IIC-BUS接口,IIC-BUS接口,USB主機(jī),USB設(shè)備,SD主卡&MMC卡接口,2通道的SPI以及內(nèi)部PLL時(shí)鐘倍頻器[5].
ARM模塊的功能是負(fù)責(zé)處理各種接口通信與人機(jī)交互、數(shù)據(jù)存儲與發(fā)送.ARM處理器s3c2410是數(shù)控系統(tǒng)的主要硬件,RT-Linux操作系統(tǒng)運(yùn)行在此硬件上.操作系統(tǒng)主要完成數(shù)據(jù)的計(jì)算和邏輯運(yùn)算,管理中斷信號和實(shí)時(shí)調(diào)度工作,采用現(xiàn)場總線技術(shù)通過CAN總線控制器與DSP實(shí)現(xiàn)數(shù)據(jù)傳輸.
本開放式數(shù)控系統(tǒng)使用的核心處理器為TMS320F28335.TMS320F28335采用靜態(tài)CMOS技術(shù),主頻達(dá)150MHz; CPU核供電電壓為1.8V,I/O口供電電壓為3.3V;具有3個獨(dú)立的外部擴(kuò)展接口,超過2M的尋址空間;芯片內(nèi)部本身具有256K X16位FLASH,34K X16位SARAM空間;具有豐富的內(nèi)部外圍模塊、完善快速的中斷體系及豐富的I/O資源[6].
DSP處理器TMS320F28335是本數(shù)控系統(tǒng)的核心硬件,本系統(tǒng)使用DSP處理器的EPWM模塊對伺服電機(jī)進(jìn)行控制,例如通過讓EPWM1模組的時(shí)基與EPWM2和EPWM3同步,同時(shí)讓EPWM4的時(shí)基與EPWM5和EPWM6同步,即可現(xiàn)實(shí)對兩個伺服電機(jī)的獨(dú)立控制;通過讓EPWM1的時(shí)基與另外五個模組同步,即可現(xiàn)實(shí)兩個伺服電機(jī)在同一時(shí)間啟動,完成機(jī)床兩軸聯(lián)動.應(yīng)用eQEP模塊對電機(jī)位置與速度進(jìn)行實(shí)時(shí)測量.應(yīng)用通用定時(shí)器和外部中斷接口實(shí)現(xiàn)各外設(shè)控制.應(yīng)用通用I/O模塊實(shí)現(xiàn)DSP與各外設(shè)以及ARM平臺間的數(shù)據(jù)交互.
儲存單元由IDE硬盤、FLASH和內(nèi)存組成,IDE硬盤主要儲存零件加工程序.加工零件程序編寫復(fù)雜、數(shù)據(jù)量大,可在該系統(tǒng)加上硬盤以彌補(bǔ)FLASH的儲存空間不足,將調(diào)試好的RT-Linux操作系統(tǒng)以及用戶的應(yīng)用程序等存放于FLASH儲存器[7].RT-Linux操作系統(tǒng)由BootLoader、RT-Linux內(nèi)核、文件系統(tǒng)組成;用戶應(yīng)用程序主要為數(shù)控系統(tǒng)部分模塊和人機(jī)界面軟件等[8].當(dāng)數(shù)控系統(tǒng)運(yùn)行時(shí),其主要區(qū)域?yàn)閮?nèi)存,內(nèi)存中包含系統(tǒng)及用戶數(shù)據(jù)以及系統(tǒng)運(yùn)行時(shí)的堆棧.
電機(jī)控制板模塊負(fù)責(zé)驅(qū)動伺服電機(jī)并反饋傳感器信號.圖2所示為MCT8000F8控制器控制的一個交流伺服電機(jī)的控制圖.在本系統(tǒng)中,采用松下MSD伺服驅(qū)動器驅(qū)動交流伺服電機(jī).MCT8000F8控制板和MCT8000F8-IO接口板向伺服驅(qū)動器輸出控制信號.編碼器檢測電機(jī)的實(shí)際位置并反饋給MCT8000F8.MCT8000F8將需要的位置指令信息與反饋的編碼器實(shí)際位置信號進(jìn)行比較,通過DAC輸出端子DAC0將產(chǎn)生的偏差信號輸入伺服驅(qū)動器,形成閉環(huán)位置控制系統(tǒng)[9].三個數(shù)字輸出信號DO0、DO1、DO2用于控制伺服驅(qū)動器;兩個數(shù)字輸入信號DI0和DI1用于檢測驅(qū)動器的運(yùn)行狀態(tài).本系統(tǒng)用一個MCT8000F8同時(shí)控制5個電機(jī),實(shí)現(xiàn)五軸聯(lián)動加工.

圖2 交流伺服電機(jī)的控制圖
本系統(tǒng)使用DSP核心控制器加上ARM處理器,實(shí)現(xiàn)多處理器并行工作,將軟件工作分配給各級處理器,完成實(shí)時(shí)多任務(wù)處理,提高了整個系統(tǒng)的運(yùn)行速度.將數(shù)控系統(tǒng)中整個軟件分為三部分各自獨(dú)立運(yùn)行:在PC的windows運(yùn)行部分、在ARM的RT-Linux運(yùn)行部分以及在DSP的運(yùn)行部分.在PC中完成復(fù)雜曲面的高效、精密加工; ARM運(yùn)算速度比DSP高,用于事件處理;DSP芯片內(nèi)部沒有操作系統(tǒng),基本上單任務(wù)運(yùn)行,不支持進(jìn)程間調(diào)度問題,但支持高速浮點(diǎn)運(yùn)算,因此該環(huán)境可以運(yùn)行實(shí)時(shí)要求高及運(yùn)算量大的任務(wù)[10].
整個系統(tǒng)的軟件部分是以Visual C++6.0為開發(fā)工具,采用了面向?qū)ο蠛湍K化的思想進(jìn)行開發(fā),主要分為五大模塊:參數(shù)設(shè)置、運(yùn)行模式、狀態(tài)顯示、狀態(tài)控制、系統(tǒng)管理[11].參數(shù)設(shè)置模塊包括運(yùn)行模式的選擇、刀具選擇、加速度設(shè)置和速度設(shè)置,此模塊負(fù)責(zé)各軸運(yùn)動控制的脈沖輸出設(shè)置和刀具選擇等.運(yùn)行模式模塊主要包括點(diǎn)動運(yùn)行、手動運(yùn)行和自動運(yùn)行,此模塊完成調(diào)整運(yùn)行的方式[12].狀態(tài)顯示模塊包括運(yùn)行狀態(tài)顯示、運(yùn)行軌跡顯示、速度顯示和I/O顯示,該模塊負(fù)責(zé)將運(yùn)行狀態(tài)(位置、速度、I/O量等)及調(diào)整后的參數(shù)實(shí)時(shí)顯示[13].狀態(tài)控制模塊包括I/O控制、速度控制,該模塊負(fù)責(zé)向運(yùn)動控制卡及其他執(zhí)行部件發(fā)送控制指令.系統(tǒng)管理模塊包括幫助文檔、程序編譯和文件管理,其負(fù)責(zé)文件管理以及軟件的操作說明等.上述各個模塊在主框架程序控制下相互協(xié)調(diào),組成一個完整的運(yùn)動控制系統(tǒng)[14].
該系統(tǒng)是以DSP為核心的運(yùn)動控制器,需要與ARM進(jìn)行通信以得到代碼指令,并完成指令解析和插補(bǔ)算法,最終輸出PWM脈沖驅(qū)動各電機(jī)完成有序運(yùn)動.其主程序流程圖如圖3所示.

圖3 DSP主程序流程圖
部分程序代碼:
struct CMachinePara
{
double machRect[6];//工作臺行程
double mmPrePulse[5];
double arcPrePulse[5];
int ciraxis;//旋轉(zhuǎn)軸號
double calibratehig;//對刀器高度
double calibrateVel;//對刀速度
short LimSns,HomeSns;
double HomeVel[5];//五軸的回零速度
int HomeDir[4];//回零方向
double sysMaxVel;//系統(tǒng)最高速度
int SpineDelay;//主軸啟動延遲時(shí)間
bool startGohome;//程序啟動自動會零
};
……
(1)主操作界面
該系統(tǒng)主操作界面中包括標(biāo)題欄、菜單欄、工具欄、軌跡跟蹤區(qū)、代碼跟蹤區(qū)、坐標(biāo)跟蹤區(qū)、速度調(diào)節(jié)區(qū)、轉(zhuǎn)速調(diào)節(jié)區(qū)、狀態(tài)顯示區(qū)、手動控制區(qū)和系統(tǒng)狀態(tài)欄.系統(tǒng)正常啟動后,出現(xiàn)如圖4所示的系統(tǒng)主操作界面,此時(shí)用戶即可進(jìn)行各項(xiàng)正常操作.

圖4 系統(tǒng)主操作界面
(2)參數(shù)設(shè)置界面
在進(jìn)行加工之前需用設(shè)置系統(tǒng)參數(shù).點(diǎn)擊主操作界面上的“工具”以及“設(shè)置系統(tǒng)參數(shù)”菜單項(xiàng),系統(tǒng)將彈出“系統(tǒng)參數(shù)設(shè)置”對話框.“機(jī)床參數(shù)設(shè)置”對話框包括三個部分:速度設(shè)置、加速度設(shè)置、其他,如圖5所示.

圖5 系統(tǒng)參數(shù)設(shè)置
將該數(shù)控系統(tǒng)應(yīng)用到一臺五軸坐標(biāo)數(shù)控銑床上進(jìn)行實(shí)物加工試驗(yàn),五軸坐標(biāo)機(jī)床實(shí)驗(yàn)平臺X軸的行程為240mm、Y軸的行程為130mm、Z軸的行程為140mm,轉(zhuǎn)動軸A軸最大轉(zhuǎn)動角度為360°,轉(zhuǎn)動軸C軸的最大轉(zhuǎn)動角度為140°.試驗(yàn)系統(tǒng)如圖6、圖7所示.

圖6 數(shù)控系統(tǒng)測試平臺1

圖7 數(shù)控系統(tǒng)測試平臺2
整個數(shù)控系統(tǒng)工作過程如下:
(1)操作端對需要加工的零件進(jìn)行UG建模、刀具軌跡生成并進(jìn)行刀具軌跡信息提取.
(2)DSP模塊將數(shù)控機(jī)床初始化等待ARM指令.
(3)操作端通過數(shù)據(jù)線將刀具軌跡信息傳送到ARM模塊.
(4)ARM接到刀具軌跡信息后向DSP發(fā)送測量指令,并獲取反饋的測量信息,DSP獲得指令啟動測量功能獲得加工工件的初始尺寸和定位信息,并反饋回ARM.
(5)ARM根據(jù)測量信息智能規(guī)劃刀具的路徑、根據(jù)智能工藝數(shù)據(jù)庫選擇加工工藝參數(shù),并自動生成數(shù)控代碼,進(jìn)行加工仿真和數(shù)控代碼檢查、將檢查過的數(shù)控代碼傳送給DSP并控制DSP的工作狀態(tài).
(6)DSP接受數(shù)控代碼,向電機(jī)控制板、電液伺服閥發(fā)送指令脈沖.
(7)電機(jī)控制板、電液伺服閥接受脈沖指令,電機(jī)控制板將指令發(fā)向伺服驅(qū)動器.
(8)伺服電機(jī)、電液伺服閥按數(shù)控指令驅(qū)動五軸數(shù)控機(jī)床.
(9)五軸數(shù)控機(jī)床完成數(shù)控加工同時(shí)將加工中的狀態(tài)信息通過DSP反饋給ARM.
(10)加工完成后,ARM再次啟動測量功能,對工件尺寸和形狀進(jìn)行自動檢測,實(shí)現(xiàn)加工質(zhì)量的主動控制.
(11)DSP接收到ARM命令后再次啟動測量功能對工件的關(guān)鍵尺寸和形狀等質(zhì)量狀態(tài)進(jìn)行在線檢測,并反饋給ARM.
配置適當(dāng)參數(shù)對X軸、Y軸、Z軸、A軸及C軸進(jìn)行測試,機(jī)床在測試過程中運(yùn)行平穩(wěn).
試驗(yàn)表明,本文設(shè)計(jì)的基于DSP核心控制器的開放式數(shù)控系統(tǒng)響應(yīng)速度快、可靠性高、靈活性好,能夠較好地滿足實(shí)際加工中的更高要求,提高了數(shù)控機(jī)床使用安全和效率,且具有以下特點(diǎn):
(1)采用DSP作為核心器件,在整個數(shù)控系統(tǒng)中可以集成、固化多種伺服控制核,實(shí)現(xiàn)控制的靈活性以及靈活的智能化控制.
(2)通過增設(shè)ARM模塊,融合了數(shù)控技術(shù)和可嵌入技術(shù),實(shí)現(xiàn)數(shù)控系統(tǒng)與人交互功能;通過監(jiān)控終端實(shí)現(xiàn)對數(shù)控機(jī)床狀態(tài)實(shí)時(shí)監(jiān)控,及時(shí)了解各數(shù)控機(jī)床生產(chǎn)加工過程以及機(jī)床狀態(tài),實(shí)現(xiàn)預(yù)知維修,及早發(fā)現(xiàn)故障隱患把損失降到最低,提高數(shù)控機(jī)床使用效率.
[1] 張恒.直接面向加工路徑的開放式數(shù)控系統(tǒng)研究[D].濟(jì)南:濟(jì)南大學(xué),2009.
[2] 李攀,裴海龍,王清陽.開放式數(shù)控系統(tǒng)軟運(yùn)動控制器全數(shù)字化的實(shí)現(xiàn)[J].機(jī)床與液壓,2011,39(4):83-86.
[3] 盛曉超,陶濤,張東升,等.基于運(yùn)動控制器的開放式數(shù)控系統(tǒng)設(shè)計(jì)[J].機(jī)床與液壓,2011,39(19):58-66.
[4] Kim D Y,Do H S, Jeon D Y.Feed-system autotuning of a CNC machining center: rapid system identification and fine gain tuning based on optimal search[J].Precision Engineering,2012,36(2):339-348.
[5] 侯殿有.嵌入式系統(tǒng)開發(fā)基礎(chǔ)——基于ARM9微處理器C語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2011:2-15.
[6] 劉陵順.TMS320F28335DSP原理及開發(fā)編程[M].北京:北京航空航天大學(xué)出版社,2011:1-5.
[7] 蘇傳芳.嵌入式處理器實(shí)現(xiàn)IDE硬盤存儲[J].計(jì)算機(jī)時(shí)代,2002,25(4):36-38.
[8] Bousias K,Guang L,Jesshope C R,etal. Implementation and evaluation of a microthread architecture[J].J.Syst.Architect,2009,55 (3) :149-161.
[9] 周虹.開放式數(shù)控系統(tǒng)在數(shù)控車床上的應(yīng)用[D].長沙:湖南大學(xué),2005.
[10] 徐躍,王太勇.基于ARM和DSP的可重構(gòu)數(shù)控系統(tǒng)[J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2008,38(4):848-851.
[11] 陳先鋒.西門子數(shù)控系統(tǒng)故障診斷與電氣調(diào)試[M].北京:化學(xué)工業(yè)出版社,2012:1-10.
[12] 徐斌.基于運(yùn)動控制卡的機(jī)械手控制系統(tǒng)研究[J].合肥學(xué)院學(xué)報(bào):自然科學(xué)版,2010,20(3):86-88.
[13] 許青林,解爭龍.基于ARM的Linux系統(tǒng)移植研究與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2013,37(1):37-42.
[14] 李建奇,肖繼國,賀盛修,等.基于NURBS插補(bǔ)算法的數(shù)控雕刻機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2012,20(13):3 249-3 252.