《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 嵌入式磨削加工主動(dòng)測(cè)量?jī)x數(shù)據(jù)管理技術(shù)研究
嵌入式磨削加工主動(dòng)測(cè)量?jī)x數(shù)據(jù)管理技術(shù)研究
來(lái)源:電子技術(shù)應(yīng)用2013年第8期
祁繼超,張琳娜,鄭 鵬,趙鳳霞
鄭州大學(xué) 機(jī)械工程學(xué)院,河南 鄭州450001
摘要: 針對(duì)嵌入式磨削加工主動(dòng)測(cè)量控制系統(tǒng)的功能要求,提出了應(yīng)用數(shù)據(jù)庫(kù)對(duì)系統(tǒng)中大量數(shù)據(jù)進(jìn)行管理的方案。對(duì)WinCE系統(tǒng)下常用嵌入式數(shù)據(jù)庫(kù)的存取性能做了對(duì)比測(cè)試,并最終確定選用SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)管理。結(jié)合SQLite數(shù)據(jù)庫(kù)在磨削加工主動(dòng)測(cè)量控制系統(tǒng)中的應(yīng)用,給出了磨削加工主動(dòng)測(cè)量?jī)x的數(shù)據(jù)庫(kù)結(jié)構(gòu)及其在Visual Studio 2008集成開(kāi)發(fā)環(huán)境中的實(shí)現(xiàn)過(guò)程。研究結(jié)果表明,此方案的設(shè)計(jì)能夠滿(mǎn)足磨削加工主動(dòng)測(cè)量?jī)x對(duì)數(shù)據(jù)存取的實(shí)時(shí)性與一致性需求,對(duì)于磨削加工主動(dòng)測(cè)量?jī)x的研究和發(fā)展有著重要意義。
中圖分類(lèi)號(hào): TH705
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)08-0007-03
The research of data management technology in embedded grinding active measuring instrument
Qi Jichao,Zhang Linna,Zheng Peng,Zhao Fengxia
College of Mechanical Engineering, Zhengzhou University, Zhengzhou 450001,China
Abstract: For functional requirement of the embedded active measurement control system in grinding processing, this paper proposes a solution that uses database to manage large amounts of data in the system. Through performance comparison test of commonly used embedded database under the WinCE system, this article ultimately selects SQLite database for data management. Combined with SQLite database application in the initiative measurement control system of grinding, the database structure of grinding processing active measuring instrument and its implementation process in the Visual Studio 2008 integrated development environment are given. The research results show that this plan can meet the requirements of the real-time and consistency for data access, and will have an important significance on grinding processing active measuring instrument’s research and development.
Key words : grinding active measuring instrument;data management technology;WinCE;SQLite

    隨著工業(yè)技術(shù)現(xiàn)代化的不斷發(fā)展,工業(yè)生產(chǎn)對(duì)設(shè)備的加工精度、加工效率和穩(wěn)定性提出了更高的要求,磨削加工擔(dān)負(fù)著零件精密表面的最終加工工序,其精度對(duì)機(jī)械產(chǎn)品的質(zhì)量有著直接影響。主動(dòng)測(cè)量技術(shù)在磨削加工過(guò)程中的應(yīng)用能夠改善傳統(tǒng)的磨削加工產(chǎn)品一致性差、質(zhì)量不穩(wěn)定、加工效率低等缺點(diǎn),滿(mǎn)足人們對(duì)產(chǎn)品高精度、高品質(zhì)、高一致性的需求。隨著嵌入式系統(tǒng)硬件平臺(tái)的日趨強(qiáng)大及其相對(duì)于工控板低成本、低功耗的優(yōu)勢(shì),基于嵌入式的磨削加工主動(dòng)測(cè)量?jī)x的競(jìng)爭(zhēng)優(yōu)勢(shì)日益明顯,擁有良好的市場(chǎng)前景。為此在對(duì)現(xiàn)有磨床主動(dòng)測(cè)量?jī)x的理論與應(yīng)用進(jìn)行深入研究的基礎(chǔ)上,開(kāi)發(fā)了基于WinCE的嵌入式多功能磨削加工主動(dòng)測(cè)量控制系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖1所示。

    在系統(tǒng)工作過(guò)程中,需要對(duì)大量數(shù)據(jù)進(jìn)行實(shí)時(shí)的存取和處理。目前,國(guó)內(nèi)自主研發(fā)的主動(dòng)測(cè)量?jī)x的數(shù)據(jù)管理大都采用基于文件系統(tǒng)的存儲(chǔ)結(jié)構(gòu),由用戶(hù)直接對(duì)記錄所在的文件進(jìn)行操作,I/O開(kāi)銷(xiāo)較大,同時(shí)由于應(yīng)用程序是以獨(dú)占方式打開(kāi)數(shù)據(jù)文件,數(shù)據(jù)的共享性和應(yīng)用軟件的可重用性較差。而通過(guò)數(shù)據(jù)庫(kù)系統(tǒng)來(lái)管理數(shù)據(jù)的方式可以較好地解決這些問(wèn)題?;跀?shù)據(jù)庫(kù)系統(tǒng)管理數(shù)據(jù)的方式,數(shù)據(jù)和程序相互獨(dú)立,通過(guò)事務(wù)進(jìn)行調(diào)度與并發(fā)控制,可有效地對(duì)數(shù)據(jù)進(jìn)行存取、查詢(xún)等共享操作,同時(shí)借助于數(shù)據(jù)庫(kù)所具有的安全性檢驗(yàn)、完整性檢查等多種安全措施,可確保系統(tǒng)具有較好的整體性能。為此,本文提出了應(yīng)用嵌入式數(shù)據(jù)庫(kù)對(duì)磨削加工主動(dòng)測(cè)量控制系統(tǒng)中的數(shù)據(jù)進(jìn)行管理的方案。
