晉控電力山西長治發(fā)電有限責(zé)任公司 李 信 齊海峰 陳彥恒 晉控電力塔山三期項目處 張 琦
全廠三維可視化是智慧電廠上層應(yīng)用的統(tǒng)一平臺載體,實(shí)現(xiàn)全廠的物質(zhì)流、能量流、價值流的全方位展示可直觀展示電廠生產(chǎn)的宏觀態(tài)勢,把握機(jī)組運(yùn)行的整體態(tài)勢和特征。當(dāng)系統(tǒng)設(shè)備所處的位置、外形及所有參數(shù)一目了然時,能減少管理者的勞動強(qiáng)度,提高管理效率和管理水平。借助于可視化的數(shù)據(jù)圖表,可清晰有效傳達(dá)與溝通信息。
通過三維建模(包括汽機(jī)房、鍋爐房及結(jié)構(gòu)、設(shè)備、管道、橋架等,以及化學(xué)、供水等工藝設(shè)備管道)構(gòu)建全廠三維可視化,展示整個工廠物理分布情況及設(shè)施的運(yùn)行狀態(tài),如實(shí)地描述和反映設(shè)備的實(shí)體關(guān)系,精確的實(shí)體、位置和層級描述,提供準(zhǔn)確的全景展示。實(shí)現(xiàn)三維圖模導(dǎo)航、人員定位、視頻聯(lián)動、設(shè)備檢修作業(yè)指導(dǎo)等功能。
為實(shí)現(xiàn)智慧電廠的各項功能和高效管理全廠三維模型,本系統(tǒng)設(shè)計了三層模式的技術(shù)架構(gòu),系統(tǒng)架構(gòu)的分層為數(shù)據(jù)層、場景層和應(yīng)用層。
數(shù)據(jù)層。主要作用是將現(xiàn)場采集到的原始數(shù)據(jù),如設(shè)計模型、工程圖紙、生產(chǎn)文檔、用戶配置信息、現(xiàn)場掃描的點(diǎn)云數(shù)據(jù),按統(tǒng)一標(biāo)準(zhǔn)進(jìn)行配置;場景層。系統(tǒng)采用逆向工程技術(shù),對工程設(shè)計資料和現(xiàn)場資產(chǎn)進(jìn)行三維鏡像還原,統(tǒng)一成標(biāo)準(zhǔn)的三維資產(chǎn)庫。將全廠三維場景按層次分為廠級、系統(tǒng)級和設(shè)備級,通過動態(tài)加載方式在各場景間無縫切換,防止冗余數(shù)據(jù)對三維渲染資源的過度消耗;應(yīng)用層。作用是通過三維場景和人機(jī)界面實(shí)現(xiàn)智慧電廠的功能應(yīng)用:三維圖模導(dǎo)航、人員定位、視頻聯(lián)動、設(shè)備檢修作業(yè)指導(dǎo)等。
項目框架采用基于Unity的Game Framework,包含多個開發(fā)過程中常用到的內(nèi)置模塊:
全局配置(Config)。存儲一些全局的只讀的項目配置,如定位人物初始速度、系統(tǒng)初始音量等;數(shù)據(jù)結(jié)點(diǎn)(Data Node)。將任意類型的數(shù)據(jù)以樹狀結(jié)構(gòu)的形式進(jìn)行保存,用于管理系統(tǒng)運(yùn)行時的各種數(shù)據(jù);數(shù)據(jù)表(Data Table)。可將系統(tǒng)數(shù)據(jù)以表格(如Microsoft Excel)的形式進(jìn)行配置后,使此模塊使用這些數(shù)據(jù)表。數(shù)據(jù)表的格式是可自定義的;調(diào)試器(Debugger)。當(dāng)系統(tǒng)在Unity編輯器中運(yùn)行或者以Development方式發(fā)布運(yùn)行時將出現(xiàn)調(diào)試器窗口,便于查看運(yùn)行時日志、調(diào)試信息等。用戶還可以方便地將自己的功能注冊到調(diào)試器窗口上并使用。
下載(Download)。提供下載文件的功能,支持?jǐn)帱c(diǎn)續(xù)傳,并可指定允許幾個下載器同時下載。更新資源時會主動調(diào)用此模塊;實(shí)體(Entity)。將系統(tǒng)場景中動態(tài)創(chuàng)建的一切物體定義為實(shí)體。此模塊提供管理實(shí)體和實(shí)體組的功能,如顯示隱藏實(shí)體、掛接實(shí)體等。實(shí)體使用結(jié)束后可不立刻銷毀,等待下一次重新使用;事件(Event)-系統(tǒng)邏輯監(jiān)聽、拋出事件的機(jī)制。Framework中的很多模塊在完成操作后都會拋出內(nèi)置事件,監(jiān)聽這些事件將大大解除系統(tǒng)邏輯之間的耦合。用戶也可定義自己的系統(tǒng)邏輯事件;文件系統(tǒng)(File System)。虛擬文件系統(tǒng)使用類似磁盤的概念對零散文件進(jìn)行集中管理,優(yōu)化資源加載時產(chǎn)生的內(nèi)存分配,甚至可對資源進(jìn)行局部片段加載,這些都將極大提升資源加載時的性能。
有限狀態(tài)機(jī)(FSM)。提供創(chuàng)建、使用和銷毀有限狀態(tài)機(jī)的功能,一些適用于有限狀態(tài)機(jī)機(jī)制的系統(tǒng)邏輯,使用此模塊將是一個不錯的選擇;網(wǎng)絡(luò)(Network)。提供使用Socket長連接的功能,當(dāng)前支持TCP協(xié)議,同時兼容IPv4和IPv6兩個版本。用戶可同時建立多個連接與多個服務(wù)器同時進(jìn)行通信,如想接入ProtoBuf之類的協(xié)議庫,只要派生自Packet類并實(shí)現(xiàn)自己的消息包類即可使用;對象池(Object Pool)。提供對象緩存池的功能,避免頻繁地創(chuàng)建和銷毀各種對象,提高性能。除Framework自身使用了對象池,用戶還可很方便地創(chuàng)建和管理自己的對象池;流程(Procedure)。是貫穿系統(tǒng)運(yùn)行時整個生命周期的有限狀態(tài)機(jī)。通過流程,將不同的狀態(tài)進(jìn)行解耦將是一個非常好的習(xí)慣。
資源(Resource)。為保證用戶體驗(yàn),不推薦再使用同步的方式加載資源,由于Framework自身使用了一套完整的異步加載資源體系,因此只提供了異步加載資源的接口。不論簡單的數(shù)據(jù)表、本地化字典,還是復(fù)雜的實(shí)體、場景、界面都將使用異步加載。同時Framework提供了默認(rèn)的內(nèi)存管理策略(也可定義自己的內(nèi)存管理策略)。多數(shù)情況下可不需要自行進(jìn)行Instantiate或是Destroy操作;場景(Scene)。提供場景管理的功能,可同時加載多個場景,也可隨時卸載任何一個場景,從而很容易地實(shí)現(xiàn)場景的分部加載;配置(Setting)。以鍵值對的形式存儲玩家數(shù)據(jù),對UnityEngine.PlayerPrefs進(jìn)行封裝,也可將這些數(shù)據(jù)直接存儲在磁盤上。
聲音(Sound)。提供管理聲音和聲音組的功能,用戶可自定義一個聲音的音量、是2D聲音還是3D聲音,甚至是直接綁定到某個實(shí)體上跟隨實(shí)體移動;界面(UI)。提供管理界面和界面組的功能,如顯示隱藏界面、激活界面、改變界面層級等。不論是Unity內(nèi)置的uGUI還是其它類型的UI插件(如NGUI),只要派生自UIFormLogic類并實(shí)現(xiàn)自己的界面類即可使用。界面使用結(jié)束后可以不立刻銷毀,從而等待下一次重新使用;Web請求(Web Request)。提供使用短連接的功能,可用Get或Post方法向服務(wù)器發(fā)送請求并獲取響應(yīng)數(shù)據(jù),可指定允許幾個Web請求器進(jìn)行同時請求。
逆向工程技術(shù)是對已建設(shè)完成的資產(chǎn)進(jìn)行設(shè)計技術(shù)再現(xiàn),構(gòu)建三維數(shù)字孿生系統(tǒng)的模型需使用逆向工程得到。逆向工程使用的原始數(shù)據(jù)為激光掃描點(diǎn)云和圖紙。采用激光掃描方法得到的模型,無論是設(shè)計院或廠家提供的設(shè)計模型與竣工狀態(tài)之間的差異,或是電廠在運(yùn)營中對設(shè)備進(jìn)行了改造,都可通過重新掃描確保模型與現(xiàn)場的一致性,不同時期掃描點(diǎn)云作為歷史數(shù)據(jù)還可作為判斷資產(chǎn)狀態(tài)改變的依據(jù)。
模型的兼容性:PDMS、PDS、Catia、Pro/E、Microstation、SolidWorks、AutoCAD、3Dmax、Maya、Blender、CINEMA4D,能完整繼承模型中包含的空間尺寸和工程設(shè)計信息。通過逆向工程三維建模構(gòu)建的模型按精度可以分為三類:機(jī)組級模型、系統(tǒng)級模型和設(shè)備級模型。不同類型模型的精細(xì)程度如下:機(jī)組級模型。主要設(shè)備外形,煙風(fēng)道和較大管道,廠房、鍋爐鋼架;系統(tǒng)級模型。工藝流程相關(guān)的設(shè)備,管道、閥門等連接部件;設(shè)備級模型。設(shè)備外觀,連接管口,重要內(nèi)部結(jié)構(gòu)。
本系統(tǒng)采用B/S架構(gòu),需要通過WebGL發(fā)布。針對Unity的Web平臺做了如下工作:Unity發(fā)布的Web平臺項目,并不支持多線程,因此刪除了框架內(nèi)涉及多線程的代碼,統(tǒng)一修改為單線程異步處理(Unity的異步本身并不能完全消除卡頓,在涉及文件讀寫時一定會產(chǎn)生卡頓);Unity的Web平臺項目,文件下載的支持以前并沒有同步刷新支持,因此加入了一個簡單的js代碼的處理流程,每次資源更新完成以后,C#代碼調(diào)用一次作為插件打包的js代碼方法做文件同步支持
項目采用了URP(通用渲染管線),URP管線優(yōu)化了老的內(nèi)置管線內(nèi)很多不必要的功能,使用srp batch合批技術(shù)對渲染過程進(jìn)行優(yōu)化,使得在Web平臺上展現(xiàn)更優(yōu)異的畫面,并使用更少的顯卡資源。
本系統(tǒng)需要在網(wǎng)頁中流暢運(yùn)行三維系統(tǒng),使用了以下數(shù)據(jù)輕量化方法:
多細(xì)節(jié)層次技術(shù)(LOD)??筛鶕?jù)物體模型的節(jié)點(diǎn)在顯示環(huán)境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數(shù)和細(xì)節(jié)度,獲得高效率的渲染運(yùn)算。比如表現(xiàn)主廠房,當(dāng)視線較遠(yuǎn)時以塊狀三維模型來表現(xiàn)廠房內(nèi)部的設(shè)備輪廓,當(dāng)鏡頭逐步推進(jìn)后則將前方可見區(qū)域的模型替換成高精度的設(shè)備模型,從而保證了系統(tǒng)運(yùn)行效率。
遮擋剔除。動態(tài)遮擋剔除是一種通過避免渲染被遮擋物體的幾何體面來提高性能的優(yōu)化措施。以鍋爐模型為例,當(dāng)用戶查看高溫過熱器時,大量位于高溫過熱器后方或鍋爐底部位置不可見的管道會被停止顯示,只有當(dāng)高溫過熱器被隱藏或是用戶將視角轉(zhuǎn)動到高溫過熱器內(nèi)部時才顯示更詳細(xì)的模型,從而保證系統(tǒng)的運(yùn)行速度。
三維場景編輯器用于參數(shù)模型與業(yè)務(wù)數(shù)據(jù)的配置,用于項目整體的快速定制,以及系統(tǒng)運(yùn)行過程中需求變更后的修改:導(dǎo)入設(shè)計院和設(shè)備廠提供的三維模型,低成本完成三維場景構(gòu)建;以配置方式,實(shí)現(xiàn)UI和交互動作的項目定制;交互動作可視化配置,并能根據(jù)新需求快速擴(kuò)展。豐富的歷史案例已構(gòu)成動作資源庫,高效完成復(fù)雜界面組態(tài)和三維應(yīng)用;結(jié)構(gòu)化數(shù)據(jù)的批量導(dǎo)入,文件資料的管理和預(yù)覽;完善的幫助文檔,無三維基礎(chǔ)人員能獨(dú)立使用;規(guī)則編輯器:實(shí)現(xiàn)規(guī)則查詢、數(shù)據(jù)統(tǒng)計功能。
通過三維建模手段,建立電廠高精度、等比例的三維模型,與實(shí)際廠區(qū)布置、設(shè)備高度吻合。在此基礎(chǔ)上,利用人員定位技術(shù),在三維場景中對全廠人員進(jìn)行精準(zhǔn)定位的展示,通過全場覆蓋的人員定位基站及現(xiàn)場人員所佩戴的定位標(biāo)簽,實(shí)現(xiàn)對整個生產(chǎn)區(qū)人員活動軌跡的監(jiān)控及有效的安全生產(chǎn)管控。在已部署的巡點(diǎn)檢系統(tǒng)基礎(chǔ)上,實(shí)現(xiàn)巡點(diǎn)檢過程與三維可視化、人員定位、門禁、視頻等與巡點(diǎn)檢系統(tǒng)結(jié)合,保障巡點(diǎn)檢過程中的人員安全與巡點(diǎn)檢全過程可視,并可將機(jī)器人巡檢系統(tǒng)與原巡點(diǎn)檢系統(tǒng)功能結(jié)合統(tǒng)一,最終通過智能電廠與生產(chǎn)調(diào)度中心控制站或大屏進(jìn)行輸出巡點(diǎn)檢結(jié)果及設(shè)備運(yùn)行狀態(tài)。
通過設(shè)置電子圍欄對現(xiàn)場無法進(jìn)行物理防護(hù)的區(qū)域?qū)崿F(xiàn)安全管控。當(dāng)人員步入電子圍欄區(qū)域,三維畫面上發(fā)出告警,同時記錄告警信息。系統(tǒng)可設(shè)定重點(diǎn)區(qū)域允許停留的人員數(shù)量和時間,根據(jù)定位系統(tǒng)上傳的數(shù)據(jù)監(jiān)控區(qū)域內(nèi)人員的數(shù)量、權(quán)限、停留時間等,當(dāng)人員超員或停留時間超時系統(tǒng)發(fā)出告警信號,避免在特定工作現(xiàn)場人員超員或超時停留可能引發(fā)的危險。系統(tǒng)檢測到有權(quán)限不匹配人員進(jìn)入重點(diǎn)監(jiān)測區(qū)域后,及時向監(jiān)控中心發(fā)出警告信號。
電子圍欄具備隨意調(diào)整、區(qū)域自定義功能,必要時可采取移動式電子設(shè)備設(shè)置電子圍欄。如:臨時作業(yè)場所的可移動式紅外線電子圍欄的接入與管理。充分借助視覺識別、物聯(lián)網(wǎng)、智能算法等先進(jìn)的技術(shù)手段,從物理安全、系統(tǒng)安全、應(yīng)用安全和數(shù)據(jù)安全等方面對企業(yè)進(jìn)行多重敏捷保護(hù)。實(shí)現(xiàn)人臉識別、禁非區(qū)防控、邊界防范、臨時區(qū)域管制、高空等危險區(qū)域作業(yè)實(shí)時監(jiān)控等常規(guī)功能,實(shí)現(xiàn)人員定位與門禁和電子圍欄系統(tǒng)深度融合,實(shí)現(xiàn)消防聯(lián)動,實(shí)現(xiàn)智能車輛管理,實(shí)現(xiàn)廠區(qū)智能化管理。
基于三維全景的管理駕駛艙,動態(tài)顯示現(xiàn)場運(yùn)行及檢修人員分布、機(jī)組啟停等信息。輔以電廠關(guān)鍵KPI指標(biāo),如機(jī)組負(fù)荷、24小時負(fù)荷趨勢、機(jī)組信息、缺陷統(tǒng)計等,為高層管理者提供“一站式”決策支持。管理駕駛艙具有直觀性、可配置性、方便性、全面性、多維性等特點(diǎn),通過各種常見的圖表(表盤、曲線圖、柱形圖、音量柱、預(yù)警雷達(dá)、雷達(dá)球)形象展示電廠運(yùn)行的各種關(guān)鍵指標(biāo)(KPI),直觀的監(jiān)測電廠運(yùn)營情況,并可對異常關(guān)鍵指標(biāo)預(yù)警和挖掘分析。
在全廠三維模型中,準(zhǔn)確表達(dá)了所有設(shè)備的空間位置。三維平臺模型提供電廠設(shè)備、測點(diǎn)、機(jī)柜及管道的布置信息,并通過SIS數(shù)據(jù)庫得到設(shè)備實(shí)時運(yùn)行數(shù)據(jù),將SIS原有的2D生產(chǎn)數(shù)據(jù)監(jiān)控變成為3D生產(chǎn)數(shù)據(jù)監(jiān)控,為運(yùn)行管理人員提供更立體的顯示效果。三維平臺應(yīng)根據(jù)設(shè)備狀態(tài)及性能計算情況改變設(shè)備模型顯示顏色,提示管理人員注意。以設(shè)備、測點(diǎn)模型為入口,可方便查詢相應(yīng)的實(shí)時動態(tài)生產(chǎn)數(shù)據(jù)(SIS數(shù)據(jù)庫)、設(shè)備靜態(tài)數(shù)據(jù)(MIS數(shù)據(jù)庫)以及圖紙信息(圖紙數(shù)據(jù)庫)。
系統(tǒng)在三維場景中表示出了全廠攝像頭位置,并能在模型中模擬任意攝像頭角度。將三維模型與工業(yè)電視系統(tǒng)連接,實(shí)現(xiàn)虛擬場景和現(xiàn)實(shí)視頻之間的切換。