新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MPC08運(yùn)動(dòng)控制卡在開(kāi)放式鉆床數(shù)控系統(tǒng)中的應(yīng)用

MPC08運(yùn)動(dòng)控制卡在開(kāi)放式鉆床數(shù)控系統(tǒng)中的應(yīng)用

作者: 時(shí)間:2014-04-06 來(lái)源:網(wǎng)絡(luò) 收藏

0 引言

在計(jì)算機(jī)技術(shù)飛速發(fā)展的今天,由傳統(tǒng)的專用型封閉式系統(tǒng)向靈活的轉(zhuǎn)變已成為一種必然趨勢(shì)。與傳統(tǒng)的封閉式相比,數(shù)控系統(tǒng)有以下優(yōu)勢(shì):

可伸縮性,CNC系統(tǒng)的功能、規(guī)模(硬件或軟件模塊)可根據(jù)具體應(yīng)用靈活增減;

可移植性,系統(tǒng)的功能軟件與運(yùn)行平臺(tái)無(wú)關(guān),能運(yùn)行于不同供應(yīng)商提供的硬件平臺(tái)上;

可擴(kuò)展性,開(kāi)發(fā)者能有效地將自己的軟件集成到NC系統(tǒng)中,形成自己的專用系統(tǒng);

可互操作性,通過(guò)標(biāo)準(zhǔn)化接口,通信和交互機(jī)制,使不同功能模塊獲得相互操作能力,協(xié)調(diào)工作。

目前數(shù)控系統(tǒng)主要形式是基于PC的NC,即在PC的總線上插上具有NC功能的完成實(shí)時(shí)性要求較高的NC內(nèi)核功能。本次課題基于步進(jìn)機(jī)電有限公司的MPC08就是一款能滿足數(shù)控系統(tǒng)功能要求,性價(jià)比高的通用,課題根據(jù)鉆床的工藝在此基礎(chǔ)上進(jìn)行數(shù)控系統(tǒng)軟件的研究。

1 系統(tǒng)總體結(jié)構(gòu)

本系統(tǒng)數(shù)控鉆床共有8個(gè)軸,分別為X,Y軸和Z1,Z2,Z3,Z4,Z5,Z6軸,其中X,Y軸控制平面兩個(gè)方向的定位, Z1,Z2,Z3,Z4,Z5,Z6則控制下鉆的進(jìn)給量,XYZ可聯(lián)動(dòng)控制。加工時(shí), 根據(jù)要加工工件上的孔坐標(biāo)、孔直徑、孔深等參數(shù), 編好工件的加工文件, 系統(tǒng)按加工文件控制機(jī)床完成鉆削加工。

為了對(duì)機(jī)床8個(gè)軸的進(jìn)行控制,我們采用了MPC08運(yùn)動(dòng)控制器作為系統(tǒng)控制的內(nèi)核,插在PC機(jī)的PCI插槽中。工業(yè)PC機(jī)作為主控計(jì)算機(jī)來(lái)完成與MPC08控制器的通訊以及上層系統(tǒng)操作、調(diào)度管理、故障診斷、參數(shù)輸入等非實(shí)時(shí)性任務(wù)。

MPC08是一款開(kāi)放式通用運(yùn)動(dòng)控制器,所有指令均為立即指令,適合于PCB鉆床的高速度,定位準(zhǔn)的點(diǎn)位運(yùn)動(dòng),并具有足夠的專用和通用的IO通道供機(jī)床控制使用,軟件方面提供了豐富的運(yùn)動(dòng)控制函數(shù),以供用戶在Windows平臺(tái)自主開(kāi)發(fā),構(gòu)建所需要的數(shù)控系統(tǒng)。我們將MPC08插入PC的PCI插槽里,借助它完成整個(gè)系統(tǒng)的控制。

IO及反饋系統(tǒng)使用MPC08的專用和通用的輸入和輸出通道進(jìn)行各種機(jī)床電器IO信號(hào)的連接與控制;驅(qū)動(dòng)和伺服步進(jìn)電機(jī)單元?jiǎng)t是接收MPC08發(fā)出的脈沖及方向信號(hào)完成需要的運(yùn)動(dòng)。