1 嵌入式數(shù)據(jù)庫(kù)方案設(shè)計(jì)
    嵌入式數(shù)據(jù)庫(kù)是一種具備了基本數(shù)據(jù)庫(kù)特性的數(shù)據(jù)文件,通常是與嵌入式操作系統(tǒng)及具體的應(yīng)用集成在一起,無(wú)需獨(dú)立運(yùn)行數(shù)據(jù)庫(kù)引擎,由程序直接調(diào)用相應(yīng)的API就可實(shí)現(xiàn)對(duì)數(shù)據(jù)的存取操作。WinCE系統(tǒng)下比較常用的兩種嵌入式數(shù)據(jù)庫(kù)SQLite與SQLCE的存取性能對(duì)比結(jié)果如圖2、圖3所示。

    圖2是向兩種數(shù)據(jù)庫(kù)中插入數(shù)據(jù)時(shí)的速度對(duì)比測(cè)試。測(cè)試時(shí)分別向兩種數(shù)據(jù)庫(kù)中插入了5 000條數(shù)據(jù),經(jīng)過(guò)多次測(cè)試,測(cè)得SQLite插入5 000條數(shù)據(jù)的用時(shí)在4 500 ms~5 000 ms范圍,而SQLCE在23 000 ms~25 000 ms范圍,這里給出了其中一次測(cè)試的結(jié)果。圖3給出了在兩種數(shù)據(jù)庫(kù)中對(duì)tabel2、tabel3表進(jìn)行聯(lián)合查詢(xún)時(shí)的速度對(duì)比測(cè)試結(jié)果,測(cè)試之前向每個(gè)數(shù)據(jù)庫(kù)的tabel2,tabel3表中都插入了25 000條數(shù)據(jù)。通過(guò)對(duì)比結(jié)果可以看出,WinCE系統(tǒng)下SQLite存取數(shù)據(jù)的速度是SQLCE的4~5倍。磨削加工主動(dòng)測(cè)量?jī)x是一種在線、實(shí)時(shí)、動(dòng)態(tài)檢測(cè)的高精度測(cè)量控制儀器,對(duì)數(shù)據(jù)存取和處理的速度要求較高,因此系統(tǒng)選用SQLite構(gòu)建一個(gè)小型的嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)對(duì)數(shù)據(jù)進(jìn)行管理。
