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

評論