鄒 杰,徐 攀,胥 軍,張家偉,李剛炎
(1.武漢理工大學 機電工程學院,武漢 430070;2.湖北工程學院 機械工程學院,湖北 孝感 432003)
光學透鏡是光學系統中的核心部件。隨著科技的發展,光學透鏡已經廣泛應用于醫療、教育、工業、交通、教育、安防等諸多領域,人們對光學透鏡的需求也隨之劇增。光學透鏡的生產需要經過制造和質檢兩個環節,質檢是對光學透鏡多項光學參數和尺寸參數的測量以及對不同質量等級產品的分選。面對多品種大批量的生產現狀,光學透鏡的質檢效率和精度面臨巨大挑戰,質檢手段由傳統簡單儀器手動測量向多功能儀器自動測量轉變已成發展趨勢。哈爾濱工業大學的科研團隊研究并建立了多參數光學透鏡檢測試驗臺,實現了對有效焦距、后焦距、曲率半徑及中心厚度的精確測量。德國TRIOPTICS公司研制出了OptiSpheric 透鏡和光學系統光學參數通用測量系統。使用PC作為測控終端,能自動測量焦距、調制傳遞函數、截距、曲率半徑、法蘭焦距。德國OEG GMBH研制的OTS-500光學測試工作站可以在透鏡生產過程中對光學透鏡的傳遞函數、焦距、截距、曲率半徑參數進行快速、可記錄的測量。上述研究雖然有各自的優勢,但都未涉及透鏡外圓外徑檢測,且檢測過程中需要手動對透鏡進行搬運和分選,搬運過程中容易造成透鏡表面污染和損傷。為解決上述問題,基于LabVIEW平臺開發一套透鏡多參數全自動檢測系統,包括硬件系統和軟件系統的設計,軟件系統負責協調硬件系統的執行元件和測量設備完成圓形透鏡搬運、分選以及對外徑、橢圓度、中心厚度的自動測量、記錄和報表輸出任務。并通過實測證明檢測系統測量精度高,操作界面便捷,數據顯示直觀。
透鏡多參數自動檢測系統的總體結構二元圖如圖1所示。檢測系統的硬件系統包括測量設備:氣動位移傳感器、厚度檢測儀和動作控制器件:PLC、電缸控制器、電磁閥、磁性開關、按鈕盒。軟件系統包括檢測系統上位機軟件及其運行環境支持軟件:中心厚度檢測儀軟件、NI OPC Severs、Excel、Access數據庫。

圖1 檢測系統總體結構二元圖
氣動位移傳感器用于測量透鏡徑向尺寸變化量。傳感器包括4個氣動感觸頭、4個信號放大模塊和1個通信模塊。當氣動感觸頭內的單作用氣缸推桿動作時,會產生微弱的電壓變化。與感觸頭相連的信號放大模塊捕捉到變化的微小電壓信號后將其線性放大并轉化成位移數字量。PC上位機通過RS232通信協議向通信模塊發送訪問指令并接收返回的位移數字量。
中心厚度檢測儀用于測量透鏡上下表面反射光的波長,當光源的光線通過中心厚度檢測儀的光學系統照射到透鏡上時,透鏡的上下兩表面會反射兩束波長不同的光線,厚度檢測儀中的光譜儀檢測到反射光之后將其轉化為實時的電信號,通過USB數據線傳遞到PC機。
PLC包括主站和從站,用于動作控制和狀態反饋。主站PLC負責控制轉運機械手各電磁閥的動作以及檢測各氣缸上磁性開關和控制盒按鈕的狀態信號。從站PLC除了負責控制上下料機械手各電磁閥的動作以及檢測磁性開關的狀態信號外,還通過I/O信號線纜給電缸控制器發送運動指令和檢測電缸當前位置。
電缸控制器負責電缸運動控制和電缸位置反饋。電磁閥用于驅動動作執行器件(氣缸)的運動。磁性開關用于檢測氣缸推桿所處的位置,反饋運動是否執行到位。按鈕盒包括按鈕和指示燈,按鈕用于控制檢測系統的啟停。指示燈用于指示檢測系統的運行和復位狀態。
厚度檢測儀軟件用于計算透鏡的中心厚度。首先在軟件中選擇合適的參數,當其接收到由光譜儀的實時光譜數據后,就能自動計算出透鏡的中心厚度。
NI OPC Severs用于實現PLC與檢測系統上位機軟件之間的通信[1]。Excel用于檢測系統上位機軟件的報表輸出。Access數據庫用于存放緩存數據、用戶信息、檢測數據和產品標準參數[8]。
檢測系統上位機軟件是整個檢測系統的核心,負責測量數據處理、質量判斷、透鏡分選決策、檢測結果顯示、檢測數據存儲、報表輸出等任務。按照上位機軟件的任務設定,將其大致劃分成9個功能模塊。分別是初始化模塊:完成軟件運行前的初始化,將通信端口、待檢透鏡品名、對版透鏡外徑值等映射到對應的節點;登錄模塊:實現管理員和普通用戶的登錄功能,管理員登錄后可對用戶賬號進行增、刪、改、查操作;通信設置模塊:設置上位機軟件與厚度檢測儀軟件、位移傳感器之間的串行通信端口。參數管理模塊:實現透鏡標準參數在Access數據庫中的增、刪、改、查操作;校正模塊:完成傳感器的零點標定和厚度檢測儀校正;檢測模塊:實現透鏡檢測、質量分選、結果保存等功能;報表輸出功能:用于檢測報表生成;自定義啟動模塊:用于設備復位后重新設置吸取透鏡的起始位置,跳過默認起始位置;顯示模塊:用于檢測完成后對檢測結果和歷史檢測數據的顯示。
光學透鏡中心厚度的測量方法有兩大類[6],分別是接觸測量法和非接觸測量法,接觸測量法雖然結構簡單,但是容易損害透鏡表面,且測量探頭來回移動易造成磨損,導致測量精度下降。所以本試驗臺對中心厚度的檢測采用非接觸測量法,其測量原理是色差共焦原理[3]。中心厚檢測裝置的檢測原理如圖2所示,光源及相關檢測接收裝置位于透鏡上方。

