Design and Realization of the Online Detection System
for Large Diameter Work Pieces
代永俊 李欽奉 蘇世杰 錢慧潔
(江蘇科技大學(xué)機械工程學(xué)院,江蘇 鎮(zhèn)江 212003)
大直徑工件在線檢測系統(tǒng)的設(shè)計與實現(xiàn)
Design and Realization of the Online Detection System
for Large Diameter Work Pieces
代永俊李欽奉蘇世杰錢慧潔
(江蘇科技大學(xué)機械工程學(xué)院,江蘇 鎮(zhèn)江212003)
摘要:針對大直徑工件的幾何誤差和外部尺寸的檢測,采用Microsoft Visual Studio.Net 2010為開發(fā)平臺,設(shè)計了大直徑工件在線檢測系統(tǒng)。通過計算機、傳感器以及數(shù)控立車三者之間相互通信以及不同測量項目對應(yīng)數(shù)控程序的自動生成,實現(xiàn)固定在數(shù)控立車刀架上的高精度激光位移傳感器的數(shù)據(jù)采集。測量結(jié)束后調(diào)用Matlab優(yōu)化工具箱模塊對測量數(shù)據(jù)進行處理,從而保證了計算結(jié)果的準確性。經(jīng)實際應(yīng)用得出,該套檢測系統(tǒng)可應(yīng)用于大直徑工件的多項目測量,實現(xiàn)了在線檢測的功能,具有較高精度。
關(guān)鍵詞:大直徑工件在線檢測Matlab優(yōu)化檢測系統(tǒng)
Abstract:For detecting the geometric error and external dimensions for large diameter work pieces, with Microsoft Visual Studio.Net 2010 as the developing platform, the online detection system for large diameter work pieces is designed. Through achieving the inter-communication among computer, sensor, and CNC vertical lathe, and automatic generation of NC program in different measurement project, thus the data acquisition of high precision laser displacement sensor fixed on the turret of vertical lathe is implemented. After measurement completed, the measured data are processed by calling Matlab optimization toolbox module, to ensure the accuracy of the calculation results. The practical application shows that the detection system can be applied in multiple project measurement of large diameter work pieces, it implements online detection and offers higher accuracy.
Keywords:Large diameter work piecesOnline detectionMatlab optimizationDetection system
0引言
目前,工業(yè)上對于工件檢測大多是通過品質(zhì)檢測人員使用傳統(tǒng)的測量方法來完成。隨著大型機械設(shè)備向著復(fù)雜化、精密化方向發(fā)展,對于這些設(shè)備所需要的大尺寸工件的檢測要求也越來越嚴格。采用人工進行大直徑工件品質(zhì)檢測存在著不足,主要體現(xiàn)在檢測效率低、檢測一致性差、檢測結(jié)果容易受檢測人員的主觀因素影響。特別是當(dāng)大直徑工件在移至專用檢測工作臺時,不僅會產(chǎn)生二次定位誤差,而且效率低,甚至可能對工件造成損壞[1]。隨著工業(yè)控制技術(shù)的迅速發(fā)展,工業(yè)自動化控制技術(shù)和非接觸檢測技術(shù)越來越成熟。與傳統(tǒng)的品質(zhì)檢測相比,自動控制和非接觸檢測技術(shù)具有諸多優(yōu)勢,可以做到實時在線、非接觸、無損和高精度的檢測,省時省力,并可以避免測量過程中檢測人員主觀因素造成的錯誤。對于工件的在線檢測系統(tǒng)開發(fā),國內(nèi)一些專家學(xué)者也做過研究。劉川、季洪彪開發(fā)了中小型金屬工件在線檢測系統(tǒng)[2];馮占軍、王磊等研究了基于激光傳感器的工件外徑尺寸檢測系統(tǒng)[3];賁春雨、鄭宇等研究了大尺寸直徑非接觸光電檢測系統(tǒng)[4]。上述研究的系統(tǒng)都存在一定的局限性。
本文開發(fā)了一種大直徑工件在線檢測系統(tǒng)。該系統(tǒng)將數(shù)控立車、高精度激光傳感器以及計算機串聯(lián)在一起,并融合了Matlab的計算,不僅能夠完成大直徑工件的多種檢測項目,還能使整個系統(tǒng)達到實時在線、非接觸檢測。
1檢測系統(tǒng)的硬件設(shè)計
大直徑工件在線檢測系統(tǒng)硬件原理圖如圖1所示,主要由以下部分組成。
① 數(shù)控立車,如圖2所示,實現(xiàn)加工、檢測的基礎(chǔ),測量過程中大直徑工件與激光位移傳感器的運動都是由機床本體驅(qū)動的。
② 激光位移傳感器,采用的是KEYENCE開發(fā)的CMOS激光位移傳感器IL-065,它的測量范圍為20 mm,基準距離為65 mm,顯示分辨率為2 μm,檢測性能穩(wěn)定。
③ 數(shù)控系統(tǒng),采用西門子802d SL數(shù)控系統(tǒng),使用DIN 或ISO標準編程,具有如下優(yōu)點:易于操作使用、高可靠性、適用于工業(yè)環(huán)境、控制系統(tǒng)結(jié)構(gòu)緊湊、布線簡單、抗干擾能力強、模塊化設(shè)計可根據(jù)需求提供各種組合[5]。
④ 計算機,作為整個系統(tǒng)的載體,與數(shù)控立車、激光位移傳感器進行通信,完成發(fā)送或獲取有效數(shù)據(jù)。

