摘要:SMP86X是一個基于ARM+FPGA的高性能嵌入式的通用運動控制平臺,利用其嵌入式的板級底層處理、緩沖的特點,以及運動控制加減速功能,直線、圓弧、連續(xù)插補功能。很容易實現(xiàn)一個開放的、靈活的高性價比雕刻、切割系統(tǒng)方案。
雕刻、切割運動控制系統(tǒng)方案,其關(guān)鍵點是對連續(xù)軌跡加工的處理,以實現(xiàn)平面或空間內(nèi)任意曲線加工,比如激光切割、廣告/模具雕刻系統(tǒng)就是如此。一般實現(xiàn)方式是用小線段來模擬實際的軌跡,因此最終的技術(shù)關(guān)鍵點就是小線段的連續(xù)插補的實現(xiàn)。由于實際加工中的軌跡往往不是很平滑,所以要控制系統(tǒng)達到快、準(zhǔn)、柔的高性能標(biāo)準(zhǔn),就對運動控制器在插補功能尤其連續(xù)插補的高效實現(xiàn)提出了很高的要求。深圳市斯邁迪科技發(fā)展有限公司的SMP86x系列嵌入式運動控制平臺,以其高性能的運動控制功能及友善平臺特性就可以滿足這樣的方案需求。
1 SMP86X嵌入式運動控制平臺
SMP86x是一款基于FPGA(我司研發(fā)的高性能多軸聯(lián)動控制SOPC芯片方案:SM5000)+ARM的運動控制平臺。它不但應(yīng)用了SM5000方案的一切特性,而且還是基于ARM的嵌入式方案,提供了板栽存儲器件、串口、USB口、鼠標(biāo)/鍵盤接口、LCD接口,支持UCOSII、UCLINUX??蛻衾盟伍_發(fā)既可以形成獨立平臺的數(shù)控方案,也可以通過USB等接口結(jié)合PC應(yīng)用。這些方案中自然也包括雕刻、切割方案在內(nèi)。SMP86x系列包含三款產(chǎn)品:SMP-860,4軸;SMP863,3軸;SMP862,2軸。下面是其特點及功能描述。
1.1 SMP86X平臺的特點
1.1.1 平臺性與靈活性
很多客戶知道通用的運動控制卡,往往用起來總是與實際的系統(tǒng)要求不是很對應(yīng)。SMP86x強調(diào)了平臺性,她更多的是提供了核心控制部件與應(yīng)用管理的平臺,以及完善的運動控制庫函數(shù)。
而且,F(xiàn)PGA運動控制芯片功能具有可擴展性。盡管SM5000 FPGA芯片方案既有功能很強大,但客戶總有自己特殊的功能或接口需要客戶化處理,這樣只要在FPGA芯片里面增加自己所需即可。FPGA既有DSP那樣的可塑性,又有專用IC那樣硬件可靠性和使用便捷性。
輸入/輸出接口可擴展性。輸入/輸出接口留給客戶自己擴展(可以扣板,也可以與自己的既有電路連接)??蛻舾鶕?jù)自己系統(tǒng)的伺服/步進特點,可以對信號做模擬、數(shù)字、高速光隔、差分、電平等方面處理。
更為重要的是,除了常用的通用數(shù)字量輸入、輸出信號接口外,SMP86x平臺還有為客戶自定義的擴展接口,以適應(yīng)在系統(tǒng)集成時與其它部件的對接。比如系統(tǒng)中還有其他處理板,其接口如同是主運動控制板(SMP86x或其他卡)的外設(shè)一樣,需要對其進行并行I/O或寄存器性質(zhì)的操作,或者其他形式的接口時序,SMP86x都可以定制實現(xiàn)。這種情況下,SMP86x就可以完成其他運動控制卡無法完成的功能。
1.1.2 嵌入式特點
由于ARM作為應(yīng)用管理CPU,加上板上的系統(tǒng)存儲、接口資源,又能對UCOSII及UCLINUX操作系統(tǒng)的支持,SMP86x可以成為一個真正獨立的嵌入式平臺, 可以節(jié)省常見控制系統(tǒng)中的PC機成本,便于系統(tǒng)集成,產(chǎn)品移動靈活。
我們在ARM上提供了對SM5000 FPGA芯片以及其他硬件資源的底存驅(qū)動程序、底層庫函數(shù)??蛻艏瓤梢暂^快地二次開發(fā),形成自己的獨立應(yīng)用系統(tǒng)(有無嵌入式操作系統(tǒng)都可以,客戶可以在ARM上用C/C++開發(fā)自己的應(yīng)用系統(tǒng),系統(tǒng)比較復(fù)雜可以在UCLINUX操作系統(tǒng)基礎(chǔ)上開發(fā))。
1.1.3 結(jié)合PC機應(yīng)用
部分客戶習(xí)慣于上位機應(yīng)用開發(fā),再與下位運動控制主板實時互連通信展開系統(tǒng)應(yīng)用,或者上位機做界面和操作文件數(shù)據(jù)的處理,然后下載到下位運動控制主板,脫機獨立運行;或者通過USB或RS232與PC直接做實時交互處理。
1.2 SMP86x平臺的功能及性能描述
1.2.1 主要功能、性能
單個平臺可以控制多達4路伺服/步進電機可在運動中隨時改變速度,可使用連續(xù)插補等功能。
脈沖輸出方式可用單脈沖(脈沖+方向)或雙脈沖(脈沖+脈沖)方式,最大脈沖頻率5MHz,采用先進技術(shù)使輸出頻率在很高的時候也能使頻率誤差小于0.1%。
位置管理采用兩個加/減計數(shù)器,一個用于內(nèi)部管理驅(qū)動脈沖輸出的邏輯位置計數(shù)器,一個用于接收外部的輸入,輸入信號可以是A/B相輸入的編碼器或光柵尺,也可是上/下脈沖的輸入信號,作為實際位置計數(shù)器,計數(shù)器位數(shù)高達32位,最大范圍-2,147,483,648~+2,147,483,647。外部輸入也可用于手輪輸入,作為普通的計數(shù)。
手輪信號輸入,可以設(shè)置多個信號倍率。

