亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        COM組件技術(shù)在數(shù)控磨削中的應(yīng)用分析

        2013-04-29 00:00:00曹環(huán)軍劉海英
        科技資訊 2013年6期

        摘 要:從COM的基本原理出發(fā),分析了其在數(shù)控磨削中的應(yīng)用優(yōu)勢,并結(jié)合實(shí)際案例分析了利用COM實(shí)現(xiàn)混合編程的過程,說明其在數(shù)控領(lǐng)域的應(yīng)用是具有較大優(yōu)勢的。

        關(guān)鍵詞:COM組件 接口功能 磨削加工 應(yīng)用實(shí)例

        中圖分類號:TP311 文獻(xiàn)標(biāo)志碼:A 文章編號:1672-3791(2013)02(c)-0039-02

        1 COM組件概述

        所謂的COM組件技術(shù)是微軟公司在20個(gè)世紀(jì)90年代創(chuàng)建的,現(xiàn)在已經(jīng)成為微軟公司、數(shù)據(jù)設(shè)備公司等支持的軟件組件結(jié)構(gòu)標(biāo)準(zhǔn)。開發(fā)COM的最初目的就是讓應(yīng)用程序方便定制,為對象鏈接的嵌入提供支持。COM技術(shù)提供了創(chuàng)建兼容對象的技術(shù)規(guī)范,以及其在windows系統(tǒng)下的通信規(guī)范。COM組件從根本上看是一套為組件架構(gòu)而設(shè)置的文檔,提供了一種編寫與語言無關(guān)組件方法,COM具有一個(gè)特定的COM庫,即API,這就給用戶提供了組件管理服務(wù)。這個(gè)API的大多數(shù)的代碼都可以支持分布式或者網(wǎng)絡(luò)化的組件。Windows系統(tǒng)上的分布式COM在實(shí)現(xiàn)過程中提供了網(wǎng)絡(luò)上其他組件通信所需要的代碼。COM組件是利用Win32動(dòng)態(tài)鏈接庫或者可執(zhí)行文件的形式來發(fā)布代碼執(zhí)行指令,這就使得COM規(guī)范編寫的組件可以滿足系統(tǒng)程序的編輯需求。

        COM接口在應(yīng)用中定義了接口的功能,COM組件負(fù)責(zé)完成具體的功能。一個(gè)COM組件通過定義接口對象基類或者嵌套類等方式完成多個(gè)接口的對接,這樣就可通過定義接口的類別來實(shí)現(xiàn)功能。COM組件作為COM接口的具體實(shí)現(xiàn),設(shè)計(jì)為二進(jìn)制的單元,并以動(dòng)態(tài)庫和可執(zhí)行程序的形式表達(dá)。COM在執(zhí)行時(shí)可以在主進(jìn)程內(nèi)也可在其外部,但是可執(zhí)行程序形式存在的COM組件只能在主進(jìn)程外。

        在COM組件技術(shù)中,其也看做是服務(wù)器,根據(jù)組件與客戶之間的關(guān)系,可以對其進(jìn)行分類,即進(jìn)程內(nèi)、本地、遠(yuǎn)程。而后兩種進(jìn)程也就是外服務(wù)器形式。進(jìn)程內(nèi)服務(wù)器就是指服務(wù)器和客戶在同一個(gè)進(jìn)程空間內(nèi)完成運(yùn)行,進(jìn)程內(nèi)COM組件是以DLL形式封裝的組件。當(dāng)服務(wù)器與客戶在同一臺(tái)計(jì)算機(jī)上,但運(yùn)行的空間是相對獨(dú)立的,這個(gè)服務(wù)器為本地服務(wù)器,而其封裝形式為EXE。當(dāng)COM組件與客戶不在同一臺(tái)計(jì)算機(jī)上時(shí),這個(gè)進(jìn)程就是遠(yuǎn)程服務(wù),其封裝文件可以是EXE也可是DLL。如果是DLL封裝,遠(yuǎn)程服務(wù)器的計(jì)算機(jī)就需要一個(gè)代理進(jìn)程來實(shí)現(xiàn)互動(dòng)。

        2 COM組件技術(shù)在數(shù)控磨削中的應(yīng)用

        2.1 總體思路

        計(jì)算機(jī)技術(shù)的不斷發(fā)展,數(shù)控的智能化與精細(xì)化也隨之提高,而其控制系統(tǒng)也從專用系統(tǒng)轉(zhuǎn)變?yōu)殪`活的開放式可編輯系統(tǒng),即可以針對不同的加工流程進(jìn)行靈活的調(diào)適。這種體系的轉(zhuǎn)變是的機(jī)床的生產(chǎn)商可以從分的利用計(jì)算機(jī)的資源,來提高數(shù)控的靈活性,以此實(shí)現(xiàn)一機(jī)多用的目標(biāo)。系統(tǒng)的開放也為用戶帶來了極大的便利與成本節(jié)約,如磨床用戶可以開發(fā)適應(yīng)自身生產(chǎn)需要的數(shù)控系統(tǒng)以及人機(jī)交互界面。此時(shí)利用二次開發(fā)的方式,突出VB和MATLAB的優(yōu)勢就可極大的提高編程效率。具體思路是借助COM組件來實(shí)現(xiàn)程序的開發(fā),從編輯與設(shè)計(jì)輸出接口—— 創(chuàng)建COM組件工程—— 編譯生成COM組件—— DLL文件—— 用戶設(shè)計(jì)VB開發(fā),經(jīng)過這個(gè)流程就可實(shí)現(xiàn)對數(shù)據(jù)磨削的程序開發(fā),以適應(yīng)生產(chǎn)需求。

        2.2 COM組件建立與調(diào)用

        2.2.1 組件建立過程

        通常在VB與MATLAB之間實(shí)現(xiàn)調(diào)用有以下措施:動(dòng)態(tài)數(shù)據(jù)交互、ActiveX自動(dòng)化、中間文件傳遞、Matrix VB措施、COM組件技術(shù)。以上多種措施中前三個(gè)不能與MATLAB相配合,不能實(shí)現(xiàn)軟件一直,而第四種已經(jīng)停止發(fā)布,最佳的方式就是COM組件生成器,以保證MATLAB接口的需求。這個(gè)組件技術(shù)可以將MATLAB開發(fā)的算法程序與相關(guān)的支撐函數(shù)數(shù)據(jù)庫進(jìn)行一并打包,形成一個(gè)組件,從而構(gòu)建一個(gè)獨(dú)立的COM對象,并對其進(jìn)行集成融入到應(yīng)用程序中。這樣的方式可以脫離對MATLAB環(huán)境的依賴,靈活性較大。所以數(shù)控磨削中可以采用此方式實(shí)現(xiàn)混合編程。在編程過程中采用的步驟如下:在MATLAB的M文件編輯器中編寫函數(shù)形式的文件,并設(shè)計(jì)其輸出的參數(shù);然后在MATLAB中執(zhí)行相關(guān)com tool指令,進(jìn)入到COM界面;隨后建立一個(gè)COM Builder的文件,完成對磨削參數(shù)的設(shè)定,如名稱、類別等;完成后載入M文件,執(zhí)行后生成COM組件;最后在VB環(huán)境中載入相關(guān)COM組件,并對接口調(diào)用,實(shí)現(xiàn)整個(gè)程序的設(shè)計(jì)。

        2.2.2 設(shè)計(jì)過程分析

        文件的編寫。在程序設(shè)計(jì)中,本文以凸輪的磨削為例,按照凸輪加工需要的數(shù)據(jù)來實(shí)現(xiàn)程序的編制,在凸輪的加工中通常都會(huì)有一個(gè)進(jìn)程表,生程表數(shù)據(jù)數(shù)據(jù)可以直接導(dǎo)出凸輪磨削的數(shù)學(xué)模型。凸輪磨削的數(shù)學(xué)模型所描述的是在凸輪零件的幾何數(shù)據(jù),計(jì)算獲得的相關(guān)與零件各個(gè)軸向之間的關(guān)系,數(shù)控系統(tǒng)利用這個(gè)數(shù)據(jù)來控制零件的相對運(yùn)動(dòng)模式,在凸輪轉(zhuǎn)動(dòng)的同時(shí)加工設(shè)備產(chǎn)生進(jìn)給,從而完成對毛坯的加工,最終獲得凸輪。通常加工工藝的指令給出凸輪的基本數(shù)據(jù)是一系列的具有離散性的數(shù)據(jù)點(diǎn),直接利用這些離散數(shù)據(jù)是不能實(shí)現(xiàn)對凸輪磨削的數(shù)學(xué)建模的,尤其是在數(shù)據(jù)模型中存在導(dǎo)出問題時(shí)無法滿足計(jì)算的需求,所以應(yīng)將離散數(shù)據(jù)擬合起來,才能體現(xiàn)數(shù)據(jù)的整體性,并保證加工的精度。MATLAB中可以對三次樣條曲線進(jìn)行擬合的命令,可以非常方便的對離散數(shù)據(jù)進(jìn)行計(jì)算,用戶不需要利用額外的軟件來完成對其算法的開發(fā)。將凸輪數(shù)學(xué)模型的算法編寫成M文件也就相對容易。只要在MATLAB下運(yùn)行相關(guān)代碼即可實(shí)現(xiàn)。在代碼運(yùn)行中,需要定義的函數(shù)包括:rl、R、ang、h、Epuxiron等輸入?yún)?shù),rl表示的是凸輪滾子半徑,R則代表砂輪的半徑,ang、h則表示升程表中轉(zhuǎn)角和升程的基本數(shù)值,而Epixiron則代表加工余量。X和angelphy則是代表輸出值,分別表示砂輪機(jī)床的位移值和轉(zhuǎn)軸的轉(zhuǎn)角值,獲得上述數(shù)據(jù)后,就可在MATLAB內(nèi)生成一個(gè)M文件。

        2.2.3 COM組件的建立

        編寫完M函數(shù)文件后,設(shè)計(jì)中可以利用MATLAB所提供的打包工具來生成一個(gè)COM組件,在MATLAB中的指令行上輸入一個(gè)指令“com tool”就可看到一個(gè)工程編輯器,即“MATLAB LAB Builder”窗口。在此窗口上進(jìn)行操作,點(diǎn)擊“file”—— New Project“,就可生成一個(gè)新的工程文件,并在此實(shí)現(xiàn)參數(shù)的設(shè)置,審核后將前面的M文件添加到工程中,點(diǎn)擊“Build”—— “COM Object”就可完成對相應(yīng)組件文件的建立。生成組件會(huì)自動(dòng)的在計(jì)算機(jī)中完成注冊,如果這個(gè)組件在設(shè)計(jì)中要移動(dòng)到其他計(jì)算機(jī)中,如從計(jì)算機(jī)中移植到PC數(shù)控平臺(tái)上的時(shí)候,可以在對應(yīng)的數(shù)控系統(tǒng)上運(yùn)行相關(guān)的命令,即DLL文件進(jìn)行注冊,就可完成移植。到這里用戶所編寫的M函數(shù)就已經(jīng)成為一個(gè)COM組件對象了。

        2.2.4 COM組件的調(diào)試

        完成COM組件對象的生成后,還需要在VB中對其進(jìn)行調(diào)用,才能實(shí)現(xiàn)二次開發(fā)的目的。在VB開發(fā)工程中點(diǎn)擊“工程”——“引用”菜單,選擇相關(guān)的MATLAB所生成的dll文件,將其添加到一個(gè)對應(yīng)的創(chuàng)建工程中,以此完成對其的調(diào)用。VB程序中對需要調(diào)用的dll進(jìn)行計(jì)算時(shí),可調(diào)用相應(yīng)的接口函數(shù),而在使用接口函數(shù)前必須創(chuàng)建相關(guān)的類別,其方法如下:

        Dim mydll As New mytestcom2. Mytestcom2//mydll為類別的實(shí)例名稱

        接口函數(shù)通常是將M文件作為名稱,其中第一個(gè)參數(shù)表示輸出參數(shù)的個(gè)數(shù),在接口函數(shù)參數(shù)中,其輸入?yún)?shù)必須是double類型,而輸出則為variant類型。

        Dim X As Variant//定義X軸砂輪架位置

        Dim angelphy As Variant//定義C 軸轉(zhuǎn)角

        Dim r1val As Double//定義滾子半徑

        Dim Rval As Double//定義砂輪半徑

        ……

        Call mydll.mytestcom2(2,X,angelphy, rlval,Penal,vb_ang,vb_h,vb_ Epuxiron)//括號內(nèi)為函數(shù)參數(shù),2代表函數(shù)有兩個(gè)輸出值,分別為X和angelphy,剩下的r1val,Rval等5個(gè)輸入?yún)?shù)值,分別和所編寫的M文件中的函數(shù)相對應(yīng),實(shí)現(xiàn)了函數(shù)的傳遞。而X值和angelphy值則是最終寫入到數(shù)控程序內(nèi)的x軸軌跡和c軸轉(zhuǎn)角值,這樣就可生成最終的數(shù)控文件。

        值得注意的是,MATLAB軟件在計(jì)算中會(huì)將所有的數(shù)據(jù)都看做是一個(gè)矩陣,所以在處理接口函數(shù)的變量時(shí)應(yīng)將其看做是二維數(shù)據(jù)組,否則就會(huì)造成數(shù)據(jù)的混亂。設(shè)計(jì)完成的軟件通過程序可以載入凸輪升程表的數(shù)據(jù),經(jīng)過調(diào)用dll計(jì)算相關(guān)的凸輪轉(zhuǎn)角和砂輪架之間的位置關(guān)系,進(jìn)而實(shí)現(xiàn)對其加工的數(shù)控,加工程序在實(shí)際的應(yīng)用中也獲得了較好的效果。

        3 結(jié)語

        在數(shù)控磨削中需要編寫程序?yàn)閿?shù)控計(jì)算機(jī)提供連貫的指令,在程序編寫中利用COM組件技術(shù)可以實(shí)現(xiàn)MATLAB與VB的結(jié)合,從而實(shí)現(xiàn)混合編程,并將其應(yīng)用在數(shù)控磨削的二次開發(fā)中,從而實(shí)現(xiàn)了高校靈活的編程過程,也可更換的適應(yīng)客戶需求。

        參考文獻(xiàn)

        [1] 趙海春.COM組件的設(shè)計(jì)與使用[J].邵陽學(xué)院學(xué)報(bào):自然科學(xué)版,2009(1):69.

        [2] 張盛,盧建華,盧欣華.COM組件技術(shù)研究[J].科技信息,2008(26).

        [3] 劉玉利,左勇,唐翠榮.基于Matlab與VB混合編程的壓痕直徑測量軟件設(shè)計(jì)[J].計(jì)測技術(shù),2009(2):21.

        [4]曾浩然,張琳娜,趙鳳霞.VB和Matlab混合編程在圓度誤差評定中的應(yīng)用研究[J].制造技術(shù)與機(jī)床,2011(8):34.

        [5]張龍斌,袁瑤.基于EXE的VB與Matlab混合編程在電力系統(tǒng)計(jì)算中的應(yīng)用[J].黑龍江電力,2010(5):29.

        国产成人户外露出视频在线| 在办公室被c到呻吟的动态图| 国产熟妇按摩3p高潮大叫| 亚洲第一网站免费视频| 国产一区二区在线观看我不卡| 精品一区二区av在线| 亚洲日韩精品一区二区三区| 亚洲av无码成人黄网站在线观看| 欧美手机在线视频| 国产一区二区视频免费| 国产成人精品2021| 少妇高潮惨叫久久久久久| 午夜无码无遮挡在线视频| 国产自拍视频免费在线观看| 国内精品视频一区二区三区八戒| 亚洲老妇色熟女老太| 免费一级国产大片| 日本韩国一区二区高清| 99久久精品免费看国产| 国产成人vr精品a视频| 中文字幕亚洲无线码a| 黄色潮片三级三级三级免费| 三年片在线观看免费观看大全中国| 97久久天天综合色天天综合色hd| 亚洲乱在线播放| 久久精品国产免费一区二区三区| 国产亚洲精品美女久久久| 久久久国产精品麻豆| 亚洲综合原千岁中文字幕| 日韩亚洲一区二区三区四区| 99久久精品日本一区二区免费| 女性自慰网站免费看ww| 亚洲一区二区三区精彩视频| 婷婷五月深深久久精品| 狠狠躁夜夜躁人人爽天天天天97| 久久婷婷国产综合精品| 24小时在线免费av| 伊在人天堂亚洲香蕉精品区| 成人片99久久精品国产桃花岛| 亚洲av资源网站手机在线| 成人免费无码视频在线网站|