圖1 在線檢測系統(tǒng)硬件原理圖

圖2 數(shù)控立車簡圖
2檢測系統(tǒng)軟件設(shè)計及開發(fā)
大直徑工件在線檢測系統(tǒng)的設(shè)計目標如下。
① 實現(xiàn)測量參數(shù)管理,主要包括待加工工件的種類及尺寸參數(shù)、數(shù)控立車參數(shù)以及傳感器參數(shù)。對這些參數(shù)建立數(shù)據(jù)庫,為后續(xù)檢測做準備。
② 實現(xiàn)測量項目管理,需要對加工工件外部尺寸和幾何公差進行檢測,將其進行統(tǒng)一管理,方便生成數(shù)控測量程序。
③ 實現(xiàn)數(shù)控程序管理,根據(jù)輸入的工件測量參數(shù)、測量項目自動生成數(shù)控測量程序,為發(fā)送模塊做好數(shù)據(jù)準備。數(shù)控程序發(fā)送模塊包括串口設(shè)置和測量程序發(fā)送兩部分。前者主要設(shè)置與機床進行串口通信的基本參數(shù),后者負責(zé)將生成的測量文件通過串口傳輸至數(shù)控系統(tǒng)。
④ 系統(tǒng)數(shù)據(jù)庫,保存采集得到的數(shù)據(jù)文件、數(shù)據(jù)處理結(jié)果、相應(yīng)的測量參數(shù)以及數(shù)控程序。
根據(jù)上述目標設(shè)計的控制系統(tǒng)總體結(jié)構(gòu)如圖3所示。

圖3 在線檢測系統(tǒng)總體結(jié)構(gòu)
根據(jù)在線檢測系統(tǒng)的結(jié)構(gòu),系統(tǒng)的具體流程如圖4所示。

圖4 系統(tǒng)流程圖
數(shù)控程序的生成是整個在線檢測系統(tǒng)的關(guān)鍵部分。對于不同的測量項目和測量參數(shù),數(shù)控程序會有所不同,但是由于不同測量項目的數(shù)控程序格式一致,可能會有相同的部分。根據(jù)這種情況,在線檢測系統(tǒng)在處理數(shù)控程序生成時,將程序分成程序頭、主程序、程序尾三部分進行處理,最后將三個部分合并,形成總的數(shù)控程序。對于三部分程序分別建立三個模板文件,保存至相應(yīng)目錄,模板文件中有可替換的關(guān)鍵字,在生成數(shù)控程序時,根據(jù)測量項目和測量參數(shù)調(diào)用模板文件并將關(guān)鍵字替換,生成相應(yīng)的數(shù)控程序。
不同的工件和不同的測量項目,測量的起始點會有所不同,對于程序頭模板,將起始坐標作為關(guān)鍵字并替換生成新的程序頭文件。在起始點坐標確定后,根據(jù)不同的測量項目,傳感器移動方向、移動距離、停頓時間以及M指令是一個重復(fù)的過程,可以通過循環(huán)程序?qū)⑸鲜龈麝P(guān)鍵字進行替換,生成新的主程序文件。最后在整個工件測量完成時,傳感器停放位置等作為關(guān)鍵字進行替換,完成新的程序尾文件。由此,將三個新文件在另一個文件里合并,整個數(shù)控程序完成。下面給出主程序模板文件。
G04U%time%
∥停頓時間
M56M
∥指令執(zhí)行
X%coordinatex%Y%coordinatey%Z%coordinatez%
∥傳感器移動坐標
系統(tǒng)通信主要包括三部分,分別是計算機與傳感器、計算機與數(shù)控系統(tǒng)以及傳感器與數(shù)控系統(tǒng)。以下具體介紹三部分通信的內(nèi)容。
傳感器控制器的接觸端子與數(shù)控立車的PLC某一繼電器觸點連接,數(shù)控系統(tǒng)需要在內(nèi)部PLC增加特殊的M指令。該M指令執(zhí)行時,控制PLC的某一輸出繼電器觸點閉合。在數(shù)控程序運動到指定的待測點時,便執(zhí)行M指令。當(dāng)該M指令執(zhí)行時,數(shù)控系統(tǒng)即通過內(nèi)部PLC對應(yīng)的輸出繼電器觸點向傳感器控制器發(fā)出觸發(fā)信號,控制傳感器即進行一次采樣,如圖5所示。

