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