高速化、高精度、低成本、小型化數(shù)控控制系統(tǒng)已經(jīng)成為數(shù)控機(jī)床加工行業(yè)的發(fā)展趨勢(shì)。本文提出QT+Linux+Microblaze的設(shè)計(jì)方法,由QT設(shè)計(jì)人機(jī)交互數(shù)控加工軟件,以供繪制加工所需的圖形以及獲得圖形數(shù)據(jù),將此軟件通過(guò)Linux向Microblaze移植;加工數(shù)據(jù)信息通過(guò)UART發(fā)送給下位機(jī)數(shù)控加工模塊;在下位機(jī)FPGA模塊上配置出UART模塊、插補(bǔ)IP核以及脈沖發(fā)生IP核,最后控制三軸電機(jī)聯(lián)動(dòng)走出需要的加工軌跡。簡(jiǎn)要介紹了項(xiàng)目的背景和設(shè)計(jì)原理,詳細(xì)說(shuō)明了系統(tǒng)中三個(gè)最主要的部分:三軸數(shù)控驅(qū)動(dòng)模塊,抗干擾自適應(yīng)波特率UART模塊,基于QT的加工作圖上位機(jī)軟件,并給出了這三個(gè)模塊的各自功能效果,最后分析了該項(xiàng)目的改進(jìn)方向以及應(yīng)用前景。實(shí)驗(yàn)證明,該系統(tǒng)非常適合當(dāng)今數(shù)控行業(yè)對(duì)控制模塊的運(yùn)行速度、加工精度和體積的要求。
1項(xiàng)目背景及簡(jiǎn)介
數(shù)控機(jī)床廣泛應(yīng)用于國(guó)防、航空航天和國(guó)民經(jīng)濟(jì)各個(gè)部門(mén),是自動(dòng)化加工行業(yè)中最基本的裝備,也關(guān)系到國(guó)家的安全和工業(yè)生產(chǎn)能否健康地增長(zhǎng)。突破國(guó)家裝備制造業(yè)發(fā)展的技術(shù)瓶頸,高速、高精度的數(shù)控機(jī)床要先行。嵌入式系統(tǒng)在功能、可靠性、成本、體積、功耗等方面的巨大優(yōu)點(diǎn),已使它逐漸被廣泛應(yīng)用于具有高速化、小型化需求的數(shù)控加工控制系統(tǒng)。
目前的中高檔機(jī)床的數(shù)控加工系統(tǒng)的載體是以由傳統(tǒng)PC機(jī)衍生出的工控機(jī)為主,而一些小型數(shù)控工作裝置的控制系統(tǒng)則主要是PC機(jī)(上位機(jī))+下位機(jī)的控制方式。第一種方法,由于采用了類(lèi)似于PC機(jī)順序執(zhí)行命令代碼方式,限制了加工速度的提高,尤其是現(xiàn)代加工行業(yè)對(duì)加工精度的高要求導(dǎo)致了大量傳感器及其外圍電路的應(yīng)用,這就需要系統(tǒng)CPU具備高速運(yùn)算處理的能力。第二種方法,由于需要在下位機(jī)和上位機(jī)之間頻繁的傳送數(shù)據(jù),外圍電路比較簡(jiǎn)單,難于外接較多的輔助傳感模塊,主要應(yīng)用于對(duì)加工精度和速度要求均不高的數(shù)控裝置。
針對(duì)數(shù)控機(jī)床控制系統(tǒng)的需求和現(xiàn)狀,本文提出并進(jìn)行相關(guān)實(shí)驗(yàn)驗(yàn)證了以QT+Linux+Microblaze的數(shù)控控制系統(tǒng)設(shè)計(jì)方式,利用QT美觀的圖形界面及其良好的繪圖功能,進(jìn)行數(shù)控加工軟件的設(shè)計(jì),用于繪制加工圖形,并獲得圖形數(shù)據(jù);結(jié)合Linux的移植能力,將QT數(shù)控軟件先在Linux中運(yùn)行通過(guò),再移植到Microblaze(考慮到芯片無(wú)PowerPC,移植入PowerPC效果可能將會(huì)更好);最后由Verilog HDL語(yǔ)言編寫(xiě)的并行執(zhí)行模塊根據(jù)加工圖形數(shù)據(jù)控制數(shù)控設(shè)備。本方案將兼具高速運(yùn)算處理能力以及圖形化友好操作界面。
2系統(tǒng)實(shí)現(xiàn)原理及總體設(shè)計(jì)
系統(tǒng)實(shí)現(xiàn)原理如圖1所示,左側(cè)虛線框表示原先設(shè)計(jì)方案即QT編寫(xiě)的數(shù)控加工軟件通過(guò)Linux開(kāi)發(fā)工具最終移植到Microblaze處理器,由于我們團(tuán)隊(duì)還未能成功實(shí)現(xiàn)Linux向Microblaze的移植,所以將QT數(shù)控軟件放在PC機(jī)上運(yùn)行實(shí)現(xiàn),由PC機(jī)與FPGA模塊通過(guò)串口交換數(shù)據(jù)。FPGA內(nèi)部的功能模塊以及外圍所需控制的器件如圖1所示。
圖1系統(tǒng)實(shí)現(xiàn)原理框圖
本文所述系統(tǒng)的總體設(shè)計(jì)框圖可以表示如圖2所示。
圖2 總體設(shè)計(jì)框圖
圖3 系統(tǒng)硬件平臺(tái)
圖4 系統(tǒng)軟硬件配合工作圖
3系統(tǒng)主要模塊設(shè)計(jì)及實(shí)現(xiàn)功能
由圖2可知項(xiàng)目涉及到的系統(tǒng)主要由三大部分組成:下位機(jī)部分由FPGA處理器配置出三軸數(shù)控驅(qū)動(dòng)模塊;用于上位機(jī)和下位機(jī)通信的抗干擾波特率自適應(yīng)UART模塊;基于QT設(shè)計(jì)的數(shù)控加工軟件。為了體現(xiàn)出系統(tǒng)的處理速度優(yōu)勢(shì),各模塊的設(shè)計(jì)均采用Verilog HDL語(yǔ)言設(shè)計(jì)。
3.1 三軸數(shù)控驅(qū)動(dòng)模塊設(shè)計(jì)
該模塊主要具有插補(bǔ)計(jì)算功能和脈沖發(fā)生功能。該模塊通過(guò)UART模塊獲取信息,先判斷圖形形狀(目前能加工出正方形、任意角度的折線以及圓弧),然后提取出圖形尺寸信息如邊長(zhǎng)(起始點(diǎn))、角度、弧度、半徑等信息,進(jìn)而計(jì)算出X、Y軸的運(yùn)行方向、運(yùn)行的總位移以及脈沖數(shù),接著驅(qū)動(dòng)脈沖發(fā)生模塊工作發(fā)出脈沖控制三軸電機(jī),最終走出加工所需要的軌跡。
直線插補(bǔ)方法:逐點(diǎn)比較法是一種代數(shù)運(yùn)算,其特點(diǎn)是能逐點(diǎn)計(jì)算和判別運(yùn)動(dòng)偏差,并逐點(diǎn)就在以逼近理論軌跡。逐點(diǎn)比較法的理論誤差是一個(gè)脈沖當(dāng)量。
整個(gè)插補(bǔ)過(guò)程中沒(méi)走一步需要完成四個(gè)工作節(jié)拍:(1)偏差判別,判別當(dāng)前運(yùn)動(dòng)點(diǎn)偏離理論曲線的位置。(2)進(jìn)給控制,確定進(jìn)給坐標(biāo)及進(jìn)給方向。(3)新偏差計(jì)算,計(jì)算新的偏差值。(4)終點(diǎn)判別,線段均有終點(diǎn)。結(jié)束,則停止插補(bǔ);否則,繼續(xù)插補(bǔ)進(jìn)給,重復(fù)(1)~(4)工作節(jié)拍。直線插補(bǔ)示例如圖5所示:
圖5 直線插補(bǔ)示例
圓弧插補(bǔ)和直線插補(bǔ)類(lèi)似,每走一步也分四個(gè)工作節(jié)拍: (1)偏差判別,X2+Y2=R2;令Fi=X2+Y2-R2(i=0,1,2,…,N);Fi=0,點(diǎn)在圓上; Fi《0,點(diǎn)在圓外;Fi》0,點(diǎn)在圓內(nèi)。(2)進(jìn)給控制,當(dāng)Fi≥0時(shí),進(jìn)給-ΔX;當(dāng)Fi《0時(shí),進(jìn)給ΔY。(3)偏差計(jì)算,①進(jìn)給-ΔX后, Fi+1=(Xi-1)2+Yi2-R2= Fi -2Xi+1;②進(jìn)給ΔY后,F(xiàn)i+1=Xi2+(Yi+1)2-R2= Fi +2Yi+1。(4)終點(diǎn)判別,計(jì)數(shù)長(zhǎng)度法,令M=|X|或者|Y|,這樣X(jué)方向(Y方向)每走一步,M就減1;雙向計(jì)數(shù)法,令M=|X|+|Y|,這樣X(jué)方向或Y方向每走一步,M就減1。圓弧插補(bǔ)示意圖如圖6所示。
圖6 圓弧插補(bǔ)示意圖
圖7 三軸數(shù)控插補(bǔ)加工設(shè)計(jì)界面
3.2 抗干擾自適應(yīng)波特率UART模塊設(shè)計(jì)
本文利用電路板上的UART進(jìn)行下位機(jī)與上位機(jī)之間的通信。通用異步收發(fā)器(UART)常運(yùn)用于多MCU的總線通信系統(tǒng)中進(jìn)行數(shù)據(jù)交換。為了應(yīng)對(duì)多種波特率通信需求,本文設(shè)計(jì)了一個(gè)波特率自適應(yīng)UART,UART模塊可以根據(jù)通信需求自動(dòng)改變下位機(jī)波特率,波特率更新過(guò)程如圖8所示。根據(jù)上位機(jī)按新波特率發(fā)送的特殊數(shù)據(jù)(該字節(jié)數(shù)據(jù)保證2bit高電平,如0x18H),UART接收到此數(shù)據(jù)后即可計(jì)算出新的波特率,并更新自身波特率與上位機(jī)通信波特率,表1列舉了采用該方法計(jì)算出的波特率值與理想波特率的誤差值。目前利用FPGA設(shè)計(jì)UART多采用16倍頻碼元中部采樣法,即對(duì)一個(gè)碼元采樣16次,將中間采樣作為本碼元的有效電平,這樣可以消除邊緣噪聲的影響,但是沒(méi)能解決隨機(jī)噪聲問(wèn)題。碼元受到噪聲干擾示意圖如圖9所示。對(duì)于UART抗干擾問(wèn)題,常用16倍頻碼元中部采樣法抗隨機(jī)干擾差,本文設(shè)計(jì)引入數(shù)字相關(guān)器對(duì)UART進(jìn)行抗干擾設(shè)計(jì),并采用流水線設(shè)計(jì)方法對(duì)數(shù)字相關(guān)器進(jìn)行了優(yōu)。圖10所示為兩位數(shù)字相關(guān)器運(yùn)算數(shù)據(jù)流圖。實(shí)驗(yàn)表明該方法設(shè)計(jì)的UART具有靈活、可靠的優(yōu)點(diǎn)。
圖8 波特率變更流程圖
波特率(bit/s)分頻計(jì)數(shù)值誤差
240026030.0448%
96006510.16%
192003250.16%
115200540.4672%
200000310.8%
500000124%
65000096.4%
圖9 含噪聲干擾碼元采樣示意圖
表1 各波特率誤差表
圖10 相關(guān)器運(yùn)算數(shù)據(jù)流圖
圖11、圖12、圖13表示波特率自適應(yīng)過(guò)程,并能以新的波特率正常通信。
圖11 串口調(diào)試助手顯示及數(shù)碼管顯示(波特率9600bit/s)
圖12 發(fā)送06H通知下位機(jī)改變波特率(新波特率115200bit/s)
圖13 以新波特率正常通信(波特率115200bit/s)
3.3 基于QT的加工作圖模塊設(shè)計(jì)(上位機(jī)部分)
利用QT軟件良好的界面效果來(lái)設(shè)計(jì)數(shù)控加工軟件??梢栽谶@個(gè)軟件界面下繪制加工圖,如圖14所示:
圖14 數(shù)控加工軟件界面
在圖中,先繪制出加工圖,目前可以繪制直線、折現(xiàn)、四邊形、圓等圖形,然后點(diǎn)擊菜單欄中“機(jī)械加工”,則軟件會(huì)自動(dòng)提取圖形的起點(diǎn)、折點(diǎn)或者凸點(diǎn)、終點(diǎn)以及每個(gè)加工段的插補(bǔ)值,然后通過(guò)串口發(fā)送給下位機(jī)。
如圖13和圖14所示,下位機(jī)驅(qū)動(dòng)三軸電機(jī)在布上(下面是海綿)畫(huà)正方形,因?yàn)楹>d會(huì)變形,所以軌跡不是筆直的。
圖15 圖16
4 結(jié)論
本項(xiàng)目利用了嵌入式體積小的優(yōu)點(diǎn),結(jié)合QT良好的界面效果設(shè)計(jì)了一套簡(jiǎn)易數(shù)控加工系統(tǒng)。由于未能成功將QT軟件移植到Microblaze,故在上位機(jī)運(yùn)行QT數(shù)控軟件,獲得加工信息后將有關(guān)數(shù)據(jù)發(fā)送到基于FPGA處理器的下位機(jī),進(jìn)而控制三軸數(shù)控平臺(tái)進(jìn)行加工。將FPGA器件用于數(shù)控加工,可以有效解決目前由于運(yùn)算速度低帶來(lái)的加工技術(shù)瓶頸(由于目前數(shù)控處理器運(yùn)算不高,部分計(jì)算量較大的提高加工精度的算法未能付諸應(yīng)用),可以促進(jìn)FPGA在數(shù)控加工領(lǐng)域的應(yīng)用。
-
Linux
+關(guān)注
關(guān)注
87文章
11327瀏覽量
209966 -
數(shù)控系統(tǒng)
+關(guān)注
關(guān)注
5文章
260瀏覽量
24275
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論