• 基于PMAC的活塞車床開放式數(shù)控系統(tǒng)
    控制工程

         引言 
         
            隨著汽車、航空和船舶工業(yè)的飛速發(fā)展,對(duì)發(fā)動(dòng)機(jī)的性能要求不斷提高,中高速發(fā)動(dòng)機(jī)的關(guān)鍵部件活塞經(jīng)常被設(shè)計(jì)成非圓截面(中凸變橢圓)。目前,同內(nèi)外活塞制造主要采用硬靠模,這種加工方法不利于多品種、小批量特種環(huán)的生產(chǎn)和新產(chǎn)品的研究與開發(fā)?;钊摹败浛磕!奔夹g(shù)就是把活塞的橫截面形狀或數(shù)據(jù)輸入計(jì)算機(jī),再由計(jì)算機(jī)控制刀具運(yùn)動(dòng),完成活塞變橢圓截面的車削加工。它不僅能切削各種復(fù)雜的截面形狀,而且具有切削效率高、加工精度高、柔性好等優(yōu)點(diǎn)。活塞中凸變橢圓數(shù)控車削時(shí),X軸進(jìn)給機(jī)構(gòu)的性能和控制方法決定了加T精度和表面質(zhì)量,因而對(duì)機(jī)床進(jìn)給系統(tǒng)的伺服性能提出了更高的要求:要有很高的驅(qū)動(dòng)推力、快速進(jìn)給速度和進(jìn)給加速度。對(duì)于一般數(shù)控機(jī)床,由于受到傳統(tǒng)機(jī)械結(jié)構(gòu)(即旋轉(zhuǎn)電動(dòng)機(jī)+滾珠絲杠)進(jìn)給方式的限制,其有關(guān)伺服性能指標(biāo)(特別是快速響應(yīng)性)難以突破提高。而直線電機(jī)驅(qū)動(dòng)機(jī)構(gòu)作為一種新的高速進(jìn)給方式能提供120—200m/min的速度和5~10g的加速度。進(jìn)給機(jī)構(gòu)由直線電機(jī)直接驅(qū)動(dòng),消除了中間環(huán)節(jié)的機(jī)械滯后及螺距誤差,其運(yùn)動(dòng)精度取決于反饋裝置、控制系統(tǒng)和直線導(dǎo)軌,從而可達(dá)到很高的精度。 
         
        1、數(shù)控活塞車床X軸進(jìn)給機(jī)構(gòu)結(jié)構(gòu)及原理 
         
           本文將直線電機(jī)作為X軸進(jìn)給驅(qū)動(dòng)部件,設(shè)計(jì)的數(shù)控車床X軸進(jìn)給機(jī)構(gòu)結(jié)構(gòu)如圖1所示。直線電機(jī)對(duì)稱立式安裝,滑臺(tái)和簡(jiǎn)易刀架采用輕質(zhì)高強(qiáng)度合金材料,優(yōu)化的結(jié)構(gòu)設(shè)計(jì)盡可能減小滑臺(tái)質(zhì)量以提高進(jìn)給系統(tǒng)的快速響應(yīng)性能和加速度,導(dǎo)軌采用直線滾動(dòng)導(dǎo)軌。進(jìn)給系統(tǒng)行程限位采用接近開關(guān)和彈簧空氣阻尼式機(jī)械擋塊二級(jí)安全過沖防護(hù),以確?;_(tái)不會(huì)因?yàn)檎`操作而沖出導(dǎo)軌。光柵位置反饋裝置位于滑臺(tái)內(nèi)部,以免受到外界油污和鐵屑污染。系統(tǒng)具有全封閉防護(hù)結(jié)構(gòu)和由內(nèi)向外的吹風(fēng)冷卻功能(圖1中未表示)。由于采用無鐵芯動(dòng)子(初級(jí))結(jié)構(gòu),發(fā)熱量小,散熱容易,這使得加工中受熱變形的影響小。整個(gè)活塞車床的結(jié)構(gòu)如圖2所示。 



    圖1 活塞車床的X軸進(jìn)給機(jī)構(gòu)結(jié)構(gòu) 



    圖2 活塞車床整體結(jié)構(gòu)圖 

        2、活塞車床數(shù)控系統(tǒng)設(shè)計(jì) 
         
           已成為數(shù)控系統(tǒng)發(fā)展趨勢(shì)的開放式數(shù)控系統(tǒng)是計(jì)算機(jī)硬件技術(shù)、信息技術(shù)、控制技術(shù)融人數(shù)控技術(shù)的產(chǎn)物,它具有強(qiáng)大的適應(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機(jī)+數(shù)控專用模塊 
         
           即在Pc機(jī)上嵌入數(shù)控專用模板。這種數(shù)控系統(tǒng)的開放性只限于PC微機(jī)部分,其專業(yè)的數(shù)控部分仍處于封閉狀態(tài)。 
         
        (2) PC機(jī)+可編程運(yùn)動(dòng)控制器 
         
           這種基于開放式可編程運(yùn)動(dòng)控制器的系統(tǒng)結(jié)構(gòu)以通用微機(jī)為平臺(tái),以PC機(jī)標(biāo)準(zhǔn)插件形式的可編程運(yùn)動(dòng)控制器為控制核心,雙CPU并行通信,是一種便于開發(fā)的全方位開放式體系結(jié)構(gòu)。 
         
        (3) 純PC機(jī) 

           即完全采用PC機(jī)的全軟件形式的數(shù)控系統(tǒng)。這類系統(tǒng)由于受到PC機(jī)實(shí)時(shí)性的限制,目前正處于探索階段。 
         
           本數(shù)控系統(tǒng)采用的是第二種方式,即IPC十PMAC(programmable multi-axes controller)的開放式結(jié)構(gòu)體系,系統(tǒng)運(yùn)行速度快、控制精度高、開發(fā)周期短。數(shù)控系統(tǒng)軟件采用VC+6.0開發(fā),使用美國Delta Tau公司提供的動(dòng)態(tài)鏈接庫PComm32。 
         
        2.1 數(shù)控系統(tǒng)硬件設(shè)計(jì) 
         
           本系統(tǒng)硬件結(jié)構(gòu)如圖3所示。工控機(jī)采用研祥的PCl04/PⅢ800型嵌入式: 控機(jī),主板上配有104總線接口。運(yùn)動(dòng)控制卡采用美國Delta Tau公司的PMAC2/PC104型控制卡,可以直接和104總線接口的工控機(jī)相連。PMAC的核心是MOTOROLA的DSP56001/56002數(shù)字信號(hào)處理器,可同時(shí)控制1~8個(gè)軸,既可單獨(dú)執(zhí)行存儲(chǔ)于其內(nèi)部的程序,也可執(zhí)行運(yùn)動(dòng)程序和PLC程序,并進(jìn)行伺服環(huán)更新及以串口、總線兩種方式與上位機(jī)進(jìn)行通信。PMAC還可自動(dòng)對(duì)任務(wù)優(yōu)先級(jí)進(jìn)行判別,從而進(jìn)行實(shí)時(shí)多任務(wù)處理。由于PMAC卡具有強(qiáng)大的數(shù)字運(yùn)算能力來完成數(shù)控捅補(bǔ)、PLC程序運(yùn)行等實(shí)時(shí)任務(wù),簡(jiǎn)化了實(shí)現(xiàn)數(shù)控系統(tǒng)實(shí)時(shí)性任務(wù)的開發(fā)T作,只需根據(jù)要求開發(fā)上位機(jī)界面、NC程序編輯、機(jī)床狀態(tài)量讀取等非實(shí)時(shí)任務(wù)。工控機(jī)和PMAC之間通過104總線通信,只需通過調(diào)用動(dòng)態(tài)鏈接庫PComm32就可實(shí)現(xiàn)兩者間的實(shí)時(shí)通信。 



    圖3 數(shù)控系統(tǒng)硬件結(jié)構(gòu) 

        2.2 數(shù)控系統(tǒng)軟件設(shè)計(jì) 
         
           活塞車床數(shù)控系統(tǒng)的軟件采用模塊化沒計(jì),用面向?qū)ο蟮母呒?jí)語言VC++ 6.0編寫,通過PMAC提供的動(dòng)態(tài)鏈接庫管理實(shí)時(shí)運(yùn)動(dòng)程序。系統(tǒng)軟件主要包括上位機(jī)人機(jī)界面、上下位機(jī)通信程序和PLC程序等幾部分。軟件的結(jié)構(gòu)如圖4所示。上位機(jī)人機(jī)界面為用戶提供一個(gè)系統(tǒng)操作界面,在此界面下,系統(tǒng)的各功能模塊以菜單和對(duì)話框的形式被調(diào)用。PLC控制程序用于機(jī)床系統(tǒng)開關(guān)量的邏輯控制。動(dòng)態(tài)鏈接庫PComm32提供函數(shù)同底層的虛擬設(shè)備驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)交換,然后由虛擬設(shè)備驅(qū)動(dòng)程序直接和PMAC交換數(shù)據(jù)。 



    圖4 數(shù)控系統(tǒng)軟件結(jié)構(gòu) 


        (1) 人機(jī)界面程序編制 

            數(shù)控活塞車床的上位人機(jī)界面程序主要是將數(shù)控系統(tǒng)的操作界面顯示在屏幕上,為操作者提供一個(gè)直觀的操作環(huán)境。這是數(shù)控軟件開發(fā)中較重要的一部分,主要包括程序編輯、系統(tǒng)參數(shù)配置、加上運(yùn)行、狀態(tài)顯示、自診斷和在線幫助等。程序編輯界面主要用于數(shù)控文件的編輯、復(fù)制、存儲(chǔ)和刪除等操作,實(shí)現(xiàn)文檔和系統(tǒng)內(nèi)部數(shù)據(jù)的管理。系統(tǒng)參數(shù)配置界面可以方便地配置M變量、I變量、電機(jī)參數(shù)等各個(gè)系統(tǒng)參數(shù)。加工運(yùn)行界面用于將NC代碼進(jìn)行解釋并下載到PMAC巾,通過PMAC去執(zhí)行插補(bǔ)等功能。狀態(tài)顯示界面用于顯示電機(jī)的實(shí)際位置、命令位置、速度以及運(yùn)動(dòng)時(shí)間等各種狀態(tài)參數(shù),通過顯示的參數(shù)來了解加工性能的好壞,從而根據(jù)需要在系統(tǒng)配置界面中調(diào)整參數(shù)設(shè)置。自診斷界面用于顯示各種主要故障原因及其初步解決方案。在線幫助界面為用戶提供該人機(jī)界面的使用幫助說明。整個(gè)人機(jī)界面基于Windows環(huán)境,采用菜單式按鈕,具有很好的人機(jī)交互性。 
         
        (2) 上下位機(jī)通信程序編制 
         
           為了便于PMAC與上層Windows進(jìn)行通信,Delta Tau公司提供r PComm32動(dòng)態(tài)鏈接庫作為上層應(yīng)用程序與PMAC之間通信的橋梁。PComm32是一個(gè)非常有效的開發(fā)工具,它包括了所有與PMAC的通信方法,并且與VC++等開發(fā)軟件有很好的兼容性,開發(fā)者只需要往VC程序中調(diào)用動(dòng)態(tài)鏈接庫就能完成上位機(jī)同PMAC之間的數(shù)據(jù)交換。下面介紹在VC++6.0環(huán)境下調(diào)用PComm32動(dòng)態(tài)鏈接庫及庫函數(shù)的方法。PComm32共包含丁250多個(gè)函數(shù),但常用的并不多,只要掌握了下面幾個(gè)就可以完成大部分的通信功能: 
         
        Open Pmac Device()//為應(yīng)用程序使用PMAC打開一個(gè)通道; 
        Close Pmac Device()//當(dāng)程序運(yùn)行完畢后關(guān)閉所打開的通道; 
        Pmac Get PesponseA()//發(fā)送一個(gè)命令字符串給PMAC,并從緩沖區(qū)得到PMAC的反饋; 
        Pmac Configure()//調(diào)出配置對(duì)話框并修改PMAC的參數(shù); 
        Pmac Down LoadA()//將程序從Pc下載到PMAC; 
        Pmac Send CommandA()//發(fā)送一個(gè)命令字符串給PMAC。 
         
           掌握了這幾個(gè)函數(shù)的使用方法,就可在VC++6.0環(huán)境下凋用PComm32動(dòng)念鏈接庫,還需要用到Windows的幾個(gè)API函數(shù): 
         
        LoadLibrary//加載動(dòng)態(tài)庫; 
        GetProcAddress//取得相應(yīng)函數(shù)地址、FreeLibrary//卸載動(dòng)態(tài)庫。 
         
          要調(diào)用動(dòng)態(tài)庫函數(shù),首先要在頭文件巾為所需的函數(shù)定義函數(shù)指針類型,其參數(shù)要和動(dòng)態(tài)庫的函數(shù)原型相同。接下來要在該文件中定義3個(gè)函數(shù)指針: 
         
           Open Pmac open、Close Pmac close、Pmac Get pmaeget,然后在執(zhí)行文件中加載動(dòng)態(tài)庫,獲得相應(yīng)的函數(shù)地址并賦值給所定義的函數(shù)指針,程序段如下: 
         
        hMyD1 1=LoadLibrary(“pmac”)//加載動(dòng)態(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è)定定時(shí)器采集時(shí)間為lOOms: 
    ︳ 
        void CP comm Dig::On Timer(UINT nlDEvent)//定時(shí)器響應(yīng)函數(shù); 
        ︳ 

        ( pmacget)(0,buf,255,“rx0”)//讀取PMAC寄存器xO的值并存放在buf中; 
        Update(FALSE) 
        CDialog::On Timer(nIDEvent) 
        ︳ 
        //在退出程序的時(shí)候要卸載動(dòng)態(tài)庫; 
        BOOL CPcommDlg::Destroy Window() 
        { 
        ( close)(0)//關(guān)斷與PMAC的通信; 
        Free Library(hMy DLL)//卸載動(dòng)態(tài)庫; 
        Return CDialog::Destroy Window() 
        } 
         
            (3) PLC程序的編制 
         
           系統(tǒng)的PLC程序主要完成系統(tǒng)的初始化和對(duì)各種輸入輸出量進(jìn)行監(jiān)控,主要包括限位、冷卻、潤滑、指示燈管理、主軸電機(jī)啟停等子程序。PMAC帶有內(nèi)置的軟PLC功能,其運(yùn)行是由PMAC來實(shí)現(xiàn)的。當(dāng)運(yùn)動(dòng)程序在前臺(tái)有序運(yùn)行時(shí),PMAC可以在后臺(tái)運(yùn)行多達(dá)32個(gè)異步PLC程序。PLC程序可以以極高的采樣速率監(jiān)視模擬和數(shù)字輸入、設(shè)定輸出值、發(fā)送信息、改變?cè)鲆?,命令運(yùn)動(dòng)停止/啟動(dòng)等作業(yè)。PLC程序的語法采用IF—ELSE結(jié)構(gòu)的類C語言,開發(fā)者很容易就能寫出所需的PLC程序,然后可利用PMAC自帶的軟件開發(fā)平臺(tái)進(jìn)行編輯、編譯,最后下載到PMAC卡中運(yùn)行。 
         
        3、結(jié)束語 
         
            (1) 采用直線電機(jī)驅(qū)動(dòng)和直線導(dǎo)軌保證了非圓車削的快速響應(yīng)性和高剛度要求。 

           (2) 基于IPC+PMAC結(jié)構(gòu)的活塞車床數(shù)控系統(tǒng),充分利用了PMAC控制器強(qiáng)大的伺服控制功能、直線電機(jī)的高頻響應(yīng)特性和PC機(jī)高效靈活的編程功能,硬件組成簡(jiǎn)單,軟件開發(fā)方便,整個(gè)系統(tǒng)開發(fā)周期短,開放性和可擴(kuò)展性較強(qiáng),適合于多品種、小批量活塞的開發(fā)和生產(chǎn)。


     
     
    網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系我們  |  廣告服務(wù)  |  版權(quán)隱私  |  友情鏈接  |  站點(diǎn)導(dǎo)航