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

圖1

圖2

圖3

圖4

圖5

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

圖7

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

圖9

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