圖5 M指令的執(zhí)行過程
傳感器控制器的控制端子通過RS-232轉(zhuǎn)USB與計算機進行連接。為了能將傳感器采集的數(shù)據(jù)發(fā)送給Microsoft Visual Studio.Net 2010編寫的系統(tǒng)控制軟件中,使用Microsoft Visual Studio.Net 2010提供的串口通信控件SerialPort。在程序中將SerialPort的各個參數(shù)設(shè)置成與傳感器和計算機之間連接的串口的各個參數(shù)相同,這樣就完成了兩者之間的通信。在完成通信后,SerialPort需要發(fā)送一串特定的字符串,才能完成對傳感器的測量數(shù)據(jù)進行提取,具體程序如下。
SerialPort1.RtsEnable = True
∥啟用請求發(fā)送
SerialPort1.DtrEnable = True
∥True接就緒
tmpByte(0) = 83
tmpByte(1) = 82
…
tmpByte(10) = 10
SerialPort1.Write(tmpByte, 0, 10)
∥發(fā)指令
本文采用的數(shù)控立車的數(shù)控系統(tǒng)為西門子802d SL,數(shù)控系統(tǒng)與計算機之間進行數(shù)據(jù)通信是在線檢測的基礎(chǔ)[6]。同樣,用RS-232轉(zhuǎn)USB將數(shù)控立車與計算機進行硬件連接,在程序中繼續(xù)添加SerialPort控件并進行相應(yīng)的參數(shù)設(shè)置。由于生成的數(shù)控程序不能直接發(fā)送,需要將數(shù)控程序轉(zhuǎn)化為ASCII碼才能發(fā)送,具體通程序如下。
SerialPort2.RtsEnable = True
∥啟用請求發(fā)送
SerialPort2.DtrEnable = True
∥接就緒
NC =System.IO.File.ReadAllText(…)
∥讀取數(shù)控程序
NCAsc = AsciiStringToHexString(NC)
∥生成數(shù)控程序的ASCII碼
n =Len(NCAsc) / 2 - 1
ReDimtmpByte(n)
Fori = 0 To n
tmpByte(i) = Mid(NCAsc, i * 2 + 1, 2)
Next
SerialPort2.Write(tmpByte, 0, 10)
∥發(fā)指令
在線檢測系統(tǒng)利用Microsoft Visual Studio.Net 2010進行編程。但是由于在線檢測的過程中采集的數(shù)據(jù)比較多,其數(shù)學(xué)計算能力不強,編程復(fù)雜,對程序設(shè)計人員要求高,開發(fā)效率低,故聯(lián)合對數(shù)據(jù)處理能力較強的Matlab進行混合編程。為了使混合編程方法能夠脫離Matlab運行環(huán)境,也能夠供其他編程語言調(diào)用,本文采用生成COM組件的方法供Microsoft Visual Studio.NET 2010調(diào)用。此方法生成過程簡單,并且便于模塊化[7]。
利用Matlab的優(yōu)化工具箱,可以求解線性規(guī)劃、非線性規(guī)劃和多目標規(guī)劃問題[8]。該優(yōu)化方法可以應(yīng)用于本系統(tǒng)所采集到數(shù)據(jù)的大量計算,得出相應(yīng)測量項目。在本系統(tǒng)測量項目的M函數(shù)編寫完成后,利用deploytool命令生成工程名為fun.prj、類名為funClass、函數(shù)名為myfun的通用COM組件。當(dāng)函數(shù)編譯正確后,會在相對路徑的distrib文件出現(xiàn)后綴名為.dll的文件,至此COM組件就已成功生成。此時,在Microsoft Visual Studio.Net 2010編寫的系統(tǒng)控制軟件中,將之前生成的.dll文件添加引用,這樣COM組件就添加到程序中。
Microsoft Visual Studio.Net 2010在調(diào)用組件函數(shù)時需要通過程序聲明,才能完成調(diào)用,簡單的聲明調(diào)用程序如下:
Dim function As New funNative.funclass
∥聲明組件
…
fval=function.myfun(x,y)
∥調(diào)用組件
3應(yīng)用實例
以某型大直徑缸套的檢測為例,說明該系統(tǒng)的實用性和快捷性。
① 參數(shù)輸入。某型缸套的具體測量部分關(guān)鍵參數(shù)輸入如表1所示。

