新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MPC08運動控制卡在開放式鉆床數控系統中的應用

        MPC08運動控制卡在開放式鉆床數控系統中的應用

        作者: 時間:2014-04-06 來源:網絡 收藏

        0 引言

        在計算機技術飛速發展的今天,由傳統的專用型封閉式系統向靈活的轉變已成為一種必然趨勢。與傳統的封閉式相比,數控系統有以下優勢:

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

        可移植性,系統的功能軟件與運行平臺無關,能運行于不同供應商提供的硬件平臺上;

        可擴展性,開發者能有效地將自己的軟件集成到NC系統中,形成自己的專用系統;

        可互操作性,通過標準化接口,通信和交互機制,使不同功能模塊獲得相互操作能力,協調工作。

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

        1 系統總體結構

        本系統數控鉆床共有8個軸,分別為X,Y軸和Z1,Z2,Z3,Z4,Z5,Z6軸,其中X,Y軸控制平面兩個方向的定位, Z1,Z2,Z3,Z4,Z5,Z6則控制下鉆的進給量,XYZ可聯動控制。加工時, 根據要加工工件上的孔坐標、孔直徑、孔深等參數, 編好工件的加工文件, 系統按加工文件控制機床完成鉆削加工。

        為了對機床8個軸的進行控制,我們采用了MPC08運動控制器作為系統控制的內核,插在PC機的PCI插槽中。工業PC機作為主控計算機來完成與MPC08控制器的通訊以及上層系統操作、調度管理、故障診斷、參數輸入等非實時性任務。

        MPC08是一款開放式通用運動控制器,所有指令均為立即指令,適合于PCB鉆床的高速度,定位準的點位運動,并具有足夠的專用和通用的IO通道供機床控制使用,軟件方面提供了豐富的運動控制函數,以供用戶在Windows平臺自主開發,構建所需要的數控系統。我們將MPC08插入PC的PCI插槽里,借助它完成整個系統的控制。

        IO及反饋系統使用MPC08的專用和通用的輸入和輸出通道進行各種機床電器IO信號的連接與控制;驅動和伺服步進電機單元則是接收MPC08發出的脈沖及方向信號完成需要的運動。

        變頻器和主軸轉動控制部分是利用PC機的串口進行和變頻器的通訊,由此完成主軸轉速的控制,此控制則是獨立于MPC08之外。

        2 軟件結構設計

        為了滿足伸縮性,移植性,擴展性和互操作性的要求,軟件采用了模塊化設計的思想,利用VisualC++6.0開發工具在Windows2000操作系統上開發而成。軟件總體分為兩大部分,人機界面交互部分和系統控制部分。

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

        2)加工文件 加工文件功能模塊完成對外部輸入進來的加工文件(PCB行業通用的Excellon格式文件)進行譯碼,將加工文件的信息轉化為控制系統需要的數據形式。軟件具體實現辦法是將文件的每一行進行解讀,根據解讀出來的信息將每個要加工的刀具節點數據放在一個WORK_NODE結構里面,對應在該刀具下的孔加工數據放在WORK_NODE里面的RECORD_NODE結構體內,最后統一將每一個刀具節點存放到以WORK_NODE為類型的加工鏈表gWorkList里。其中WORK_NODE和RECORD_NODE的數據結構如下:

        typedef struct _WORK_NODE



        int Type; //刀具類型,

        int ToolNo; //刀具號 T0,T1......

        double Diameter; //mm直徑

        double VelocityForZUp; //提升速度

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

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

        int Rev; //主軸轉速rpm/minute

        int MaxLife, HitCount; //壽命

        int ToolCurNo; //當前刀具所在刀庫號jia

        CRecordList *pList; //孔坐標鏈表

        }WORK_NODE,*PWORK_NODE;

        typedef struct _RECORD_NODE



        double x; //x坐標

        double y; //y坐標

        }RECORD_NODE,*PRECORD_NODE;

        c++相關文章:c++教程



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 桦甸市| 南乐县| 泾源县| 德清县| 溧水县| 简阳市| 崇明县| 英山县| 贡嘎县| 阳城县| 武宁县| 班玛县| 曲沃县| 社会| 佛教| 乳源| 本溪市| 东丽区| 隆尧县| 东乌珠穆沁旗| 庆元县| 巨鹿县| 色达县| 东莞市| 任丘市| 罗甸县| 南丰县| 昌平区| 齐河县| 五台县| 林芝县| 吉安县| 凤庆县| 镇赉县| 远安县| 仁布县| 台南县| 兰西县| 交城县| 金山区| 凤城市|