圖1

圖2

圖3

圖4

圖5

圖6
提供伺服接口信號,如編碼器信號,到位信號,報警信號,伺服開啟等。
多種控制方式,如定量運動,定量驅(qū)動的范圍為2,147,483,648~+2,147,483,647。連續(xù)運動,回零運動,多軸插補,圓弧插補等。插補一般用定速運動,也可用直線/S曲線加減速。
插補帶有連續(xù)插補功能,即在插補過程中輸入下一點的插補數(shù)據(jù),以保證脈沖的連續(xù),使插補達到更快更好的性能。最大連續(xù)插補速度可達5Mhz。
具有多數(shù)據(jù)段預(yù)存特點,尤其在嵌入式底層實現(xiàn)預(yù)存和緩沖,基本不受約束。
速度控制可用定速和直線/S曲線加減速,可做非對稱直線加減速,可用自動/手動減速,在定量驅(qū)動時可防止速度曲線產(chǎn)生三角波形。
每軸有2個32位比較寄存器,用于產(chǎn)生中斷或作為軟件限位。
每軸有8個輸入信號,包括2個正負限位信號,3個停止信號,1個伺服到位信號,1個伺服報警信號和1個通用輸入信號,除限位信號外,其余信號可通過設(shè)置成無效來作為通用輸入信號,3個停止信號可作為原點信號、減速信號、編碼器Z相搜尋使用。
每軸有8個通用輸出信號,可用于I/O點輸出控制。
中斷可設(shè)置成在各種情況下產(chǎn)生,如加/減速驅(qū)動的定速開始時,定速完畢時,驅(qū)動完畢時,位置計數(shù)器和比較器之間的大小關(guān)系有變化時等等,此外連續(xù)插補發(fā)生下一個數(shù)據(jù)請求時的中斷。

圖7