2 主動(dòng)測(cè)量?jī)x的數(shù)據(jù)庫(kù)結(jié)構(gòu)
    磨削加工主動(dòng)測(cè)量?jī)x軟件系統(tǒng)包括測(cè)量、設(shè)置和調(diào)整3個(gè)功能模塊。測(cè)量模塊主要用于測(cè)量數(shù)據(jù)處理以及處理結(jié)果的實(shí)時(shí)顯示;設(shè)置模塊負(fù)責(zé)系統(tǒng)大量測(cè)量參數(shù)的設(shè)定;調(diào)整模塊根據(jù)實(shí)際情況對(duì)設(shè)定的參數(shù)進(jìn)行微調(diào),以滿(mǎn)足系統(tǒng)需要?;赪inCE操作系統(tǒng)和SQLite數(shù)據(jù)庫(kù)構(gòu)建的磨削加工主動(dòng)測(cè)量?jī)x軟件系統(tǒng)結(jié)構(gòu)如圖4所示。

    為了滿(mǎn)足磨削加工現(xiàn)場(chǎng)對(duì)主動(dòng)測(cè)量?jī)x的不同需求,嵌入式磨削加工主動(dòng)測(cè)量控制系統(tǒng)的功能應(yīng)包括對(duì)加工工件尺寸電感信號(hào)的采集、處理和顯示,以及對(duì)機(jī)床進(jìn)給機(jī)構(gòu)的控制。為了避免因采用一個(gè)數(shù)據(jù)文件存儲(chǔ)所有的數(shù)據(jù)信息而造成數(shù)據(jù)存取速度上的減慢,系統(tǒng)采用分割文件的形式來(lái)存放各部分?jǐn)?shù)據(jù),通過(guò)對(duì)數(shù)據(jù)庫(kù)中相應(yīng)數(shù)據(jù)表的操作完成各部分?jǐn)?shù)據(jù)的實(shí)時(shí)存取和處理。部分?jǐn)?shù)據(jù)表的主要結(jié)構(gòu)如表1、表2所示。


    系統(tǒng)開(kāi)機(jī)后查詢(xún)上次關(guān)機(jī)時(shí)數(shù)據(jù)采集表內(nèi)存儲(chǔ)的數(shù)據(jù),通過(guò)“GJLX”、“CTS”等字段的數(shù)據(jù)控制相應(yīng)測(cè)頭對(duì)工件尺寸電感信號(hào)進(jìn)行采集。測(cè)量模塊下調(diào)用數(shù)據(jù)處理函數(shù)并結(jié)合數(shù)據(jù)處理表內(nèi)相關(guān)測(cè)量參數(shù)對(duì)采樣數(shù)據(jù)進(jìn)行處理,并將數(shù)據(jù)處理結(jié)果實(shí)時(shí)地顯示在測(cè)量界面上。根據(jù)功能要求,通過(guò)設(shè)置、調(diào)整模塊對(duì)數(shù)據(jù)處理表各項(xiàng)測(cè)量參數(shù)進(jìn)行修改、設(shè)定。
3 主動(dòng)測(cè)量?jī)x數(shù)據(jù)庫(kù)的設(shè)計(jì)
    SQLite是一款輕量的、開(kāi)源的、遵守ACID的關(guān)系型數(shù)據(jù)庫(kù)。SQLite與傳統(tǒng)數(shù)據(jù)庫(kù)相比,其系統(tǒng)開(kāi)銷(xiāo)小,底層控制能力強(qiáng),具有更好的實(shí)時(shí)性。SQLite能夠高效地利用嵌入式系統(tǒng)的有限資源,提高數(shù)據(jù)的存取速度,增強(qiáng)系統(tǒng)的安全性。
    主動(dòng)測(cè)量?jī)x中對(duì)數(shù)據(jù)庫(kù)的主要操作如下。
    (1)打開(kāi)數(shù)據(jù)庫(kù)
    string connStr="datasource="+ DbName +" ";
    SQLiteConnection  conn=new  SQLiteConnection(connStr);
    conn.Open();
    (2)執(zhí)行SQL
    string sql=" ";
    SQLiteCommand  cmd=new  SQLiteCommand(sql,conn);
    SQLiteDataReader  reader=cmd.ExecuteReader();
    reader.Read();
    (3)關(guān)閉數(shù)據(jù)庫(kù)
    conn.close();
