引言
隨著汽車、航空和船舶工業(yè)的飛速發(fā)展,對發(fā)動機的性能要求不斷提高,中高速發(fā)動機的關(guān)鍵部件活塞經(jīng)常被設(shè)計成非圓截面(中凸變橢圓)。目前,同內(nèi)外活塞制造主要采用硬靠模,這種加工方法不利于多品種、小批量特種環(huán)的生產(chǎn)和新產(chǎn)品的研究與開發(fā)?;钊摹败浛磕!奔夹g(shù)就是把活塞的橫截面形狀或數(shù)據(jù)輸入計算機,再由計算機控制刀具運動,完成活塞變橢圓截面的車削加工。它不僅能切削各種復(fù)雜的截面形狀,而且具有切削效率高、加工精度高、柔性好等優(yōu)點?;钊型棺儥E圓數(shù)控車削時,X軸進給機構(gòu)的性能和控制方法決定了加T精度和表面質(zhì)量,因而對機床進給系統(tǒng)的伺服性能提出了更高的要求:要有很高的驅(qū)動推力、快速進給速度和進給加速度。對于一般數(shù)控機床,由于受到傳統(tǒng)機械結(jié)構(gòu)(即旋轉(zhuǎn)電動機+滾珠絲杠)進給方式的限制,其有關(guān)伺服性能指標(biāo)(特別是快速響應(yīng)性)難以突破提高。而直線電機驅(qū)動機構(gòu)作為一種新的高速進給方式能提供120—200m/min的速度和5~10g的加速度。進給機構(gòu)由直線電機直接驅(qū)動,消除了中間環(huán)節(jié)的機械滯后及螺距誤差,其運動精度取決于反饋裝置、控制系統(tǒng)和直線導(dǎo)軌,從而可達到很高的精度。
1、數(shù)控活塞車床X軸進給機構(gòu)結(jié)構(gòu)及原理
本文將直線電機作為X軸進給驅(qū)動部件,設(shè)計的數(shù)控車床X軸進給機構(gòu)結(jié)構(gòu)如圖1所示。直線電機對稱立式安裝,滑臺和簡易刀架采用輕質(zhì)高強度合金材料,優(yōu)化的結(jié)構(gòu)設(shè)計盡可能減小滑臺質(zhì)量以提高進給系統(tǒng)的快速響應(yīng)性能和加速度,導(dǎo)軌采用直線滾動導(dǎo)軌。進給系統(tǒng)行程限位采用接近開關(guān)和彈簧空氣阻尼式機械擋塊二級安全過沖防護,以確?;_不會因為誤操作而沖出導(dǎo)軌。光柵位置反饋裝置位于滑臺內(nèi)部,以免受到外界油污和鐵屑污染。系統(tǒng)具有全封閉防護結(jié)構(gòu)和由內(nèi)向外的吹風(fēng)冷卻功能(圖1中未表示)。由于采用無鐵芯動子(初級)結(jié)構(gòu),發(fā)熱量小,散熱容易,這使得加工中受熱變形的影響小。整個活塞車床的結(jié)構(gòu)如圖2所示。
圖1 活塞車床的X軸進給機構(gòu)結(jié)構(gòu)
圖2 活塞車床整體結(jié)構(gòu)圖 2、活塞車床數(shù)控系統(tǒng)設(shè)計 已成為數(shù)控系統(tǒng)發(fā)展趨勢的開放式數(shù)控系統(tǒng)是計算機硬件技術(shù)、信息技術(shù)、控制技術(shù)融人數(shù)控技術(shù)的產(chǎn)物,它具有強大的適應(yīng)性和靈活配置能力,能適應(yīng)各種數(shù)控設(shè)備,可靈活配置,隨意集成。該系統(tǒng)遵循統(tǒng)一的標(biāo)準(zhǔn)體系結(jié)構(gòu)規(guī)范,模塊之問具有兼容性,部件具有互換性和互操作性。目前的開放式數(shù)控系統(tǒng)主要有以下3種結(jié)構(gòu):
(1) PC機+數(shù)控專用模塊
即在Pc機上嵌入數(shù)控專用模板。這種數(shù)控系統(tǒng)的開放性只限于PC微機部分,其專業(yè)的數(shù)控部分仍處于封閉狀態(tài)。
(2) PC機+可編程運動控制器
這種基于開放式可編程運動控制器的系統(tǒng)結(jié)構(gòu)以通用微機為平臺,以PC機標(biāo)準(zhǔn)插件形式的可編程運動控制器為控制核心,雙CPU并行通信,是一種便于開發(fā)的全方位開放式體系結(jié)構(gòu)。
(3) 純PC機
即完全采用PC機的全軟件形式的數(shù)控系統(tǒng)。這類系統(tǒng)由于受到PC機實時性的限制,目前正處于探索階段。
本數(shù)控系統(tǒng)采用的是第二種方式,即IPC十PMAC(programmable multi-axes controller)的開放式結(jié)構(gòu)體系,系統(tǒng)運行速度快、控制精度高、開發(fā)周期短。數(shù)控系統(tǒng)軟件采用VC+6.0開發(fā),使用美國Delta Tau公司提供的動態(tài)鏈接庫PComm32。
2.1 數(shù)控系統(tǒng)硬件設(shè)計
本系統(tǒng)硬件結(jié)構(gòu)如圖3所示。工控機采用研祥的PCl04/PⅢ800型嵌入式: 控機,主板上配有104總線接口。運動控制卡采用美國Delta Tau公司的PMAC2/PC104型控制卡,可以直接和104總線接口的工控機相連。PMAC的核心是MOTOROLA的DSP56001/56002數(shù)字信號處理器,可同時控制1~8個軸,既可單獨執(zhí)行存儲于其內(nèi)部的程序,也可執(zhí)行運動程序和PLC程序,并進行伺服環(huán)更新及以串口、總線兩種方式與上位機進行通信。PMAC還可自動對任務(wù)優(yōu)先級進行判別,從而進行實時多任務(wù)處理。由于PMAC卡具有強大的數(shù)字運算能力來完成數(shù)控捅補、PLC程序運行等實時任務(wù),簡化了實現(xiàn)數(shù)控系統(tǒng)實時性任務(wù)的開發(fā)T作,只需根據(jù)要求開發(fā)上位機界面、NC程序編輯、機床狀態(tài)量讀取等非實時任務(wù)。工控機和PMAC之間通過104總線通信,只需通過調(diào)用動態(tài)鏈接庫PComm32就可實現(xiàn)兩者間的實時通信。
圖3 數(shù)控系統(tǒng)硬件結(jié)構(gòu) 2.2 數(shù)控系統(tǒng)軟件設(shè)計 活塞車床數(shù)控系統(tǒng)的軟件采用模塊化沒計,用面向?qū)ο蟮母呒壵Z言VC++ 6.0編寫,通過PMAC提供的動態(tài)鏈接庫管理實時運動程序。系統(tǒng)軟件主要包括上位機人機界面、上下位機通信程序和PLC程序等幾部分。軟件的結(jié)構(gòu)如圖4所示。上位機人機界面為用戶提供一個系統(tǒng)操作界面,在此界面下,系統(tǒng)的各功能模塊以菜單和對話框的形式被調(diào)用。PLC控制程序用于機床系統(tǒng)開關(guān)量的邏輯控制。動態(tài)鏈接庫PComm32提供函數(shù)同底層的虛擬設(shè)備驅(qū)動程序進行數(shù)據(jù)交換,然后由虛擬設(shè)備驅(qū)動程序直接和PMAC交換數(shù)據(jù)。
圖4 數(shù)控系統(tǒng)軟件結(jié)構(gòu) (1) 人機界面程序編制
數(shù)控活塞車床的上位人機界面程序主要是將數(shù)控系統(tǒng)的操作界面顯示在屏幕上,為操作者提供一個直觀的操作環(huán)境。這是數(shù)控軟件開發(fā)中較重要的一部分,主要包括程序編輯、系統(tǒng)參數(shù)配置、加上運行、狀態(tài)顯示、自診斷和在線幫助等。程序編輯界面主要用于數(shù)控文件的編輯、復(fù)制、存儲和刪除等操作,實現(xiàn)文檔和系統(tǒng)內(nèi)部數(shù)據(jù)的管理。系統(tǒng)參數(shù)配置界面可以方便地配置M變量、I變量、電機參數(shù)等各個系統(tǒng)參數(shù)。加工運行界面用于將NC代碼進行解釋并下載到PMAC巾,通過PMAC去執(zhí)行插補等功能。狀態(tài)顯示界面用于顯示電機的實際位置、命令位置、速度以及運動時間等各種狀態(tài)參數(shù),通過顯示的參數(shù)來了解加工性能的好壞,從而根據(jù)需要在系統(tǒng)配置界面中調(diào)整參數(shù)設(shè)置。自診斷界面用于顯示各種主要故障原因及其初步解決方案。在線幫助界面為用戶提供該人機界面的使用幫助說明。整個人機界面基于Windows環(huán)境,采用菜單式按鈕,具有很好的人機交互性。
(2) 上下位機通信程序編制
為了便于PMAC與上層Windows進行通信,Delta Tau公司提供r PComm32動態(tài)鏈接庫作為上層應(yīng)用程序與PMAC之間通信的橋梁。PComm32是一個非常有效的開發(fā)工具,它包括了所有與PMAC的通信方法,并且與VC++等開發(fā)軟件有很好的兼容性,開發(fā)者只需要往VC程序中調(diào)用動態(tài)鏈接庫就能完成上位機同PMAC之間的數(shù)據(jù)交換。下面介紹在VC++6.0環(huán)境下調(diào)用PComm32動態(tài)鏈接庫及庫函數(shù)的方法。PComm32共包含丁250多個函數(shù),但常用的并不多,只要掌握了下面幾個就可以完成大部分的通信功能:
Open Pmac Device()//為應(yīng)用程序使用PMAC打開一個通道;
Close Pmac Device()//當(dāng)程序運行完畢后關(guān)閉所打開的通道;
Pmac Get PesponseA()//發(fā)送一個命令字符串給PMAC,并從緩沖區(qū)得到PMAC的反饋;
Pmac Configure()//調(diào)出配置對話框并修改PMAC的參數(shù);
Pmac Down LoadA()//將程序從Pc下載到PMAC;
Pmac Send CommandA()//發(fā)送一個命令字符串給PMAC。
掌握了這幾個函數(shù)的使用方法,就可在VC++6.0環(huán)境下凋用PComm32動念鏈接庫,還需要用到Windows的幾個API函數(shù):
LoadLibrary//加載動態(tài)庫;
GetProcAddress//取得相應(yīng)函數(shù)地址、FreeLibrary//卸載動態(tài)庫。
要調(diào)用動態(tài)庫函數(shù),首先要在頭文件巾為所需的函數(shù)定義函數(shù)指針類型,其參數(shù)要和動態(tài)庫的函數(shù)原型相同。接下來要在該文件中定義3個函數(shù)指針:
Open Pmac open、Close Pmac close、Pmac Get pmaeget,然后在執(zhí)行文件中加載動態(tài)庫,獲得相應(yīng)的函數(shù)地址并賦值給所定義的函數(shù)指針,程序段如下:
hMyD1 1=LoadLibrary(“pmac”)//加載動態(tài)庫;
open=(OpenPmac)GetProcAddress(hMy D1 1),“Open Piilac Device”//得到函數(shù)地址并賦給函數(shù)指針;
close = (ClosePmac)GetProcAddress(hMyD1 1,“ClosePmac Device”)
pmacget= (PmacGet)GetProcAddress(hMyD 1 1,“Pmac Get ResponseA”)//通過指向函數(shù)的指針調(diào)用該函數(shù);
if(open!=NULL)
{
( opeil)(0)//初始化函數(shù);
SetTimer(1,lo,NULL)//設(shè)定定時器采集時間為lOOms:
︳
void CP comm Dig::On Timer(UINT nlDEvent)//定時器響應(yīng)函數(shù);
︳
( pmacget)(0,buf,255,“rx0”)//讀取PMAC寄存器xO的值并存放在buf中;
Update(FALSE)
CDialog::On Timer(nIDEvent)
︳
//在退出程序的時候要卸載動態(tài)庫;
BOOL CPcommDlg::Destroy Window()
{
( close)(0)//關(guān)斷與PMAC的通信;
Free Library(hMy DLL)//卸載動態(tài)庫;
Return CDialog::Destroy Window()
}
(3) PLC程序的編制
系統(tǒng)的PLC程序主要完成系統(tǒng)的初始化和對各種輸入輸出量進行監(jiān)控,主要包括限位、冷卻、潤滑、指示燈管理、主軸電機啟停等子程序。PMAC帶有內(nèi)置的軟PLC功能,其運行是由PMAC來實現(xiàn)的。當(dāng)運動程序在前臺有序運行時,PMAC可以在后臺運行多達32個異步PLC程序。PLC程序可以以極高的采樣速率監(jiān)視模擬和數(shù)字輸入、設(shè)定輸出值、發(fā)送信息、改變增益,命令運動停止/啟動等作業(yè)。PLC程序的語法采用IF—ELSE結(jié)構(gòu)的類C語言,開發(fā)者很容易就能寫出所需的PLC程序,然后可利用PMAC自帶的軟件開發(fā)平臺進行編輯、編譯,最后下載到PMAC卡中運行。
3、結(jié)束語
(1) 采用直線電機驅(qū)動和直線導(dǎo)軌保證了非圓車削的快速響應(yīng)性和高剛度要求。
(2) 基于IPC+PMAC結(jié)構(gòu)的活塞車床數(shù)控系統(tǒng),充分利用了PMAC控制器強大的伺服控制功能、直線電機的高頻響應(yīng)特性和PC機高效靈活的編程功能,硬件組成簡單,軟件開發(fā)方便,整個系統(tǒng)開發(fā)周期短,開放性和可擴展性較強,適合于多品種、小批量活塞的開發(fā)和生產(chǎn)。