姜 康,柯 榕,趙小勇,何其昌
(1.合肥工業(yè)大學 交通運輸工程學院,合肥 230009;2. 上海交通大學 機械與動力工程學院,上海 200240)
當前企業(yè)生產(chǎn)車間現(xiàn)場信息繁多、情況復雜,導致車間的管理層和執(zhí)行層之間的信息交互不及時、不準確、不全面[1-3],車間管理人員迫切需要一個實時監(jiān)控系統(tǒng),實現(xiàn)各工作單元之間的信息交換和生產(chǎn)狀態(tài)的及時反映。
目前國內(nèi)外許多學者對車間監(jiān)控系統(tǒng)進行了研究實現(xiàn),常仕軍等[4]建立了車間監(jiān)控對象的模型,應(yīng)用甘特圖等方式來展現(xiàn)監(jiān)控結(jié)果,Qiu等[5]建立了一種數(shù)控機床加工過程狀態(tài)的信息模型,用于監(jiān)測加工過程中的加工狀態(tài),這些研究在技術(shù)層面上實現(xiàn)了車間狀態(tài)的實時監(jiān)控,但是忽略了對于監(jiān)控數(shù)據(jù)的處理,會造成監(jiān)控狀態(tài)滯后、監(jiān)控對象不全和監(jiān)控力度不夠等問題。李智等[6]設(shè)計了數(shù)據(jù)采集方案和系統(tǒng)實現(xiàn)方案,提高了實時性,系統(tǒng)采用二維的監(jiān)控界面,雖然能實現(xiàn)登陸、查詢、操作等功能,但不能將車間真實情況可視化。而工業(yè)監(jiān)控中使用的組態(tài)軟件具有數(shù)據(jù)采集、數(shù)據(jù)管理、工程監(jiān)控等功能,但其二維用戶界面與實際工業(yè)場景有較大的差距,顯示數(shù)據(jù)的方式比較單調(diào),不夠直觀和形象,這些都會造成用戶操作不便或?qū)е抡`操作[7-9]。將虛擬現(xiàn)實技術(shù)引入到監(jiān)控系統(tǒng)中來,建立基于實時數(shù)據(jù)的三維虛擬監(jiān)控系統(tǒng),使車間管理人員可以通過客戶端實現(xiàn)整個生產(chǎn)車間運行狀態(tài)的監(jiān)控,對于工業(yè)監(jiān)控的技術(shù)發(fā)展具有重要意義。
本文利用虛擬現(xiàn)實技術(shù)建立車間三維虛擬監(jiān)控系統(tǒng),對車間制造資源狀態(tài)進行三維可視化,顯示車間現(xiàn)場監(jiān)控信息、生產(chǎn)進度信息、設(shè)備信息,并對其進行管理。同時利用現(xiàn)場傳感器采集的信息來驅(qū)動三維虛擬場景中模型,實時可視化車間中制造資源的位姿和運行狀態(tài)。
車間虛擬監(jiān)控系統(tǒng)能夠?qū)囬g設(shè)備狀態(tài),如開機、關(guān)機、故障燈等進行虛擬實時監(jiān)控;可以通過鼠標等外設(shè)進行漫游操作,實現(xiàn)整個車間的監(jiān)控管理;三維虛擬界面上高亮顯示與產(chǎn)品生產(chǎn)工序相關(guān)的設(shè)備,并展示加工路線;此外,系統(tǒng)還可對車間生產(chǎn)信息進行統(tǒng)計分析,可顯示生產(chǎn)進度、工單狀態(tài)以及人員狀態(tài)等。
車間三維虛擬監(jiān)控系統(tǒng)通過車間現(xiàn)場傳感器及局域網(wǎng)進行車間中各設(shè)備資源的位置、姿態(tài)和運行狀況等數(shù)據(jù)的采集及傳輸,利用數(shù)據(jù)庫存儲與管理實時狀態(tài)數(shù)據(jù)、資源模型數(shù)據(jù)及生產(chǎn)統(tǒng)計數(shù)據(jù)等,并通過數(shù)據(jù)接口與車間其他信息系統(tǒng)如ERP、MES等進行數(shù)據(jù)交換。系統(tǒng)整體基于C/S架構(gòu),三維制造資源模型包括加工設(shè)備、物流設(shè)備等存儲在客戶端,監(jiān)控過程中網(wǎng)絡(luò)只是傳遞各種傳感信息,減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,保證監(jiān)控的實時性。同時利用車間現(xiàn)場傳感器采集的信息來驅(qū)動虛擬場景中的模型,在虛擬現(xiàn)實平臺Unity3D中實時可視化運輸設(shè)備的位姿和加工設(shè)備的運行狀態(tài)。用戶通過人機交互界面進行狀態(tài)信息的查詢、系統(tǒng)消息處理中心響應(yīng)用戶操作命令,進行信息的可視化。車間虛擬監(jiān)控系統(tǒng)框架如圖1所示。
圖1 車間虛擬監(jiān)控系統(tǒng)整體框架Fig.1 Overall framework of the virtual monitoring system for workshop
可視化模塊基于Unity3D平臺實現(xiàn),Unity3D是跨平臺的三維圖形渲染引擎,它的可視化操作環(huán)境便于用戶使用,并支持各種腳本語言包括C#、JavaScript,兼容多種操作系統(tǒng),真正地實現(xiàn)了跨平臺,讓開發(fā)者能簡單直觀地開發(fā)基于各種平臺以及硬件設(shè)備的實時可視化應(yīng)用程序[10]。
為實現(xiàn)虛擬模型的實時驅(qū)動,需要對生產(chǎn)過程中的設(shè)備狀態(tài)參數(shù)、在制零件質(zhì)量與狀態(tài)、數(shù)控加工設(shè)備的工況、加工人員的狀態(tài)等進行監(jiān)控,并采集這些信息,從而對其進行存儲與管理。所建立的數(shù)據(jù)庫分別存儲設(shè)備參數(shù)、在制零件信息、加工設(shè)備工作參數(shù)、車間生產(chǎn)進度信息、報警信息以及運輸設(shè)備參數(shù),其數(shù)據(jù)模型邏輯關(guān)系如圖2所示。
圖2 某制造車間數(shù)據(jù)模型Fig.2 Data model of a manufacturing workshop
采用XML規(guī)范建立系統(tǒng)模塊間的數(shù)據(jù)接口。XML是一種標記語言,具有良好的跨平臺數(shù)據(jù)交換能力,可以實現(xiàn)快速查找、修改、替換等操作。本文用結(jié)構(gòu)化的XML格式描述變量,部分數(shù)據(jù)形式如下:
<加工設(shè)備工作參數(shù)>
<部門 NAME=“XX事業(yè)部”><車間NAME=“XX車間”><工作參數(shù)信息>
< Equipment _NAME=“數(shù)控銑床”/>
< Spindle load =“1500”/>
…
工作參數(shù)信息>車間>部門>
加工設(shè)備狀態(tài)參數(shù)>
以上是采集到的加工設(shè)備工作參數(shù)數(shù)據(jù)模型在XML中的部分描述,由此可知基于XML的數(shù)據(jù)描述具有較好的層次性,能較好地表現(xiàn)出信息的結(jié)構(gòu)層次。
在虛擬監(jiān)控系統(tǒng)中,監(jiān)控的運動可視化對象主要3種類型:加工設(shè)備如機床的主要加工動作、物料運輸設(shè)備叉車的運動以及桁架機械手的運動。其中加工設(shè)備機床的運動包括機床整體的運動和機床上零件的運動,實時數(shù)據(jù)驅(qū)動父對象機床和子對象零件的運動。叉車的運動路線是由從實時數(shù)據(jù)中獲取的起始位置和終點位置進行插值來設(shè)定的。而桁架機械手是由數(shù)據(jù)實時驅(qū)動的,實時數(shù)據(jù)中包含其運動過程中每個時間點的位置,再根據(jù)這些點來確定運動路線。
在Unity3D中,子對象是跟隨著父對象進行運動的。一個模型可能擁有多個子對象,每個子對象還可能包含下一層的子節(jié)點,而各層級的子對象也跟隨著其父對象一起運動。因此,當一個模型發(fā)生運動時,組成他的子對象的各個部分也進行相應(yīng)的運動。這樣,當實時數(shù)據(jù)驅(qū)動模型時,也同樣驅(qū)動了模型中的各個子對象,以模型整體為對象對其實時驅(qū)動進行研究。
圖3為模型的實時驅(qū)動流程圖。一個實時性的仿真場景的生成過程是:首先加載配置文件,向服務(wù)器請求實時數(shù)據(jù)并獲取[11],對獲取的XML文件進行解析,從而得到模型的位姿數(shù)據(jù);根據(jù)獲取的實時數(shù)據(jù)進行插值,得到模型的運動路線,并計算出模型運動的旋轉(zhuǎn)角度;得到以上數(shù)據(jù)后再利用位姿矩陣來實現(xiàn)模型的驅(qū)動,最后利用Unity3D平臺實現(xiàn)模型運動的可視化渲染。下面以車間虛擬監(jiān)控系統(tǒng)中的物流設(shè)備叉車的運動為例來描述模型驅(qū)動。
圖3 模型實時驅(qū)動流程圖Fig.3 Flow chart of real-time driving model
由于采集到的叉車位置、姿態(tài)等實時數(shù)據(jù)是離散的位置點,為保證叉車運動的連續(xù)性,需要進行插值。叉車的運動路線上的關(guān)鍵點通過Unity3D平臺提供的Mathf.lerp函數(shù)插值獲取,Mathf.lerp函數(shù)的插值方法是線性插值,假設(shè)已知坐標(x0,y0)與(x1,y1),要得到 [x0,y1]區(qū)間內(nèi)某一位置x在直線上的y值,則可以根據(jù)表達式:
其中,k= (x-x0)/ (x1-x0)= (y-y0)/ (y1-y0)。
從XML文件中解析到叉車運行的實時數(shù)據(jù),得到叉車運動前后的兩個坐標點,再通過式(2)插值得到運動過程中其他的坐標點,將它們連接起來就得到叉車的運動路線。
叉車是在XOZ平面上做平移和旋轉(zhuǎn)運動,則叉車在原始位置時的向量坐標為已知量,其坐標位置為(x,0,z)。運動終點的向量坐標為,其坐標位置為(x',0,z'),易知向量坐標=。θ為與的夾角,則由余弦公式可得:
叉車模型的平移和旋轉(zhuǎn)運動都是通過以上2個變換矩陣來實現(xiàn)的,其中dx,dy,dz分別表示叉車在X軸、Y軸、Z軸方向上的平移量,由于叉車是在XOZ平面上運動,因此dy=0。θ表示叉車運動繞Y軸偏移的角度。那么,對叉車先作繞Y軸旋轉(zhuǎn)變換再作平移變換,其運動模型是:
綜上可知,由式(2)計算出θ值,再代入(5)式求出叉車的運動模型,并按照插值法確定的運動路線則可完成模型的實時驅(qū)動。模型運動的可視化在Unity3D平臺上進行,由transform類中的Translate函數(shù)和Rotate函數(shù)來實現(xiàn),實現(xiàn)的代碼如下:
transform.Translate(1, 0, Time.deltaTime);
transform.Rotate(Vector3.up * Time.deltaTime)。
車間狀態(tài)數(shù)據(jù)采集與分析系統(tǒng)主要包括數(shù)控機床通訊模塊、工業(yè)網(wǎng)絡(luò)、工控上位機、OPC服務(wù)、DNC軟件系統(tǒng)。利用車間局域網(wǎng),將網(wǎng)絡(luò)延伸到各設(shè)備節(jié)點,從而使數(shù)控設(shè)備與各個服務(wù)器及工作站形成一個統(tǒng)一的網(wǎng)絡(luò)系統(tǒng)。圖4為生產(chǎn)現(xiàn)場信息實時采集。
應(yīng)用加工設(shè)備數(shù)字化接口、傳感器、檢測設(shè)備等多形式的數(shù)據(jù)采集方式,形成針對不同設(shè)備不同接口的統(tǒng)一采集方法。定義所有采集數(shù)據(jù)的表達方式和統(tǒng)一接口,并將不同的數(shù)據(jù)格式轉(zhuǎn)化為統(tǒng)一的格式。將數(shù)據(jù)進行分類,通過企業(yè)現(xiàn)有的以太網(wǎng)、現(xiàn)場總線、I/O接口卡等多種方式傳輸?shù)綌?shù)據(jù)庫,實現(xiàn)對不同廠家設(shè)備運行參數(shù)的數(shù)據(jù)整合。
圖4 生產(chǎn)現(xiàn)場信息實時采集Fig.4 Real-time acquisition of information in the production site
為了保證傳輸速度,必須對大量的實時監(jiān)測數(shù)據(jù)進行預處理或取舍,因此如何確保在制品和設(shè)備狀態(tài)信息能被準確、穩(wěn)定傳輸就成為一個關(guān)鍵技術(shù)問題。解決方法為:一方面,通過大量試驗和數(shù)據(jù)分析確定有用傳感信號,然后提取能夠表征異常工況預兆的特征量;另一方面,采用時間序列分析方法動態(tài)建立傳感信號時間序列模型,提取蘊涵豐富工況信息的模型參數(shù),并對非實時性的數(shù)據(jù)進行定時批量傳輸,再利用數(shù)據(jù)的壓縮和解壓縮的方法,盡量減少網(wǎng)絡(luò)實時傳輸?shù)臄?shù)據(jù)量,提高傳輸速度。
在人機交互系統(tǒng)中系統(tǒng)界面設(shè)計占據(jù)非常重要的地位,因為在交互操作中界面的方便與否直接影響到用戶的使用。Unity3D擁有一套非常完善的圖形化界面引擎,包括常見的窗口、文本框、輸入框、按鈕等,而且它的界面自定義皮膚功能夠美化系統(tǒng)界面[12]。本系統(tǒng)利用Unity3D自帶的GUI界面組件進行界面設(shè)計,實現(xiàn)虛擬監(jiān)控系統(tǒng)的信息顯示、功能流程等交互操作。
虛擬監(jiān)控系統(tǒng)中鼠標鍵盤的交互操作使用Unity3D的輸入接口Input來實現(xiàn)。利用鼠標和鍵盤的操作可以實現(xiàn)設(shè)備模型的移動、旋轉(zhuǎn)、縮放等功能以及漫游操作,其中模型的運動利用Unity3D的變換類transform實現(xiàn)。雙擊模型彈出設(shè)備狀態(tài)信息查看窗口功能實現(xiàn)的流程,如下所示:
步驟1:鼠標雙擊場景中的設(shè)備模型;
步驟2:將鼠標在屏幕上點擊的位置信息轉(zhuǎn)化為射線;
步驟3:取出碰撞射線檢測到的設(shè)備名稱;
步驟4:從XML文件中解析取出該設(shè)備的狀態(tài)信息;
步驟5:調(diào)用已經(jīng)定義的生成窗口函數(shù),彈出設(shè)備狀態(tài)顯示窗口。
圖5為某車間虛擬監(jiān)控系統(tǒng),它實時呈現(xiàn)的是整個車間的生產(chǎn)操作情況,車間中設(shè)備模型狀態(tài)以及布局等與現(xiàn)場生產(chǎn)車間保持一致。
系統(tǒng)開始運行后,生產(chǎn)現(xiàn)場傳輸來的數(shù)據(jù)驅(qū)動虛擬場景中的模型,此時,物流設(shè)備叉車接到信號后會到物料堆放地取物料并按照指定路線將物料運送到指定地點。雙擊圖中任意一個設(shè)備會彈出設(shè)備狀態(tài)信息顯示窗口,實現(xiàn)對車間設(shè)備狀態(tài)的實時監(jiān)控,被雙擊拾取的設(shè)備會出現(xiàn)包圍盒。用戶按下鼠標左鍵、移動鼠標滑輪可從各個角度觀察虛擬車間工作情況并進行漫游操作。點擊產(chǎn)品,界面上高亮顯示與生產(chǎn)工序相關(guān)的設(shè)備,并顯示加工路線。用戶可在系統(tǒng)的操作界面上查詢生產(chǎn)進度等車間生產(chǎn)信息,當生產(chǎn)車間在加工過程中出現(xiàn)異常或發(fā)生故障時,虛擬監(jiān)控系統(tǒng)中報警燈發(fā)出紅色報警信號,管理人員可根據(jù)信號對異常情況進行處理。
圖5 虛擬監(jiān)控系統(tǒng)Fig.5 Virtual monitoring system
本文利用虛擬現(xiàn)實技術(shù)與信息集成技術(shù),基于Unity3D平臺設(shè)計實現(xiàn)了三維制造車間虛擬監(jiān)控系統(tǒng),為車間三維虛擬監(jiān)控提出了可行的方案。
本系統(tǒng)是三維數(shù)據(jù)的可視化平臺,在此平臺基礎(chǔ)上,可以集成其他管理系統(tǒng)的數(shù)據(jù),形成集成的三維數(shù)字化生產(chǎn)控制平臺。同時本文對從車間采集到的實時數(shù)據(jù)進行建模,提供了數(shù)據(jù)存儲、模型驅(qū)動的方法,對基于實時數(shù)據(jù)的虛擬仿真研究具有一定的借鑒意義,為三維虛擬監(jiān)控技術(shù)在制造業(yè)上的應(yīng)用提供了技術(shù)保證和可行性驗證。隨著計算機仿真技術(shù)的發(fā)展,實時虛擬監(jiān)控技術(shù)必將得到廣泛應(yīng)用,這將大大推動整個智能制造技術(shù)行業(yè)的發(fā)展。
[1]徐濤,李彥明,苗玉彬,等. 港口機械遠程虛擬監(jiān)控系統(tǒng)研究[J].計算機工程,2008,34(21):276-278.
XU Tao, LI Yanming, MIAO Yubin, et al. Research on remote virtual monitoring system of port machinery[J]. Computer Engineering, 2008,34(21): 276-278.
[2]林威漢, 高春光, 張海濤. 國內(nèi)組態(tài)軟件的現(xiàn)狀與未來[J].電氣時代, 2002(6): 9-12.
LIN Weihan, GAO Chunguang, ZHANG Haitao. The status quo and future of domestic configuration softwares[J]. Electric Age, 2002(6): 9-12.
[3]王滿利, 景俊偉, 朱濤. 基于WEB的提升機監(jiān)控系統(tǒng)研究[J]. 煤礦機械, 2011, 32(4): 143-145.
WANG Manli, JING Junwei, ZHU Tao. Study of monitoring system of elevator based on WEB[J]. Coal Mine Machinery, 2011, 32(4): 143-145.
[4]常仕軍,何衛(wèi)平,和延立,等. 基于工作流的生產(chǎn)過程監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J]. 航空制造技術(shù), 2009(22): 92-97.
CHANG Shijun, HE Weiping, HE Yanli, et al. Design and implementation of production process monitoring system based on workflow[J]. Aeronautical Manufacturing Technology, 2009(22): 92-97.
[5]QIU R G, RUSSELL D W. A formal model for incorporating shop floor controls into plant information systems[J]. International Journal of Advanced Manufacturing Technology, 2004, 23(1/2): 47-57.
[6]李智,汪惠芬,劉婷婷,等. 面向制造過程的車間實時監(jiān)控系統(tǒng)設(shè)計[J]. 機械設(shè)計與制造, 2013(3): 256-259.
LI Zhi, WANG Huifen, LIU Tingting, et al. Design of workshop realtime monitoring system for manufacturing process[J]. Machinery Design &Manufacture, 2013(3): 256-259.
[7]張穎,費敏銳.三維可視化虛擬現(xiàn)場監(jiān)控環(huán)境的設(shè)計及機理[J]. 上海交通大學學報, 2002, 36(S1): 12-14.
ZHANG Ying, FEI Minrui. Design and principle of 3D visualization virtual field monitor environment[J]. Journal of Shanghai Jiaotong University, 2002, 36(S1): 12-14.
[8]王滔, 費敏銳. 虛擬現(xiàn)實技術(shù)在企業(yè)自動化流程界面中的初步研究[J]. 系統(tǒng)仿真學報, 2001, 13(6): 707-710.
WANG Tao, FEI Minrui. Preliminary research on virtual reality in process schedule for enterprise automation[J]. Journal of System Simulation,2001, 13(6): 707-710.
[9]易軍, 費敏銳, 張穎. 面向三維可視化界面的地下油庫網(wǎng)絡(luò)測控系統(tǒng)設(shè)計與應(yīng)用[J]. 測控技術(shù), 2004, 23(7): 30-32.
YI Jun, FEI Minrui, ZHANG Ying. Design and application of underground oil store network control system oriented to three-dimensional visualization interface[J]. Measurement & Control Technology, 2004, 23(7):30-32.
[10]張利利,李仁義,李曉京,等. Unity3D與數(shù)據(jù)庫通信方法的研究[J]. 計算機技術(shù)與發(fā)展, 2014, 24(3): 229-232.
ZHANG Lili, LI Renyi, LI Xiaojing, et al. Research on communication method between unity3D and database[J]. Computer Technology and Development, 2014, 24(3): 229-232.
[11]邱建松. 基于Unity3D的實時虛擬仿真系統(tǒng)的研究與實現(xiàn)[J].電子制作, 2012(12):18-19.
QIU Jiansong. Research and real-time virtual simulation system based on unity3D[J]. Electronic Production, 2012(12): 18-19.
[12]宣雨松. Unity3D游戲開發(fā)[M].北京:人民郵電出版社,2012.
XUAN Yusong. Unity3D game development[M]. Beijing: The People’s Post and Telecommunications Press, 2012.