丁 許 何 寧 李 亮 郝秀清
(南京航空航天大學(xué)機(jī)電學(xué)院,江蘇 南京 210016)
?
基于PMAC的微細(xì)銑床數(shù)控系統(tǒng)軟件開發(fā)*
丁許何寧李亮郝秀清
(南京航空航天大學(xué)機(jī)電學(xué)院,江蘇 南京 210016)
以基于PMAC運(yùn)動(dòng)控制的三軸微細(xì)銑床為對(duì)象,在Windows平臺(tái)上采用C#編程語言進(jìn)行數(shù)控系統(tǒng)軟件的開發(fā)。首先對(duì)數(shù)控系統(tǒng)硬件配置作簡要介紹,然后針對(duì)微細(xì)銑床加工特點(diǎn)進(jìn)行數(shù)控軟件的總體功能模塊設(shè)計(jì),重點(diǎn)實(shí)現(xiàn)了加工程序運(yùn)行實(shí)時(shí)顯示、三維實(shí)時(shí)刀軌顯示、旋轉(zhuǎn)緩沖區(qū)等特色功能模塊的設(shè)計(jì)開發(fā)。數(shù)控系統(tǒng)軟件運(yùn)行平穩(wěn)可靠,功能完善,人機(jī)界面良好。
PMAC;三維實(shí)時(shí)刀軌顯示;旋轉(zhuǎn)緩沖區(qū)
微細(xì)銑削技術(shù)具有加工精度可控、適用多種材料、可加工三維復(fù)雜形狀、設(shè)備費(fèi)用低等優(yōu)點(diǎn),是最適于加工復(fù)雜三維微結(jié)構(gòu)的技術(shù)之一[1],而微細(xì)機(jī)床是微細(xì)銑削技術(shù)發(fā)展的基礎(chǔ),其整體精度與動(dòng)態(tài)特性直接影響被加工微小工件的尺寸精度與表面質(zhì)量等,是微細(xì)切削加工的關(guān)鍵硬件基礎(chǔ)[2]。近年來,微細(xì)銑削機(jī)床正朝著小型化和高精度化的方向發(fā)展,尤其是開放式數(shù)控系統(tǒng)的引入,大大提高了微細(xì)機(jī)床的加工柔性。
開放式數(shù)控系統(tǒng)具有可移植性、可縮放性、相互操作和相互替代性等特點(diǎn)[3],已成為當(dāng)前CNC發(fā)展的必然趨勢。其構(gòu)成有多種形式,其中采用運(yùn)動(dòng)控制器+PC型開放式數(shù)控系統(tǒng)結(jié)構(gòu)進(jìn)行微細(xì)機(jī)床的研制已成為當(dāng)前熱點(diǎn)。北京航空航天大學(xué)的邱時(shí)前研制了基于PMAC運(yùn)動(dòng)控制卡的五軸微銑削機(jī)床并開發(fā)了可編輯和執(zhí)行G代碼程序的數(shù)控系統(tǒng)[4]。南京航空航天大學(xué)的曹自洋研制了一臺(tái)三軸微細(xì)銑削機(jī)床,構(gòu)建了基于運(yùn)動(dòng)控制器與PC機(jī)的并行雙CPU數(shù)控系統(tǒng),并采用C#開發(fā)了微細(xì)銑削控制軟件[5]。哈爾濱工業(yè)大學(xué)的張鵬采用高精度運(yùn)動(dòng)控制卡PMAC嵌入工控機(jī)的開放式數(shù)控系統(tǒng),進(jìn)行了微小型超精密微細(xì)銑削機(jī)床的研制[6]。大連理工大學(xué)的呂元哲也采用PMAC多軸運(yùn)動(dòng)控制卡及工控機(jī),搭建了PC+NC型上下位機(jī)式并行雙CPU的數(shù)控系統(tǒng)并采用VC++6.0完成數(shù)控軟件的開發(fā)[7]。其他高校如山東理工大學(xué)、濟(jì)南大學(xué)、天津大學(xué)等也都對(duì)開放式數(shù)控微細(xì)銑床進(jìn)行研制并對(duì)其配套數(shù)控軟件進(jìn)行開發(fā)[8-10]。
本文在基于PMAC運(yùn)動(dòng)控制器的三軸微細(xì)銑床基礎(chǔ)上,針對(duì)微細(xì)銑削的加工需求,對(duì)數(shù)控軟件的總體功能模塊進(jìn)行設(shè)計(jì)與開發(fā),著重完成了加工程序行實(shí)時(shí)顯示、三維實(shí)時(shí)刀軌顯示、旋轉(zhuǎn)緩沖區(qū)等特色功能的開發(fā)。
數(shù)控軟件的開發(fā)對(duì)象為立式三軸微細(xì)銑床,其采用龍門式結(jié)構(gòu),機(jī)床本體尺寸為800 mm×800 mm×750 mm,X、Y、Z三軸行程分別為150 mm×150 mm×100 mm,主軸最高轉(zhuǎn)速達(dá)100 000 r/min[5],可進(jìn)行微細(xì)三維復(fù)雜形面的加工與實(shí)驗(yàn)。機(jī)床本體實(shí)物如圖1所示。
該微細(xì)銑床硬件結(jié)構(gòu)上采用運(yùn)動(dòng)控制器+PC型開放式數(shù)控系統(tǒng)結(jié)構(gòu)。以PC機(jī)為主體,下位機(jī)采用美國 Delta Tau 公司的PMAC運(yùn)動(dòng)控制器,其控制器通過以太網(wǎng)與主機(jī)進(jìn)行通訊并通過接口與各伺服單元和I/O單元連接。機(jī)床X、Y方向工作臺(tái)為直線電動(dòng)機(jī)直接驅(qū)動(dòng),Z方向工作臺(tái)采用伺服電動(dòng)機(jī)配合滾珠絲杠的驅(qū)動(dòng)方式,同時(shí)通過光柵編碼器對(duì)各個(gè)方向進(jìn)行位置反饋監(jiān)測,實(shí)現(xiàn)對(duì)電動(dòng)機(jī)的精確控制。主軸采用氣體靜壓軸承電主軸并配備高性能磁束向量控制交流變頻器進(jìn)行主軸轉(zhuǎn)速的控制與調(diào)節(jié)。圖2即為微細(xì)銑床控制系統(tǒng)框圖。
微細(xì)銑床控制軟件的開發(fā)是面向該銑床的專業(yè)操作人員,軟件通過動(dòng)態(tài)鏈接庫的方式調(diào)用運(yùn)動(dòng)控制卡函數(shù),結(jié)合微細(xì)機(jī)床的操作需要,將機(jī)床的實(shí)際加工過程所需的所有功能進(jìn)行整合與開發(fā),實(shí)現(xiàn)加工過程的簡單易操作。本軟件使用Visual Studio2010.NET作為其開發(fā)工具,采用C#編程語言,結(jié)合對(duì)其他數(shù)控系統(tǒng)的研究和微細(xì)銑削機(jī)床的實(shí)際使用需求,采用模塊化思想進(jìn)行數(shù)控軟件的設(shè)計(jì)開發(fā),如圖3所示。下面對(duì)各個(gè)功能模塊作簡要介紹。
(1)主控制模塊:用于建立PC機(jī)與PMAC控制器的通訊連接并初始化,實(shí)現(xiàn)對(duì)各臺(tái)電動(dòng)機(jī)的閉環(huán)控制,為微細(xì)銑削機(jī)床的加工做準(zhǔn)備,也用于加工結(jié)束后解除對(duì)電動(dòng)機(jī)的控制。
(2)實(shí)時(shí)命令提示模塊:用于PC機(jī)與PMAC控制器的直接交互,可向PMAC輸入在線命令并在窗口中返回PMAC處理結(jié)果,同時(shí)該窗口也將提供實(shí)時(shí)的用戶操作信息與加工狀態(tài)信息,增強(qiáng)用戶友好性。
(3)實(shí)時(shí)顯示模塊:用于監(jiān)控微細(xì)銑床的運(yùn)動(dòng)狀態(tài),可實(shí)時(shí)顯示加工過程中X、Y、Z三軸的實(shí)際位置,實(shí)際速度與跟隨誤差等運(yùn)動(dòng)參數(shù)。
(4)手動(dòng)操作模塊:用于完成微細(xì)銑床的手動(dòng)操作,包括加工零點(diǎn)的設(shè)置、快速回零點(diǎn)、手動(dòng)速度的設(shè)定和3種模式的手動(dòng)操作。該模塊主要用于機(jī)床的對(duì)刀、快速進(jìn)給和工件試切等操作。
(5)普通程序加工模塊:用于普通加工程序的相關(guān)操作,可打開現(xiàn)有程序、編輯新程序、保存程序等操作,并可將加工程序下載至PMAC程序緩沖區(qū),實(shí)現(xiàn)機(jī)床加工的運(yùn)行、暫停、恢復(fù)和停止,同時(shí)在加工程序窗口中實(shí)時(shí)標(biāo)亮正在加工的程序行。
(6)旋轉(zhuǎn)緩沖區(qū)程序加工模塊:用于大型加工程序(容量大于64K)的相關(guān)操作,利用PMAC控制器自帶旋轉(zhuǎn)緩沖區(qū)功能,實(shí)現(xiàn)加工程序大小不受控制器內(nèi)存控制。
(7)三維刀軌顯示模塊:用于三維刀軌的實(shí)時(shí)顯示,可空運(yùn)行加工程序進(jìn)行刀軌仿真,還可在實(shí)際加工或手動(dòng)操作過程中監(jiān)測加工軌跡狀態(tài)。視圖可使用鼠標(biāo)進(jìn)行圖形的放大、縮小、平移與旋轉(zhuǎn),還可顯示選定刀軌位置的坐標(biāo)值。
(8)狀態(tài)監(jiān)控模塊:用于監(jiān)測機(jī)床運(yùn)行狀態(tài),狀態(tài)信息包括電動(dòng)機(jī)閉環(huán)狀態(tài),編碼器運(yùn)行狀態(tài)信息以及X、Y、Z三軸的超程限位狀態(tài),方便機(jī)床故障的排查。
3.1加工程序運(yùn)行實(shí)時(shí)顯示功能
對(duì)于數(shù)控系統(tǒng)來說,在加工程序運(yùn)行過程中能夠?qū)崟r(shí)跟蹤正在加工程序行這一功能是至關(guān)重要的,尤其是在大型加工程序的運(yùn)行中?;赑MAC的數(shù)控軟件開發(fā)可以實(shí)現(xiàn)這一功能,卻鮮有文獻(xiàn)涉及這一功能具體實(shí)現(xiàn)方法。實(shí)現(xiàn)這一功能的基本思想是在每一段加工程序行前自動(dòng)插入標(biāo)志變量賦值語句,程序運(yùn)行過程中實(shí)時(shí)查詢?cè)摌?biāo)志變量來確定正在加工的程序行。窗口顯示的是正常加工程序,但實(shí)際下載至PMAC的加工程序如下:
M4000==1
Open PROG 1
M4000==2
CLEAR
M4000==3
G01 X5 Y5
……
CLOSE
程序中的M4000是自定義的M標(biāo)志變量,定義語句為“M4000->X:MYM10F1”。程序中不能使用“=”進(jìn)行賦值,必須使用“==”賦值。因?yàn)镻MAC程序運(yùn)行具有前瞻性,即程序中的賦值運(yùn)算會(huì)在實(shí)際運(yùn)行前進(jìn)行,若使用“=”會(huì)導(dǎo)致M4000賦值提前于實(shí)際運(yùn)行的程序代碼。“==”是同步M變量賦值,當(dāng)程序遇到同步M變量輸出時(shí),并不馬上執(zhí)行,而是在下一個(gè)運(yùn)動(dòng)開始時(shí)進(jìn)行運(yùn)算執(zhí)行,這樣M變量輸出就可以與運(yùn)動(dòng)程序完全同步。
在進(jìn)行加工程序下載前使用自定義add_Mflag()函數(shù)自動(dòng)在每行程序前加上“M4000==程序行號(hào)”并將已添加標(biāo)志變量賦值的程序下載至PMAC中,在程序執(zhí)行過程中,通過實(shí)時(shí)查詢自定義的M標(biāo)志變量即可定位正在加工的程序行。程序流程圖如圖4所示。由于旋轉(zhuǎn)緩沖區(qū)運(yùn)行程序時(shí)也使用了實(shí)時(shí)加工程序行顯示功能,所以實(shí)現(xiàn)效果圖如圖5所示,可實(shí)時(shí)標(biāo)亮正在加工程序行。
3.2三維實(shí)時(shí)刀軌顯示功能
數(shù)控系統(tǒng)的發(fā)展趨勢對(duì)數(shù)控軟件的人機(jī)交互性提出了更高的要求,三維實(shí)時(shí)刀軌顯示已成為數(shù)控系統(tǒng)一大重要功能,尤其是在微細(xì)銑削加工中,微小直線段不易觀察,刀軌的三維實(shí)時(shí)顯示顯得尤為重要。
C#開發(fā)三維可視化模塊有多種方案,有VTK的.NET版本ActiViz.NET,Opengl的移植如Sharpgl、Csgl框架,AnyCad.net,Direct X等,鑒于開發(fā)方便及需實(shí)現(xiàn)的模塊功能,選擇AnyCad.net進(jìn)行三維實(shí)時(shí)刀軌顯示模塊的開發(fā)。AnyCAD.net 是一款基于.net平臺(tái)的三維控件,該控件為三維圖形開發(fā)程序員提供專業(yè)級(jí)的、簡單易用的三維建模、三維可視化和模型文件交換的API,讓開發(fā)者更專注于解決領(lǐng)域問題。使用Anycad.net方便快捷,只需幾步即可搭建三維可視化場景。首先在項(xiàng)目中添加DLL程序集AnyCAD.Foundation.Net.dll和AnyCAD.Presentation.Net.dll,然后用以下代碼進(jìn)行三維控件的添加與初始化即可完成三維可視化場景的搭建。
public FormMain()
{
我校為三年制大專學(xué)校,我校護(hù)理專業(yè)的生物化學(xué)課程開設(shè)在第一學(xué)年第一學(xué)期,且該專業(yè)學(xué)生為文理兼收,學(xué)習(xí)基礎(chǔ)較為薄弱,而生物化學(xué)內(nèi)容繁多,復(fù)雜抽象,學(xué)時(shí)又非常有限,學(xué)生普遍反映難懂難學(xué),不少學(xué)生對(duì)生物化學(xué)望而生畏。如何在有限的學(xué)時(shí)中將生物化學(xué)知識(shí)傳授給學(xué)生,提高教學(xué)效果,激發(fā)學(xué)生的學(xué)習(xí)興趣,幫助學(xué)生更好的理解和掌握課程的重點(diǎn)和難點(diǎn),是每一位教師需要努力達(dá)到的目標(biāo)。
InitializeComponent();
this.renderView = new AnyCAD.Presentation.RenderWindow3d();
this.renderView.Location = panel1.Location;
this.renderView.Size = panel1.Size;
this.renderView.TabIndex = 1;
this.Controls.Add(this.renderView);
}
利用AnyCAD.net在已搭建的三維可視化場景中進(jìn)行坐標(biāo)系的繪制、模擬銑刀的繪制、實(shí)時(shí)刀軌點(diǎn)的繪制、點(diǎn)坐標(biāo)位置顯示、視圖轉(zhuǎn)換、試圖截屏等功能的實(shí)現(xiàn)。實(shí)時(shí)刀軌繪制的開發(fā)流程如圖6所示。實(shí)時(shí)刀軌顯示模塊的人機(jī)界面及運(yùn)行效果圖如圖7所示。
3.3旋轉(zhuǎn)緩沖區(qū)模塊開發(fā)
通常情況下,直接下載至PMAC程序緩沖區(qū)的程序容量大小不能超過PMAC程序存儲(chǔ)空間(64K左右)。若加工程序文件大小大于64K,必須將程序分成幾小段下載至PMAC中,一段程序運(yùn)行完畢后再下載另一段程序,程序銜接階段刀具會(huì)長時(shí)間停留在一個(gè)點(diǎn),可能會(huì)造成過切形成凹坑,直接對(duì)表面質(zhì)量和加工效率造成影響。PMAC運(yùn)動(dòng)控制器提供了旋轉(zhuǎn)緩沖區(qū)功能來允許在程序執(zhí)行期間對(duì)程序行進(jìn)行下載,并覆蓋已經(jīng)被執(zhí)行的程序行,使得加工程序的大小不受PMAC程序存儲(chǔ)空間的限制,這樣加工程序就可連續(xù)運(yùn)行。
旋轉(zhuǎn)緩沖區(qū)的開發(fā)原理是利用上位機(jī)取得總加工程序的一定行數(shù)下載至PMAC旋轉(zhuǎn)緩沖區(qū)并執(zhí)行程序,不斷監(jiān)測旋轉(zhuǎn)緩沖區(qū)剩余未加工程序行數(shù),若小于設(shè)定值則取得剩余總加工程序的一定行數(shù)繼續(xù)下載至PMAC旋轉(zhuǎn)緩沖區(qū),不斷循環(huán)操作,期間程序不間斷執(zhí)行,直至所有總加工程序執(zhí)行完畢。具體開發(fā)流程與旋轉(zhuǎn)緩沖區(qū)運(yùn)行界面分別如圖8和圖5所示。
結(jié)合微細(xì)機(jī)床操作需要,在Windows平臺(tái)下采用C#編程語言對(duì)微細(xì)機(jī)床數(shù)控系統(tǒng)軟件進(jìn)行總體功能模塊及人機(jī)界面的設(shè)計(jì)與開發(fā),軟件整體運(yùn)行界面如圖9所示。軟件采用模塊化設(shè)計(jì),性能穩(wěn)定可靠,操作簡單,實(shí)現(xiàn)了加工程序行實(shí)時(shí)顯示、三維實(shí)時(shí)刀軌顯示、旋轉(zhuǎn)緩沖區(qū)等特色功能,已成功運(yùn)用于基于PMAC運(yùn)動(dòng)控制的微細(xì)三軸銑床中。實(shí)踐證明,該數(shù)控系統(tǒng)軟件可滿足微細(xì)機(jī)床要求的各項(xiàng)加工任務(wù),在此基礎(chǔ)上正在開展面向特征長度0.02~0.2mm的微結(jié)構(gòu)高精密微細(xì)銑削技術(shù)的相關(guān)實(shí)驗(yàn)研究,效果良好。
[1]Camara M A, Rubio J C, Abrao A M, et al. State of the art on micromilling of materials a review[J]. Journal of Materials Science and Technology, 2012, 28: 673-685.
[2]張霖. 數(shù)控微細(xì)銑削機(jī)床系統(tǒng)構(gòu)建及性能研究[D]. 南京:南京航空航天大學(xué), 2007.
[3]戴曉華, 王文, 王威,等. 開放式數(shù)控系統(tǒng)研究綜述[J]. 組合機(jī)床與自動(dòng)化加工技術(shù), 2000(11):5-7.
[4]邱時(shí)前, 陳志同. 五坐標(biāo)微銑削機(jī)床的研制[J]. 機(jī)械制造, 2007, 45(1):29-31.
[5]曹自洋, 何寧, 李亮,等. 微細(xì)銑削機(jī)床系統(tǒng)構(gòu)建及微小型零件加工實(shí)驗(yàn)研究[J]. 工具技術(shù), 2009(3):11-15.
[6]張鵬, 王波, 盧禮華,等. 微小型超精密微細(xì)銑削機(jī)床的研制[J]. 制造技術(shù)與機(jī)床, 2010(6):72-75.
[7]呂元哲. 基于PMAC的微型銑床數(shù)控系統(tǒng)的研究[D].大連:大連理工大學(xué), 2010.
[8]張升, 程祥, 楊先海,等. 超精密桌面微細(xì)銑削機(jī)床的研制[J]. 機(jī)械設(shè)計(jì)與制造, 2014(1):110-112.
[9]李葉. 基于直線電機(jī)的開放式微細(xì)銑削數(shù)控系統(tǒng)開發(fā)[D].濟(jì)南:濟(jì)南大學(xué), 2014.
[10]王慶祎. 多功能微型機(jī)床及其加工技術(shù)的研究[D].天津:天津大學(xué), 2010.
如果您想發(fā)表對(duì)本文的看法,請(qǐng)將文章編號(hào)填入讀者意見調(diào)查表中的相應(yīng)位置。
Development of CNC system software for micro-milling machine based on PMAC
DING Xu, HE Ning, LI Liang, HAO Xiuqing
(College of Mechanical & Electrical Engineering, Nanjing University of Aeronautics and Astronautics, Nanjing 210016, CHN)
The CNC system software for micro-milling machine based on PMAC is developed on the platform of Windows by using C# programming language. The hardware of the CNC system is briefly introduced, and then the overall functional module of the CNC system software is designed according to the machining characteristics of micro-milling machine. Besides, the development of characterized functions such as the real-time display of executing program, the three-dimensional real-time display of tool path, the rotary motion program buffers are detailed introduced. So far, the operation of the CNC system software is stable and reliable and the software function is perfect with a good human-machine interface.
PMAC;the three-dimensional real-time display of tool path; rotary motion program buffers
TP315
A
10.19287/j.cnki.1005-2402.2016.08.035
丁許,男,1992年生,碩士研究生,研究方向?yàn)槲⒓?xì)切削技術(shù),已發(fā)表論文1篇。
(編輯李靜)(2016-01-19)
160846
* 國家自然科學(xué)基金面上項(xiàng)目(51575268)