董秋艷,郭兵,韓成順,趙清亮
(哈爾濱工業(yè)大學精密工程研究所,黑龍江哈爾濱150001)
隨著科學技術的日益發(fā)展,各種對稱、非對稱、非球曲面、甚至更為復雜的異形曲面零件的加工越來越引起世界各國制造業(yè)的高度重視。這些高精度的曲面類零件廣泛地應用于武器裝備、航空航天、生物醫(yī)學、能源及電子信息等領域的尖端設備中[1]。曲面的超精密加工要求加工機床具有高精度、高剛度以及良好的動態(tài)性能,同時需要多軸聯(lián)動控制技術。因此,數(shù)控系統(tǒng)作為超精密機床的控制中心,已成為決定超精密曲面加工的關鍵性因素。目前,超精密機床多采用NC(Numerical Control)嵌入PC型開放式數(shù)控系統(tǒng)。這種開放式數(shù)控系統(tǒng)具有可移植、可擴展性、交互簡單、運用靈活等優(yōu)點。
文中根據(jù)超精密磨床磨削非球曲面的要求,依托PMAC多軸運動控制卡和上位機工控機組成的開放式數(shù)控系統(tǒng),基于Windows操作平臺,綜合運用VC++6.0和PMAC驅(qū)動程序進行了數(shù)控系統(tǒng)的軟件開發(fā)。
PMAC(Programmable Multi-Axis Controller)是由美國Delta Tau公司推出的具有開放式體系結(jié)構的多軸運動控制器。PMAC功能強大,性價比較高,具有精度高、響應快、操作簡單等特點,它采用了Motorola的DSP56系列數(shù)字芯片,可以靈活運行多種高級語言,最多可以控制八軸同時運動[2]。
PMAC本身就是一臺完整的計算機,它不僅可以通過自己內(nèi)部的程序獨立運行,還可以與計算機連接起來進行聯(lián)合運行;它是集執(zhí)行PLC程序、伺服環(huán)更新、電機換向更新、資源管理以及與主機通訊于一體的多功能運動控制器,能夠執(zhí)行多個任務并對任務的優(yōu)先級做出正確的判斷[3]。
PMAC通過串口、總線 (PC、PCI、STD或者VME)或者雙端口RAM與主機通訊,通過特殊設計的DSPGATES用戶門陣列 IC與各軸通訊[4]。每個PMAC卡都能控制8個軸,最多可以有16個PMAC卡級聯(lián)。
基于PMAC的數(shù)控系統(tǒng)是開放式數(shù)控系統(tǒng),這主要是由于PMAC硬件結(jié)構的開放性和軟件結(jié)構的開放性。其中硬件結(jié)構的開放性是指它能夠與不同硬件平臺匹配、與各種伺服系統(tǒng)匹配、與各種檢測元件匹配以及與PC機采用多種方式進行通信。軟件結(jié)構的開放性是指其人機界面的對外開放性、數(shù)控功能的對外開放性和PLC功能的對外開放性以及控制系統(tǒng)定制的對外開放性[5]。
超精密磨床主要用于磨削半球面、非球曲面、圓環(huán)面等復雜曲面。由于機床具有高精度、高剛度、高穩(wěn)定性的運動部件及超精密驅(qū)動和反饋系統(tǒng),具有3個軸和1個超精密回轉(zhuǎn)工作臺,同時具備在位測量補償加工、砂輪在機修整和在線修銳功能,因此可以磨削超精密精度等級的復雜曲面。機床的總體布局如圖1所示。
圖1 機床的總體布局圖
超精密磨床主軸采用氣體靜壓主軸,精度高,熱變形小,回轉(zhuǎn)速度大。機床的X軸和Z軸采用液體靜壓導軌,導軌采用T形布局,剛度高,承載能力大,運動平穩(wěn),直線運動精度高。同時采用了氣浮二維超精密回轉(zhuǎn)工作臺,即B軸,可以通過三軸或四軸聯(lián)動實現(xiàn)復雜曲面的加工。機床X軸,Z軸均采用直線電機驅(qū)動,減少了機械傳動的中間環(huán)節(jié),增加了系統(tǒng)的動態(tài)剛度,減少了由于傳動帶來的跟隨誤差。
該超精密磨床的數(shù)控系統(tǒng)是NC嵌入PC式開放式數(shù)控系統(tǒng),即PMAC嵌入工控機中。如圖2所示,該系統(tǒng)的工控機采用研華公司的工控機,控制卡類型為Turbo PMAC PCI Lite。該數(shù)控系統(tǒng)主要由上位機工業(yè)控制計算機、PMAC運動控制器、伺服電機及其伺服驅(qū)動器、檢測反饋元件四部分組成。其核心部分是下位機PMAC控制器。其中上位機與下位機通過PCI總線通訊。同時由ACC-8P擴展卡將PMAC的JMACH接口信號與伺服驅(qū)動器和反饋信號連接起來[4]。
上位機工控機具有存儲量大、運行速度快、操作靈活等特點,主要用于后臺管理、人機交互界面的開放性設計、程序編輯、運動處理及運動實時監(jiān)測等。下位機PMAC具有實時性強、穩(wěn)定性好、效率高等特點,主要用于前臺控制,包括各軸運動控制、插補運算、刀具補償、程序執(zhí)行、反饋信號接收和處理以及機床邏輯功能A/D、D/A轉(zhuǎn)換等。在實際應用中,用戶通過上位機進行系統(tǒng)相關的數(shù)據(jù)輸入、命令輸入、參數(shù)設定、程序編輯等準備工作,然后通過PCI總線與PMAC進行通訊,再由PMAC根據(jù)上位機的要求發(fā)送指令給相應的伺服驅(qū)動器,由伺服驅(qū)動器驅(qū)動電機來執(zhí)行相關指令,推動導軌到指定的位置或者使主軸和B軸按照指定轉(zhuǎn)速轉(zhuǎn)動。與此同時,光柵尺或者圓光柵作為檢測反饋元件將采集到的數(shù)據(jù)不斷地反饋給PMAC,通過PMAC的復合反饋功能使系統(tǒng)具有較好的靜動態(tài)特性。
圖2 基于PMAC的開放式數(shù)控系統(tǒng)硬件結(jié)構圖
上位機軟件是基于 Windows操作系統(tǒng),使用VC++6.0開發(fā)的。Delta Tau公司為PMAC上位軟件開發(fā)提供了軟件開發(fā)包PcommSever。PcommSever是一個包含50多種函數(shù)功能的軟件包。上位機與PMAC的通訊和數(shù)據(jù)交換都可以通過PcommSever中的函數(shù)來實現(xiàn)。
該系統(tǒng)軟件分為4個操作窗體,一個父窗體,3個子窗體,每個窗體及其功能都封裝成一個類。軟件結(jié)構如圖3所示。父窗體是操作的主界面,如圖4所示。主界面的設計采用了模塊化設計思想,主要包括狀態(tài)監(jiān)測模塊、初始化模塊、程序模塊、運動控制模塊、PID調(diào)節(jié)模塊、輔助及其他模塊。
圖3 數(shù)控系統(tǒng)的軟件結(jié)構
圖4 程序主界面
軟件系統(tǒng)的設計充分體現(xiàn)了數(shù)控系統(tǒng)的開放性特點,如果該軟件不能滿足用戶需求,用戶可以根據(jù)自己的需要開發(fā)新的功能模塊。同時,系統(tǒng)軟件作為人機交互界面,可以通過軟件上的簡單操作與PMAC進行數(shù)據(jù)交換,并將從PMAC得到的信息顯示在主界面上。此外,該軟件的模塊化設計使界面美觀簡潔、操作簡單、友好交互,可以減少操作者的勞動強度,提高工作效率。打開系統(tǒng)軟件首先顯示登陸界面,以提示用戶在操作機床過程中應該注意的問題。然后進入系統(tǒng)的主界面,其中主界面的各個模塊的功能如下所示:
狀態(tài)監(jiān)測模塊:此模塊包括各軸狀態(tài)監(jiān)測模塊,工作模態(tài)監(jiān)測模塊,進給速度倍率監(jiān)測模塊。各軸狀態(tài)監(jiān)測模塊實時地監(jiān)測各軸電機是否上電和閉環(huán)、各軸是否處于運動狀態(tài)以及運動過程中是否觸及限位開關,同時實時動態(tài)地反映從PMAC采集回來的X軸和Z軸的實際位置以及B軸和C軸的轉(zhuǎn)動角度。工作模態(tài)監(jiān)測模塊反映此時機床處于哪種工作模式下,其中包括JOG運動模式、手輪輸入模式、自動運行模式、編輯模式、回零模式以及手動快速運動模式等。進給速度倍率監(jiān)測模塊用以顯示進給速率值的百分比。
初始化模塊:此模塊的主要功能是給各個電機上電及閉環(huán),其上電和閉環(huán)狀態(tài)會在狀態(tài)監(jiān)測模塊中顯示出來。
程序模塊:此模塊由兩部分組成,除了主界面上的程序模塊外還包括一個程序編輯子界面 (如圖5所示)。主界面上的程序模塊用于打開下載前不需要進行編輯的程序,然后進行下載和運行。程序編輯子界面用于打開下載前需要編輯的程序,這時候可以通過該子界面打開程序,并對程序進行編輯和保存,同時可以將程序下載到PMAC中或者將程序從PMAC讀取至上位機中。
圖5 程序編輯子界面
運動控制模塊:此模塊包括JOG運動控制模塊、B軸和C軸控制模塊,用以設置各軸的運動位置、運動速度和運動方向,并使各軸進行正反方向運動和回零運動。
PID調(diào)節(jié)模塊:此模塊用于打開PID調(diào)節(jié)相關的PmacTurningPro2軟件和PmacPlot32Pro2軟件。此外,該模塊還設置了階躍信號整定和拋物線信號整定過程中可能出現(xiàn)的曲線形狀,并指出供用戶參考的相應調(diào)節(jié)方法,以提高工作效率。
輔助功能及其他模塊:此模塊包括油泵的開啟和關閉、氣泵和冷卻液的狀態(tài)監(jiān)測以及急停和退出軟件系統(tǒng)。基于安全性考慮,設置了電機閉環(huán)前必須開啟油泵和電機處于閉環(huán)時不能停止油泵的保護方法。
軟件系統(tǒng)采用顯式鏈接的方式將PcommSever.exe添加到VC++6.0的MFC程序中,由此導入了PcommSever.exe中的封裝類IPmacDevice。軟件系統(tǒng)的各個功能模塊都是基于VC++6.0的MFC程序框架,調(diào)用類IPmacDevice中的函數(shù)實現(xiàn)的。其中軟件的主要功能是通過 GetResponseEx(dwDevice,F(xiàn)ALSE,&pAnswer,&Pstatus)函數(shù)實現(xiàn)的[6]。
對于整個系統(tǒng)軟件,要先解決上位機與PMAC的通訊問題。首先在程序中聲明IPmacDevice類型的全局 變 量 PmacDevice, 然 后 通 過 PmacDevice.SelectDevice(NULL,&dwDevice,&pbSuccess)和PmacDevice.Open(dwDevice,&pbSuccess)函數(shù)建立通訊[7]。
狀態(tài)監(jiān)測模塊要完成顯示狀態(tài)信息和更新界面信息的功能。例如X軸 (即#1軸)的運動狀態(tài)監(jiān)測是調(diào) 用 PmacDevice.GetResponseEx(dwDevice,"M140",F(xiàn)ALSE,&pAnswer,&pStatus)實現(xiàn)的。該函數(shù)向PMAC發(fā)送不同的M變量指令,并從PMAC得到響應指令pAnswer,然后將變量pAnswer轉(zhuǎn)換成int型變量,判斷該int型變量的值得出此時電機是否上電。各軸位置信息的實時更新是通過定時器實現(xiàn)的,以X軸為例,X軸的位置是通過定時器發(fā)送WM_TIMER消息,然后在OnTimer()消息響應函數(shù)中調(diào)用GetResponseEx()函數(shù)向PMAC發(fā)送"#1p"指令來更新的。此外,模塊中其他狀態(tài)監(jiān)測功能與X軸的運動狀態(tài)監(jiān)測功能的實現(xiàn)方法基本一致。
初始化模塊中,X軸上電功能是通過函數(shù)GetResponseEx()來改變變量M7904的值實現(xiàn)的。按下按鈕時,先判斷電機的上電狀態(tài),如果電機未上電,則令M7904=1給電機上電,如果電機已上電,則令M7904=0使電機斷電。同時利用定時器控件來改變當前電機的上電狀態(tài)。其他初始化按鈕的實現(xiàn)方法基本類似。
JOG運動控制模塊主要用來進行加工前的對刀工作。速度控制通過改變變量Ix22來實現(xiàn),其中x表示電機號。運動模式通過函數(shù)GetResponseEx()向PMAC發(fā)送"#xj:"和"#xj="指令來實現(xiàn),而正負方向的運動通過向PMAC發(fā)送指令"#Xj+"和"#Xj-"來實現(xiàn)。
PID調(diào)節(jié)模塊程序調(diào)用指令:WinExec("C:Program FilesDelta TauPMAC Executive Pro2SuitePmacTuningPro2 PmacTuningPro2.exe",SW _SHOWNORMAL)
程序模塊的部分功能實現(xiàn)指令如下:
程序運行指令:PmacDevice.GetResponseEx(dwDevice,command,0,&pAnswer,&pStatus)
程序終止指令:PmacDevice.GetResponseEx(dwDevice,"A",0,&pAnswer,&pStatus)
程序下載指令:PmacDevice.Download(dwDevice,filepath,1,1,1,1,&pbSuccess);其中 filepath 表示要打開的文件路徑。
程序上傳指令:PmacDevice.GetResponseEx(dwDevice,str,0,&pAnswer,&pStatus);其 中 str=LIST PROG N,N表示需要上傳到主機的程序號。
根據(jù)超精密磨床的特點和加工要求,設計開發(fā)了一套基于PMAC的開放式數(shù)控系統(tǒng)。該數(shù)控系統(tǒng)采用上位機和下位機結(jié)合的方式,上位機工控機負責后臺管理和人機交互,下位機PMAC負責運動控制和信號處理;采用模塊化的設計方法,基于VC++的MFC基礎類框架,調(diào)用PMAC軟件開發(fā)包的封裝類,形成了一套功能齊全、交互友好、可以進行二次開發(fā)的數(shù)控系統(tǒng)軟件。該數(shù)控系統(tǒng)開發(fā)周期短、成本低、具有良好的開放性,目前已在超精密磨床上投入使用,經(jīng)過長期可靠運行,可以滿足加工制造的要求。
【1】陳明君,郭偉星,李旦.基于PMAC開放式數(shù)控系統(tǒng)的研究與應用新進展[J].航空精密制造技術,2005,41(2):28-31.
【2】PMAC用戶手冊.北京鈞義志成科技發(fā)展有限責任公司,2006.
【3】PMAC Quick Reference.DELTA TAU Data Systems Inc.,2009.
【4】Bai J,Sun L,Pan J,et al.Research and Development of Embedded Numerical Control System Based on Digital Signal Processor[C]//Mechatronic and Embedded Systems and Applications,Proceedings of the 2nd IEEE/ASME International Conference on.IEEE,2006:1 -5.
【5】劉毅.基于PMAC的微小型機床數(shù)控系統(tǒng)研究[D].哈爾濱:哈爾濱工業(yè)大學,2006.
【6】Software Reference Manual.DELTA TAU Data Systems Inc.,2003.
【7】PcommServer Library of PMAC Functions.DELTA TAU Data Systems Inc.,2009.