邱 楓,劉治紅,吳 躍,徐曼菲
(中國兵器裝備集團(tuán)自動化研究所,四川 綿陽 621000)
傳統(tǒng)的離散制造業(yè)主要從事單件、小批量生產(chǎn),適用于面向訂單的生產(chǎn)組織方式[1]。近年來,隨著市場競爭的日益激烈以及客戶個性化多樣化需求的不斷提高,多品種小批量加工生產(chǎn)已逐漸成為離散制造車間的重要生產(chǎn)組織方式之一[2]。目前,離散制造車間通常以人工巡線或者簡單的二維圖表方式來監(jiān)控設(shè)備運(yùn)行狀態(tài)和執(zhí)行進(jìn)度情況,監(jiān)控手段落后,導(dǎo)致設(shè)備故障維修響應(yīng)時間普遍較長,極大的制約了設(shè)備的利用率。文獻(xiàn)[3]中研究了一種設(shè)備遠(yuǎn)程故障診斷系統(tǒng),降低了設(shè)備管理人員的維護(hù)工作量。文獻(xiàn)[4]研究了基于Flash 的自動化生產(chǎn)線監(jiān)控系統(tǒng),開發(fā)了一個平面二維的生產(chǎn)線監(jiān)控系統(tǒng),實現(xiàn)了對自動化生產(chǎn)線運(yùn)行狀態(tài)的實時監(jiān)控。文獻(xiàn)[5]基于Flexsim 仿真軟件,構(gòu)建了一種能動態(tài)反映車間生產(chǎn)進(jìn)度動態(tài)可視化監(jiān)控系統(tǒng)。文獻(xiàn)[6]中研究了基于物聯(lián)網(wǎng)的三維可視化礦井實時監(jiān)控系統(tǒng),實現(xiàn)動態(tài)的獲取了礦井生產(chǎn)過程中的安全數(shù)據(jù)。文獻(xiàn)[7]中基于Genesis64 三維組態(tài)軟件對加熱爐進(jìn)行了實時監(jiān)控。離散制造機(jī)械加工作為離散制造的重要組成部分,主要由各類數(shù)控加工中心組成,由于車間內(nèi)通常工序較多,導(dǎo)致車間設(shè)備品牌不同、老舊程度不一,導(dǎo)致設(shè)備普遍存在故障現(xiàn)象,故障發(fā)生后,除小型故障由操作工維修以外,絕大多數(shù)故障維修均需要專門的維修人員參與。因此,快速地定位故障,準(zhǔn)確地查找故障原因,為設(shè)備維護(hù)人員提供準(zhǔn)確的故障相關(guān)信息,是實現(xiàn)離散制造設(shè)備可視化監(jiān)控,提高機(jī)加設(shè)備利用率的有效手段。針對某企業(yè)的關(guān)鍵工序機(jī)加車間設(shè)備監(jiān)控手段落后,故障維修滯后問題,基于OpenTK 圖形接口庫和Visual Studio 2013 軟件和進(jìn)行三維可視化系統(tǒng)開發(fā),突破基于二次誤差作為度量代價的模型減面技術(shù)和動態(tài)擴(kuò)充線程的實時數(shù)據(jù)驅(qū)動技術(shù),以解決現(xiàn)有可視化監(jiān)控系統(tǒng)中3D 場景占用資源多和系統(tǒng)大數(shù)據(jù)量并發(fā)時系統(tǒng)卡頓的問題,系統(tǒng)實現(xiàn)車間數(shù)控加工中心的故障快速定位和設(shè)備代碼顯示,用以輔助維修,縮短設(shè)備故障維護(hù)響應(yīng)時間,提高離散制造機(jī)加車間設(shè)備管理水平。
三維可視化監(jiān)控系統(tǒng)由部署客戶端的三維可視化軟件和部署到服務(wù)端的數(shù)據(jù)接口服務(wù)軟件兩部分組成。三維可視化軟件通過HTTP 協(xié)議,通過Json 格式獲取數(shù)據(jù)接口服務(wù)軟件獲取到的MDC、MES 等系統(tǒng)中的數(shù)據(jù)。系統(tǒng)層級關(guān)系,如圖1 所示。三維可視化監(jiān)控系統(tǒng)包含三維模型、場景渲染和實時狀態(tài)、業(yè)務(wù)數(shù)據(jù)的展示。系統(tǒng)展示的三維模型通過中間格式導(dǎo)入,并在三維可視化系統(tǒng)中進(jìn)行實時渲染,數(shù)據(jù)訪問通過WebService 接口實現(xiàn),三維可視化監(jiān)控系統(tǒng)將該數(shù)據(jù)驅(qū)動三維模型的顏色、發(fā)光屬性變化,和二維標(biāo)簽文本的更新。三維可視化監(jiān)控系統(tǒng)技術(shù)路線,如圖2 所示。三維可視化監(jiān)控系統(tǒng)主要功能描述:(1)模型導(dǎo)入:支持常見的3D 模型.obj、.jt 等模型導(dǎo)入。(2)模型優(yōu)化:采用模型減面優(yōu)化算法實現(xiàn)對3D 模型輕量化處理,保證模型外形幾乎不變的前提下,實現(xiàn)模型面數(shù)僅十倍壓縮,實現(xiàn)大場景實時實時渲染。(3)模型分組:用戶可根據(jù)監(jiān)控設(shè)備類別的不同,對3D 模型進(jìn)行分組分類管理,以實現(xiàn)對重點(diǎn)監(jiān)控對象的快速顯示。(4)模型驅(qū)動:實現(xiàn)數(shù)據(jù)與三維模型屬性之間綁定的數(shù)據(jù)實時傳輸。(5)數(shù)據(jù)配置:建立數(shù)據(jù)與三維模型之間的關(guān)聯(lián)關(guān)系,配置數(shù)據(jù)在三維場景中的呈現(xiàn)形式,以達(dá)到數(shù)據(jù)的三維可視化顯示。
圖1 系統(tǒng)層級關(guān)系Fig.1 Level Diagram of System
圖2 技術(shù)路線Fig.2 Technical Route
在保證模型復(fù)雜性的同時,為了盡可能還原三維模型,降低計算機(jī)占用的系統(tǒng)資源,故需對三維模型進(jìn)行減面優(yōu)化。
二次誤差作為度量代價模型減面算法,采用計算總體誤差的方法進(jìn)行簡化誤差的評估以優(yōu)化邊的折疊順序,用一個二次誤差矩陣代替全局誤差函數(shù)來度量頂點(diǎn)的折疊誤差。該算法在簡化速度和健壯性之間有一個很好的平衡,在多細(xì)節(jié)層次模型中有比較好的效果,仍然成為基于邊折疊網(wǎng)格算法的重要算法[8-9]?;诙握`差作為度量代價的邊收縮算法,選擇一條三維模型中的一條邊作為迭代收縮時,定義一個描述邊收縮代價的變量Δ。對于網(wǎng)格中的每個頂點(diǎn)v,預(yù)先定義一個4×4 的對稱誤差矩陣Q,頂點(diǎn)v=[vx vy vz1]T的誤差為二次項形式Δ(v)=vTQv。假設(shè)對于一條收縮邊(v1,v2),收縮后頂點(diǎn)變?yōu)関bar,定義頂點(diǎn)vbar的誤差矩陣Qbar為Qbar=Q1+Q2。數(shù)值計算頂點(diǎn)vbar位置使得Δ(vbar)最小,Δ 的表達(dá)式為一個二次項形式,令一階導(dǎo)數(shù)為0,即等價于求解:
式中:qij—矩陣Qbar中對應(yīng)的元素。
如果系數(shù)矩陣可逆,通過求解方程就可以得到新頂點(diǎn)vbar的位置。在原始網(wǎng)格模型中,每個頂點(diǎn)可以認(rèn)為是其周圍三角片所在平面的交集,也就是這些平面的交點(diǎn)就是頂點(diǎn)位置,定義頂點(diǎn)的誤差為頂點(diǎn)到這些平面的距離平方和:
式中:p=[a b c d]T代表平面方程ax+by+cz+d=0(a2+b2+c2=1)的系數(shù);Kp—二次基本誤差矩陣。
原始網(wǎng)格中頂點(diǎn)v的初始誤差為Δ(v)=0,當(dāng)邊收縮后,新頂點(diǎn)誤差為Δ(vbar)=vbarTQbarvbar,依次選取收縮后新頂點(diǎn)誤差最小的邊進(jìn)行迭代收縮直到滿足要求。
由于三維可視化監(jiān)控系統(tǒng)中單次刷新數(shù)據(jù)較多,達(dá)到數(shù)百條,為解決大數(shù)據(jù)量并發(fā)時的監(jiān)控軟件卡頓和停滯問題。提出動態(tài)擴(kuò)充線程的實時數(shù)據(jù)驅(qū)動方法。假設(shè)單線程最大處理量預(yù)設(shè)為n,單次刷新數(shù)據(jù)量為m,主線程為T1,則動態(tài)擴(kuò)充線程方法流程圖,如圖3 所示。
圖3 動態(tài)擴(kuò)展線程流程Fig.3 Dynamic Extend Thread Workflow
在三維模型驅(qū)動程序中,根據(jù)計算機(jī)性能,預(yù)設(shè)單線程最大數(shù)據(jù)處理量,軟件處理較大數(shù)據(jù)量時,自動增加或減少線程數(shù),將原本串行時三維模型數(shù)據(jù)驅(qū)動變?yōu)椴⑿械臄?shù)據(jù)驅(qū)動,縮短了單次數(shù)據(jù)刷新所用的時間周期。
圖4 系統(tǒng)類圖關(guān)系Fig.4 System Class Realation Diagram
圖5 車間設(shè)備狀態(tài)實時監(jiān)控Fig.5 Machine Status Real-Time Monitoring
基于采用C#語言,基于Visual Studio 2013 和OpenTK1.1 圖形接口庫進(jìn)行系統(tǒng)開發(fā)。OpenTK 是基于C# 語言的包含OpenGL、OpenAL、OpenCL 進(jìn)行了跨平臺的封裝的圖形資源庫,遵循MIT 許可。OpenTK 可以集成到Windows、Forms、WPF 等應(yīng)用程序[10]。OpenTK 封裝了豐富的圖形函數(shù),極大地簡化了編寫三維圖形渲染程序的工作量[11]。Visual Studio 是微軟公司研發(fā)的一套由組件的開發(fā)工具構(gòu)成,包含其他用于生成功能強(qiáng)大、性能完善的應(yīng)用程序的IDE。VB、C++以及Visual C++都可使用相同的集成開發(fā)環(huán)境[12]。三維可視化系統(tǒng)類間調(diào)用關(guān)系,如圖4 所示。系統(tǒng)車間設(shè)備狀態(tài)實時監(jiān)控,如圖5 所示。系統(tǒng)部署在某工廠關(guān)鍵工序機(jī)加車間,由于車間已部署MES 和MDC 系統(tǒng),實現(xiàn)業(yè)務(wù)數(shù)據(jù)和設(shè)備數(shù)據(jù)實時采集。因此,三維可視化監(jiān)控系統(tǒng)通過數(shù)據(jù)接口服務(wù)軟件與上述兩個業(yè)務(wù)系統(tǒng)集成即可。車間共有各型號數(shù)控加工8 臺,單臺設(shè)備模型狀態(tài)、開機(jī)時間、故障代碼等數(shù)據(jù)38 條,共計288 條。車間三維可視化監(jiān)控系統(tǒng)網(wǎng)絡(luò)拓?fù)洌鐖D6 所示。系統(tǒng)部署,如圖7 所示。三維可視化監(jiān)控系統(tǒng)實現(xiàn)了車間設(shè)備狀態(tài)的實時監(jiān)控,設(shè)備故障報警和異??焖俣ㄎ唬瑫r,通過與MES 系統(tǒng)數(shù)據(jù)集成,可由三維模型上疊加的動態(tài)文本查看當(dāng)前設(shè)備的加工任務(wù)和執(zhí)行進(jìn)度。由于車間MDC 系統(tǒng)已實現(xiàn)了數(shù)控加工中心參數(shù)的秒級采集,為保證三維可視化監(jiān)控系統(tǒng)的實時性,三維可視化監(jiān)控軟件也設(shè)置為秒級刷新,經(jīng)過近半年的長時間調(diào)試和運(yùn)行,系統(tǒng)未出現(xiàn)內(nèi)存溢出或CPU 資源占用率超過10%的情況,系統(tǒng)運(yùn)行穩(wěn)定。
圖6 三維可視化網(wǎng)絡(luò)拓?fù)銯ig.6 System Network Topology
圖7 三維可視化系統(tǒng)部署Fig.7 System Deploy Diagram
通過故障響應(yīng)時間指標(biāo)來對三維可視化系統(tǒng)實際性能進(jìn)行量化。將部署車間分為4 個區(qū)域,每次區(qū)域響應(yīng)時間取5 次的平均值。三維可視化監(jiān)控系統(tǒng)部署前后,設(shè)備故障響應(yīng)時間進(jìn)行比較,如表1 所示。
表1 系統(tǒng)部署前后故障響應(yīng)時間Tab.1 Machine Fault Response Time Before and After System Deploy Compare
通過將三維可視化監(jiān)控系統(tǒng)在某機(jī)加車間進(jìn)行部署和使用,使得車間內(nèi)數(shù)控加工中心狀態(tài)得以實時監(jiān)控,并且實現(xiàn)了在設(shè)備故障快速定位故障和故障原因的實時顯示,降低了維修人員的巡線工作量,縮短了設(shè)備維護(hù)響應(yīng)時間。系統(tǒng)部署后,設(shè)備故障維修響應(yīng)時間由5.375min 縮短至1.600min,時間縮短70%。
三維可視化監(jiān)控系統(tǒng)后續(xù)還可與設(shè)備維修專家知識庫關(guān)聯(lián),在故障定位、故障原因顯示的同時,提供故障維修建議,提高維修效率。也可三維場景中添加設(shè)備維修動作演示,用于指導(dǎo)維修人員維修調(diào)試和人員培訓(xùn),節(jié)省車間經(jīng)濟(jì)成本。三維可視化監(jiān)控系統(tǒng)近一步提高離散制造智能工廠水平,推動計算機(jī)仿真技術(shù)在智能制造領(lǐng)域的發(fā)展。