圖8
1.2.2 嵌入式平臺功能
嵌入式平臺、脫機獨立平臺。
ARM CPU,用作平臺的上層管理CPU,與SM5000一起形成一個完整的應(yīng)用平臺。
RS232串口,USB口。和上位機通訊。
PS2鍵盤接口,8*8按鍵掃描接口。
LCD液晶顯示屏接口。
4MB的FLASH器件,用于嵌入式系統(tǒng)設(shè)計,及用戶系統(tǒng)應(yīng)用程序存放。
8MB的SDRAM器件,用于嵌入式系統(tǒng)設(shè)計。
128MB的NAND FLASH器件,用于用戶系統(tǒng)應(yīng)用程序存放。
支持UC/OSII,UCLINUX操作系統(tǒng)。
在ARM平臺上對SM5000芯片的運動控制函數(shù)庫。
支持DOS、WINDOWS95/98/NT/2000等操作系統(tǒng)(結(jié)合PC)。
綜上所述,SMP8x平臺的特點及功能,使得其實現(xiàn)包括連續(xù)軌跡運動、點位運動、跟隨運動,乃至過程運動在內(nèi)的控制系統(tǒng)成為現(xiàn)實。
2 雕刻切割方案的實現(xiàn)
SMP86X運動控制平臺可以實現(xiàn)兩種單段軌跡運動方式:直線插補、圓弧插補。SMP86X運動控制平臺所提供的軌跡運動都是在正交坐標(biāo)系中描述的。當(dāng)空間直線段的起始和結(jié)束點被給定后,則整個線段就會以插補方式并可以結(jié)合T/S型加減速運行。
SMP86X運動控制平臺除了可以實現(xiàn)上述單段插補運動,還可以實現(xiàn)多段連續(xù)插補運動。這里的連續(xù)插補運動是直接在FPGA硬件里完成算法處理。即用戶直接向運動控制平臺上運動芯片寫入連續(xù)軌跡的數(shù)據(jù),F(xiàn)PGA芯片就可以將這連續(xù)軌跡的數(shù)據(jù)一連貫地執(zhí)行完,并可以結(jié)合加減速控制。
比如,1000個單一軌跡段組成的連續(xù)數(shù)據(jù),包含直線段也包含圓弧段,當(dāng)它們輸入到SMP86X運動控制平臺的SM5000 FPGA芯片后,則會自動地在前面一段或幾段將速度加速到用戶想要的值,而后所有的線段則以加速后的速度高速運動,到最后一段或幾段時再將速度減下來,這樣就直接高效完成了連續(xù)插補,這個特性就非常有利于雕刻切割方案的實現(xiàn)。而不是將1000段單個軌跡每個以單段直線插補/圓弧插補方式逐一實現(xiàn),在速度上又是不停地起降,效率極低。
此外,SMP86X運動控制平臺在ARM底層可以設(shè)置運動數(shù)據(jù)緩沖區(qū),為實現(xiàn)多段軌跡快速、實時、穩(wěn)定的連續(xù)運動在帶寬上作了強有力的保障。

圖9