圖2 非接觸式測厚裝置工作原理
透鏡外圓外徑的測量可以參考其他圓形工件的測量方法。圓形件外圓外徑的測量方法也分為接觸式測量法和非接觸式測量法兩大類[7]。由于非接觸式測量法相比于接觸式測量法需要更大的安裝空間且成本更高,故本檢測系統優先采用緊湊且廉價的接觸式測量法,并將4個位移傳感器按照如圖3所示布置。

圖3 傳感器布置示意圖
首先將檢測工位的透鏡擺放平臺面假想成理想平面,并在此平面上建立一個直角坐標系。檢測前,使用外徑值已知的模板透鏡對4個位移傳感器的感測頭頂點位置進行零點標定。檢測過程中,根據位移傳感器在徑向上的微小變動量可算出4個感測頭頂點的新坐標,再將其中的3個坐標代入方程:
(x1-x0)2+(y1-y0)2=R2
(1)
(x2-x0)2+(y2-y0)2=R2
(2)
(x3-x0)2+(y3-y0)2=R2
(3)
則可計算這3個坐標所在圓的圓心坐標(x0,y0),進而得出這個圓的直徑。將4個坐標按照3個一組排列組合后可算出4個不同的外徑值,將4個外徑值的最大值減去最小值就可得到透鏡的橢圓度。
LabVIEW是美國國家儀器公司開發的一種圖形化編程語言(G語言),其數據傳遞常規載體是數據流,數據通過相互連接的節點按先后順序在SubVI中傳遞,單一的使用這種數據傳遞方式會降低系統的動態靈活性和VI的可重用性。為彌補數據流的上述問題,更好地協調較復雜系統中相互并行的SubVI,LabVIEW又發展出了全局變量、局部變量以及同步控制技術。作為并行任務間協調和管理數據傳遞的手段,雖有助于用戶開發更加強大的系統,但是它們在一定程度上會降低程序的可讀性。因此LabVIEW平臺又提供了生產者/消費者設計模式[5],它是一種比程序更高層的結構框架,通過在VI內部建立一條通信隊列,實現了生產者線程到消費者線程之間的數據傳遞,避免了并行線程之間不同步的制約,保證了線程之間各自的運行不受干擾。但是在大型測控系統中,并行線程往往由多個VI聯合完成,每個線程可能需要同時具備收發數據的能力,各并行線程之間的數據流關系也可能隨著內部VI的執行進程而發生動態變化,這種情況下生產者/消費者設計模式將難以勝任。
考慮到上位機軟件的功能復雜程度和模塊化設計思路,可能需要設置多個并行線程,且每個并行線程內的功能模塊都要進行數據收發才能保證系統的正常運行,上述的3種數據傳遞模式都不能達到理想效果。發布者/訂閱者通信模型是一種可在并行線程之間發布和訂閱信息的通信機制,在生產者/消費者模式的基礎上,發布者/訂閱者模型[2]提供了VIPC(VI Publication Channel)、VIPM(VI Publication Manager)等基礎設施和服務,可使數據流不需要明確而固定的指向和依賴關系,為上位機軟件的數據流模型提供了參考思路。
上位機軟件的數據傳遞模型如圖5所示,模型左側的模塊為數據的發布者,右側為數據的訂閱者。VIPM是軟件中的特定邏輯和算法,VIPC則是數據庫、PLC共享變量、全局變量、Excel、測量數據接口等數據通道。發布者模塊向VIPC發布數據以及接收者模塊從VIPC獲取數據都需要滿足VIPM的注冊或訂閱條件。

圖4 數據傳遞模型

