范鵬飛
(合肥工業(yè)大學(xué)儀器科學(xué)與光電工程學(xué)院,安徽合肥230009)
隨著超大規(guī)模集成電路和計(jì)算機(jī)水平的高速發(fā)展,數(shù)控機(jī)床制造商不僅注重提高產(chǎn)品品質(zhì),而且希望節(jié)約研發(fā)成本和縮短產(chǎn)品研發(fā)周期。通過模擬仿真可以達(dá)到這一目的。在產(chǎn)品研發(fā)初期,插補(bǔ)控制仿真技術(shù)可以用于進(jìn)給單元大部分性能參數(shù)改進(jìn)和動(dòng)態(tài)性能測(cè)試[1]。
利用MP-C152 運(yùn)動(dòng)控制卡以及利于數(shù)控系統(tǒng)不斷升級(jí)更新的Windows 平臺(tái)和VC + +軟件對(duì)傳統(tǒng)插補(bǔ)控制系統(tǒng)進(jìn)行改進(jìn),研發(fā)出了新的數(shù)控機(jī)床進(jìn)給單元插補(bǔ)控制系統(tǒng),彌補(bǔ)了經(jīng)濟(jì)性、實(shí)用性的不足。
現(xiàn)有的ORAC 數(shù)控車床的數(shù)控系統(tǒng)是印刷電路板式的,為了提高工作效益,通過在印刷電路板上增加運(yùn)動(dòng)控制卡MP-C152,利用工控機(jī)在Windows 環(huán)境下實(shí)現(xiàn)數(shù)控車床進(jìn)給單元的插補(bǔ)控制。除運(yùn)動(dòng)控制卡、輸入輸出卡代替原來下位機(jī)印制電路板控制部分以外,其他硬件如電機(jī)和驅(qū)動(dòng)器等不變,還是用原來機(jī)床上的硬件。
工業(yè)控制微機(jī)IPC (Industrial Personal Computer)泛指ISA、PCI 等PC 總線型工業(yè)控制計(jì)算機(jī)。生產(chǎn)商通過增加密封保護(hù)、板壓條、過濾器和額外風(fēng)扇等措施,形成了IPC 的雛形。如今IPC 可經(jīng)受高低溫沖擊、潮濕、振動(dòng)、電磁干擾、粉塵等惡劣作業(yè)環(huán)境的考驗(yàn),同時(shí)它擁有豐富的硬件、軟件和程序資源,這是其他計(jì)算機(jī)系統(tǒng)無法相比的。該插補(bǔ)控制裝置選擇IPC 作為平臺(tái)。
該運(yùn)動(dòng)控制卡是一種安裝在PC 或IPC 中,以脈沖和方向輸出方式專門控制步進(jìn)電機(jī)[2]和伺服電機(jī)的板卡。運(yùn)動(dòng)控制卡[3]接受主CPU 的指令,進(jìn)行運(yùn)動(dòng)軌跡控制,包括脈沖和方向信號(hào)的輸出、自動(dòng)升降速處理、原點(diǎn)和限位開關(guān)信號(hào)的檢測(cè)等。運(yùn)動(dòng)控制卡可控制多軸步進(jìn)電機(jī)或數(shù)字式伺服電機(jī),并支持多卡共用,可實(shí)現(xiàn)多軸的控制。每個(gè)軸都可以輸出脈沖和方向信號(hào),并可輸入原點(diǎn)、減速、限位開關(guān)等信號(hào),以實(shí)現(xiàn)回原點(diǎn)、限位保護(hù)等功能。開關(guān)信號(hào)由控制卡自動(dòng)檢測(cè)并作出反應(yīng)。
數(shù)控機(jī)床的通信模式可以分為單機(jī)模式和上下位機(jī)模式,而后者是全方位的開放式結(jié)構(gòu),設(shè)計(jì)快捷方便,滿足遠(yuǎn)程控制所要求的實(shí)時(shí)性。故ORAC 數(shù)控車床進(jìn)給單元選擇上下位機(jī)模式,并用MP-C152 運(yùn)動(dòng)控制卡來控制二軸電機(jī)的工作,而且該卡與工控機(jī)的通信接口已經(jīng)調(diào)整設(shè)定好,即直接把MP-C152 運(yùn)動(dòng)控制卡插到PCI 插槽中實(shí)現(xiàn)上下位機(jī)的通信。
進(jìn)給單元硬件結(jié)構(gòu)如圖1 所示。硬件由弱電型數(shù)控裝置和強(qiáng)電型輸出驅(qū)動(dòng)及其控制電路組成,其中的數(shù)控裝置由標(biāo)準(zhǔn)的PC 機(jī)、MP-C152 運(yùn)動(dòng)控制卡及I/O 接口電路板等組成,強(qiáng)電型輸出驅(qū)動(dòng)及其控制電路由步進(jìn)電機(jī)、步進(jìn)電機(jī)驅(qū)動(dòng)器、強(qiáng)電控制電路及限位行程開關(guān)和操作面板等組成。插在PC 機(jī)PCI 插槽上的運(yùn)動(dòng)控制卡和PC 機(jī)相連,而PC 機(jī)再通過50 根I/O 信號(hào)線相連,從而控制X、Z 兩個(gè)方向的步進(jìn)電動(dòng)機(jī),實(shí)現(xiàn)對(duì)數(shù)控車床的控制。
圖1 硬件結(jié)構(gòu)
改造后的ORAC 數(shù)控車床進(jìn)給單元如圖2 所示,主要由以下幾個(gè)部分組成:
(1)ADlink 工業(yè)控制計(jì)算機(jī)一臺(tái);
(2)ADlink 運(yùn)動(dòng)控制卡MP-C152 一塊;
(3)ADlink 帶光電隔離的16 位I/O 卡7200 一塊;
(4)ORAC 數(shù)控車床一臺(tái)。
進(jìn)給單元硬件采用PC 總線和模塊化的結(jié)構(gòu)設(shè)計(jì),MP-C152 運(yùn)動(dòng)控制卡插在PC 總線擴(kuò)展槽上,計(jì)算機(jī)與MP-C152 控制卡之間以查詢方式進(jìn)行通信。工控機(jī)主要完成系統(tǒng)管理、NC 程序自動(dòng)生成、編譯和解釋、間隙補(bǔ)償?shù)裙δ?。MP-C152 卡主要有步進(jìn)電機(jī)位移及速度控制、限位開關(guān)響應(yīng)、刀具半徑補(bǔ)償、外部信號(hào)輸入和機(jī)床控制信號(hào)輸出、插補(bǔ)運(yùn)算等功能。
圖2 數(shù)控車床進(jìn)給單元
IPC 機(jī)數(shù)控系統(tǒng)軟件設(shè)計(jì)的核心工作是窗體的規(guī)劃和控制代碼的編寫。而窗體的規(guī)劃主要圍繞主界面的功能進(jìn)行,各個(gè)窗體控件的具體調(diào)用與其關(guān)聯(lián)的執(zhí)行操作控制代碼的編寫是開發(fā)數(shù)控系統(tǒng)的關(guān)鍵。
所謂插補(bǔ)就是根據(jù)給定進(jìn)給速度和給定輪廓線形的要求,在輪廓的已知點(diǎn)之間,確定一些中間點(diǎn)的方法,這種方法稱為插補(bǔ)方法。目前常用的插補(bǔ)算法為脈沖增量插補(bǔ)和數(shù)字增量插補(bǔ)[4]。
通過比較,決定直線插補(bǔ)采用脈沖增量插補(bǔ)逐點(diǎn)比較法[5],即每走一步都要和給定軌跡比較一次,根據(jù)比較結(jié)果來決定下一步的進(jìn)給方向,使刀具向減小偏差的方向并趨向終點(diǎn)移動(dòng),刀具所走的軌跡應(yīng)該和給定軌跡非常相“象”。而圓弧插補(bǔ)則選擇數(shù)字增量插補(bǔ)中的DDA 圓弧插補(bǔ)算法[6],插補(bǔ)過程為: (1)插補(bǔ)準(zhǔn)備。主要是計(jì)算輪廓步長(zhǎng)及其相應(yīng)的坐標(biāo)增量;(2)插補(bǔ)計(jì)算。實(shí)時(shí)計(jì)算出各插補(bǔ)周期中的插補(bǔ)點(diǎn)(動(dòng)點(diǎn))坐標(biāo)值;(3)終點(diǎn)判別。插補(bǔ)流程如圖3 所示。
圖3 插補(bǔ)流程
開發(fā)平臺(tái)的選擇包括操作系統(tǒng)的選擇和編程語言的選擇兩部分。
對(duì)于操作系統(tǒng),選擇Windows,因?yàn)樗哂杏押玫膱D形用戶界面和豐富的軟件資源,支持基于線程的搶先式多任務(wù)機(jī)制,操作、配置、調(diào)試都非常方便等。對(duì)于編程語言則選擇方便調(diào)取MP-C152 運(yùn)動(dòng)控制卡庫函數(shù)的VC+ +語言,以提高軟件的開發(fā)效率及運(yùn)行效率。
數(shù)控系統(tǒng)軟件結(jié)構(gòu)模式[7]主要有兩種:前后臺(tái)型結(jié)構(gòu)模式和中斷型結(jié)構(gòu)模式。該數(shù)控系統(tǒng)系統(tǒng)軟件采用前后臺(tái)型結(jié)構(gòu)模式,按實(shí)時(shí)性相對(duì)強(qiáng)弱將系統(tǒng)任務(wù)劃分為兩部分:上層管理程序和底層控制程序,如圖4、5 所示。
圖4 軟件結(jié)構(gòu)
圖5 系統(tǒng)軟件工作原理圖
主要有用戶輸入輸出界面操作模塊、文件管理模塊、MP-C152 卡設(shè)備驅(qū)動(dòng)模塊、插補(bǔ)控制模塊、圖形操作模塊等,通過這些模塊的組合可以實(shí)現(xiàn)插補(bǔ)控制,達(dá)到理想的效果。
主要有對(duì)話框的應(yīng)用程序框架及動(dòng)態(tài)鏈接庫技術(shù)。ORAC 數(shù)控系統(tǒng)基于Windows 平臺(tái),為了設(shè)計(jì)大量的用戶操作界面,采用基于對(duì)話框的應(yīng)用程序框架比較合適,便于系統(tǒng)軟件的設(shè)計(jì)和人機(jī)交互。由于系統(tǒng)的實(shí)時(shí)性要求,編譯程序需要?jiǎng)討B(tài)聯(lián)編,所以底層控制程序要用動(dòng)態(tài)鏈接庫技術(shù)[8]。
系統(tǒng)界面基本要求:用戶界面可以實(shí)現(xiàn)對(duì)數(shù)控車床進(jìn)給單元插補(bǔ)控制。直線插補(bǔ)時(shí),當(dāng)輸入的參數(shù)分別為X1=-10,Z1=-10,X2=50,Z2=50,步長(zhǎng)為2,點(diǎn)擊確定后,經(jīng)過一段時(shí)間的插補(bǔ),即可出現(xiàn)如圖6 的仿真圖形。
圓弧插補(bǔ)時(shí),當(dāng)輸入的參數(shù)分別為X1=0,Z1=50,X2=0,Z2=-50,步長(zhǎng)為2,點(diǎn)擊半徑后顯示半徑值為50,再點(diǎn)擊確定后,經(jīng)過一段時(shí)間的插補(bǔ),即可出現(xiàn)如圖7 的仿真圖形。
圖6 直線插補(bǔ)仿真
圖7 圓弧插補(bǔ)仿真
利用MP-C152 運(yùn)動(dòng)控制卡研制了一個(gè)基于Windows2000 平臺(tái)的開放式數(shù)控車床進(jìn)給單元插補(bǔ)控制模擬仿真軟件,實(shí)現(xiàn)了直線插補(bǔ)和圓弧插補(bǔ)的模擬仿真,從而對(duì)ORAC 數(shù)控車床進(jìn)行控制。文中的研究不僅降低了該數(shù)控機(jī)床進(jìn)給單元的開發(fā)難度和成本,也適應(yīng)了經(jīng)濟(jì)性的要求,取得了預(yù)期的成果。
[1]孫名佳,文智,曉波.基于Simulink 的機(jī)床伺服進(jìn)給系統(tǒng)仿真技術(shù)研究[J].制造業(yè)自動(dòng)化,2013,34(4):115-118.
[2]劉寶志.步進(jìn)電機(jī)的精確控制方法研究[D].濟(jì)南:山東大學(xué),2010:42-47.
[3]項(xiàng)小東,白國振.基于運(yùn)動(dòng)控制卡的伺服控制系統(tǒng)開發(fā)研究[J].機(jī)電工程技術(shù),2010(11):20-22.
[4]趙?。?dāng)?shù)控系統(tǒng)的插補(bǔ)算法及加減速控制方法研究[D].天津:天津大學(xué),2004:10-31.
[5]方石銀.CNC 系統(tǒng)逐點(diǎn)比較直線插補(bǔ)的新算法[J].吉林師范大學(xué)學(xué)報(bào),2010(2):123-125.
[6]許良元.DDA 圓弧插補(bǔ)軟件的設(shè)計(jì)研究[J].機(jī)械工程與自動(dòng)化,2005(4):74-78.
[7]賈敏忠,詹有基,謝明紅.Windows 平臺(tái)上數(shù)控系統(tǒng)軟件結(jié)構(gòu)的研究[J].福建工程學(xué)院學(xué)報(bào),2006(1):86-88.
[8]田杰,范鵬飛,黃文進(jìn),等.凸輪機(jī)構(gòu)綜合創(chuàng)新實(shí)驗(yàn)裝置研究[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2011(7):985-988.