劉 昕 石 鑫
(①青海民族大學(xué),青海 西寧 810007;②中航工業(yè)江西洪都航空工業(yè)集團(tuán)有限責(zé)任公司,江西 南昌 330001)
?
CORBA技術(shù)在三層C/S虛擬車削加工仿真方面的開發(fā)應(yīng)用
劉昕①石鑫②
(①青海民族大學(xué),青海 西寧 810007;②中航工業(yè)江西洪都航空工業(yè)集團(tuán)有限責(zé)任公司,江西 南昌 330001)
分布式應(yīng)用是現(xiàn)今網(wǎng)絡(luò)時(shí)代發(fā)展的主流,其最新成果已在世界范圍內(nèi)得到普及使用?,F(xiàn)通過研究數(shù)控車削加工仿真的實(shí)現(xiàn)過程,在分析傳統(tǒng)數(shù)控加工仿真技術(shù)及其弊端的基礎(chǔ)上,采用基于CORBA組件技術(shù)與OpenGL圖形渲染技術(shù)實(shí)現(xiàn)數(shù)控虛擬車削加工模擬仿真系統(tǒng),概括分析程序的運(yùn)行機(jī)理,給出模型結(jié)構(gòu),并在VC++6.0開發(fā)環(huán)境下,結(jié)合OpenGL技術(shù),最終實(shí)現(xiàn)跨網(wǎng)絡(luò)、跨平臺(tái)的數(shù)控虛擬車削加工的模擬仿真。結(jié)果表明:利用CORBA技術(shù)能夠提高分布式虛擬加工仿真軟件的開發(fā)速度,增強(qiáng)開發(fā)軟件可靠性,可為計(jì)算機(jī)輔助加工工藝方案是否合理提供判斷依據(jù)與技術(shù)支撐。
數(shù)控車削;CORBA;OpenGL;VC;虛擬加工
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,分布式應(yīng)用已成為當(dāng)今網(wǎng)絡(luò)時(shí)代發(fā)展的主流趨勢。在計(jì)算機(jī)輔助設(shè)計(jì)與制造領(lǐng)域,工件數(shù)控加工過程的建模和仿真是虛擬制造技術(shù)在機(jī)械加工中的重要應(yīng)用,該應(yīng)用作為虛擬制造技術(shù)的基礎(chǔ)性研究已經(jīng)成為虛擬制造技術(shù)發(fā)展的關(guān)鍵和亟需解決的瓶頸問題[1-2]。然而,由于受到計(jì)算機(jī)軟硬件技術(shù)限制,傳統(tǒng)的單機(jī)數(shù)控加工仿真系統(tǒng)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足人們的需求。特別是隨著各種DCS和基于現(xiàn)場總線的控制系統(tǒng)(FCS)不斷出現(xiàn),功能也越來越復(fù)雜,這就給數(shù)控仿真系統(tǒng)的效率提出了更高的要求。另外,傳統(tǒng)的仿真軟件開發(fā)中工程化程度還比較低,開發(fā)工作也不夠規(guī)范,且這些分布的計(jì)算機(jī)往往具有不同的硬件平臺(tái)及操作系統(tǒng),這就使得在分布式的網(wǎng)絡(luò)環(huán)境下開發(fā)和維護(hù)應(yīng)用軟件變得十分棘手且易出錯(cuò),導(dǎo)致軟件開發(fā)周期過長,勞動(dòng)強(qiáng)度大,開發(fā)成本高,軟件升級(jí)困難[3]。
近些年來,采用公共對象請求代理(common object request broker architecture,CORBA)的分布式計(jì)算模型的提出為解決上述困難找到了出路。該分布式計(jì)算模型是分布式對象系統(tǒng)中對象間發(fā)送和接收消息的“軟總線”(結(jié)構(gòu)如圖1所示)[4],可以簡化本地與遠(yuǎn)地對象間的通信,使之以更透明的方式實(shí)現(xiàn)各對象間的互連互通與互操作,免去繁瑣易于出錯(cuò)的底層工作,使位于不同地理位置的眾多客戶通過網(wǎng)絡(luò)連接便能實(shí)現(xiàn)數(shù)據(jù)共享,達(dá)到協(xié)同仿真制造的目的。目前,流行的分布式計(jì)算技術(shù)主要有OMG的CORBA和微軟的COM/DCOM。與COM/DCOM相比,OMG的CORBA具有更好的跨平臺(tái)跨網(wǎng)絡(luò)性能,技術(shù)程度更高[5-6],故而本系統(tǒng)用OMG的CORBA來實(shí)現(xiàn)數(shù)控車削加工的虛擬仿真。
基于CORBA ORB軟總線的NC加工仿真系統(tǒng)結(jié)構(gòu)框架如圖2所示。概括來說,數(shù)控加工仿真系統(tǒng)的基本工作就是對系統(tǒng)中的各類對象進(jìn)行建模和仿真。那么,在分布式仿真系統(tǒng)中,便可根據(jù)仿真對象將整個(gè)系統(tǒng)體系劃分成各類仿真子系統(tǒng)(仿真部件)。這些分布的仿真子系統(tǒng)分別管理著不同種類或地點(diǎn)的仿真運(yùn)動(dòng)和狀態(tài),并向外界反饋仿真對象狀態(tài)、激發(fā)相關(guān)事件。與此同時(shí),系統(tǒng)還應(yīng)該包括仿真動(dòng)態(tài)的可視化顯示、仿真數(shù)據(jù)采集器、演示仿真控制器等輔助運(yùn)行部件,這些部件都通過CORBA軟總線進(jìn)行交互與集成。類似于計(jì)算機(jī)硬件的構(gòu)造模式,CORBA ORB軟總線就如同計(jì)算機(jī)中的總線,那么仿真應(yīng)用部件就相當(dāng)于通過接口插在總線上的插件。
在基于CORBA標(biāo)準(zhǔn)的環(huán)境中,融合CORBA和VC++將會(huì)構(gòu)造出VC++ ORB結(jié)構(gòu)。通過ORB,客戶能夠在不熟知其實(shí)現(xiàn)細(xì)節(jié)的情況下,透明地發(fā)出請求和接收響應(yīng),實(shí)現(xiàn)與服務(wù)器交互的動(dòng)態(tài)仿真。一個(gè)完整的車削仿真系統(tǒng)的建立涵蓋三個(gè)方面,即建立IDL文件,依據(jù)IDL文件編寫服務(wù)器端和客戶端代碼,編譯運(yùn)行代碼[7]。系統(tǒng)運(yùn)行機(jī)理的具體實(shí)現(xiàn)過程包含以下三步:
2.1接口定義[8-9]
IDL為模擬仿真程序模塊的接口文件,其定義了服務(wù)器能夠?qū)崿F(xiàn)的功能以及客戶如何去調(diào)用這些功能。假如客戶要想調(diào)用模擬仿真系統(tǒng)中的傳輸機(jī)床資源信息的代碼函數(shù),唯一的一種途徑就是通過調(diào)用ManufacturingResourceTransmit ( in manufacturing resourcedate machinedate)函數(shù)實(shí)現(xiàn)。這樣,客戶就可在客戶端定義一個(gè)變量EmluatorServer,該變量是一個(gè)服務(wù)器對象,雖然它的實(shí)體或許并不存在于我們的機(jī)器中,但是ORB卻為我們做了大量有用的工作,讓我們定義和使用一個(gè)遠(yuǎn)程對象,如同調(diào)用自己程序中的東西那樣容易。圖3為某一IDL文件的部分描述。
2.2服務(wù)器程序?qū)崿F(xiàn)[10]
在服務(wù)器端,在編寫好服務(wù)器端界面的同時(shí),應(yīng)對每個(gè)IDL定義的每個(gè)接口編寫相應(yīng)的對象實(shí)現(xiàn)類和初始化ORB環(huán)境并等待用戶客戶調(diào)入的代碼。本開發(fā)系統(tǒng)中,接口定義文件SolidGeometryEmluator.IDL用來實(shí)現(xiàn)IDL文件中所定義的各種功能,包含傳輸NC代碼、傳輸機(jī)床資源信息、啟動(dòng)/停止仿真、返回實(shí)時(shí)節(jié)點(diǎn)數(shù)據(jù)、返回加工結(jié)果等功能模塊。圖4為本系統(tǒng)服務(wù)器程序?qū)崿F(xiàn)代碼簡介。
2.3客戶程序?qū)崿F(xiàn)
在客戶端,基于靜態(tài)調(diào)用具有編程簡單,調(diào)用便捷,運(yùn)行速度快等諸多優(yōu)點(diǎn),故而在編寫好客戶端界面的同時(shí),系統(tǒng)主要通過靜態(tài)調(diào)用方法實(shí)現(xiàn)請求對象服務(wù)。靜態(tài)調(diào)用要用到由IDL接口文件編譯后自動(dòng)生成的靜態(tài)調(diào)用接口Stub,客戶程序進(jìn)行編譯時(shí),Stub文件會(huì)被自動(dòng)連接進(jìn)去。
2.4三層C/S結(jié)構(gòu)模型
客戶與服務(wù)器的交互過程如下[11-12]:
(1)表示層的客戶端向服務(wù)器發(fā)出請求,傳輸NC代碼與制造資源信息,找到要實(shí)現(xiàn)的對象標(biāo)識(shí)。
(2)查找對象標(biāo)示所適應(yīng)的Stub,并通過該Stub向本地的ORB核心發(fā)出請求,本地的ORB再通過IIOP協(xié)議與遠(yuǎn)程ORB進(jìn)行通信,遠(yuǎn)端ORB核心將請求發(fā)送給相應(yīng)的對象適配器。
(3)對象適配器接受到請求后,查找相應(yīng)的Skeleton,再通過對應(yīng)的Skeleton激活CORBA應(yīng)用對象。
(4)CORBA應(yīng)用對象對客戶的請求進(jìn)行識(shí)別,依據(jù)客戶請求的內(nèi)容,直接訪問資源層的數(shù)據(jù)庫,或者與網(wǎng)絡(luò)上的其它CORBA對象進(jìn)行交互,共同完成客戶請求,在服務(wù)器上執(zhí)行數(shù)控加工仿真過程。
(5)Skeleton裝載數(shù)控加工仿真結(jié)果后,會(huì)將結(jié)果通過對象請求傳遞和執(zhí)行路徑的逆向返還給客戶,從而完成了一次完整的請求調(diào)用。
圖5表示基于CORBA的三層C/S應(yīng)用體系結(jié)構(gòu),由圖5中可知,CORBA在傳統(tǒng)的客戶/服務(wù)器分布式計(jì)算模型中加入了ORB(對象請求代理)的層次。客戶不再直接和服務(wù)器聯(lián)系,而由ORB來定義服務(wù)器。這樣,服務(wù)器的變化對于客戶是透明的,客戶和服務(wù)器也不受一一對應(yīng)關(guān)系限制,客戶可以在運(yùn)行時(shí)定位和使用不同的服務(wù)器,從而實(shí)現(xiàn)虛擬數(shù)控車削加工的三維模擬仿真。
本系統(tǒng)實(shí)現(xiàn)了一個(gè)基于CORBA技術(shù)的數(shù)控車削加工三維模擬仿真系統(tǒng)。系統(tǒng)中各個(gè)程序模塊可以分布在網(wǎng)絡(luò)中的任何一臺(tái)機(jī)器中,通過ORB進(jìn)行仿真工作。當(dāng)仿真服務(wù)器啟動(dòng)后,可以使客戶端和服務(wù)器相連接起來,這時(shí)就能夠執(zhí)行NC代碼、機(jī)床信息傳輸?shù)炔僮?。?dāng)預(yù)備條件準(zhǔn)備好后,仿真工作即可開始進(jìn)行。在仿真過程中用戶還可以執(zhí)行數(shù)據(jù)跟蹤工作進(jìn)程,由于本系統(tǒng)采用了較為先進(jìn)的線程控制手段,所以在仿真過程中,用戶能夠隨時(shí)暫停仿真演示,也可隨時(shí)終止仿真演示。仿真運(yùn)動(dòng)結(jié)束后,系統(tǒng)會(huì)自動(dòng)生成仿真結(jié)果,返回工件加工的結(jié)果數(shù)據(jù),并繪制出帶有信息標(biāo)注的二維工件圖。這樣,用戶不僅能夠直觀地看到整個(gè)仿真加工情況,獲取結(jié)果,而且依據(jù)反饋的結(jié)果信息判斷出所設(shè)計(jì)的工件是否符合實(shí)際加工要求。通過測試,程序運(yùn)行穩(wěn)定,各功能模塊均工作良好。圖6和圖7分別為本系統(tǒng)測試進(jìn)程(客戶端成功傳輸NC代碼)與測試結(jié)果(車削加工仿真結(jié)果)。
本文針對傳統(tǒng)數(shù)控加工仿真的不足之處,提出了一個(gè)基于CORBA和OpenGL技術(shù)實(shí)現(xiàn)數(shù)控車削加工仿真的解決方案,實(shí)驗(yàn)結(jié)果表明該方案整體結(jié)構(gòu)合理,系統(tǒng)程序運(yùn)行可靠,具備維護(hù)性好、擴(kuò)展性良好、模型重用方便、適應(yīng)多平臺(tái)、可進(jìn)行分布式處理的特點(diǎn)。目前,本開發(fā)系統(tǒng)已在工程實(shí)踐中得到實(shí)際應(yīng)用。隨著仿真技術(shù)的不斷發(fā)展,CORBA技術(shù)在機(jī)械虛擬加工仿真中的應(yīng)用會(huì)更加廣泛,優(yōu)勢更加明顯,其將是仿真軟件業(yè)發(fā)展的必然趨勢。
[1]王占禮,董超,胡艷娟,等.數(shù)控加工仿真系統(tǒng)研究現(xiàn)狀與發(fā)展趨勢[J].制造業(yè)自動(dòng)化,2013,35(5):41-45.
[2] 鄭先容,黃杰,賈焰.基于CORBA構(gòu)造模型的編譯器的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2005,25(1):91-92.
[3]牟世剛.面向虛擬制造的數(shù)控加工仿真技術(shù)的研究[J].機(jī)床與液壓,2009,37(9):249-251.
[4]陳雅琳,黃宏光,李燕斌.CORBA分布式系統(tǒng)中網(wǎng)絡(luò)分割協(xié)議可行度分析[J].計(jì)算機(jī)應(yīng)用,2013,33(8):2124-2127.
[5]趙瑜,劉勇,孔捷.基于CORBA組件的分布式網(wǎng)管軟件設(shè)計(jì)[J].無線電工程,2012,42(7):4-6.
[6] 童恒慶,聶會(huì)琴,李錫喆.CORBA/COM/EJB三種組件模型的分析與比較[J].計(jì)算機(jī)應(yīng)用研究,2004,21(4):66-67.
[7] 陳思耀.基于CORBA技術(shù)網(wǎng)路應(yīng)用系統(tǒng)的IDL設(shè)計(jì)與實(shí)現(xiàn)[J].四川理工學(xué)院學(xué)報(bào):自然科學(xué)版,2007,20(2):54-59.
[8] 李穎,胡明.基于C語言實(shí)現(xiàn)的IDL編譯器[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(3):5-9.
[9] 李娜,王維哲.基于CORBA的異構(gòu)數(shù)據(jù)庫訪問中間件的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(5):162-164.
[10] 張昭理,胡金柱.CORBA構(gòu)建模型在分布式體系結(jié)構(gòu)中的應(yīng)用[J].計(jì)算機(jī)工程,2004,30(12):81-83.
[11] 張奕.基于CORBA系統(tǒng)的研究與現(xiàn)實(shí)[J].現(xiàn)代導(dǎo)航,2013(4):308-311.
[12] 盧立男,周長春,李喜旺.一種集成CORBA與WebServices的中間件[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20(4):131-135.
(編輯汪藝)
如果您想發(fā)表對本文的看法,請將文章編號(hào)填入讀者意見調(diào)查表中的相應(yīng)位置。
·名詞解釋·
專用機(jī)器人在固定地點(diǎn)以固定程序工作的機(jī)器人,其結(jié)構(gòu)簡單、工作對象單一、無獨(dú)立控制系統(tǒng)、造價(jià)低廉,如附設(shè)在加工中心機(jī)床上的自動(dòng)換刀機(jī)械手。
CAPP技術(shù)CAPP是計(jì)算機(jī)輔助工藝設(shè)計(jì)(Computer Aided Process Planning)的簡稱。工藝設(shè)計(jì)是生產(chǎn)準(zhǔn)備工作的第一步,也是連接產(chǎn)品設(shè)計(jì)和產(chǎn)品制造之間的橋梁。工藝設(shè)計(jì)必須分析和處理大量的信息,既要考慮產(chǎn)品設(shè)計(jì)圖上有關(guān)結(jié)構(gòu)形狀、尺寸公差、材料及熱處理以及批量等方面的信息,又要了解加工制造中有關(guān)加工方法、加工設(shè)備、生產(chǎn)條件、加工成本及工時(shí)定額,甚至傳統(tǒng)習(xí)慣等方面的信息。工藝設(shè)計(jì)包括查閱資料和手冊,確定零件的加工方法,安排加工路線,選擇設(shè)備、工裝、切削參數(shù),計(jì)算工序尺寸,繪制工序圖,填寫工藝卡片和表格文件等工作。高速發(fā)展的計(jì)算機(jī)技術(shù)為工藝設(shè)計(jì)的自動(dòng)化奠定了基礎(chǔ)。CAPP是利用計(jì)算機(jī)技術(shù),在工藝人員較少的參與下,完成過去完全由人工進(jìn)行的工藝規(guī)程設(shè)計(jì)工作的一項(xiàng)技術(shù)。CAPP系統(tǒng)不但能利用工藝人員的經(jīng)驗(yàn)知識(shí)和各種工藝數(shù)據(jù)進(jìn)行科學(xué)的決策,自動(dòng)生成工藝規(guī)程,還能自動(dòng)計(jì)算工藝尺寸,繪制工序圖,選擇切削參數(shù),對工藝設(shè)計(jì)結(jié)果進(jìn)行優(yōu)化,從而設(shè)計(jì)出一致性良好、高質(zhì)量的工藝規(guī)程。另外,由于計(jì)算機(jī)中存儲(chǔ)的信息可以反復(fù)利用,從而大大提高了工藝設(shè)計(jì)的效率。
電解冶煉利用電解原理,對有色和稀有金屬進(jìn)行提煉和精煉。分為水溶液電解冶煉和焙鹽電解冶煉兩種。水溶液電解冶煉在冶金工業(yè)中廣泛用于提取和精煉銅、鋅、鉛、 鎳等金屬。 例如銅的電解提純:將粗銅(含銅99%)預(yù)先制成厚板作為陽極,純銅制成薄片作陰極,以硫酸和硫酸銅的混和液作為電解液。通電后,銅從陽極溶解成銅離子向陰極移動(dòng),到達(dá)陰極后獲得電子而在陰極析出純銅(亦稱電解銅)。粗銅中雜質(zhì)如比銅活潑的鐵和鋅等會(huì)隨銅一起溶解為離子。由于這些離子與銅離子相比不易析出,所以電解時(shí)只要適當(dāng)調(diào)節(jié)電位差即可避免這些離子在陽極上析出。比銅不活潑的雜質(zhì)如金和銀等沉積在電解槽的底部。焙鹽電解冶煉用于提取和精煉活潑金屬(如鈉、鎂、鈣、鋁等)。例如,工業(yè)上提取鋁:將含氧化鋁的礦石進(jìn)行凈化處理,將獲得的氧化鋁放入熔融的冰晶石中,使其成為熔融狀的電解體。
Application of CORBA technique in virtual simulation of three-tier NC lathe turning
LIU Xin①,SHI Xin②
(①Q(mào)inghai Nationalities University, Xining 810007, CHN; ②AVIC Jiangxi Hongdu Aviation Industry Group Corporation Limited, Nanchang 330001, CHN)
Distributed application is the developing mainstream of internet age, and its latest achievements have been applied widely throughout the world. Now with numerical control(NC) lathe turning processing simulation taken as an example, based on the analysis of traditional NC machining simulation technique and its flows, the development structure of the software is established. With the use of distributed CORBA component and OpenGL graphic technologies, a new method of realizing NC lathe turning virtual simulation system is put forward. The operation mechanism of the program is analyzed, and the model structure is discussed in detail. In VC++6.0, with OpenGL graphic technology, the NC lathe turning virtual simulation which is across platform and network is realized. Results show that using CORBA technology can improve the development and reliability of distributed virtual processing software, and it also provides reasonable judgment and technical supports for the CAPP plans.
NC lathe turning; CORBA; OpenGL; VC; virtual processing
TP391
A
劉昕,女,1981年生,碩士,講師,研究方向?yàn)橛?jì)算機(jī)應(yīng)用與網(wǎng)絡(luò)。
2015-10-20)
160111