圖10
然而,要真正實現(xiàn)一個雕刻、切割方案,僅依靠上述幾個特性(單段插補、連續(xù)插補、嵌入式緩沖)是不夠的,當(dāng)加工數(shù)據(jù)的運動軌跡比較理想時,在運動的軌跡和速度上沒有跳變的存在,如圖1所示,則按照上述的處理就很方便高效,而且不會帶來機械振動和馬達丟步,也就不會形成加工工件的不合格。
當(dāng)加工的軌跡不理想時,比如1000段小線段組成了一個連續(xù)軌跡,但這個軌跡上有兩處不平滑,形成了兩個大銳角,如圖2所示。那么用連續(xù)插補直接完成整個軌跡的運動就會在兩個“急拐彎”的銳角處因為速度太高,造成機械振動太大,馬達失步重。而要將1000段按每段單個的處理并賦以“起?!碧幚?,振動、失步會解決,而加工的速度過低,也不符合要求。
因此下面兩點是高性能雕刻、切割方案的實現(xiàn)的關(guān)鍵:
連續(xù)軌跡位置數(shù)據(jù)的平滑性;
連續(xù)軌跡上切向速度的連續(xù)性及慢變性。
要實現(xiàn)上述的兩條,就需要在實際應(yīng)用中對多段小線段連續(xù)運動的軌跡和速度進行規(guī)劃,做對應(yīng)的調(diào)整和預(yù)處理。
2.1 連續(xù)軌跡的位置數(shù)據(jù)平滑性處理
實際加工中,連續(xù)軌跡一般都是由小線直線段捏合成的,應(yīng)用圓弧軌跡的比較少。因此用直線段逼近任意曲線就存在精度的問題了。很多CAD/CAM軟件處對圖形理后,所得出的加工文件,數(shù)據(jù)精度就不夠。
如圖3所示的軌跡,用不夠精度的直線段模擬出的結(jié)果就變成了圖4情況,這樣的情況下,無論在軌跡加工的速度多么連續(xù)、多么柔甚至很慢,被加工工件的輪廓和外型就不會光滑了,因為原本就如此!而且在機械振動的規(guī)避上更難處理。
為此,我們要得到更細更精確的加工軌跡數(shù)據(jù)就需要做插值算法處理,這個工作在SMP86x運動控制平臺的ARM里面就可以編程實現(xiàn)。在插值后,就可以得到實際如圖5所示的加工軌跡。
2.2 連續(xù)軌跡上切向速度的連續(xù)性及慢變性
對于多段連續(xù)軌跡運動加工,當(dāng)數(shù)據(jù)精度足夠后,則系統(tǒng)性能的最關(guān)鍵點就是軌跡上的速度連續(xù)性。這里是沿軌跡方向的切向速度! 因為這才是決定系統(tǒng)能否工作在快、準(zhǔn)、柔特點上。
生產(chǎn)中,加工軌跡不可能就是理想的直線、圓或平滑的任意曲線。由于工件外型的需要,軌跡中“跳變”必然存在,如同圖2所示。
這種情況下,當(dāng)運動的速度加速起來后,一直以目標(biāo)的高速運動,就一定會存在機械振動甚至馬達丟步問題。
以圖6的情況為例,如果不對軌跡上的切向速度進行規(guī)劃處理,則其加工速度曲線就會如圖7所示,在軌跡7點上,雖然速度的絕對值和前后保持一致,但從實際的矢量速度而言,就發(fā)生了巨變,因為無論是X方向還是Y方向的速度在瞬間方向都變了,所以速度值越大馬達和機械設(shè)備越承受不了。
因此,對軌跡7點切向矢量速度做處理,使其幾乎沒有大的跳變或比較平滑,就非常必要了。在SMP86x運動控制平臺的ARM里面將先一個12段的連續(xù)軌跡在第7點的地方“斷開”,這樣1-7點和7-12點的兩個連續(xù)軌跡就是比較平滑。然后分別交給平臺上FPGA芯片做連續(xù)插補運動控制處理,結(jié)合加減速處理,以T型為例,就得出了圖8的處理后的速度曲線??梢娫?點速度就降到了理想的低值,使得加工出現(xiàn)柔性。
2.3 激光切割系統(tǒng)中的一種速度處理方法
依照前面所述的原理,一般的雕刻和切割系統(tǒng)方案都可以實現(xiàn),包括激光切割在內(nèi)。
然而激光切割系統(tǒng)有其獨特性,那就是操作部件不是刀具而是激光束,當(dāng)加工軌跡上不同點的運動速度不同時,被切割的物件所接收的激光強度就會不一樣。因此若要采用前述的速度規(guī)劃方案,在軌跡的速度變化過程中,就要實時調(diào)整激光束發(fā)射強度,以達到光線經(jīng)過加工物件時,在軌跡上所留下的能量均勻。
SMP86x運動控制平臺可以將軌跡運動中實時速度輸出,用來作為控制激光能量輸出的調(diào)整參數(shù)。即激光輸出控制的PWM信號由軌跡的運動速度直接控制,并且成反向線性關(guān)系。這就很好地完成了方案實現(xiàn),由于速度輸出和PWM輸出都是由硬件處理,因此實時性很好,是許多其他控制系統(tǒng)所不能達到的。
不過,正是激光切割系統(tǒng)的獨特性,使得其控制系統(tǒng)也可以獨特去處理。
因為在激光束加工中,對于激光源輸出可以實時的開啟與關(guān)斷,以滿足加工過程的控制處理。這與機械刀具加工不同,因為有慣性的存在,容易導(dǎo)致軌跡的不光滑,無法做到實時的開啟與關(guān)斷。
所以,激光切割中只要能夠?qū)④壽E運動的速度加速到指定的值,然后開啟激光源加工,讓所有實際加工的軌跡以同一速度運行,需要做速度規(guī)劃的部分(加減速過程部分)以虛擬的軌跡來處理,這個時候激光源是關(guān)斷的。
圖9所示的軌跡,連續(xù)的1-5和8-13是實際需要的加工軌跡。而0-1,5-6-7-8,13-14的虛擬段,就是用來做起、停、中間處理的速度規(guī)劃的。最終要加工的那部分實際軌跡,都是以高速、均勻的數(shù)值在運動,如圖10的速度曲線所示。
總上所述,由于的雕刻、切割系統(tǒng)方案,除了對運動控制本身的高要求之外,還需要做數(shù)據(jù)和速度規(guī)劃和預(yù)處理,甚至是實時處理。因此SMP86x運動控制平臺以其高性能和開放性、嵌入式的特性而勝任這樣的系統(tǒng)方案。