變頻器和主軸轉(zhuǎn)動(dòng)控制部分是利用PC機(jī)的串口進(jìn)行和變頻器的通訊,由此完成主軸轉(zhuǎn)速的控制,此控制則是獨(dú)立于MPC08之外。

2 軟件結(jié)構(gòu)設(shè)計(jì)

為了滿足伸縮性,移植性,擴(kuò)展性和互操作性的要求,軟件采用了模塊化設(shè)計(jì)的思想,利用VisualC++6.0開(kāi)發(fā)工具在Windows2000操作系統(tǒng)上開(kāi)發(fā)而成。軟件總體分為兩大部分,人機(jī)界面交互部分和系統(tǒng)控制部分。

1)人機(jī)界面 人機(jī)界面模塊主要完成整個(gè)數(shù)控系統(tǒng)的狀態(tài)顯示和需求參數(shù)的輸入,除此以外應(yīng)該使界面友好,使用便捷。本程序設(shè)計(jì)借助了MFC庫(kù)中CWnd類和CButton按鈕類的強(qiáng)大功能,利用這兩個(gè)類的成員函數(shù)以及類派生的子類構(gòu)造了友好便捷的界面。界面包括有加工過(guò)程中重要參數(shù)的顯示,主要功能按鈕和加工圖形的顯示。其中參數(shù)顯示有各軸的坐標(biāo),工作行程,下止點(diǎn),刀具代號(hào),直徑,偏移以及加工的孔數(shù)記錄,所在刀庫(kù)的記錄等;功能按鈕有啟動(dòng),回原點(diǎn),回停車位,導(dǎo)入文件,刀具參數(shù),刀具管理,加工參數(shù)等,其中刀具參數(shù),刀具管理和加工參數(shù)按鈕還可以打開(kāi)其他界面完成系統(tǒng)功能;圖形顯示則位于界面的中間部分用于顯示加工PCB孔的圖形,加工過(guò)程中還可以動(dòng)態(tài)顯示加工到某個(gè)孔。

2)加工文件 加工文件功能模塊完成對(duì)外部輸入進(jìn)來(lái)的加工文件(PCB行業(yè)通用的Excellon格式文件)進(jìn)行譯碼,將加工文件的信息轉(zhuǎn)化為控制系統(tǒng)需要的數(shù)據(jù)形式。軟件具體實(shí)現(xiàn)辦法是將文件的每一行進(jìn)行解讀,根據(jù)解讀出來(lái)的信息將每個(gè)要加工的刀具節(jié)點(diǎn)數(shù)據(jù)放在一個(gè)WORK_NODE結(jié)構(gòu)里面,對(duì)應(yīng)在該刀具下的孔加工數(shù)據(jù)放在WORK_NODE里面的RECORD_NODE結(jié)構(gòu)體內(nèi),最后統(tǒng)一將每一個(gè)刀具節(jié)點(diǎn)存放到以WORK_NODE為類型的加工鏈表gWorkList里。其中WORK_NODE和RECORD_NODE的數(shù)據(jù)結(jié)構(gòu)如下:

typedef struct _WORK_NODE



int Type; //刀具類型,

int ToolNo; //刀具號(hào) T0,T1......

double Diameter; //mm直徑

double VelocityForZUp; //提升速度

double VelocityForZDown; //下鉆速度mm/min

double Offset; //下鉆允許偏移量mm

int Rev; //主軸轉(zhuǎn)速rpm/minute

int MaxLife, HitCount; //壽命

int ToolCurNo; //當(dāng)前刀具所在刀庫(kù)號(hào)jia

CRecordList *pList; //孔坐標(biāo)鏈表

}WORK_NODE,*PWORK_NODE;

typedef struct _RECORD_NODE



double x; //x坐標(biāo)

double y; //y坐標(biāo)

}RECORD_NODE,*PRECORD_NODE;

c++相關(guān)文章:c++教程



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