常雪峰,唐小琦,顧 超
(1.廈門理工學(xué)院 機(jī)械工程系,福建 廈門 361024;2.華中科技大學(xué)機(jī)械學(xué)院,武漢 430074)
以往在X-Y平臺(tái)或多軸加工機(jī)床的控制應(yīng)用中,各軸僅由單個(gè)電機(jī)驅(qū)動(dòng)。然而,為了滿足高加速度、高推力及高剛性的需求,數(shù)控機(jī)床開始采用平行安裝的2組電機(jī)共同驅(qū)動(dòng)移動(dòng)部件來實(shí)現(xiàn)單軸的運(yùn)動(dòng)。在這種結(jié)構(gòu)下,平行驅(qū)動(dòng)的2個(gè)電機(jī)之間的位置誤差,由于機(jī)械耦合的因素,除了會(huì)影響精度外,還有可能使耦合機(jī)構(gòu)產(chǎn)生變形,造成受控系統(tǒng)損壞,甚者危害操作人員的安全。所以,確保平行驅(qū)動(dòng)電機(jī)之間的同步運(yùn)動(dòng)是相當(dāng)重要的一項(xiàng)研究課題[1-4]。
目前,國內(nèi)數(shù)控機(jī)床廣泛使用的都是脈沖式接口的數(shù)控裝置和伺服驅(qū)動(dòng)器,大量需要同步功能的數(shù)控機(jī)床的數(shù)控系統(tǒng)對(duì)數(shù)控控制功能的需求并不復(fù)雜。若選用國外具有同步功能的高檔數(shù)控系統(tǒng),價(jià)格昂貴,且許多功能又屬多余,因而提高了設(shè)備成本[5-6];而選用價(jià)格較低的普及型數(shù)控系統(tǒng),又缺少同步功能,不能滿足同步控制要求。對(duì)于廣泛使用“脈沖+方向”指令形式的普及型數(shù)控系統(tǒng),如果在數(shù)控系統(tǒng)中實(shí)現(xiàn)同步功能,受CNC軟件開放程度以及CNC實(shí)時(shí)處理能力等因素的制約,有較大困難。鑒于以上情況,開發(fā)一種數(shù)控機(jī)床同步控制裝置,彌補(bǔ)普及型數(shù)控系統(tǒng)在同步功能上的不足,從根本上解決同步控制問題,具有非常重要的意義。
本文針對(duì)脈沖式接口數(shù)控系統(tǒng)的特點(diǎn),設(shè)計(jì)了一種基于外掛式的同步控制裝置,實(shí)現(xiàn)雙軸驅(qū)動(dòng)結(jié)構(gòu)機(jī)床的同步運(yùn)動(dòng)控制。首先確定脈沖接口雙軸同步控制的總體方案,并介紹脈沖指令調(diào)整補(bǔ)償?shù)脑?,然后給出雙軸同步控制裝置的硬軟件設(shè)計(jì)及實(shí)現(xiàn)方法,最后進(jìn)行了相關(guān)的實(shí)驗(yàn)研究。實(shí)驗(yàn)結(jié)果顯示,同步控制卡能有效提高平行雙軸間的同步性能。
普及型脈沖式數(shù)控系統(tǒng)由于缺少同步功能,一般都是采用將數(shù)控裝置的一個(gè)軸的脈沖指令輸出分成2路發(fā)送給兩軸驅(qū)動(dòng)器的“并列處理”方法,或是以CNC輸出控制一個(gè)軸,該軸反饋又控制另一個(gè)軸的“主從跟隨處理”方法。但是這2種處理方式都只是權(quán)宜之計(jì),均無法實(shí)現(xiàn)對(duì)雙軸同步誤差的監(jiān)控,使得這類數(shù)控機(jī)床都存在一定的安全隱患。
現(xiàn)有脈沖指令數(shù)控系統(tǒng)由于其軟件開放程度不夠及實(shí)時(shí)處理能力不足,通過在數(shù)控裝置內(nèi)部采用軟件方式實(shí)現(xiàn)同步控制功能的難度較大,因此,提出了一種軟硬件相結(jié)合的簡易數(shù)控機(jī)床雙軸同步控制裝置,通過引入雙軸同步誤差補(bǔ)償控制器進(jìn)行快速調(diào)節(jié),使同步誤差漸進(jìn)為零,從而實(shí)現(xiàn)數(shù)控機(jī)床雙軸之間的位置同步。
脈沖接口雙軸同步控制系統(tǒng)的結(jié)構(gòu)如圖1所示。雙軸同步控制卡作為一個(gè)基本獨(dú)立的單元,處于脈沖接口數(shù)控裝置和伺服驅(qū)動(dòng)器之間,主要承擔(dān)數(shù)控系統(tǒng)脈沖指令的轉(zhuǎn)發(fā)和補(bǔ)償調(diào)整任務(wù)。
圖1 雙軸同步控制系統(tǒng)結(jié)構(gòu)
由于數(shù)控系統(tǒng)的運(yùn)動(dòng)指令是采用脈沖串的形式進(jìn)行發(fā)送,因此對(duì)從軸的同步補(bǔ)償主要是通過對(duì)上位機(jī)發(fā)送的指令進(jìn)行增、減脈沖的方式實(shí)施,當(dāng)從軸位置超前于主軸位置時(shí)進(jìn)行減脈沖補(bǔ)償,當(dāng)從軸位置落后于主軸位置時(shí)則進(jìn)行增脈沖補(bǔ)償。
如圖2所示,同步控制卡實(shí)時(shí)監(jiān)測(cè)數(shù)控裝置發(fā)送的指令脈沖,主軸脈沖只作轉(zhuǎn)發(fā),保持不變;當(dāng)從軸需要作減脈沖補(bǔ)償時(shí),在當(dāng)前指令脈沖的跳變沿保持電平不變即可實(shí)現(xiàn)減脈沖;當(dāng)從軸需要作增脈沖補(bǔ)償時(shí),則在當(dāng)前指令脈沖的跳變沿翻轉(zhuǎn)電平,保持一段延時(shí)后再次翻轉(zhuǎn)電平即可實(shí)現(xiàn)增脈沖。
圖2 同步控制脈沖調(diào)整原理
雙軸同步控制卡總體結(jié)構(gòu)如圖3所示。該控制卡以FPGA+DSP為處理核心,其中FPGA主要負(fù)責(zé)按鍵操作的處理與顯示、兩軸碼盤反饋信號(hào)的計(jì)數(shù)與運(yùn)算處理以及和DSP的通訊等,DSP則主要負(fù)責(zé)與計(jì)算機(jī)的串口通訊和數(shù)控裝置脈沖指令的接收、補(bǔ)償及發(fā)送。
圖3 雙軸同步控制卡總體結(jié)構(gòu)
雙軸同步控制卡的核心處理芯片DSP選擇TI公司的32位處理器 TMS320F2812,F(xiàn)PGA選擇ALTERA公司的EP2C8Q,除此之外,同步卡主要包括以下硬件模塊:
1)電源模塊。分別采用TPS75733、TPS76801和TPS54312電源芯片,提供同步控制卡所需的3.3 V、1.9 V 和1.2 V 電源。
2)指令脈沖輸入/輸出模塊。采用差分接收和發(fā)送芯片與外部信號(hào)進(jìn)行接口,由DSP接收指令輸入信號(hào),根據(jù)FPGA計(jì)算的同步誤差信號(hào)進(jìn)行補(bǔ)償處理,并將調(diào)整后的位置指令輸出。
3)碼盤模塊。同樣采用差分接收和發(fā)送芯片與外部信號(hào)進(jìn)行接口,由FPGA完成雙軸電機(jī)碼盤反饋信號(hào)的辨向和計(jì)數(shù),并將2軸位置差值發(fā)傳給DSP。
4)按鍵處理和顯示模塊。由FPGA完成對(duì)按鍵操作的掃描和處理,并在LED數(shù)碼管中進(jìn)行顯示。
5)串口通訊模塊。實(shí)現(xiàn)DSP和計(jì)算機(jī)之間的串口通訊,方便從計(jì)算機(jī)對(duì)同步卡內(nèi)部參數(shù)進(jìn)行設(shè)置。
6)電平轉(zhuǎn)換模塊。由于數(shù)控裝置脈沖指令和電機(jī)編碼器的接口電平標(biāo)準(zhǔn)都是5 V,而FPGA和DSP的I/O接口電平標(biāo)準(zhǔn)均為3.3 V,因此外圍信號(hào)與FPGA和DSP接口都采用SN74ALVC164245進(jìn)行電平轉(zhuǎn)換。
雙軸同步控制裝置的軟件主要是用VHDL硬件描述語言對(duì)FPGA編程,得到2個(gè)軸的實(shí)時(shí)位置和位置偏差,當(dāng)偏差過大時(shí)進(jìn)行報(bào)警以及按鍵與顯示模塊的處理;DSP部分采用C語言編寫,主要包括初始化,與FPGA的通訊,上位機(jī)脈沖指令的實(shí)時(shí)接收、調(diào)整和轉(zhuǎn)發(fā)等。
1)DSP程序設(shè)計(jì)。DSP程序設(shè)計(jì)主要有初始化模塊、串口通訊模塊和同步功能模塊。初始化程序主要涉及系統(tǒng)初始化(設(shè)置系統(tǒng)時(shí)鐘為150 M)、外部接口的初始化以及對(duì)使用到的I/O引腳以及事件管理器EVA/EVB的初始化等。
同步功能模塊的軟件流程如圖4所示,主要包括的中斷程序有:
①捕獲中斷。利用DSP事件管理器EVA的CAP1和CAP2引腳,實(shí)時(shí)接收NC裝置發(fā)送的位置指令(包括脈沖和方向信號(hào)),將CAP1捕獲引腳設(shè)置為同時(shí)檢測(cè)上升沿和下降沿。當(dāng)檢測(cè)到位置指令的脈沖信號(hào)時(shí),主軸脈沖信號(hào)通過DSP立即轉(zhuǎn)發(fā),DSP根據(jù)當(dāng)前的補(bǔ)償標(biāo)志對(duì)從軸脈沖信號(hào)作相應(yīng)的增/減補(bǔ)償調(diào)整。
②補(bǔ)償中斷。利用EVB的T3定時(shí)器產(chǎn)生定時(shí)中斷(中斷周期1 ms),從FPGA讀取主從軸同步誤差,結(jié)合位置指令的方向信號(hào),判斷從軸應(yīng)該采取何種補(bǔ)償措施(增脈沖、減脈沖或者不補(bǔ)償),并設(shè)置相應(yīng)的補(bǔ)償標(biāo)志。如果同步誤差超過設(shè)定值則通知系統(tǒng)報(bào)警。
雙軸獨(dú)立控制只需對(duì)DSP有關(guān)選擇控制位進(jìn)行設(shè)置,將NC裝置的位置指令直接由FPGA轉(zhuǎn)發(fā)即可。
2)FPGA程序設(shè)計(jì)。FPGA程序主要包括以下模塊:
①鍵盤掃描模塊。在每個(gè)周期內(nèi)掃描一次鍵盤值,經(jīng)過消抖后送入FPGA進(jìn)行處理。
②鍵值處理與LED顯示模塊。在每個(gè)CLK的下降沿讀出按鍵值,根據(jù)按鍵判斷當(dāng)前的菜單等級(jí)、上一個(gè)菜單等級(jí)、一級(jí)菜單序號(hào)和二級(jí)菜單序號(hào)這4個(gè)參數(shù)來判斷應(yīng)該執(zhí)行的操作和LED應(yīng)該顯示的內(nèi)容。
③碼盤計(jì)數(shù)模塊。對(duì)主軸與從軸的碼盤反饋脈沖進(jìn)行計(jì)數(shù)和辨向,并計(jì)算出2軸反饋的誤差。
④DSP讀寫模塊。根據(jù)DSP所發(fā)出的地址值、片選信號(hào)和讀信號(hào),將雙端口RAM中的參數(shù)輸出或讀取DSP寫入值。
圖4 同步控制模塊軟件流程
圖5為脈沖式雙軸同步控制實(shí)驗(yàn)裝置實(shí)物,其中數(shù)控裝置采用HNC-21TF,驅(qū)動(dòng)器采用HSV-16-025,伺服電機(jī)采用 GK6041 -6AF31,同時(shí)采用同步控制卡實(shí)現(xiàn)2電機(jī)之間的位置同步。
以數(shù)控系統(tǒng)作為上位機(jī),系統(tǒng)發(fā)出的脈沖指令經(jīng)過同步控制卡處理之后再分別發(fā)送給伺服驅(qū)動(dòng)器,然后驅(qū)動(dòng)電機(jī)按照控制指令運(yùn)轉(zhuǎn)。通過按鍵操作可以將同步控制卡設(shè)置為轉(zhuǎn)發(fā)指令或同步控制2種工作模式,以便對(duì)同步補(bǔ)償?shù)目刂菩ЧM(jìn)行對(duì)比實(shí)驗(yàn)。在轉(zhuǎn)發(fā)模式下,同步控制卡將上位機(jī)發(fā)送的指令直接轉(zhuǎn)發(fā)給2個(gè)驅(qū)動(dòng)器即可;而在同步模式下,同步控制卡將上位機(jī)發(fā)送的指令一路直接轉(zhuǎn)發(fā)給主軸驅(qū)動(dòng)器,另外一路發(fā)送給從軸驅(qū)動(dòng)器,并根據(jù)兩軸的同步誤差對(duì)從軸脈沖指令進(jìn)行補(bǔ)償。
圖5 脈沖式雙軸同步控制實(shí)驗(yàn)裝置
圖6為同步控制卡在2種工作模式下雙軸同步誤差的實(shí)驗(yàn)結(jié)果,可以看出采用同步補(bǔ)償算法對(duì)雙軸同步誤差有明顯的改善效果。
圖6 同步控制實(shí)驗(yàn)結(jié)果
針對(duì)脈沖接口數(shù)控系統(tǒng)的特點(diǎn),給出一種對(duì)脈沖指令進(jìn)行增、減補(bǔ)償?shù)膶?shí)現(xiàn)原理,由此提出一種基于DSP+FPGA硬件架構(gòu)的同步控制裝置,并給出了同步控制卡軟硬件設(shè)計(jì)及實(shí)現(xiàn)方法。實(shí)驗(yàn)結(jié)果表明:所設(shè)計(jì)的同步控制卡能有效改善同步性能,具有較好的實(shí)用效果。
[1]Akasaka N.A synchronous position control method at pressure control between multi-AC servomotors driven in injection molding machine[J].SICE Annual Conference,2003,3:2712 -2719.
[2]Chu B,Kim S,Hong D,et al.Optimal cross-coupled synchronizing control of dual-drive gantry system for a SMD assembly machine[J].JSME International Journal Series C,2004,47:939 -945.
[3]Hsieh M F,Tung C J,Yao W S,et al.Servo design of a vertical axis drive using dual linear motors for high speed electric discharge machining[J].Int J Machine Tools and Manufacture,2007,47(1):546 -554.
[4]Lin F J,Chou P H,Chen C S,et al.DSP-based Cross-Coupled Synchronous Control of Dual Linear Motors via Intelligent Complementary Sliding Mode Control[J].IEEE Trans Industrial Electronics,2012,59(2):1061-1073.
[5]Siemens.840D/FM-NC Description of functions,special Functions(Part3)[M].[S.l.]:Siemens,1999.
[6]Fanuc.Parameter Manual of a-series AC Servo Motor[M].[S.l.]:FANUC,1994.