3.1 測(cè)量模塊數(shù)據(jù)庫(kù)操作
    軟件系統(tǒng)測(cè)量模塊應(yīng)用WinCE系統(tǒng)下的多線程技術(shù)實(shí)現(xiàn)前臺(tái)界面顯示、操作與后臺(tái)數(shù)據(jù)處理的并發(fā)執(zhí)行,同時(shí)根據(jù)需要將能夠反映加工過(guò)程的各信號(hào)控制點(diǎn)間數(shù)據(jù)實(shí)時(shí)地存入公共的數(shù)據(jù)緩沖區(qū),并通過(guò)數(shù)據(jù)保存函數(shù)將公共緩沖區(qū)的數(shù)據(jù)存儲(chǔ)到嵌入式數(shù)據(jù)庫(kù)SQLite 中,方便用戶(hù)查看加工過(guò)程的歷史曲線。子線程創(chuàng)建過(guò)程為:
    Thread th=new Thread(DoWork);//創(chuàng)建線程
    th.IsBackground = true; //定義為后臺(tái)線程
    th.Start();//啟動(dòng)線程
其中子線程DoWork方法內(nèi)完成采樣數(shù)據(jù)的處理與實(shí)時(shí)存儲(chǔ),而主線程負(fù)責(zé)整個(gè)用戶(hù)界面的顯示與操作。
    同時(shí),為了防止向數(shù)據(jù)處理表table2中插入數(shù)據(jù)時(shí)因數(shù)據(jù)采集表table1中沒(méi)有相應(yīng)的工件類(lèi)型記錄而導(dǎo)致系統(tǒng)功能出錯(cuò),創(chuàng)建數(shù)據(jù)庫(kù)時(shí)需要在table1和table2這兩個(gè)表之間強(qiáng)制實(shí)施一個(gè)外鍵約束。這樣當(dāng)企圖往table2表中插入一行table1中無(wú)對(duì)應(yīng)數(shù)據(jù)的記錄時(shí)就會(huì)失敗,此時(shí)系統(tǒng)會(huì)給出提示,阻止用戶(hù)進(jìn)行錯(cuò)誤的操作。實(shí)現(xiàn)過(guò)程為:
    CREATE TABLE table1(id INTEGER PRIMARY KEY,……);
    CREATE TABLE table2(id INTEGER,F(xiàn)OREIGN KEY(GJLX) REFERENCES table1(id));
3.2 設(shè)置、調(diào)整模塊數(shù)據(jù)庫(kù)操作
    在磨削加工主動(dòng)測(cè)量?jī)x的工作過(guò)程中經(jīng)常需要通過(guò)設(shè)置、調(diào)整功能模塊對(duì)各項(xiàng)測(cè)量參數(shù)進(jìn)行修改、設(shè)定并將這些數(shù)據(jù)實(shí)時(shí)地存儲(chǔ)到數(shù)據(jù)庫(kù)中。為了避免代碼重用,可以通過(guò)向數(shù)據(jù)訪問(wèn)層同一程序模塊傳遞不同參數(shù)進(jìn)行相關(guān)數(shù)據(jù)操作的區(qū)分。下面以系統(tǒng)工件定義模塊中對(duì)不同類(lèi)型工件相應(yīng)測(cè)量項(xiàng)目類(lèi)型的設(shè)置為例來(lái)說(shuō)明對(duì)數(shù)據(jù)庫(kù)操作的具體過(guò)程。設(shè)置功能模塊下工件定義界面如圖5所示。

 

 

    系統(tǒng)可以實(shí)現(xiàn)對(duì)6種類(lèi)型工件磨削加工過(guò)程的主動(dòng)測(cè)量控制。對(duì)相應(yīng)類(lèi)型工件的某一項(xiàng)目類(lèi)型進(jìn)行修改后,點(diǎn)擊確定按鈕調(diào)用數(shù)據(jù)訪問(wèn)層同一個(gè)update函數(shù),通過(guò)傳遞不同的_GJ、id參數(shù)值實(shí)現(xiàn)對(duì)不同項(xiàng)目類(lèi)型的實(shí)時(shí)存儲(chǔ)。如:對(duì)“工件B”的項(xiàng)目1類(lèi)型進(jìn)行修改后點(diǎn)擊確定按鈕調(diào)用update(“內(nèi)徑”,“工件B”,1),而對(duì)“工件A”的項(xiàng)目2類(lèi)型進(jìn)行修改后點(diǎn)擊確定按鈕調(diào)用update(“外徑”,“工件A”,2),并實(shí)時(shí)更新數(shù)據(jù)庫(kù)相應(yīng)記錄。update函數(shù)部分代碼如下:
