岳宇賓,韓秋實(shí),李啟光,彭寶營
(北京信息科技大學(xué) 機(jī)電工程學(xué)院,北京 100192)
基于Visual C++ 6.0的數(shù)控凸輪軸磨床工藝數(shù)據(jù)庫開發(fā)*
岳宇賓,韓秋實(shí),李啟光,彭寶營
(北京信息科技大學(xué) 機(jī)電工程學(xué)院,北京 100192)
目前,凸輪軸磨削工藝已趨于成熟,但凸輪軸磨削過程中需要考慮的參數(shù)比較多,磨削工序較為繁瑣。因此,為了使工藝人員能夠快速地選擇所需的凸輪軸磨削參數(shù),縮短凸輪軸的生產(chǎn)周期,建立一個(gè)凸輪軸磨削工藝數(shù)據(jù)庫是非常有必要的。文章介紹了基于Visual C++ 6.0開發(fā)數(shù)控凸輪軸磨床工藝數(shù)據(jù)庫,根據(jù)凸輪軸磨削工藝參數(shù),通過構(gòu)造數(shù)據(jù)庫操作函數(shù),使用ADO數(shù)據(jù)庫存取技術(shù)訪問Access數(shù)據(jù)庫,從而實(shí)現(xiàn)數(shù)控凸輪軸磨床磨削工藝參數(shù)的存儲(chǔ)和讀取。
凸輪軸磨床;工藝數(shù)據(jù)庫;Visual C++ 6.0;ADO技術(shù)
磨削加工是機(jī)械制造業(yè)重要的加工方法,大多數(shù)情況下,作為最終加工工序的磨削加工,直接決定著工件成品的質(zhì)量[1]。隨著現(xiàn)代制造技術(shù)的不斷發(fā)展,磨削加工的應(yīng)用范圍日益擴(kuò)大,對(duì)磨削加工的精度要求也越來越高。在磨削加工中如何合理選擇磨削工藝參數(shù)及系統(tǒng)可靠優(yōu)化的磨削數(shù)據(jù)一直是一個(gè)重要問題。而磨削數(shù)據(jù)庫的建立就是根據(jù)加工要求向工藝人員提供可靠的磨削數(shù)據(jù)和磨削工藝參數(shù),從而改善磨削性能,提高產(chǎn)品質(zhì)量。
用計(jì)算機(jī)處理加工數(shù)據(jù),在切削加工中最早進(jìn)行。據(jù)不完全統(tǒng)計(jì),至2003年,已有德國、美國、瑞典、英國、日本、挪威、比利時(shí)和匈牙利等12個(gè)國家建立了30多個(gè)金屬切削數(shù)據(jù)庫,提供各種形式的信息服務(wù)[2]。而在磨削加工里,由于磨削的數(shù)控化開始較晚,磨削過程中不穩(wěn)定因素較多,所以最早的磨削數(shù)據(jù)庫只能附加到切削數(shù)據(jù)庫中且數(shù)量很少[3]。專門用于磨削的數(shù)據(jù)庫國外只有2005年9月在漢諾威國際機(jī)場(chǎng)展上公開的英國智能磨削數(shù)據(jù)庫,該數(shù)據(jù)庫為智能磨削咨詢系統(tǒng)(intelligent grinding assistant簡稱IGA)的一個(gè)智能模塊,目前該IGA模塊已經(jīng)實(shí)現(xiàn)與CNC機(jī)床的共同運(yùn)作[4]。而國內(nèi)首個(gè)專門用于磨削的數(shù)據(jù)庫是鄭州磨料磨具磨削研究生研制的磨削數(shù)據(jù)庫[5]。2009年湖南大學(xué)機(jī)械與運(yùn)載工程學(xué)院國家高效磨削工程技術(shù)研究中心研發(fā)的基于數(shù)據(jù)倉庫技術(shù)的磨削數(shù)據(jù)共享平臺(tái),能夠?yàn)楦邫n特種數(shù)控機(jī)床的開發(fā)和實(shí)驗(yàn)研究提供現(xiàn)金的技術(shù)理論、方法、規(guī)范和優(yōu)化數(shù)據(jù)[6]。
凸輪軸作為汽車、內(nèi)燃機(jī)、國防等眾多行業(yè)所需的關(guān)鍵零部件,其加工的精度、效率直接影響著發(fā)動(dòng)機(jī)及相關(guān)產(chǎn)品的質(zhì)量、壽命和節(jié)能標(biāo)準(zhǔn)[7]。在數(shù)控凸輪軸磨床進(jìn)行磨削加工的過程中,所涉及到的參數(shù),目前一般是通過變量、數(shù)據(jù)文本等形式進(jìn)行數(shù)據(jù)的傳遞或保存。但是,當(dāng)所涉及的參數(shù)信息量較大,例如凸輪軸上每個(gè)凸輪的原始數(shù)據(jù),由于凸輪輪廓曲線為不規(guī)則曲線,包含大量坐標(biāo)數(shù)據(jù),即升程表數(shù)據(jù)。在這種情況下,就需要采用數(shù)據(jù)庫的方式而不適于采用文本形式。通過采用數(shù)據(jù)庫方式,不僅能夠使工藝人員輕松實(shí)現(xiàn)對(duì)數(shù)據(jù)的瀏覽、添加、編輯或刪除操作,而且軟件的可視化程度也得到了提高。
凸輪軸磨削工藝數(shù)據(jù)庫采用數(shù)據(jù)庫技術(shù),通過把凸輪軸磨削加工時(shí)所需要的加工數(shù)據(jù)整合起來,并可以通過人機(jī)接口向工藝人員提供相應(yīng)的加工信息。該數(shù)據(jù)庫模型主要包括人機(jī)接口,數(shù)據(jù)操作,數(shù)據(jù)庫接口,磨削數(shù)據(jù)庫4個(gè)模塊,結(jié)構(gòu)設(shè)計(jì)形式如圖1所示。
圖1 系統(tǒng)模型
其中,磨削數(shù)據(jù)庫主要是向用戶提供凸輪軸磨削源數(shù)據(jù);數(shù)據(jù)操作主要提供數(shù)據(jù)的增加、刪除和修改等任務(wù);數(shù)據(jù)庫接口是把應(yīng)用程序與底層數(shù)據(jù)庫分開,使用統(tǒng)一的接口進(jìn)行連接,從而使數(shù)據(jù)庫便于管理;人機(jī)接口則采用windows窗口等交互界面向用戶提供可視化服務(wù)。
通過對(duì)上述系統(tǒng)模型的分析,按照凸輪軸磨削工藝過程,將該系統(tǒng)分為數(shù)據(jù)輸入模塊,數(shù)據(jù)查詢模塊,數(shù)據(jù)管理和用戶管理四大模塊。其中,數(shù)據(jù)輸入模塊包括對(duì)刀坐標(biāo),凸輪參數(shù),凸輪軸參數(shù),砂輪設(shè)置參數(shù)和G代碼程序五部分;查詢模塊包括加工參數(shù)查詢,升程表數(shù)據(jù)查詢和加工程序查詢;數(shù)據(jù)模塊包括新建零件,刪除零件,保存零件四部分。數(shù)據(jù)庫結(jié)構(gòu)框圖如圖2所示。
圖2 系統(tǒng)整體結(jié)構(gòu)框架
(1) ADO數(shù)據(jù)庫技術(shù)簡介
Visual C++提供了多種訪問數(shù)據(jù)庫的方法,這些方法包括ODBC(開發(fā)式數(shù)據(jù)庫連接)、RDO(遠(yuǎn)程數(shù)據(jù)對(duì)象)、DA0(數(shù)據(jù)訪問對(duì)象)、0LEDB(對(duì)象連接與嵌入數(shù)據(jù)庫)和ADO(Active X數(shù)據(jù)對(duì)象)等,它們反映了Microsoft對(duì)數(shù)據(jù)庫支持的發(fā)展演化過程。本數(shù)據(jù)庫中運(yùn)用了ADO庫中的3個(gè)基本接口:_ConnectionPtr接口,_CommandPtr接口,_RecordsetPtr接口。
(2)建立凸輪軸磨削工藝參數(shù)數(shù)據(jù)表
針對(duì)凸輪軸磨削工藝過程,建立磨削工藝數(shù)據(jù)庫“DataBase.mdb”,數(shù)據(jù)庫中分別建立工藝參數(shù)表“Parameter”,凸輪輪廓坐標(biāo)數(shù)據(jù)表“升程表”和加工代碼表“G代碼”,分別用于存放磨削工藝參數(shù),凸輪升程表和G代碼,各表中設(shè)零件編號(hào)為主鍵。
(3)引入ADO類型庫
引入AD0類型庫的方法是在工程stdafx.h頭文件中添加下列代碼:
#import "C:Program FilesCommon
FilesSystem adomsado15.dll" no_namespace ename ("EOF","adoEOF")
rename("BOF","adoBOF")
指明了文件msad015.dll的具體位置。代碼rename("EOF","adoEOF")和rename("BOF","adoBOF") 將在ADO中的EOF和BOF更名為adoEOF和adoBOF,以避免與其他庫中定義的EOF沖突[8]。
(4)初始化OLE/COM庫環(huán)境
在程序初始過程中需要初始化組件,一般可以用CoInitialize(NULL);來實(shí)現(xiàn),這種方法在結(jié)束時(shí)要關(guān)閉初始化的COM,可以用語句CoUnInitialize();來實(shí)現(xiàn)[9]。在MFC中還可以采用另一種方法來實(shí)現(xiàn)初始化COM,這種方法只需要一條語句便可以自動(dòng)為我們實(shí)現(xiàn)初始化 COM和結(jié)束時(shí)關(guān)閉COM的操作,語句如下所示: AfxOleInit ();
使用方法是在工程的$App函數(shù)InitInstance()中添加如下代碼:
if (!AfxOleInit())
{
MessageBox(NULL, "OLE初始化錯(cuò)誤", "錯(cuò)誤", MB_ICONERROR);
return FALSE;
}
(5)構(gòu)造數(shù)據(jù)庫操作函數(shù)
在類的頭文件中聲明_ConnectionPtr型、_RecordsetPtr型指針以及構(gòu)造數(shù)據(jù)庫操作函數(shù),在需要操作數(shù)據(jù)庫時(shí)只需要這兩個(gè)函數(shù)即可,大大提高了代碼的復(fù)用性和程序的可讀性。
源程序代碼如下:
CString CNewCamAdoView::GetFieldValue(long index)
{
_variant_t vValue;
_variant_t vIndex;
vIndex = (long)index;
vValue = m_pRecordset→GetCollect( vIndex );
if (vValue.vt == VT_NULL)
{
return "";
}
return (LPCTSTR)(_bstr_t)vValue;
}
void CNewCamAdoView::GetRecord(const CString SQL)
{
m_pRecordset.CreateInstance("ADODB.Recordset")
m_pRecordset→Open((_variant_t)SQL,
_variant_t((IDispatch *)theApp.m_pConnection, true),adOpenStatic, adLockOptimistic, adCmdText);
對(duì)于別人對(duì)他們頻繁交往的飛短流長,她欲辨還休:“但另一方面卻又怕您以為我誤會(huì)您的意思,使您感到不安,其實(shí)以我對(duì)您崇敬愛戴之深,絕對(duì)沒有誤解您的可能,請(qǐng)絕對(duì)放心好了?!?/p>
}
通過GetFieldValue(long index)函數(shù)可以獲取當(dāng)前記錄指針?biāo)傅淖侄沃担缓笳{(diào)用GetRecord(const CString SQL)執(zhí)行SQL語句從而完成對(duì)數(shù)據(jù)庫的操作。
PMAC磨床數(shù)控系統(tǒng)中的應(yīng)用
4.1 凸輪軸磨削工藝數(shù)據(jù)庫應(yīng)用界面
本系統(tǒng)是基于Access2003數(shù)據(jù)庫開發(fā)設(shè)計(jì)的,在安裝好Microsoft Office Access后就可以使用,相對(duì)于其他類型的數(shù)據(jù)庫,少去了系統(tǒng)設(shè)置的環(huán)節(jié),使用起來較為方便。
數(shù)據(jù)庫應(yīng)用界面打開后包含有三個(gè)區(qū)域:參數(shù)輸入?yún)^(qū),參數(shù)查看區(qū)和文件操作區(qū)。參數(shù)輸入?yún)^(qū)和文件操作區(qū)能實(shí)現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)的增刪,編輯等操作,參數(shù)查看區(qū)可查看每一個(gè)加工零件保存的參數(shù)。界面運(yùn)行如圖3所示:
圖3 凸輪軸磨削工藝數(shù)據(jù)庫主界面
4.2 凸輪軸磨削工藝數(shù)據(jù)庫在PMAC磨床數(shù)控系
目前,國內(nèi)外針對(duì)專用磨床的數(shù)控系統(tǒng)還不是很多,具有配套磨削工藝數(shù)據(jù)庫的系統(tǒng)則更少。凸輪軸磨削工藝數(shù)據(jù)庫正是針對(duì)PMAC磨床數(shù)控系統(tǒng)而開發(fā)的. 在如下方法中分別打開PMAC,調(diào)用單個(gè)零件數(shù)據(jù)和關(guān)閉PMAC,通過這個(gè)方法可以實(shí)現(xiàn)磨削工藝參數(shù)的即時(shí)調(diào)用。
主要代碼如下[10]:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{……
if(!OpenPmacDevice(0))
{
MessageBox("主機(jī)無法與PMAC建立通訊!",
"警 告",MB_ICONEXCLAMATION);
}
……
}
void CManualDlg::OnDonwnLoad()
{
PmacReady=OpenPmacDevice(0);
if(PmacReady==1)
{
char* buf;
buf=(LPTSTR)(LPCTSTR)CStrCam_File;
PmacDownloadFile(0,buf);
ClosePmacDevice(0);
}
else
MessageBox("通訊失?。?,"提示");
}
BOOL CMainFrame::DestroyWindow()
{ ……
KillTimer(1);
ClosePmacDevice(0);
……
}
基于Visual C++ 6.0的數(shù)控凸輪軸磨床工藝數(shù)據(jù)庫開發(fā),有效解決了凸輪軸磨削工藝數(shù)據(jù)的管理、調(diào)用、瀏覽、增刪、編輯等操作,該系統(tǒng)適用于國內(nèi)各大凸輪軸磨削數(shù)控系統(tǒng),運(yùn)用該系統(tǒng)可以進(jìn)行凸輪軸磨床人機(jī)界面的開發(fā),通過調(diào)用數(shù)據(jù)庫從而方便工藝人員進(jìn)行凸輪軸磨削加工,提高了加工效率。
[1] 張曉紅.凸輪軸數(shù)控磨削工藝智能專家系統(tǒng)的研究及軟件開發(fā)[D].長沙:湖南大學(xué),2010.
[2]劉戰(zhàn)強(qiáng),黃傳真,萬熠,等.切削數(shù)據(jù)庫研究現(xiàn)狀與發(fā)展[J].計(jì)算機(jī)集成制造系統(tǒng)-CIMS,2003(9):937-973.
[3]楊佩旋,王成勇.磨削數(shù)據(jù)庫的研究現(xiàn)狀與發(fā)展[J].精密制造與自動(dòng)化,2008(3):33-36.
[4] R.Cai,M.N.Morgan.Design and implementation of an intelligent grinding assitant system[J].Abrsive Technology, 2007,1(1).
[5]吳花秀.《磨削數(shù)據(jù)庫》通過驗(yàn)收[J].工具技術(shù),1977,1(97):33.
[6]彭思為.基于自適應(yīng)控制的智能磨削數(shù)據(jù)庫研究[D].湖南大學(xué),2011.
[7] 鄧朝暉,唐浩,劉偉,等.凸輪軸數(shù)控磨削工藝智能應(yīng)用系統(tǒng)研究與開發(fā)[J].計(jì)算機(jī)集成制造系統(tǒng),2012(8):1846-1853.
[8]謝賢芳,古萬榮.零基礎(chǔ)學(xué)Visual C++(第三版)[M].北京:機(jī)械工業(yè)出版社,2012.
[9]王維玉. Visual C++6.0高級(jí)編程技術(shù)精粹,2008.
[10] PMAC用戶手冊(cè).1999.
(編輯 李秀敏)
The Development of CNC Camshaft Grinder Process Database Base on Visual C++ 6.0
YUE Yu-bin,HAN Qiu-shi,LI Qi-guang,PENG Bao-ying
(College of Mechanical Engineering, Beijing Information Science & Technology University, Beijing 100192, China)
At present, camshaft grinding process has become mature, but grinding process needs to consider many parameters, and the processing is cumbersome. Therefore, in order to make the staff select the camshaft grinding parameters more quickly, shorten the production cycle of a camshaft, to establish a camshaft grinding process database is very necessary. This article introduces how to develop the CNC camshaft grinder process database based on the Visual C++ 6.0 development, according to the cam shaft grinding process parameters, through the use of ADO database access technology to access to Access database, so as to achieve the storage and reading of the camshaft grinding parameters.
camshaft grinder ;craft database;Visual C++6.0;ADO
1001-2265(2014)07-0117-03
10.13462/j.cnki.mmtamt.2014.07.034
2013-11-14;
2013-12-04
國家自然基金資助項(xiàng)目(51375056) ;北京市自然科學(xué)基金重點(diǎn)項(xiàng)目(KZ201211232039);北京市高等學(xué)校人才強(qiáng)教PHR201106132)
岳宇賓(1986—),男,鄭州人,北京信息科技大學(xué)碩士研究生,研究方向?yàn)橹悄芑c數(shù)字化控制,(E-mial)yueyubin86617@126.com;韓秋實(shí)(1956—),男,吉林省吉林市人,北京信息科技大學(xué)教授、博士生導(dǎo)師,主要從事數(shù)字化制造和智能化制造等研究。
TH162;TG595
A