表1 測量參數(shù)輸入
② 數(shù)控程序的發(fā)送。在線檢測系統(tǒng)會根據(jù)測量參數(shù)自動生成數(shù)控測量程序,此時需要將數(shù)控程序發(fā)送給數(shù)控立車。由于數(shù)控系統(tǒng)一般遵循“接收數(shù)據(jù)方先做好準備”的原則,點擊數(shù)控系統(tǒng)面板上的Program Manager鍵,系統(tǒng)界面切換到程序管理界面,在此界面上按下讀入鍵,系統(tǒng)進入接收等待狀態(tài)。此時,在系統(tǒng)控制軟件的界面按發(fā)送鍵,即可完成數(shù)控程序的傳輸。
③ 數(shù)據(jù)采集。在數(shù)控程序發(fā)送完成后,便可以開始運行程序。在運行的過程中系統(tǒng)控制軟件會自動讀取測量數(shù)據(jù)并實時顯示。
④ 數(shù)據(jù)處理。在所有數(shù)據(jù)采集完成后,系統(tǒng)控制軟件將測量數(shù)據(jù)進行簡單的處理,然后通過Matlab進行計算,最后在系統(tǒng)控制軟件中顯示計算結(jié)果,并保存生成報表。
4結(jié)束語
本文研究的檢測系統(tǒng)對大直徑工件多項目進行了在線、非接觸測量,通過將數(shù)控系統(tǒng)、激光傳感器及其控制器以及計算機融為一體,完成了整個系統(tǒng)的實現(xiàn)。在實現(xiàn)過程中,通過采用Microsoft Visual Studio.Net 2010和Matlab混合編程,大幅提高了系統(tǒng)對采集數(shù)據(jù)進行處理的計算精度。該系統(tǒng)具有操作簡單快捷、結(jié)構(gòu)簡單、成本低、現(xiàn)場運行可靠等特點,理論上對于測量大直徑工件的尺寸不受限制。
參考文獻
[1] 孫佳,張鐳.大直徑工件的測量方法[J].機械與電子2006(3):13-16.
[2] 劉川,季洪彪.中小型金屬工件在線檢測系統(tǒng)的設(shè)計[J].機械制造與研究,2012,41(3):9-11.
[3] 馮占軍,王磊.基于激光傳感器的工件外徑尺寸檢測系統(tǒng)[J].電子測量與儀器學(xué)報,2007,21(6):82-85.
[4] 賁春雨,鄭宇.大尺寸直徑非接觸光電檢測系統(tǒng)研究[J].儀器儀表學(xué)報,2006,27(1):71-74.
[5] 張建維.802D.sl數(shù)控系統(tǒng)多主軸技術(shù)在立磨中的應(yīng)用[J].機械工程師,2014(3):133-134.
[6] 朱傳福,趙娟.PC與SIEMENS數(shù)控系統(tǒng)通信技術(shù)[J].機床電氣,2010(6):8-11.
[7] 施金花,王斌.MATLAB與VB.NET混合編程方法在伺服機構(gòu)動態(tài)測試中的應(yīng)用[J].機電工程技術(shù),2013,42(4):73-76.
[8] 戴彧虹,劉新為.線性與非線性規(guī)劃算法與理論[J].運籌學(xué)學(xué)報,2014(1):69-92.
中圖分類號:TH73;TP273+.5
文獻標志碼:A
DOI:10.16086/j.cnki.issn1000-0380.201507021
修改稿收到日期:2015-01-09。
第一作者代永俊(1990-),男,現(xiàn)為江蘇科技大學(xué)機械電子工程專業(yè)在讀碩士研究生;主要從事先進制造系統(tǒng)及其適能技術(shù)方面的研究。