public void update(string _str,string _GJ,int id)
    {
    //創(chuàng)建數(shù)據(jù)庫(kù)連接函數(shù)
    switch (id)
    {
    case 1:sql="update formula set XMLX1='" + _str +
"'where GJ='" + _GJ + "'"; break;
    case 2:sql="update formula set XMLX2='" + _str +
"'where GJ='" + _GJ + "'"; break;
      ……
    default: break;
    }
    //執(zhí)行相應(yīng)sql語(yǔ)句對(duì)相應(yīng)參數(shù)進(jìn)行設(shè)置
}

     從圖6可以看出,磨削完成后工件尺寸的加工余量與預(yù)先設(shè)定的到尺寸值近似相等,其中誤差是由零位尺寸與零位電壓間轉(zhuǎn)換引起的。因此,磨削加工主動(dòng)測(cè)量?jī)x能夠按照要求將數(shù)據(jù)處理結(jié)果實(shí)時(shí)地存儲(chǔ)到數(shù)據(jù)庫(kù)中,滿(mǎn)足了磨削加工主動(dòng)測(cè)量?jī)x對(duì)數(shù)據(jù)存取的實(shí)時(shí)性與一致性要求,驗(yàn)證了方案的可行性。
    本文利用嵌入式SQLite數(shù)據(jù)庫(kù)體積小、處理速度快的優(yōu)勢(shì),應(yīng)用SQLite對(duì)嵌入式磨削加工主動(dòng)測(cè)量控制系統(tǒng)中的大量數(shù)據(jù)進(jìn)行管理,給出了Visual Studio 2008集成開(kāi)發(fā)環(huán)境中嵌入磨削加工主動(dòng)測(cè)量?jī)x數(shù)據(jù)庫(kù)管理系統(tǒng)的具體實(shí)現(xiàn)過(guò)程,為基于WinCE的磨削加工主動(dòng)測(cè)量控制系統(tǒng)的開(kāi)發(fā)提供了技術(shù)支持,對(duì)嵌入式磨削加工主動(dòng)測(cè)量?jī)x的進(jìn)一步發(fā)展具有重要意義。
參考文獻(xiàn)
[1] 王鴻偉.磨加工過(guò)程中的主動(dòng)測(cè)量?jī)x[J].軸承,2004(4):32-34.
[2] 郭寒軍.嵌入式智能主動(dòng)測(cè)量?jī)x的研究與開(kāi)發(fā)[D].無(wú)錫:江南大學(xué),2008.
[3] 周東升,吳彬彬.基于WinCE的嵌入式數(shù)據(jù)庫(kù)研究[J].軟件導(dǎo)刊,2011,10(4):154-156.
[4] 韓善鋒,曹鳳海,易昌華.SQLite數(shù)據(jù)庫(kù)在嵌入式程序開(kāi)發(fā)中的應(yīng)用[J].物探裝備,2011,21(3):170-173,178.
[5] 蔣晶,郝繼飛,于平.SQLite在嵌入式系統(tǒng)Wince中的應(yīng)用[J].微型機(jī)與應(yīng)用,2011,30(14):82-83.
[6] 王小科,徐薇.C#從入門(mén)到精通[M].北京:清華大學(xué)出版社,2010.
[7] 尹麗娜,汪琦.基于嵌入式數(shù)據(jù)庫(kù)SQLITE的采煤機(jī)智能監(jiān)控系統(tǒng)[J].煤礦機(jī)械,2011,32(12):243-244.
[8] 葉子,許家昌.嵌入式WinCE多線程編程研究與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2010(01):45-46.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。