前言:中文期刊網精心挑選了數控編程開發范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
數控編程開發范文1
數控自動編程的軟件很多,一般的CAD都有這樣的自動編程功能,例如現在PRO-E、MASTERCAM、UG、solidworks等軟件都有這樣的自動編程功能,他們的結構龐大,軟件的學習上也很復雜,并且在價格上也很昂貴。假如僅僅用于數控車床的自動編程上,真是大材小用了,很是浪費。使用簡潔,操作方便,專用于數控車床加工的小軟件,這樣的軟件專業性和專一性很強。既節省人力又節省物力。而AutoCAD因其靈活性和接口的多樣性被廣泛的使用在機械設計領域中。在其能夠生成的文件格式中有一個二進制的文件,文件中包含著輪廓線的線型和坐標的信息。使用二維功能強大的AutoCAD軟件繪制軸承類的零件的外輪廓顯然是一件非常容易的事情。
Auto CAD作為一個完整的繪圖編輯器,可以獨立使用,并可完成用戶的很多設計工作,但要完成零部件從設計到制造的全過程的工作,仍然力不從心,如零件設計完后要做有限元分析,要制定工藝規程,要生成NC代碼,這些工作AutoCAD都不能勝任,這些必須借助其他應用軟件,而所用的軟件都在不同程度上要求得到Auto CAD的圖形信息支持,因此需要Auto CAD提供一個便于外界接受的文件格式輸出圖形信息。另外,用戶在設計過程中還會根據工作的需要開發一些自己的應用程序,以便做計算、分析或其它之用,處理后的數據希望傳給AutoCAD,用于自動生成圖形,這時用戶傳遞這些數據最好的辦法就是寫成Auto CAD可直接接受的數據文件,為了解決AutoCAD和其他程序間圖形數據的交換問題,定義了圖形交換文件規范。
一個完整的自動編程系統,必須包括前處理程序(Maln Processorl和后置處理程序(Post Processor)兩部分。
一、前處理程序設計
前處理程序用以對源程序進行翻譯并計算刀具中心軌跡,或通過處理圖形數據文件而得到刀具中心軌跡,這一部分完全獨立于具體的數控機床,前處理程序的輸出一般為刀位數據(Cut Loca―tion Datal,但這種刀位數據不能直接用作數控裝置的控制指令,因此必須要有一個后置處理模塊,后置處理程序是自動編程系統中的一個重要組成部分,它是按數控機床的功能及數控加工程序格式的要求而編寫的一個計算程序。它將主處理程序產生的位置數據和功能信息轉換成能被某種數控機床控制單元所需要的數控加工程序代碼,以便用于控制機床并產生各種加工功能和加工運動。由于各種數控機床的輸人格式各不相同,因而為了適應各種機床的不同要求,后置處理程序也是各不一樣的。
二、后處理程序設計
后置處理的目的是形成數控指令文件。由于各種機床使用的控制系統不同,所以所用的數控指令文件的代碼及格式也有所不同。為解決這個問題,每個自動編程軟件通常有自己專用的后置處理程序。
本系統采用的數控機床的指令有以下幾種:
1.坐標功能指令:x,z,I,K。
2.準備功能指令:G00一快速進給;G01一直線插補;G02一順時針方向圓弧插補:G03一逆時針方向圓弧擂補;G33一等螺距螺紋加32;G54一坐標設定指令。
3.速度功能指令:主軸轉速S;進給速度F。
4.換刀功能指令:刀號選擇T01-T04。
5.刀具補償指令:G41-在工件輪廓左邊刀補有效;G42-在工件輪廓右邊刀補。
6.輔助功能指令:M02一程序結束;M03一主軸正轉;M04一主軸反轉:M05一主軸停止。
在生成數控程序時,首先打開前面生成的刀具中心軌跡文件,從最外層向內逐層生成加工程序,在把刀具中心軌跡文件的數據轉化為數控程序時,逐行讀人數據,根據線形確定所采用的刀具以及相應的G指令,并把坐標值X,Z,I,K賦給對應的變量。再根據所輸入的主軸轉速和進給量,使所有的數據轉換成字符串,然后與字母G,T,S,F,X,Z,I,K組合成數控指令。最后加上程序號和必要的M指令組成程序段,在每一層切削完成后或換刀時,添加一個必要的程序段使刀具回到換刀位置,在程序結束時加上輔助指令M0 2以表示程序結束,最后將程序以文件的形式存盤。
數控編程開發范文2
【關鍵詞】虛擬操作;數控車床;Virtools
一、引言
近年來,虛擬現實與計算機仿真技術已在煤礦[1-2]、石油等領域取得了較好的應用。虛擬機床是隨著虛擬現實和機床技術不斷發展而提出的一個新研究領域,運用三維虛擬交互技術進行數控機床內部結構拆裝與仿真是虛擬機床系統的一個重要組成部分,它能全方位表達和展示機床結構及其工作原理。本文首先對虛擬拆裝系統的開發流程進行了闡述,給出了系統的技術路線和開發環境,從構建機床三維模型和管理模型數據、人機交互原理與實現、運動控制與實現、碰撞檢測等方面對拆裝與仿真系統進行詳細研究。最后在Virtools環境下完成了數控車床內部結構的虛擬拆裝與仿真系統,效果良好。
二、系統開發平臺與技術流程
系統開發在WindowsXP平臺下進行,運用三維交互圖形軟件Virtools進行虛擬拆裝的交互設計與仿真,利用VisualStudioC++編程工具進行軟件系統整合設計。系統技術路線如圖1所示。
Virtools是法國達索公司開發的一套虛擬現實仿真軟件[3],該軟件具備豐富的互動行為模塊,可以開發出許多不同用途的3D產品,如計算機游戲、多媒體、建筑設計、交互式電視、教育訓練、仿真與產品展示等。
仿真系統的開發流程是:
(1)運用三維建模軟件對機床內部各結構進行幾何建模,然后通過數據優化軟件對模型數據進行約減,將模型轉換成三角網格的格式,再導入虛擬交互軟件Virtools中進行交互拆裝開發。
(2)導入Virtools以后,需要對模型數據進行管理,設置機床各部件的層次關系,將各個模塊分類進行管理,同時對光照、材質、紋理、行為模塊等數據類型進行分類管理。為后續的程序開發奠定基礎。
(3)根據數據車床內部結構的拆裝腳本和順序,運用運動控制行為模塊對各部件進行人機交互控制開發。在開發過程中,主要涉及運動控制、模型顯隱、動畫控制、實時渲染等。
三、數控車床拆裝系統開發過程
1.三維模型的構建與管理
數控車床三維模型的構建是系統開發的基礎,采用Pro/e三維建模軟件對CK6140數控車床進行三維建模。將機床分為:X軸系統、Z軸系統、六工位刀架、四工位刀架、尾座等幾個大部分。對這幾部分的各個零部件進行詳細測繪與建模,形成裝配體。最后匯總進行裝配,形成整裝配體。裝配體如圖2所示。為了提高渲染速度,降低模型數據量,需要對模型幾何數據進行優化處理[4]。
為了便于虛擬場景的管理和模型運動控制,需要對三維模型數據型層次管理,對機床各部件進行父子級關系設置,對燈光位置、材質和紋理映射、交互傳感器等資源進行分類管理。如圖3所示。
2.人機交互的實現
在Virtools環境下,人機交互的實現過程是通過鼠標、鍵盤或其他輸入設備首先發起一個交互事件,虛擬環境中的虛擬傳感器監聽到事件后響應的對應事件,控制響應的行為模塊動作來響應輸入事件,直到事件完成后再返回。在人機交互編程中,可以采用Virtools自帶的BB進行行為編程,也可以用Script腳本節點進行編程,考慮交互過程中各個動作之間是一個有序的緊密的銜接過程,在這里采用消息驅動機制來鏈接每個行為模塊。
任何一個模塊設計都需要對參數進行設置。在每個行為模塊中,模塊參數由名字(pName)、類型(pType)和數值(pvalue)三部分組成。輸入參數通過BB、BG或者paramOp頂部的小三角來表示。參數輸入特別是本地參數有一個源點,作為它的pValue。輸出參數通過BB,BG,或一個paramOp底部的小三角來表示。參數輸出能夠有一個或者更多個目的地,目的地在參數值改變時立即被更新。
行為模塊之間動作的輸出和輸入端用直線相連接,這條連線稱之為bLink,bLink表達了模塊間的運行順序。當行為模塊被觸發激活時,就會執行它的功能,顯示它的效果。行為模塊的輸入端接收以事件為基礎的訊號,負責觸發該行為模塊。當行為模塊完成它所負責的任務后,就會輸出一個事件訊號,再作為另外一個行為模塊的輸入,觸發下一行為模塊進行動作,直到整個事件完成為止。圖4為鍵盤控制事件的行為模塊圖。
3.運動的控制
三維虛擬模型的實時控制是通過對機床部件的無干涉運動路線進行分析后,確定各運動部件的自由度,再運用位置控制模塊對三維虛擬模型的六個自由度來進行控制。在虛擬環境中,將模型定義為X、Y、Z、H、P、R六個運動類型。其中XYZ分別表示選著XYZ移動,HPR表示繞XYZ轉動。對于模型之間存在關聯運動的部件,系統采用矩陣換算和基于旋轉角度的方法來進行求解運算。系統采用Translate、Rotate、Script等行為模塊來進行聯合編程開發。實現對虛擬零部件的拆裝控制。
在Virtools軟件平臺中,對物理進行運動控制的行為模塊BB主要有TranslateBB和RotateBB。其中TranslateBB有四個輸入參數,第一個參數Targete是目標參數,用來指定該BB所要控制的物體,參數的類型是三維實體;第二個參數TranslateVector是三維向量參數,該參數有三個值,分別是X、Y、Z,三個值分別用來控制三個方向上的運動矢量;第三個參數Referential是一個參考值,即在移動時所參考的物體,因此也是一個三維實體類型的參數,第四個參數是一個用來設置是否在移動時影響該物體的子級物體。
RotateBB有五個參數,第一個參數Targate為目標參數用法與TranslateBB中的該參數相同;第二個參數AxisofRotation是一個三維向量參數,因此也有三個參數需要設置,分別是X、Y、Z,它們的作用是來控制物體將要繞著哪個軸轉動,第三個參數是AngleOfRotation是一個角度參數,用來設置旋轉的角度,其他參數跟TranslateBB中的參數用法相同。
4.碰撞檢測
在虛擬環境中,由于人機交互和物體的運動,數控機床各部件間經常發生碰撞反應。碰撞檢測是數控行為仿真中的一個難點,它需要具有實時性和精確性兩個特點。
本系統采用基于層次包圍盒的方法對機床部件進行碰撞檢測。借助一個耗費函數來分析碰撞檢測算法的合理性[5]。
其中T是碰撞檢測的總耗費時間。Nv是參與重疊測試的包圍盒的對數,Cv是為一對包圍盒做重疊測試的耗費,Np是參與求交測試的幾何元的對數,Cp是為一對幾何元做求交測試的耗費,Nu是物體運動后其包圍盒層次中需要修改的結點的個數,Cu是修改一個結點的耗費。
在Virtools軟件中,碰撞檢測模塊有三個模式:Automatic、BoudingBox和Faces。每個模式的碰撞檢測的精度不同,其中Automatic模式在碰撞檢測中各物體采用自身的精度;BoudingBox模式采用六面體的包圍盒;Face模式是在面與面之間進行的碰撞檢測,這種精度最大。
四、系統實現
采用Pro/e進行三維幾何建模和整體模型裝配,然后通過RightHemisphere進行三維模型數據的分類管理,進行數據轉換后通過Virtools控件將模型數據導入虛擬環境中,運用行為模塊對交互事件進行編程開發,最后用VC++打包完成系統開發。系統界面如圖5所示,圖6為數控車床中四工位刀架的拆裝圖。
五、結束語
從機床三維建模與模型數據管理、人機交互與運動控制、碰撞檢測等方面對機床內部結構虛擬拆裝系統的開發進行了闡述?;赩irtools開發的虛擬機床拆裝可以進行網絡,因此,也適合在網絡上傳播,系統可以全方位任意視角對機床內部結構進行展示,可以人工進行虛擬拆裝,非常適合于數控機床原理與結構的教學。
參考文獻
[1]王長平,張志強,張曉強.基于Virtools 以及WinCC的采煤機遠程監控平臺構建[J].煤礦機械,2009,30(12):202-204.
[2]張文磊,鄭曉雯,陳寶峰等.基于虛擬現實的液壓支架工作狀態研究[J].煤礦機械,2012,33(10):72-74.
[3]徐英欣,楊建文,張安鵬.Virtools虛擬互動設計實例解析[M].北京航空航天大學出版社,2012.
數控編程開發范文3
關鍵詞:PMAC 并聯機器人 開放式結構 控制軟件設計 Visual C++
中圖分類號:TP242 文獻標識碼:A 文章編號:1007-9416(2013)01-0160-02
1 引言
通用性和開放性作為一項重要指標業已滲透到工業生產與科學研究的各個領域中, 而傳統的運動控制系統主要存在體系獨立和結構封閉的缺陷。設計者一般采用專用計算機、專用編程語言與操作系統、專用微處理器的封閉式體系結構。這種結構存在制造和使用成本高,開發周期長,升級換代困難,無法添加系統的新功能等一系列缺點[4]。因此,如何構建開放式運動控制系統的軟硬件系統成為工業界和學術界所研究的一大熱點。
近年來,機器人系統在各類工業生產中得到了廣泛運用,對提高生產效率與自動化程度發揮出重要作用。而并聯機器人作為一類全新的機器人與傳統的串聯機器人在概念和用途上形成了互補,并且該機構能夠實現運動軌跡、運動速度、定位以及重復定位的高精度精確控制的要求,故在精密加工和制造業中具有舉足輕重的作用,因此已成為控制科學領域與精密加工應用領域中一個很有意義的研究方向。本 文所研究的控制系統以六自由度并聯機構本體為對象,采用PC/104總線工控機為上位機,PMAC2A-PC104運動控制器作為下位機,以VC++開發工具實現機器人各控制模塊的軟件設計,從而完成控制目標任務的要求。因此本文將基于本系統的硬件體系結構,按開放性和系統穩定性要求開發出控制軟件來實現高精度精密加工的目標。
2 并聯機器人系統硬件結構
本機器人系統采用兩級計算機系統的結構,系統結構如圖1所示。其硬件配置為:
上位機采用研華嵌入式PC/104工控機(IPC),下位機采用Delta Tau的開放式可編程多軸運動控制器PMAC。PMAC是一種非常靈活的高性能運動控制器,具有實時性強、穩定性好、效率高等優點,用來與上下層系統進行數據通信和控制信號的交互。它是整個控制系統的核心。而工控機具有運行速度快、存儲量大、應用靈活的優點[4]。正是由于采用了兩級計算機控制系統,故就能充分利用各自的特點,發揮出各自的優越性來協調系統的整體穩定性。
并聯機器人控制系統的體系結構中,上位機的主要作用是:基于人機交互,完成目標任務相關的數據輸入、參數設定、路徑規劃、任務指定以及任務決策等工作。PMAC運動控制器主要用于對伺服更新的在線計算以及目標軌跡的生成,反映出并聯機器人各軸電機的實時狀態,響應上位機的執行命令。
3 并聯機器人控制軟件設計
3.1 軟件設計總體方案
由于本系統軟件是建立在Windows操作系統之上,故具備了多線程協調處理的能力,能及時應對并聯機器人在運行中出現的各種狀況,并對出現的狀況作出相應的處理。作為上層軟件的可執行32位Windows應用程序,通過調用PMAC自帶的通訊模塊PComm32與PMAC的內核程序進行通訊,再由上位機軟件靈活調用運動控制的各種函數,以此來監控機器人的各種工況。PComm32是一個非常有效的開發工具,幾乎囊括了所有與PMAC通訊的方法,并且與VC++開發軟件有很好的兼容性。它由PMAC.DLL、PMAC.SYS和PMAC.VXD 3個文件組成,共包含了250多個函數[3]。上位機與運動控制器的內核驅動程序的關系如圖2所示。
開放式控制軟件系統一般采用模塊化的思想來設計,在此以典型的運動軌跡和基本的機械加工功能要求來編制軟件。軟件開發中主要用到VC++的動態鏈接庫以及多線程的編程方法來實現。軟件的整體設計框架為圖3所示。
3.2 控制軟件的具體設計[3]
3.2.1 編程準備
(1)首先將運動控制器插入工控機的PCI插槽中并安裝好驅動程序。
(2)安裝運動控制器的測試程序并且調試坐標系中各軸伺服電機。具體調試界面如圖4所示。
3.2.2 PMAC內核程序設計
在成功安裝了運動器后,就需編寫與控制目標和任務相應的PMAC內核運動程序。PMAC能夠支持多達256個運動程序[3],這體現了PMAC強大的伺服功能。首先按PMAC的指令設置坐標系,PMAC中的坐標系是指一個或者一組為了同步的目的而組織起來的電機,然后通過軸定義語句為電機分配軸來建立坐標系。坐標系在任何時候都可以按要求執行程序中的任意一個。其次根據所需運動要求來選擇適當的運動指令,然后按照PMAC語法編寫運動程序,下載到PMAC內存后運行。并聯機器人的PMAC運動程序如下:
控制系統功能設置(Setting up and Definition)[6]
COLSE //確保所有緩存關閉
&1 //設置坐標系1,以角度定義軸
#1->1024X //匹配軸1電機,1024cts/度
#2->2000Y //匹配軸2電機,2000cts/度
#3->2000Z //匹配軸3電機,2000cts/度
#4->5000A //匹配軸4電機,5000cts/度
#5->512B //匹配軸5電機, 512cts/度
#6->277.7787C
//匹配軸6電機,277.7787cts/度
M70->F:$D200 //DPROM中的32位浮點
M71->F:$D201 //浮點運算變量
M72->F:$D202 //給PMAC傳送關節位置
M73->F:$D203 //主機發送用指針變量
M74->F:$D204 //寫入數據
M75->F:$D205
M113->X:$C000,13,1 //中斷位設置下一點
————運動程序部分(Motion Program)
OPEN PROG1 CLEAR //打開程序緩沖區
SPLINE1 //三次樣條運動模式
TA5 //設置樣條部分時間為5ms
INC //增量模式
X0 Y0 Z0 A0 B0 C0 //初始零距離運動
X0 Y0 B0 A0 Z0 C0 // 第二次零距離運動
ABS //進一步的運動取絕對值
WHILE (P1>0) //主機設置P1來退出
X (M70)Y(M71)Z(M72)A(M73)B(M74)C(M75)
M113 = 1
END WHILE //循環結束
CLOSE //關閉程序
當設置好了運動程序后,就須利用PMAC的在線命令語句來設置運功程序所要求的各種變量參數??稍趫D4所示軟件中反復調試Ix30-Ix35(x=1~6軸),Ix87-Ix88(x=1~6軸)的參數來精確調節機器人各軸電機的運動效果。調試界面如圖4所示。
3.2.3 相關運動控制器接口函數的說明
開放式運動控制器最大的優點是該運動控制器為用戶提供了相關不同分類的接口函數,用戶在軟件編制過程中可以依據相關要求靈活調用。本系統中用到的常用函數為
(1)BOOL OpenPmacDevice(DWORD dwDevice)
此函數為應用程序使用PMAC打開了一個通道。應用的前提是已經安裝調試好動態鏈接庫,并且PMAC已經在這個操作環境下注冊完畢,能夠有效地尋址。其參數dwDevice為希望打開的設備號,一般為0。返回值為TRUE則表示連接成功。
(2)BOOL ClosePmacDevice(DWORD dwDevice)
當程序運行完畢,必須關閉所打開的通道,此函數就是實現這個功能。參數及返回值意義與打開通道函數OpenPmacDevice()相同,且必須與OpenPmacDevice()配對使用。
(3)BOOL PmacConfigure(HWNDhwnd,DWORDdwDevice)
該函數可以設置PMAC與上位機的通訊方式:總線通訊或者串行口通訊。當第一次安裝PMAC或者PMAC跳線地址發生改變的時候,必須調用該函數設置PMAC的通訊方式和總線地址。
(4)PmacSendLine (LPCTSTR outstr)
該函數作用是給PMAC發送指令,參數Outstr為發送給PMAC的指令字符串。
(5)PmacGetResponse(DWORD dwDevice, LPTSTR s, UINT maxchar, LPCTSTR outstr)
該函數的作用為向PMAC卡發送請求/命令,并接收PMAC的響應放入用戶響應緩沖區。參數意義為:dwDevice是設備號;s為響應緩沖區;maxchar代表接收最大字符數;outstr是發送給PMAC的指令字符串。
4 控制軟件的實驗及其分析
上文已建立了坐標系,設置了坐標系內的軸以及匹配好了各軸的電機,亦依據目標任務編寫好了PMAC運動程序。就可以依據相關的要求編寫上位機程序來實現并聯機器人作業的目的。在此以機械制造中斜面加工的實驗來證實此控制軟件設計的實用性。
(1)利用VC++中MFC的類庫設計加工要求所需的用戶界面。將PMAC運動控制器所提供的基本運動函數類以及動態鏈接庫函數隱式調用到軟件工程中,將config.ini,mac2ssp2v101.dll,config.pmc等文件與本文所編寫的ParallelRobot.dll文件放在同一目錄下。
(2)在建立好了主程序工程后,再在VC集成環境中點擊“/project/settings...”菜單彈出“project settings”對話框。選“Link”選項卡,在“object/library modules”欄中導入剛生成的鏈接庫函數文件名ParallelRobot.lib后,再在主工程實現文件中添加頭文件ParallelRobot.h該頭文件是運動控制器的相關運動函數的聲明。
(3)軟件程序中對運動控制器的初始化:在程序的開始必須調用運動控制器的初始化函數,只有在調用初始化函數成功后才能進行卡內封裝運動函數的調用。
在本實驗中,由于斜面加工的實驗中要保持并聯機器人末端銑刀與垂直方向成角度的姿態(這里=30度),沿被加工物件的一個面方向運動,用旋轉銑刀銑去金屬零件的棱,這樣就能銑出一個為30度的斜面。設計能夠實現并聯機器人控制的目的,能夠達到斜面加工的作業要求。
5 結論
本文依據并聯機器人開放式的硬件結構,充分利用上位工控機的多任務協調工作的性能和開放式運動控制器的強大運動功能,設計出符合要求的軟件系統。實驗證明所設計的軟件具備良好的穩定性和廣泛的應用性,能進行系統升級和移植,為開放式運動控制系統的運用提供了參考。
參考文獻
[1]范永,譚民.機器人控制器的現狀及展[J].機器人Robot,1999(21).