0 引言
凸輪軸是發(fā)動(dòng)機(jī)的重要零件之一,它的加丁精度對(duì)發(fā)動(dòng)機(jī)的性能有著十分重要的影響。由于凸輪軸是一種非圓類異形零件,利用傳統(tǒng)加工技術(shù)難以滿足需要的加工精度,隨動(dòng)磨削技術(shù)是近年來發(fā)展起來的一種新型非圓類零件加工方法,指磨床砂輪架x軸根據(jù)指令跟隨工件旋轉(zhuǎn)軸C軸運(yùn)動(dòng),進(jìn)行磨削,這種方法既能加工圓形類工件,又能加工凸輪、曲軸、凸輪軸等非圓類工件,較傳統(tǒng)加工方法更易保證加工精度,因此,本文將開發(fā)利用隨動(dòng)磨削技術(shù),對(duì)凸輪軸進(jìn)行加工的專用控制軟件,西門子標(biāo)準(zhǔn)數(shù)控系統(tǒng)顯然不能滿足加工的要求,采用對(duì)西門子840D數(shù)控系統(tǒng)進(jìn)行二次開發(fā)的方法,既發(fā)揮了西門子數(shù)控系統(tǒng)的優(yōu)良性能,也實(shí)現(xiàn)了凸輪軸的加工,具有重要的現(xiàn)實(shí)意義。
1 SINUMERIK 840D數(shù)控系統(tǒng)的OEM軟件開發(fā)包
SINUMERIK 840D主要由三部分構(gòu)成:數(shù)控及驅(qū)動(dòng)單元(CCU或NCU),人機(jī)通信(MMC),可編程邏輯控制器(PLC)。三部分以獨(dú)立的CPU單元出現(xiàn),通過總線連接通訊,在功能上既相互分工,又互為支持。OEM軟件是西門子公司專門為機(jī)床制造商或第三方開發(fā)者提供的進(jìn)行二次開發(fā)的軟件包,采用標(biāo)準(zhǔn)編程語言和標(biāo)準(zhǔn)接口進(jìn)行數(shù)據(jù)傳遞,由840D數(shù)控系統(tǒng)實(shí)現(xiàn)控制。將OEM軟件開發(fā)包安裝于MMC上,在WINDOWS操作系統(tǒng)下,使用VB、VC++等編程語言,利用OEM提供的DDE接口,即可訪問NC、PLC、MMC變量及文件。因此,必須通過OEM軟件開發(fā)包將開發(fā)的軟件嵌入到840D數(shù)控系統(tǒng)中,才能實(shí)現(xiàn)軟件特殊的功能。
2 凸輪軸磨削軟件的設(shè)計(jì)
2.1 凸輪軸磨削軟件的框架設(shè)計(jì)
由于OEM軟件開發(fā)包支持VB、VC等語言編程,而VB編寫界面又十分方便且功能強(qiáng)大,所以采用VB編寫一個(gè)多窗儺程序來形成磨削軟件的框架。根據(jù)凸輪軸磨削加工的特殊要求及使用方便。設(shè)計(jì)了登錄、參數(shù)文件選擇等窗體來完成需要的功能。如圖1所示。
圖1凸輪軸磨削軟件框架凸輪軸磨削軟件框架凸輪軸磨削軟件框架凸輪軸磨削軟件框架 凸輪軸磨削軟件框架
2.2 數(shù)據(jù)庫的設(shè)計(jì)
為了使凸輪軸磨削軟件具有更好的通片1性,能夠方便地加工帶有多種類型凸輪片的凸輪軸,能夠采用切人磨、擺動(dòng)磨等多種磨削方式進(jìn)行磨削加工,研究采用數(shù)據(jù)庫來管理種類繁多的數(shù)據(jù),使所有的數(shù)據(jù)層次分明,使用方便。提高軟件的穩(wěn)定性和實(shí)用性。
對(duì)于該軟件的數(shù)據(jù)庫而言,軟件規(guī)模不大,數(shù)據(jù)總量較少,需要較短的開發(fā)周期。并且VB能夠訪問方便,所以選擇Access作為軟件的數(shù)據(jù)庫。結(jié)合凸輪軸的結(jié)構(gòu)特點(diǎn)和隨動(dòng)磨削的加T需要。考慮到用戶使用方便。筆者建立filename,camaxis。axis,csmpiece,llft—。table。compensate—tablet processdata,seqfile,sequence等9個(gè)表構(gòu)建Access數(shù)據(jù)庫。為了使結(jié)構(gòu)化查詢語言能夠迅速地從數(shù)據(jù)庫中查找到用戶需要的記錄集,另外在數(shù)據(jù)庫的9個(gè)表中都增加了filename字段,并在各表之間建立丁一對(duì)多的關(guān)系。
VB中具有豐富的數(shù)據(jù)庫訪問控件,支持多種數(shù)據(jù)庫訪問技術(shù),其中ADO技術(shù)響應(yīng)建度快。屬性、方法和事件多。支持多種數(shù)據(jù)源連接,所以選擇利用ADO技術(shù)訪問Access數(shù)據(jù)庫。井通過結(jié)構(gòu)化查詢語言對(duì)數(shù)據(jù)庫進(jìn)行查找、修改、保存等處理。具體流程如圖3所示。
3 凸輪軸磨削軟件的嵌入
利用OEM軟件開發(fā)包,將凸輪軸磨削軟件嵌人西門子840D數(shù)控系統(tǒng),與其標(biāo)準(zhǔn)界面有機(jī)結(jié)合。井運(yùn)行于MMC上,凸輪軸磨削軟件便可訪問NC、PLC、MMC的變量及文件,實(shí)現(xiàn)控制機(jī)床隨動(dòng)磨削。加工凸輪軸的功能。
嵌人數(shù)控系統(tǒng)的凸輪軸磨削軟件稱為標(biāo)準(zhǔn)OEM區(qū)域應(yīng)用程序。也可叫作順序控制模式的應(yīng)用程序,只有符合順序控制模式,設(shè)計(jì)的軟件爿能被轉(zhuǎn)化為兩門子標(biāo)準(zhǔn)應(yīng)用程序,也才能完全嵌入到西門子數(shù)控系統(tǒng)。
根據(jù)OEM軟件使用手冊(cè)的說明,順序控制的中心元素是狀態(tài),每個(gè)狀態(tài)有自身唯一的狀態(tài)號(hào),在每個(gè)狀態(tài)下可以顯示一系列窗體,而每個(gè)窗體所要顯示的軟鍵文本則位于相應(yīng)的語言動(dòng)態(tài)鏈接庫中。通過按下軟鍵的行為可以進(jìn)行狀態(tài)的切換,從而達(dá)到軟件設(shè)計(jì)中窗體切換的效果。凸輪軸磨削軟件嵌人后,如圖4所示,軟件設(shè)計(jì)中的文件選擇窗體轉(zhuǎn)化成西門子標(biāo)準(zhǔn)界面。
如圖4所示,西門子標(biāo)準(zhǔn)界面分為五個(gè)部分:信息區(qū)域用來顯示機(jī)床狀態(tài)等參數(shù)。對(duì)話行用來顯示操作文本等信息,這兩部分大多可默認(rèn)為西門子標(biāo)準(zhǔn)界面,不需毆計(jì),區(qū)域應(yīng)用為軟件要顯示的界面,水平軟鍵和垂直軟鍵則與軟件中的按鈕對(duì)應(yīng)。因此,嵌入凸輪軸磨削軟件分為兩部分:一是將軟件中設(shè)計(jì)的窗休嵌人到區(qū)域應(yīng)用部分,并完成窗體切換;二是將軟件中的按鈕對(duì)應(yīng)到水平軟鍵和垂直軟鍵上。
從順序控制的定義可以看出,通過將設(shè)計(jì)的軟件轉(zhuǎn)化為順序控制模式的應(yīng)用程序。能夠?qū)崿F(xiàn)上述嵌入功能。實(shí)現(xiàn)順序控制模式的轉(zhuǎn)化需要使用六個(gè)文件:regie ini,mmc.ini,programname.ini。programham-e.mdi,programname.zus,languauge.dll。其中regie.ini和mmc ini是西門子數(shù)控系統(tǒng)本身存在的文件,regie-ini用來控制應(yīng)用程序的初始化和啟動(dòng)。以及動(dòng)態(tài)鏈接庫的下載,多個(gè)應(yīng)用程序的有序運(yùn)行。它是一個(gè)控制、引導(dǎo)文件,可以用記事本編輯,嵌入設(shè)計(jì)的軟件只需在該文件的任務(wù)配置(TaskConfiguration)中添加自身的應(yīng)用程序。mmc ini也可用記事本編輯,進(jìn)行顏色、語言以及硬件配置等設(shè)定。此處大都沿用西門子的標(biāo)準(zhǔn)設(shè)定。不做修改。
Programname zus為狀態(tài)切換文件,programe.mdi為窗體列表文件,不難看出,這兩個(gè)文件用來實(shí)現(xiàn)嵌人的第一部分,languaage.dll為語言動(dòng)態(tài)鏈接庫,用來實(shí)現(xiàn)嵌入的第二部分。而programname.ini為嵌人應(yīng)用程序的引導(dǎo)文件。下面根據(jù)設(shè)計(jì)軟件(camshaft)的嵌入過程敘述以E四個(gè)文件的生成。在、oem下建立camshaft mdi和camshaft zus文件,camshaft mdi可用記事本編輯,包含子窗體名稱的列襲、子窗體的類型、預(yù)處理措施、注釋等。如:
由于窗體眾多且意義相近,這里僅列出部分示例。“logo”等為子窗體名稱,I指類型,子窗體共有6種類型,其他參數(shù)潑置為缺省值。
Camshaft zus也可用記事本編輯,它包含所有的狀態(tài)矩陣,處理所有的狀態(tài)切換,從而實(shí)現(xiàn)軟件中的窗體切換。根據(jù)OEM軟件包的規(guī)定,狀態(tài)矩陣一般是一個(gè)17×8的矩陣。每行由狀態(tài)/動(dòng)作、人口等級(jí)、水平鍵文本、垂直鍵文本、子窗體名稱、返回值、標(biāo)識(shí)符、注釋組成。由于每個(gè)矩陣意義相似,并且矩陣的3到17行意義跟第二行近似。在此僅列出置錄窗體logo所在狀態(tài)的狀態(tài)矩陣的前兩行加以說明。
第一行的[0]指狀態(tài)號(hào),036分別表示水平軟鍵和垂直軟錘文本的起始地址。與軟件的語言動(dòng)態(tài)鏈接庫對(duì)應(yīng),“logo”為此狀態(tài)下要顯示的子窗體名稱,接下來的“”是用來顯示多個(gè)窗體的,此處為空表示此狀態(tài)下僅顯示logo,“埃啊北表示返回值,最后一個(gè)0表示標(biāo)識(shí)符。這里人口等級(jí)和注釋省略。
第二行中的0表示第一個(gè)水平軟鍵,標(biāo)識(shí)符下面的1表示按下此鍵要到達(dá)的狀態(tài)。標(biāo)識(shí)符有兩種含義。用作狀態(tài)描述時(shí)指是否要保存當(dāng)前狀態(tài)下的設(shè)置(如軟鍵文本),用作行動(dòng)描述時(shí)表示要到達(dá)的狀態(tài)。這里表示在狀態(tài)0下,當(dāng)按下第一個(gè)水平軟鍵時(shí)。將跳轉(zhuǎn)到狀態(tài)1下的界面。
整個(gè)矩陣的第一列為0到16.0到7表示水平方向的8個(gè)軟鍵,8到15表示垂直方向的8個(gè)軟鍵。16表示返回鍵。這一列不需修改。
在眾多于窗體列表文件和狀態(tài)矩陣文件中。需要一個(gè)向?qū)募归_發(fā)的應(yīng)用程序能找到對(duì)應(yīng)的子窗體列表文件和狀態(tài)矩陣文件。這就是camshaft ini的作用,同樣在一、oem下建立camshaft ini,內(nèi)容分為CONTROL和DEBUG兩部分,作如下設(shè)置即可:
[CONTROL] MDILIst=camshaft mdi ControlFile=eamshaft.zus [DEBUG]部分不用設(shè)置,系統(tǒng)默認(rèn)即可。
而對(duì)于嵌入的第二部分,為了保證嵌^軟件界面語言的獨(dú)立性,同時(shí)也應(yīng)該便于修改和轉(zhuǎn)換,研究采用VC++建立語言動(dòng)態(tài)鏈接庫的方法。在VC十+中將每個(gè)狀態(tài)下各個(gè)軟鍵所對(duì)應(yīng)的文本編輯成一個(gè)RC文件,再根據(jù)RC文件,即可建立語言動(dòng)態(tài)鏈接庫。為了使regie ini能夠識(shí)別嵌^的應(yīng)用程序,需要在VB程序的PRIVATE模塊中定義一個(gè)全局變量保存應(yīng)用程序名camshaft,并將VB程序的執(zhí)行文件camshaft exe也復(fù)制到..../oem下,這樣。整個(gè)凸輪軸磨削軟件的開發(fā)便完成了。
4 凸輪軸磨削軟件的實(shí)現(xiàn)
通過凸輪軸磨削軟件的設(shè)計(jì)和順序控制模式應(yīng)用程序的轉(zhuǎn)化,實(shí)現(xiàn)了凸輪軸磨削軟件的嵌入。具備輪軸的功能,軟件運(yùn)行情況如圖5所示。
5 結(jié)束語
本文采用VB編程語言和Micwsoft Access數(shù)據(jù)庫技術(shù)編寫了凸輪軸磨削軟件.運(yùn)用VC++建立了軟件的語言動(dòng)態(tài)鏈接庫,并通過OEM軟件開發(fā)包將其嵌人到西門子840D數(shù)控系統(tǒng),達(dá)到了對(duì)數(shù)控系統(tǒng)進(jìn)行二次開發(fā)的目的.實(shí)現(xiàn)了凸輪軸的磨削,滿足了用戶的需要,可應(yīng)用到大型數(shù)控切點(diǎn)跟蹤曲軸磨床的研究中.具有非常積極的意義。
(審核編輯: 智匯胡妮)
分享