圖5 檢測系統主程序框圖
為降低上位機軟件程序框圖在空間上的耦合性和維護難度,提高程序的靈活性和可擴展能力[4]。檢測系統軟件采用高度封裝的模塊化設計思路,結合發布者/訂閱者模型,在各功能模塊中完成既定任務和數據收發功能。各功能模塊設計完成且逐個調試通過后再進人主程序設計環節。
主程序采用5線程結構,其程序框圖如圖6所示。初始化模塊置于所有線程之外,軟件啟動時立即加載緩存數據到全局變量,并發送數據庫產品參數表中的品名到前面板品名庫。第1個線程負責檢測狀態和暫停狀態之間的切換。在檢測狀態下,禁用部分功能按鈕,避免因誤操作而引起檢測出錯。進入暫停狀態后,啟用全部功能按鈕都,且啟動按鈕抬起。第2個線程負責監視檢測觸發條件。線程中的超時事件每隔50 ms刷新一次,當開始按鈕按下且讀取數據標志位共享變量處于置位狀態時,檢測事件源的值改變一次。第3個線程負責產品參數選擇和產品質量檢測。品名列表雙擊事件中被雙擊選中的產品名稱會顯示在當前品名顯示框,與此同時與該品名關聯的各項標準參數也會傳遞到對應的全局變量。檢測事件中的數據獲取子程序從各數據接口訪問測量數據,經外徑計算子程序算出外徑值后通過質量判斷子程序得出透鏡的質檢結果。最后檢測數據通過測量結果保存子程序存儲到數據庫,與此同時發送分選指令子程序根據質檢結果向下位機發送分選信號。第4個線程線程負責前面板的顯示,線程中的超時事件每隔200 ms刷新一次,每次刷新前面板的指示燈狀態和圖表內容都會更新一次。第5個線程用于調用登錄、參數管理、通信設置、校正、自定義啟動、報表生成等功能模塊,這些高度封裝的功能模塊分別放置在對應的事件分支中,依靠發布者/訂閱者模型傳遞數據,相互之間沒有空間上的輸入輸出節點。

圖6 軟件界面
上位機軟件的主操作界面如圖7所示。主界面右側的3個XY Graph分別用于顯示透鏡的外圓外徑D、中心厚度H和橢圓度E。XY Graph中的橫向虛線是透鏡質量等級劃分臨界值,縱向豎線的頂點值是各參數的測量值,豎線頂點與橫向虛線的位置關系可以直觀的反應透鏡質量等級。例如在外圓外徑圖表中,如果4個頂點都在兩橫線所夾區域內則表示外圓外徑合格,如果至少有一條豎線的頂點在所夾區域之下則表示外圓外徑為廢品,如果至少有一條豎線的頂點在所夾區域之上且無豎線頂點在所夾區域之下則表示外圓外徑為次品。中心厚度圖表、橢圓度圖表與外圓外徑圖表類似。檢測數據表用于顯示檢測歷史數據,便于操作者對不良品進行及時處理。主界面左側的功能按鈕是功能模塊子界面調用菜單。
在驗證實驗中,使用130枚型號為G-GB121A-A07的凸透鏡作為實驗樣本,對透鏡檢測系統的測量精度進行驗證。首先使用千分尺在樣本透鏡的外圓上進行多點測量,測得第每一枚樣本透鏡的外圓外徑最大值DSnu和最小值DSnd,作為外徑標準值。再使用千分表測量每一枚樣本透鏡的中心厚度HSn,作為中心厚度標準值。標準值記錄完畢后,將樣本透鏡送到透鏡多參數檢測系統進行實際檢測。檢測完畢后,從報表中抽取出外徑測量值和中心厚度測量值分別與其標準值進行比較分析,得出外徑測量偏差和厚度測量誤差。
在分析過程中,分離出每一枚樣本透鏡的系統實測外徑最大值DMnu和最小值DMnd。將系統實測值與標準值按照表1的規則進行比較和計算,得出系統外徑測量的上偏差Dnu和下偏差Dnd。

表1 外徑測量偏差計算規則
圖7(a)是全部樣本透鏡外徑實測值Dnu與Dnd在坐標系中的分布,使用如圖7(b)所示的柱狀圖對全部外徑偏差值進行統計。統計結果表明Dnu與Dnd集中分布于-1.17~1.61 μm之間,且在±3 μm內且呈近似正態分布。

圖7 實驗結果
將系統實測的樣本透鏡中心厚度檢測值Hmn與Hsn的差作為中心厚度測量誤差Hen,全部樣本透鏡的Hen在坐標系中的分布如圖8(a)所示。Hen的統計結果如圖8(b)所示,統計結果表明中心厚度測量誤差的絕對值基本保持在3um以內且成正態分布。

圖8 厚度測量誤差分析和厚度誤差統計
通過對透鏡的外徑、中心厚度等參數的系統檢測結果驗證表明,本文基于LabVIEW設計的透鏡多參數檢測系統具有較高的檢測精度,上位機軟件界面操作便捷,數據顯示直觀。上位機軟件的程序在發布者/訂閱者數據模型的基礎上,實現了高度模塊化設計,使整個系統具有較強的功能擴展能力,證明了透鏡多參數全自動檢測的可行性,且為其他測控系統的設計提供了參考。